使用说明
ros mcp服务器
在ROS2环境中,通过rosbridge查看主题、服务和消息结构。
此外,MCP服务器还可以过滤/分析/路径再生/路径执行保洁数据。
该项目目前 Ubuntu+ROS2+rosbridge+单独ROS工作区(~/ros2_ws) 根据环境进行配置。
因此,如果在其他环境中运行,请确保以下目录结构与ROS软件包配置相匹配。
特性
- 通过rosbridge的ROS2 topic/service introspection
- 主题订阅/发布
- 服务调用
- 网络诊断(
ping_robot,connect_to_robot) - 原始抛光原木过滤
- 抛光分析
- 创建regeneration path
- 运行基于txt的polishing path并自动记录
推荐环境
- Ubuntu 22.04
- ROS 2谦逊
- Python 3.10+
rosbridge_servercolcon可构建的ROS2工作区
当前版本中的假设
当前版本是基于以下环境创建的:
- rosbridge WebSocket默认地址:
127.0.0.1:9090 - ROS workspace路径:
~/ros2_ws - 数据路径:
~/ros2_ws/data/ep - 加工执行包:
ur_custom_ik - 执行节点:
txt_ik_executor_force_patched
也就是说,建议在运行环境中尽可能保持相同的路径结构。
推荐的目录布局
~/ros-mcp-server
~/ros2_ws
├── src
│ └── ... (ROS 2 packages, including ur_custom_ik)
├── install
├── build
├── log
└── data
└── ep
├── xyz.txt
├── vxyz.txt
├── fxyz.txt
├── rpy.txt
├── real_flat_filtered.txt
├── auto_logger.py
├── filter_logs_txt.py
├── polish_pipeline.py
└── ...
设置
1.克隆存储库
cd ~
git clone <REPOSITORY_URL> ros-mcp-server
2.准备ROS 2工作区
cd ~
mkdir -p ros2_ws/src
需要的ROS2软件包(例如: ur_custom_ik) ~/ros2_ws/src 放置在下面。
3.构建ROS工作空间
cd ~/ros2_ws
colcon build
source install/setup.bash
建议对每个终端执行以下source。
source /opt/ros/humble/setup.bash
source ~/ros2_ws/install/setup.bash
4.安装Python依赖项
cd ~/ros-mcp-server
pip install fastmcp pillow
另外,根据数据处理脚本的不同,可能需要以下软件包:
pip install numpy scipy matplotlib pandas
如果可以的话 requirements.txt建议配置后按以下方式安装:
pip install -r requirements.txt
运行罗斯布里奇
此服务器不直接与ROS2连接。 rosbridge WebSocket通过进行通信。 因此,必须首先运行rosbridge。
source /opt/ros/humble/setup.bash
source ~/ros2_ws/install/setup.bash
ros2 launch rosbridge_server rosbridge_websocket_launch.xml
默认端口为 9090是。
可以通过以下方式确认是否正常运行:
ss -ltnp | grep 9090
运行MCP服务器
基本上 stdio 使用transport。
cd ~/ros-mcp-server
python3 server.py
如果您想将transport改为环境变量,例如:
export MCP_TRANSPORT=streamable-http
export MCP_HOST=127.0.0.1
export MCP_PORT=9000
python3 server.py
运行前检查表
运行前请检查以下项目。
- [ ]
~/ros2_ws是否存在 - [ ]
~/ros2_ws/install/setup.bash是否已创建 - [ ]
ur_custom_ik软件包是否已构建 - [ ]
ros2 run ur_custom_ik txt_ik_executor_force_patched可能吗 - [ ]
~/ros2_ws/data/ep下面是否存在所需的txt/python脚本? - []rosbridge
127.0.0.1:9090正在运行
推荐的首次测试
建议在执行加工之前先按以下顺序进行测试:
connect_to_robot()get_topics()get_services()get_topic_type('/your_topic')subscribe_once(...)
如果在此步骤中失败,很有可能是rosbridge或ROS环境问题。
数据管道使用的默认路径
当前服务器代码默认使用以下路径:
过滤
~/ros2_ws/data/ep/xyz.txt~/ros2_ws/data/ep/vxyz.txt~/ros2_ws/data/ep/fxyz.txt~/ros2_ws/data/ep/rpy.txt
分析
~/ros2_ws/data/ep/vxyz_filtered.txt~/ros2_ws/data/ep/fxyz_filtered.txt- 结果目录:
~/ros2_ws/data/ep/polish_out_filtered
再生
- 输入路径:
~/ros2_ws/data/ep/real_flat_filtered.txt - 删除映射:
~/ros2_ws/data/ep/polish_out_filtered/removal_map.npz - 输出路径:
~/ros2_ws/data/ep/real_flat_filtered_new2.txt
路径执行
- 记录器:
~/ros2_ws/data/ep/auto_logger.py - 执行人:
ros2 run ur_custom_ik txt_ik_executor_force_patched
也就是说,如果上述路径中没有一个,执行可能会失败。
常见错误
1) No executable found
原因:
ur_custom_ik未构建source ~/ros2_ws/install/setup.bash不包含- 可执行文件名不同
解决方案:
cd ~/ros2_ws
colcon build
source install/setup.bash
ros2 pkg executables ur_custom_ik
2) No such file or directory
原因:
~/ros2_ws/data/ep/...无路径- 缺少txt/python脚本
解决方案:
ls ~/ros2_ws/data/ep
请确保所有必需的文件都存在。
3)topic/service查询失败
原因:
- rosbridge未执行
- 9090端口问题
- ROS环境source不可用
解决方案:
source /opt/ros/humble/setup.bash
source ~/ros2_ws/install/setup.bash
ros2 launch rosbridge_server rosbridge_websocket_launch.xml
4)仅filtering/analysis失败
原因:
filter_logs_txt.py,polish_pipeline.py遗漏- 未安装Python软件包
- 输入txt格式不匹配
解决方案:
- 验证脚本是否存在
numpy,scipy,matplotlib,pandas验证是否已安装- 直接检查输入文件格式
备注
当前版本的路径相对固定。 最可靠的执行方法是保持以下项目不变:
- 存储库位置:
~/ros-mcp-server - ROS workspace位置:
~/ros2_ws - 数据位置:
~/ros2_ws/data/ep - rosbridge端口:
9090
也就是说,与其修改代码,不如先调整环境结构。
未来改进
建议今后进行以下改进:
~/ros2_ws删除硬编码- 指定基于环境变量的工作区路径
requirements.txt整理- 添加输入文件存在性检查
- 提供示例输入文件
- 记录数据类型
总结
要运行此项目,以下四点是关键。
- ROS2workspace将正常构建
- rosbridge正在运行
~/ros2_ws/data/ep存在与路径相关的脚本/数据ur_custom_ik软件包和executor将正常运行
因为当前版本接近于环境再现配置。 保持相同的文件夹结构是最可靠的。
现在想要的话,下一个
更短,更像GitHub的最终README版本再压缩一次。
