OSSM WebSocket控制MCP服务器
一种模型上下文协议(MCP)服务器,用于通过二进制WebSocket命令控制OSSM设备。该工具使AI能够以精确的时间控制OSSM运动模式。
特性
- 流畅的点对点移动 具有可定制的缓震曲线
- 连续循环模式 具有独立的推/拉行程特性
- 局部振动模式 频率和波形可调
- 全球速度和加速度限制 为了安全
- 动态范围控制 用于运动边界
- 紧急暂停功能 来自多个控制源
MCP服务器设置
需求
- 具有兼容固件的OSSM设备
- 在端口8081上运行的Godot WebSocket网桥应用程序
- MCP兼容AI
- 在中安装依赖项
ossm-mcp-server目录:
npm install- 添加到MCP配置(示例:
claude_desktop_config.json):
{
"mcpServers": {
"ossm-websocket-control": {
"command": "node",
"args": ["/absolute/path/to/ossm-mcp-server.js"]
}
}
}- 重新启动AI桌面应用程序以加载新的MCP服务器
可用功能
ossm_smooth_move
通过缓和曲线执行平滑的点对点运动。
参数:
durationMs(必填):移动持续时间(毫秒)position(必填):目标位置(0-10000,其中10000=满轨)transition:转换类型-LINEAR、SINE、CIRC、EXPO、QUAD、CUBIC、QUART、QUINT(默认值:SINE)ease:简化类型-EASE_IN、EASE_OUT、EASE_IN_OUT、EASE\_ OUT_IN(默认:EASE_IN\_ OUT)aux:辅助功能位掩码(默认值:0)
例子:
// Smooth 2-second move to 75% position with sine transition
ossm_smooth_move(2000, 7500, "SINE", "EASE_IN_OUT", 0)ossm_loop
定义连续的来回运动模式。
参数:
pushStroke(必填):定义前进运动的对象
- durationMs:持续时间(毫秒) - transition:过渡类型(必填) - ease:缓解型(必填) - aux:辅助功能(默认值:0)
pullStroke(必填):定义返回运动的对象(与pushStroke结构相同)
重要提示: 循环运动范围由全局范围限制控制(请参见 ossm_set_range_limit),而不是位置参数。
例子:
// Fast loop with different characteristics for each stroke
ossm_loop(
{durationMs: 800, transition: "SINE", ease: "EASE_IN", aux: 0},
{durationMs: 1200, transition: "CIRC", ease: "EASE_OUT", aux: 0}
)ossm_vibrate
配置具有可调波形的局部振动模式。
参数:
durationMs(必填):持续时间(毫秒)(-1表示无限,0表示停止)halfPeriodMs(必填):半周期(毫秒)(控制频率,最小10ms)position(必填):振动中心位置(0-10000)range(必填):行程范围百分比(0-20%)smooth:波形平滑(100=三角形,200=正方形,默认值:112)
安全指南:
- 高频+小范围:使用10-50ms半周期,范围为2-10%,用于强烈的局部振动
- 低频+更大范围:使用50-200ms的半周期,范围为10-20%,用于明显的振荡
- 避免:范围大(>10%),频率很高(\<20ms)-可能会对硬件造成压力
例子:
// Gentle 25Hz vibration at center position
ossm_vibrate(-1, 20, 5000, 5, 112)ossm_pause
立即暂停所有当前运动。可作为任何控制源的紧急停止装置。
参数: 无
ossm_set_speed_limit
在所有运动模式下设置全局电机速度限制。
参数:
speedHz(必填):最大速度(步/秒)
ossm_set_acceleration
在所有运动模式下设置全局电机加速度限制。
参数:
accel(必填):最大加速度(步/秒²)
ossm_set_range_limit
设置位置控制的运动范围边界。
参数:
range(必填):设置哪个限制-“最小范围”或“最大范围”limit(必填):位置限制(0-10000)
注: 范围限制会自动影响循环命令,但需要重新发送振动命令才能生效。
重要的行为差异
循环命令
- 自动更新 全局设置更改(范围限制、速度限制)
- 由全局范围限制控制的运动边界
- 非常适合全轨道模式和序列
振动命令
- 需要手动更新 -更改全局设置后必须重新发送命令
- 独立的位置和范围参数
- 非常适合局部效果和高频模式
安全指南
应急控制
- 暂停命令 从MCP或设备UI立即工作
- 模式切换 在不同运动类型之间平滑过渡
- UI覆盖 -设备接口始终可以停止MCP发起的运动
参数限制
- 振动频率:测试安全高达50Hz(20ms半周期ms),更高的频率可能会跳过步骤
- 范围边界:系统自动将运动限制在物理轨道限制范围内
- 速度限制:全局限制可防止所有模式下的电机应力过大
最佳实践
- 逐步测试 -从保守设置开始并进行调整
- 监控电机行为 -注意跳步、过热或拉伤
- 使用适当的组合 -高频小范围,低频大范围
- 紧急停止准备就绪 -总是知道如何快速暂停动作
