{"id":50584683,"url":"https://github.com/zay002/arachne","last_synced_at":"2026-06-05T05:02:00.153Z","repository":{"id":360007114,"uuid":"1248205041","full_name":"zay002/Arachne","owner":"zay002","description":"Arachne：ROS2 mobile manipulation workspace for 松灵机器人（AgileX Scout 2.0）+ 遨博（Aubo i5）+ 易爪机器人 / 大寰机器人（Yizhua Robot / DH-Robotics）AG95 grippers, with unified URDF/Xacro, RViz/Gazebo simulation, real-robot control, Nintendo Switch teleop, and extensible VLA/WAM integration.","archived":false,"fork":false,"pushed_at":"2026-06-02T13:58:43.000Z","size":32493,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-06-02T15:18:47.698Z","etag":null,"topics":["agilex","gazebo-ros","godot4","grippers","manipulator-robotics","robot-system","robotic-arm","robotics","ros2-humble","ros2-jazzy","scout2"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/zay002.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-05-24T10:28:50.000Z","updated_at":"2026-06-02T14:01:25.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/zay002/Arachne","commit_stats":null,"previous_names":["zay002/arachne"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/zay002/Arachne","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zay002%2FArachne","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zay002%2FArachne/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zay002%2FArachne/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zay002%2FArachne/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/zay002","download_url":"https://codeload.github.com/zay002/Arachne/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zay002%2FArachne/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33930311,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-05T02:00:06.157Z","response_time":120,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["agilex","gazebo-ros","godot4","grippers","manipulator-robotics","robot-system","robotic-arm","robotics","ros2-humble","ros2-jazzy","scout2"],"created_at":"2026-06-05T05:01:58.501Z","updated_at":"2026-06-05T05:02:00.116Z","avatar_url":"https://github.com/zay002.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n  \u003cimg src=\"docs/demo/arachne.png\" alt=\"Arachne robot system showcase\" width=\"900\"\u003e\n\u003c/p\u003e\n\n# Arachne\n\n[English](README.en.md) · [快速启动](#快速启动) · [真机接口](#真机接口) · [文档](#文档)\n\n![ROS 2](https://img.shields.io/badge/ROS%202-Jazzy%20%7C%20Humble-blue)\n![Ubuntu](https://img.shields.io/badge/Ubuntu-24.04%20%7C%2022.04-orange)\n![License](https://img.shields.io/badge/license-MIT-green)\n\nArachne 是一个面向移动操作机器人的 ROS 2 workspace。默认机器人由 Scout 2.0 移动底盘、Aubo i5 机械臂和易爪机器人 MS42DC 二指柔性伺服电机夹爪组成；AG95 作为可切换夹爪模型保留。\n\n项目目标是提供一套可复现的研发基线：统一机器人模型、RViz/Gazebo/Godot 演示、MoveIt2/Nav2/ros2_control 起步配置，以及面向真机的 ROS 接口。\n\n\u003ctable\u003e\n  \u003ctr\u003e\n    \u003ctd width=\"50%\" align=\"center\"\u003e\u003cimg src=\"docs/demo/realbot_1.jpg\" alt=\"Arachne physical robot front view\" width=\"100%\"\u003e\u003c/td\u003e\n    \u003ctd width=\"50%\" align=\"center\"\u003e\u003cimg src=\"docs/demo/realbot_2.jpg\" alt=\"Arachne physical robot side view\" width=\"100%\"\u003e\u003c/td\u003e\n  \u003c/tr\u003e\n\u003c/table\u003e\n\n## 特性\n\n- 统一 URDF/Xacro：Scout 2.0、Aubo i5、MS42DC、AG95、传感器和安装坐标系位于同一 TF 树。\n- 可切换夹爪：MS42DC 使用项目作者手动拆分的可动 CAD 部件；AG95 保留为开源对照模型。\n- 仿真与展示：RViz 模型检查、Gazebo 手柄 demo、自主拾取验证，以及 Godot 高帧率展示前端。\n- 控制骨架：MoveIt2、Nav2、ros2_control、sequence executor 和 VLA/WAM action chunk translator。\n- 真机接口：Scout 2.0、MS42DC、Aubo i5 均通过 ROS 话题、launch 和安全检查脚本接入。\n\n## 快速启动\n\n支持 Ubuntu 24.04 + ROS 2 Jazzy，兼容 Ubuntu 22.04 + ROS 2 Humble。\n\n```bash\ngit clone https://github.com/zay002/Arachne.git\ncd Arachne\n\n./scripts/setup_ubuntu.sh\n./scripts/fetch_third_party.sh\n\nsource scripts/arachne_env.sh\n./scripts/build_workspace.sh\n./scripts/view_model.sh\n```\n\n仓库随附可直接运行的第三方最小集合：Aubo i5 必要模型、Scout ROS2、UGV SDK 源码、Aubo ROS2 driver、AG95 描述和 MS42DC ROS2 示例。大型资料如完整 Aubo 全系列模型、厂家视频/安装包、UGV 大 PDF、Godot 外部素材包仍由脚本或链接下载。`fetch_third_party.sh` 默认复用随仓库携带的内容并建立符号链接；如需重新拉取固定版本完整上游，可运行 `ARACHNE_REFRESH_THIRD_PARTY=true ./scripts/fetch_third_party.sh`。\n\n`arachne_env.sh` 会把当前 shell 固定到 ROS 使用的系统 Python，例如 Ubuntu 24.04 + Jazzy 下的 `/usr/bin/python3.12`，避免 conda/pyenv 的 Python 3.13 抢走 ROS Python 模块。\n\n`view_model.sh` 会启动默认 MS42DC 模型、底盘遥控 GUI、Aubo 关节滑条和夹爪 Open/Close 控制窗。\n\n推荐始终通过 `./scripts/view_model.sh` 查看模型；脚本会自动加载 ROS 和 workspace 环境。若手动运行 `ros2 launch` 或直接打开 RViz，必须先执行：\n\n```bash\nsource scripts/arachne_env.sh\nsource install/setup.bash\n```\n\n否则 RViz 的 `package://...` mesh 路径可能解析失败，表现为白模、部件堆叠或材质丢失。\n\n## 常用入口\n\n| 目标 | 命令 |\n| --- | --- |\n| 查看默认 MS42DC 模型 | `./scripts/view_model.sh` |\n| 查看 AG95 模型 | `./scripts/use_gripper.sh ag95 view` |\n| 检查 URDF 和基础接口 | `./scripts/check_workspace.sh` |\n| Gazebo 手柄 demo | `./scripts/switch_demo.sh` |\n| Gazebo 自主拾取验证 | `./scripts/gazebo_autopick_demo.sh` |\n| Godot 展示前端 | `./scripts/godot_showcase.sh` |\n| 真机环境检查 | `./scripts/check_real_hardware_env.sh` |\n| 真机一键 bringup | `./scripts/real_bringup.sh` |\n| 真机示教演示 | `./scripts/real_teach_demo.sh` |\n| Aubo 只读连通探测 | `./scripts/real_aubo_probe.sh` |\n| Aubo 启动状态确认 | `./scripts/real_aubo_prepare.sh` |\n| Aubo 真机 driver 启动 | `ARACHNE_CONFIRM_AUBO_DRIVER=YES ./scripts/real_aubo_bringup.sh` |\n| Aubo 阻塞远程启动 | `ARACHNE_CONFIRM_AUBO_REMOTE_START=YES ./scripts/real_aubo_remote_start.sh` |\n| Aubo 小幅 Z 向测试 | `ARACHNE_CONFIRM_REAL_MOTION=YES ./scripts/real_aubo_z_test.sh` |\n| 真机示教与回放面板 | `./scripts/teach_panel.sh` |\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"docs/demo/gazebo.png\" alt=\"Arachne Gazebo demo\" width=\"48%\"\u003e\n  \u003cimg src=\"docs/demo/godot.png\" alt=\"Arachne Godot showcase\" width=\"48%\"\u003e\n\u003c/p\u003e\n\n## 真机接口\n\nArachne 的真机层尽量复用官方或厂家 ROS 路线，并在本仓库内维护当前硬件需要的集成节点。\n\n| 设备 | 默认接口 | 说明 |\n| --- | --- | --- |\n| Scout 2.0 | `scout_waveshare_serial_driver` | `/cmd_vel` 到 Scout v2 CAN 帧；Waveshare USB-CAN-A，CH340 串口，默认 `/dev/serial/by-id/usb-1a86_USB_Serial-if00-port0` |\n| MS42DC | `ms42dc_direct_serial_driver` | `/arachne/gripper/command` 到 Type-C 串口帧；夹具控制板为 CH91xx/CH343 系列，当前实机按 CH9012 路线处理，推荐别名 `/dev/motor_serial` |\n| Aubo i5 | `AuboRobot/aubo_ros2_driver` | TCP/IP + ros2_control，按机器人 IP 启动 |\n\n准备真机相关 ROS 包：\n\n```bash\n./scripts/prepare_real_hardware_ros.sh\n./scripts/real_aubo_probe.sh\n./scripts/real_aubo_prepare.sh\n```\n\nAubo 推荐优先在示教器/控制柜上完成“连接 -\u003e 上电 -\u003e 启动”。如果需要从 ROS 侧远程启动，只使用阻塞式脚本：它会先确认 controller active、读取当前关节角并发送 hold-position，再按“上电 -\u003e Aubo `RobotManage.startup` 完整启动 -\u003e Running 后稳定与保持校验”的顺序执行。脚本不会直接调用 `releaseRobotBrake`；任何保护状态、超时或 controller 异常都会退出。\n\n远程启动需要两个终端：\n\n```bash\n# 终端 1：启动 driver，并允许上电前激活 controller\nARACHNE_CONFIRM_AUBO_DRIVER=YES ARACHNE_AUBO_ALLOW_PRESTART=YES ./scripts/real_aubo_bringup.sh\n\n# 终端 2：执行阻塞式远程启动状态机\nARACHNE_CONFIRM_AUBO_REMOTE_START=YES AUBO_ROBOT_IP=192.168.127.128 ./scripts/real_aubo_remote_start.sh\n```\n\n日常真机启动优先使用自动入口。脚本会自动选择 Scout 和 MS42DC 的 `/dev/serial/by-id` 串口，检查 Aubo 是否处于 Running / Normal，然后启动完整 bringup：\n\n```bash\n./scripts/real_bringup.sh\n```\n\nWSL2 用户推荐使用 [hurry-porter](https://github.com/zay002/hurry-porter) 辅助 USB 透传、串口扫描和 Waveshare USB-CAN-A 诊断。`real_bringup.sh` 找不到串口时会先尝试自动 attach CH9102/CH340 设备；如果 Windows 侧还没有共享设备，再按脚本提示手动 attach。\n\n```bash\nhurry scan\nhurry waveshare-can-a recv \\\n  --port /dev/serial/by-id/usb-1a86_USB_Serial-if00-port0 \\\n  --can-bitrate 500000 \\\n  --frame-type standard \\\n  --duration 2\n```\n\n真机运动测试默认 dry-run。确认电源、急停和空间安全后再显式允许运动：\n\n```bash\n./scripts/real_hardware_acceptance_test.sh\n./scripts/real_aubo_z_test.sh\nARACHNE_CONFIRM_REAL_MOTION=YES ./scripts/real_hardware_acceptance_test.sh\n```\n\n示教演示可直接一键启动：\n\n```bash\n./scripts/real_teach_demo.sh\n```\n\n它会启动真机 bringup，等待 `/odom`、`/joint_states`、Aubo trajectory action 和夹具状态可用后打开示教面板；关闭面板时会自动停止 bringup。面板可以手动控制底盘、Aubo 末端和 MS42DC，支持 Aubo Teach On/Off、RX/RY/RZ 腕部微调、底盘长按松开后自动记录相对移动段、等待步骤、单点更新和 waypoint 复用，并将记录保存到本地 `recordings/teach/` 后一键回放。\n\n## 项目结构\n\n| 路径 | 内容 |\n| --- | --- |\n| `src/arachne_description` | 统一机器人模型、RViz 配置、夹爪变体和传感器坐标系 |\n| `src/arachne_demo` | Switch Pro 手柄、Gazebo 展厅、自主拾取验证 |\n| `src/arachne_hardware` | 真机 bringup、Scout/MS42DC wrapper、安全状态和命令门控 |\n| `src/arachne_control` | ros2_control 控制器命名、mock 控制器和硬件 profile |\n| `src/arachne_moveit_config` | Aubo i5 + MS42DC/AG95 的 MoveIt2 起步配置 |\n| `src/arachne_nav` | Scout Nav2 起步配置 |\n| `src/arachne_operator` | 操作员面板、sequence executor、VLA/WAM action chunk translator |\n| `godot/arachne_showcase` | Godot 4.x 第三人称展示前端 |\n| `docs` | 建模、控制、硬件、标定和参考资料 |\n\n## 文档\n\n- [建模](docs/modeling.zh-CN.md)\n- [控制](docs/control.zh-CN.md)\n- [硬件](docs/hardware.zh-CN.md)\n- [标定](docs/calibration.zh-CN.md)\n- [参考资料](docs/references.zh-CN.md)\n\n英文版本位于同名文档，例如 [docs/hardware.md](docs/hardware.md)。\n\n## Roadmap\n\n- 完成 Aubo i5 真机 TCP/IP 与 ros2_control 验证。\n- 将 Scout、Aubo、MS42DC 的联合 bringup 固化为安全流程。\n- 用 MoveIt2 和 ros2_control 替换 Gazebo 自主拾取验证中的轻量规划器。\n- 基于真实里程计、定位和传感器继续完善 Nav2。\n- 将 Godot 前端通过 ROS 2 bridge 连接到真实或仿真后端。\n\n## License\n\n本仓库代码使用 [MIT License](LICENSE)。第三方模型、CAD、SDK 和说明书遵循各自来源许可证；来源记录见 [third_party/README.md](third_party/README.md) 和 [docs/references.zh-CN.md](docs/references.zh-CN.md)。\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzay002%2Farachne","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fzay002%2Farachne","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzay002%2Farachne/lists"}