Skip to main content

教程 02:使能与状态读取

电机状态机

在理解使能之前,先了解电机的状态:
禁用状态:
  • 电机绕组不通电
  • 转子可以用手自由转动
  • 发送命令无效
使能状态:
  • 电机绕组通电
  • 产生扭矩,会锁住位置
  • 可以响应控制命令

步骤一:创建控制器

首先创建一个控制器来管理 CAN 通信:
Controller 参数详解: 返回值: Controller 对象 可能抛出的异常:
  • CallError - CAN 接口无法打开

步骤二:添加电机

告诉控制器你要控制哪个电机:
add_damiao_motor 参数详解:

步骤三:使能电机

使能就是给电机”通电”,让它开始工作:
enable_all() vs enable() 的区别:

步骤四:读取状态

获取电机的实时数据:
MotorState 所有字段详解: 弧度单位说明:
  • 1 圈 = 2π 弧度 ≈ 6.28 弧度
  • 90° = π/2 弧度 ≈ 1.57 弧度
  • 180° = π 弧度 ≈ 3.14 弧度

完整示例

为什么 get_state() 返回 None?

这是初学者最常遇到的问题:

原因 1:没有调用 request_feedback()

原因 2:反馈还没到达

CAN 通信有延迟,请求后需要等待:

原因 3:电机 ID 错误

motorbridge-cli scan 确认 ID 是否正确。

重试模式(推荐)

为了可靠读取状态,使用重试模式:

状态码含义

温度监控

禁用电机

用完后禁用电机:

poll_feedback_once() 说明

版本差异:
  • v0.1.6 及以前:需要手动调用 ctrl.poll_feedback_once()
  • v0.3.3 起,当前 v0.5.0 仍适用:后台自动处理,通常不需要手动调用

下一步