ServoPy:实时机器人伺服控制¶
Realtime robot control with C++ and Python. ServoPy 面向持续运行的机器人控制循环:每个周期读取最新目标与实际关节反馈,更新下一控制区间的运动输出。本文档对应 0.3.0,涵盖独立于 ROS 的 C++ 内核、Python API 与 Panda / MuJoCo 示例。
可以在运动中更新关节位置、关节速度、末端位姿或 Twist,让机器人持续响应遥操作、视觉反馈或上层任务。输入源和设备连接由应用提供;ServoPy 负责控制循环中的伺服计算、约束处理与参考更新。
从实时伺服控制了解最新目标、反馈闭环、控制周期与断流制动。文档中的“实时”指在线周期响应;当前 Python 调度采用 best effort,不提供硬实时 deadline 保证。
第一次使用¶
- 快速上手:安装,完成一次无需显示器的运行。
- 实时伺服控制:在持续运行的循环中改变目标,观察反向与断流制动。
- 关键概念:区分目标、实际反馈和参考,选择控制入口。
- Panda 仿真:切换控制模式,在 viewer 拖动目标或接收实时外部目标。拖动功能需当前 main 源码。

按你的任务继续¶
| 我想…… | 从这里开始 | 完成后可以…… |
|---|---|---|
| 持续跟踪遥操作或感知给出的目标 | 实时伺服控制 | 将上游目标流接入周期控制循环 |
| 给机械臂发送关节目标 | 关节位置与速度 | 运行完整控制与停止循环 |
| 接入已有 Python IK | 位置 IK 教程 | 验证解并转换成关节目标 |
| 限制加速度变化 | Ruckig 平滑 | 正确采样 jerk 受限参考 |
| 换求解器、控制冗余姿态 | 微分 IK / QP / 零空间 | 配置或实现数值后端 |
| 接入设备 SDK | 实时循环与设备 | 周期读取反馈、发送输出并处理停止与恢复 |
| 发送实时目标或分析一段运行 | 输入、记录与对照 | 生成日志、回放、量化差异 |
| 只使用 C++ | 原生 C++ | 构建并链接独立内核 |
查接口与解决问题¶
| 资料 | 用途 |
|---|---|
| Python API | 类型、方法签名、输入输出和异常 |
| 配置参数 | 全部默认值、单位和调参顺序 |
| 动作与诊断 | Action、SafetyFlag、误差字段 |
| 命令行参考 | 示例脚本的全部参数 |
| 排障 | 按安装、时序、IK、仿真症状定位 |
理解设计与参与开发¶
执行契约(英文) 说明算法和时序;验证记录(英文) 保留测试环境与实际观测。功能完成度见 路线图,版本迁移见 更新记录。参与修改请阅读 贡献指南。
所有教程命令默认从仓库根目录执行。标为“完整示例”的 Python 代码可以直接运行;标为“接入片段”的代码需要应用提供模型、状态或 SDK 回调。