Token导航 LogoToken导航TokenDH.com
So101 Camera Man logo
AI代理stdio官方级别未说明来源级核验

So101 Camera Man

MCP Server

为SO100机器人提供航点管理和回放功能的MCP服务器,标准化了航点记录和回放脚本的接口。

工具数

0

提示词数

0

GitHub Stars

1

资源数

0
机器人控制PythonAI代理

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

Nischal2017

提供方

Nischal2017

最后核验

2026/5/17 20:22

运行时

Python

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

python main.py --transport streamable-http --port 8080

详细介绍

航路点MCP服务器

MCP(模型上下文协议)服务器,为SO100机器人提供航路点管理和回放功能。该服务器将现有的航路点记录和回放脚本封装到标准化的MCP接口中。

特性

服务器提供三个主要工具:

🔍 read_waypoint

从SO100机器人读取当前关节位置作为航路点。

  • 参数:

- name (可选):航路点的自定义名称 - port (可选):用于机器人连接的串行端口(默认: /dev/ttyACM1)

  • 退货: 包含航路点数据的JSON字符串,包括时间戳、关节和元数据

▶️ play_waypoint

使用平滑插值在SO100机器人上执行航路点序列。

  • 参数:

- waypoint_data:可以是: - 字符串:包含航点的JSON文件的路径 - 骰子:带“关节”键的单个航路点 - 列表:多个航路点或联合位置阵列 - port (可选):用于机器人连接的串行端口(默认: /dev/ttyACM1)

  • 退货: 指示成功或失败的状态消息

📏 get_joint_limits

获取SO100机器人的关节角度限制。

  • 参数:

- port (可选):用于机器人连接的串行端口(默认: /dev/ttyACM1)

  • 退货: JSON字符串,包含每个关节的最小值/最大值

安装

  1. 安装依赖项:
   uv sync --dev
  1. 确保SO100机器人已连接 通过USB串行端口(通常 /dev/ttyACM1)
  1. 复制 so100_client.py 从父目录中确保机器人通信正常工作

用法

启动服务器

HTTP传输(建议用于开发)

python main.py --transport streamable-http --port 8080

STDIO传输(适用于MCP客户端)

python main.py --transport stdio

自定义配置

python main.py --transport streamable-http --host 0.0.0.0 --port 9000 --robot-port /dev/ttyACM0

工具使用示例

读取当前位置

# Via MCP client
result = call_tool("read_waypoint", {"name": "home_position"})

从文件中播放路线点

# Play waypoints from JSON file
result = call_tool("play_waypoint", {"waypoint_data": "my_waypoints.json"})

玩单路点游戏

# Move to specific joint angles
waypoint = {"joints": [0, 90, -45, 0, 0, 0]}
result = call_tool("play_waypoint", {"waypoint_data": waypoint})

玩多个路线点

# Execute sequence of positions
waypoints = [
    [0, 0, 0, 0, 0, 0],      # Start position
    [90, 0, 0, 0, 0, 0],     # Move joint 1
    [90, 45, 0, 0, 0, 0]     # Move joint 2
]
result = call_tool("play_waypoint", {"waypoint_data": waypoints})

获得关节限制

# Get robot joint limits
limits = call_tool("get_joint_limits")

发展

项目结构

waypoint-mcp/
├── src/waypoint_mcp/
│   ├── __init__.py
│   ├── waypoint_controller.py    # Domain logic
│   └── server.py                 # MCP server implementation
├── tests/
│   ├── __init__.py
│   └── test_waypoint_mcp.py     # Basic tests
├── main.py                       # Entry point
├── pyproject.toml               # Dependencies
└── README.md

运行测试

uv run pytest

代码格式化

uv run black src/ tests/
uv run isort src/ tests/

依赖项

  • 核心:

- mcp[cli]>=1.1.2 -MCP协议实现 - pyserial>=3.5 -机器人串行通信 - typing-extensions>=4.5.0 -键入提示

  • 发展:

- pytest>=7.0.0 -测试框架 - pytest-asyncio>=0.21.0 -异步测试支持 - black>=23.0.0 -代码格式 - isort>=5.12.0 -导入排序

与现有脚本集成

此MCP服务器封装了以下功能:

  • distiller-record-wps.py -航点记录功能
  • distiller-play-wps.py -航点回放功能

服务器提供更干净的API,同时保持与现有航路点文件格式的兼容性。

安全注意事项

⚠️ 重要安全警告:

  1. 机器人运动:play_waypoint 工具将使机器人移动。确保工作区干净。
  2. 紧急停止: 保持机器人的紧急停止按钮可用。
  3. 接头限制: 服务器提供联合限制,但始终验证安全位置。
  4. 串行连接: 确保正确的串行连接,以避免通信错误。

故障排除

常见问题

  1. “SO100客户端不可用”

- 确保 so100_client.py 可以在父目录中访问 - 检查Python路径配置

  1. “无法连接到SO100”

- 验证机器人是否已通电并通过USB连接 - 检查串行端口权限: sudo chmod 666 /dev/ttyACM1 - 尝试不同的串行端口: /dev/ttyACM0, /dev/ttyUSB0

  1. “8000-9000范围内没有可用端口”

- 使用 --port 用于指定自定义端口的参数 - 检查是否存在冲突的服务

  1. 航点文件错误

- 确保JSON文件遵循预期的格式,并带有“航点”数组 - 每个航路点应有一个“关节”字段,其中有6个关节角度

许可证

该项目是LeRobotDistiller示例的一部分,并遵循相同的许可条款。

目录标签

目录标签

机器人控制PythonAI代理本地部署航点管理MCP协议SO100机器人关节控制

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

none

运行时(runtime,运行环境)

Python

工具数量(toolCount,工具数)

0

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdionone部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP