Skip to main content

教程 06:实用代码示例

如何使用这些示例?

  1. 复制代码 - 直接复制你需要的代码块
  2. 修改参数 - 根据你的电机配置修改 ID、型号等参数
  3. 运行测试 - 先在安全环境下测试
  4. 集成项目 - 将代码集成到你的项目中

版本口径与反馈机制(重要)

关于 request_feedback():现在还需要吗?

需要。request_feedback() 不是废弃接口,仍是“主动请求新鲜状态”的推荐方法,特别适用于:
  • 你要基于当前时刻状态做判断(到位判断、温度保护、错误恢复)。
  • 你希望每次循环都尽量拿到新数据,而不是缓存里的旧值。

关于 poll_feedback_once():是否必须?

  • v0.3.3 起:通常不必须(默认后台轮询已开启,当前 v0.5.0 仍适用)。
  • <= v0.1.6 或特殊调试场景:可手动调用一次 ctrl.poll_feedback_once() 做兼容。
推荐统一流程(跨版本更稳):
说明:
  • 以上是“调用流程示例”,不是 motorbridge 内置方法。
  • 若你想封装成函数,可以在业务代码里自定义函数名。

示例 A:基本位置控制

场景:让电机移动到指定位置,并等待到达。

完整代码

参数详解

说明:
  • 该示例里 request_feedback() 建议保留,因为“是否到位”判断依赖新鲜状态。

弧度与角度换算

示例 B:MIT 模式正弦运动

场景:让电机平滑地做正弦往复运动,适合测试和演示。

完整代码

参数详解

说明:
  • 该示例中的反馈读取用于观察跟踪误差,不影响控制命令本身的发送。

为什么加入速度前馈?

速度前馈让电机提前知道下一步要往哪个方向动,跟踪更准确。

示例 C:速度控制加减速

场景:平滑地加速到目标速度,保持,然后平滑减速停止。

完整代码

参数详解

说明:
  • 若只关心“发命令”而不关心实时观测,可降低反馈读取频率;但调试阶段建议保留。

加减速时间计算

示例 D:多电机同步运动

场景:让多个电机同时做相同的运动。

完整代码

关键点

这种顺序可提升多电机场景下的总线利用效率,并减少状态读取抖动。

示例 E:温度监控与安全保护

场景:在运行时监控温度,超过阈值自动停止。

完整代码

温度阈值建议

示例 F:RobStride 参数读写

场景:读取和修改 RobStride 电机的参数。

完整代码

RobStride 参数类型

说明:
  • 生产场景中建议“写后读回”作为最小闭环验证(本示例已展示)。

示例 G:错误恢复

场景:电机出现错误时自动清除并恢复。

完整代码

状态码示例(以厂商手册为准)

说明:
  • 不同厂商/固件版本的状态码定义可能不同,请以对应电机手册为准。

示例 H:夹爪控制(力限制)

场景:使用 FORCE_POS 模式做夹爪,可以控制夹持力度。

完整代码

force_ratio 参数

示例 I:串口桥连接

场景:使用达妙 USB-CAN 串口适配器。

完整代码

查找串口设备

示例 J:生产级上下文管理器

场景:适合生产环境的完整模板,包含错误处理和资源清理。

完整代码

优点

下一步