RSS工作坊-人工智能驱动的机器人操作系统
RSS 2025会议补充库
本存储库的目的
此存储库支持 两个互补的用例 对于RSS系统论文:
- 审阅者/研究者路径 --无需机器人的可运行规划管道
所需硬件(默认,建议审阅者使用)。
- 完整硬件路径 --UFACTORY UF850+Intel上的端到端执行
RealSense D435i,包括ChArUco手眼校准、感知和 基于MTC的运动执行。
这两条路径共享相同的源代码树、构建系统和代理层—— 唯一的区别是机器人+摄像头是否物理连接。
默认执行模式: 仅计划/试运行 (推荐给审稿人)。 对于真正的机器人路径,请从以下位置开始 docs/REAL_ROBOT_QUICK_START.md.
______________________________________________________________________
快速导航
供审稿人使用 (无机器人硬件):
- 评论_指南.md --10分钟验证路径
- 执行模块.md --纯计划vs假机器人vs真机器人
- docs/QUICK_START.md --仅计划逐步设置
对于完整的硬件路径 (v2.0中的新功能):
- docs/REAL_ROBOT_QUICK_START.md --从零到真正的机器人倾倒的10个步骤
- docs/CALIBRATION_PIPELINE.md --ChArUco手眼手术
- docs/SAFETY_CHECKLIST.md -- 在任何动议之前必须阅读
为了理解代码:
- docs/ARCHITECTURE.md --系统设计与数据流
- docs/API_REFERENCE.md文件 --动作/工具参考
- 外部设计.md --权威子模块/apt/pip矩阵
故障排除:
- BUILD_COMMANDS.md --详细的构建说明
- docs/EXCLUDED_COMPONENTS.md --故意遗漏的内容
______________________________________________________________________
______________________________________________________________________
30秒理解
此回购包含什么:
- 用于基于MTC的操纵规划的ROS 2包
- 用于自然语言控制的LLM代理层(LangGraph+Claude)
- 仅规划管道——不需要机器人
- 真正的机器人流水线——UF850+RealSense D435i,ChArUco手眼校准,
对规划场景桥、MTC执行的感知
- 将外部依赖项固定为git子模块(xarm_ros2、easy_handeye2)
未包含的内容:
- 预训练的目标检测模型权重(
*.pt,*.pth被忽视) - 硬件特定的校准数据(仅提供示例骨架) 配置/)
- 来自单独maniagent项目的脚本碰巧共享相同的脚本
框架(参见 外部设计.md,第4节)
供审稿人使用:在“仅计划”模式下运行,以验证计划架构。 适用于机器人操作员:参见 docs/REAL_ROBOT_QUICK_START.md.
______________________________________________________________________
🎯 系统概述
该存储库演示了一个人工智能驱动的机器人操纵系统,该系统结合了:
- 自然语言机器人控制:使用简明英语指挥任务
- AI代理集成:LangGraph+克劳德十四行诗4用于任务规划
- 场景理解:实时目标检测和场景状态管理
- MTC任务规划:基于任务的高级运动规划
系统架构:
Natural Language Input → Claude AI Agent → Action Tools → ROS2 MTC → (Planning/Execution)
↓
Scene Manager (ROS2 subscriber)关键创新:具有LLM驱动的自然语言界面的分层任务规划。
______________________________________________________________________
🚀 包含内容
核心组件
- AI 代理 (
agent/)
- agent_app.py:主要的自然语言代理应用程序 - action_tools.py:为LangChain包装的机器人动作工具 - scene_manager.py:ROS2场景状态管理器 - task_graph.py:复杂序列的任务图定义
- ROS2包装 (
src/)
- mtc_interface:消息和动作定义 - mtc_tutorial:MTC任务构建器和执行服务器
- 文档 (
docs/)
- 架构图 - 使用指南 - 快速参考资料
- 演示脚本 (
scripts/)
- run_demo.sh:一个命令演示启动器
______________________________________________________________________
需求
仅计划模式(建议审阅者使用)
- Ubuntu 22.04 LTS
- ROS 2谦逊的霍克斯比尔
- Python 3.10+
- MoveIt 2+MoveIt任务构建器
- 无需机器人或摄像头
真实机器人模式(附加,在上述模式之上)
- UFACTORY UF850机器人手臂(经过测试的固件:附带v2.0.0-humble驱动程序)
- 英特尔RealSense D435i摄像头
- 完成ChArUco手眼校准(手眼) *或* 眼睛到手)
- Anthropic API密钥(用于LLM代理)
外部依赖 记录在一个地方: 看见 外部设计.md 对于权威子模块/ apt/pip矩阵。缩写为:
# 1. System ROS 2 + MoveIt + MTC
sudo apt install ros-humble-desktop ros-humble-moveit-task-constructor-*
# 2. Clone this repo WITH its submodules (xarm_ros2, easy_handeye2)
git clone https://github.com/1douya1/safe-robotic-pouring.git RSS_Workshop
cd RSS_Workshop
git submodule update --init --recursive # pulls xarm_ros2 AND xarm_sdk/cxxPython依赖关系(代理层和/或真实机器人)
完整的pip pin列表(仅计划需要哪些包) 真正的机器人) 仅 保持在 外部设计.md,第3节.
对于此仓库中的代理/web UI:
pip install -r agent/simple_requirements.txt对于真正的机器人感知层,另外安装:
/usr/bin/python3 -m pip install "numpy 注: `--packages-up-to mtc_tutorial` 仅构建 `mtc_tutorial` 及其
> 依赖关系(`mtc_interface`, `xarm_moveit_config`, ...),跳过无关的
> 包裹(`realsense_gazebo_plugin`在某些系统上可能会发生故障。
> 如果你以前跑过 `colcon build` 从 `RSS_Workshop/src`,你可能有
> 第二次覆盖 `src/install`.在repo覆盖之前获取参考底图:
> `source src/install/setup.bash && source install/setup.bash`.进行修复
> 持久化,在采购后重建一次回购覆盖 `src/install`.
______________________________________________________________________
## 快速入门(真正的机器人)
**在阅读本节之前,请阅读 [docs/SAFETY_CHECKLIST.md](docs/SAFETY_CHECKLIST.md).**
0. One-time: ensure hand-eye calibration has been done.
See docs/CALIBRATION_PIPELINE.md for the ChArUco procedure.
1. Clone + build (same as plan-only)
git clone https://github.com/1douya1/safe-robotic-pouring.git RSS_Workshop cd RSS_Workshop git submodule update --init --recursive source /opt/ros/humble/setup.bash colcon build --symlink-install --packages-up-to mtc_tutorial source install/setup.bash
2. Python deps for perception + agent
/usr/bin/python3 -m pip install -r agent/simple_requirements.txt /usr/bin/python3 -m pip install "numpy<2" "opencv-python==4.10.0.84" ultralytics pyrealsense2
3. Guided launch plan (prints the 4-terminal command set)
./scripts/run_demo.sh --real-robot
引导式发射器打印启动的确切命令(在单独的终端中):
RealSense驱动程序、UF850+MoveIt堆栈、校准发布器、
检测桥和TF健全性检查。完整演练
[docs/REAL_ROBOT_QUICK_START.md](docs/REAL_ROBOT_QUICK_START.md).
### 详细步骤
看 [docs/QUICK_START.md](docs/QUICK_START.md) (仅计划)或
[docs/REAL_ROBOT_QUICK_START.md](docs/REAL_ROBOT_QUICK_START.md) (真正的机器人)
获取带解释的分步说明。
______________________________________________________________________
## 🎮 仅运行计划演示
### 推荐给审稿人
One command:
./scripts/run_demo.sh --plan-only
这将:
1. 检查所有依赖项(ROS2、MoveIt、xarm_ROS2)
1. 如果需要,构建工作区
1. 为带有假控制器的UF850启动MoveIt2
1. 使用机器人模型和规划场景打开RViz
1. 注入演示碰撞对象(桌子、杯子、碗)
1. 启动MTC模块任务服务器
### 你会在RViz看到什么
- UF850机器人模型处于原位
- 棕色桌面
- 蓝色圆柱体(杯子/源容器)
- 红色圆柱体(碗/目标容器)
- MotionPlanning互动规划小组
### 启动计划
一旦RViz打开并且对象可见,请在 **新终端**:
source install/setup.bash ros2 run mtc_tutorial test_modular_tasks
这将计划一个拾取任务(仅计划,不执行)并显示结果。
### 用于硬件执行
看 [执行模块.md](EXECUTION_MODES.md) 用于模拟和真实机器人模式。
**审查此工作不需要硬件执行。**
______________________________________________________________________
## 📂 仓库结构
RSS_Workshop/ ├── agent/ # AI Agent module │ ├── agent_app.py # Main natural language agent │ ├── action_tools.py # LangChain-wrapped robot actions │ ├── scene_manager.py # ROS2 scene state manager │ ├── task_graph.py # Task graph definitions │ └── simple_requirements.txt # Python dependencies │ ├── src/ # ROS2 packages │ ├── mtc_interface/ # Message/Action definitions │ │ ├── action/ExecutePour.action, ExecuteTask.action │ │ └── msg/DetectedObject.msg, DetectionResult.msg │ │ │ └── mtc_tutorial/ # MTC task builders & demo │ ├── src/ # C++ task builders & servers │ ├── scripts/ # Python utilities │ │ ├── spawn_demo_scene.py # <-- NEW: inject demo objects │ │ └── mtc_mcp_server.py # MCP tool server │ ├── launch/ │ │ ├── plan_only_demo.launch.py # <-- NEW: one-launch demo │ │ └── pour_demo.launch.py │ ├── config/ │ │ └── demo_scene.yaml # <-- NEW: demo collision objects │ └── include/ # C++ headers │ ├── scripts/ │ └── run_demo.sh # One-command demo entrypoint │ ├── configs/ # Agent configuration ├── docs/ # Documentation ├── LICENSE └── README.md
______________________________________________________________________
## 🔧 可用的机器人动作
AI代理可以通过自然语言执行以下操作:
### 核心行动
- **拾取对象(object_id)**:抓取指定对象
- **place_object(object_id,return_to_origin)**:将对象放置在某个位置
- **move_and_pour(target_id、should_pour、速度)**:移动到目标位置,并可选择倾倒
- **返回主页()**:将机器人返回原位
### 查询操作
- **get_scene_objects()**:列出所有检测到的对象
- **get_robot_status()**:检查机器人状态(保持、最后动作)
- **ask_user_clarization(问题、选项)**:请用户澄清
看 `docs/API_REFERENCE.md` 查看详细的动作参数。
______________________________________________________________________
## 🧪 测试
### 烟雾测试(无需机器人)
Test the agent without robot hardware
cd agent python3 -c " from scene_manager import get_scene_manager from action_tools import get_tools
scene = get_scene_manager() tools = get_tools() print('✅ All imports successful') print(f'✅ Available tools: {len(tools)}') "
### 集成测试(需要ROS2)
Ensure ROS2 is running, then:
source install/setup.bash ros2 topic list # Should show /planning_scene, /joint_states, etc. ros2 node list # Should show move_group if MoveIt is running
______________________________________________________________________
## 已知限制/不包括的内容
1. **硬件特定数据** --实时内情、手眼结果,以及
`recorded_poses.yaml` 是特定于安装的,并且是不可忽略的。仅
这 `configs/*.example.yaml` *骨架* 被跟踪。
1. **目标检测模型权重** -- `*.pt`, `*.pth`, `*.onnx` 是
被忽视了。自己下载或重新训练YOLOv8。
1. **Isaac Sim集成** --故意超出范围。
1. **`moveit_task_constructor`, `find_object_2d`, `realsense2_camera` 来源**
--通过消费 `apt` 而不是出卖。
1. **来自单独maniagent项目的脚本** (pointcloud_geometry_fitter,
publish_camera_root_from_handeye,佛罗伦萨_视觉检测启动)--这些
共享相同的框架,但不是RSS管道的一部分。他们是
仅引用于 [外部设计.md](external-deps.md)第4节。
看 [docs/EXCLUDED_COMPONENTS.md](docs/EXCLUDED_COMPONENTS.md) 为了
长篇理论基础。
______________________________________________________________________
## 🐛 故障排除
### 代理无法启动
Check Python dependencies
pip install -r agent/simple_requirements.txt
Verify ROS2 environment
source install/setup.bash echo $ROS_DISTRO # Should output: humble
### 未检测到任何物体
Check if detection node is running
ros2 node list | grep detection
Verify detection topic
ros2 topic echo /object_detection_result --once
### 规划失败
Check MoveIt is running
ros2 node list | grep move_group
Verify planning scene
ros2 topic echo /planning_scene --once
Check joint states
ros2 topic echo /joint_states --once
______________________________________________________________________
## 📚 其他资源
- **全部文件**:参见 `docs/` 文件夹
- **代理使用指南**: `docs/AGENT_USAGE_GUIDE.md`
- **架构概述**: `docs/ARCHITECTURE.md`
- **MTC任务构建器**: https://moveit.picknik.ai/main/doc/tutorials/pick_and_place_with_moveit_task_constructor/pick_and_place_with_moveit_task_constructor.html
______________________________________________________________________
## 📝 引用
如果您在研究中使用此代码,请引用:
@inproceedings{rss2025_workshop, title={AI-Driven Robot Manipulation with Natural Language Control}, author={Your Name}, booktitle={Robotics: Science and Systems (RSS)}, year={2025} }
______________________________________________________________________
## 📄 许可证
此项目根据MIT许可证获得许可-请参阅 [许可证](LICENSE) 文件以获取详细信息。
______________________________________________________________________
## 🙏 致谢
- **MoveIt任务构造器**:强大的基于任务的规划框架
- **工厂**:适用于UF850机器人平台
- **Anthropic**:用于Claude AI模型
- **语言链/语言图**:用于AI代理框架
______________________________________________________________________
**版本**:2.0(仅计划+真实机器人)
**查看快照**:标签 `v1.1.0-review` 仅保留原始计划提交。