机器人控制协议服务

ROSClaw MCP服务器通过ROS2控制SO-101六自由度机械臂,实现LLM代理与机械臂的通信与控制。

  • by AlbertaBeef
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 AlbertaBeef/rosclaw-so101-ros2-mcp

使用说明

rosclaw-so101-ros2-mcp

ROSClaw MCP服务器 SO-101机械臂 通过ROS2。

部分 ROSClaw 嵌入式智能操作系统。

概述

此MCP服务器使LLM代理能够通过模型上下文协议控制SO-101 6-DOF机器人手臂。它通过ROS2主题与 lekiwi_motor_bridge 处理Feetech STS3215伺服通信的节点。

LLM Agent  ──MCP──►  rosclaw-so101-ros2-mcp  ──ROS2──►  lekiwi_motor_bridge  ──Serial──►  SO-101

硬件

字段 值
机器人 SO-101(6自由度手臂+夹具)
伺服 Feetech STS3215 x6(电机ID 1-6)
协议 ROS2通过lekiwi_motor_bridge
主题 /joint_states (in), /joint_commands (out)

安装

source /opt/ros/jazzy/setup.bash
pip install -e .

先决条件

这个 lekiwi_motor_bridge 节点从 lekiwi_hw_interface 程序包必须正在运行:

ros2 run lekiwi_hw_interface lekiwi_motor_bridge --ros-args \
  -p port:=/dev/ttyACM0 \
  -p use_so101:=true

作为MCP服务器运行

source /opt/ros/jazzy/setup.bash
python src/so101_mcp_server.py

可用工具

工具 说明
connect_so101 通过ROS2连接到SO-101
disconnect_so101 断开SO-101的连接
move_arm_to_home 将所有关节移到零(垂直)
move_arm_joint 将单个关节移动到目标位置
move_arm_joints 同时移动多个关节
open_gripper 完全打开夹持器
close_gripper 完全关闭夹持器
stop_arm 保持当前位置
get_arm_state 获取关节位置和夹持器状态

可用资源

资源 描述
so101://status 关节位置和夹持器状态
so101://joints 联合限制参考
so101://connection ROS2连接状态

联合参考

关节 范围(rad) 电机ID
肩盘 -2.055至+2.058 1
肩举 -2.018至+2.018 2
elbow_flex -1.653到+1.654 3
wrist_flex -1.786到+1.790 4
腕卷 -3.194至+4.120 5
夹持器 -0.175至+1.745 6

许可证

Apache 2.0

ROSClaw的一部分

此软件包也用于 罗氏-莱基维-罗氏2-mcp 用于LeKiwi基座+SO-101手臂组合控制。