API:Controller
导入
类概述
构造函数
Controller(channel="can0")
使用标准 SocketCAN 传输创建控制器。
参数:
| 名称 | 类型 | 默认值 | 描述 |
|---|---|---|---|
channel | str | "can0" | CAN 接口名称 |
Controller 实例
抛出: CallError 如果接口无法打开
示例:
Controller.from_socketcanfd(channel="can0")(类方法)
使用 CAN-FD 传输创建控制器。Hexfellow 电机需要。
参数:
| 名称 | 类型 | 默认值 | 描述 |
|---|---|---|---|
channel | str | "can0" | CAN-FD 接口名称 |
Controller 实例
抛出: CallError 如果接口无法打开
示例:
Controller.from_dm_serial(serial_port="/dev/ttyACM0", baud=921600)(类方法)
使用达妙串口桥传输创建控制器。
参数:
| 名称 | 类型 | 默认值 | 描述 |
|---|---|---|---|
serial_port | str | "/dev/ttyACM0" | 串口设备路径 |
baud | int | 921600 | 波特率(达妙使用 921600) |
Controller 实例
抛出: CallError 如果串口无法打开
示例:
生命周期方法
close()
释放控制器资源。上下文管理器自动调用。
参数: 无
返回: None
shutdown()
优雅关闭控制器和所有关联的电机。
参数: 无
返回: None
抛出: CallError 失败时
close_bus()
关闭 CAN 总线连接,同时保持控制器实例存活。
参数: 无
返回: None
抛出: CallError 失败时
全局电机操作
enable_all()
同时使能所有已注册的电机。
参数: 无
返回: None
抛出: CallError 失败时
示例:
disable_all()
同时禁用所有已注册的电机。
参数: 无
返回: None
抛出: CallError 失败时
poll_feedback_once()
手动轮询所有电机的反馈帧。v0.1.7+ 中可选,因为后台轮询默认启用。
参数: 无
返回: None
抛出: CallError 失败时
电机注册方法
add_damiao_motor(motor_id, feedback_id, model)
注册达妙电机并返回其句柄。
参数:
| 名称 | 类型 | 描述 |
|---|---|---|
motor_id | int | 命令 CAN ID(通常为 0x01-0x20) |
feedback_id | int | 反馈 CAN ID(通常为 motor_id + 0x10) |
model | str | 电机型号:“4310”、“4340”、“4340P”、“6001” 等 |
Motor 实例
抛出: CallError 如果注册失败
add_robstride_motor(motor_id, feedback_id, model)
注册 RobStride 电机并返回其句柄。
参数:
| 名称 | 类型 | 描述 |
|---|---|---|
motor_id | int | 设备 ID(通常为 127) |
feedback_id | int | 反馈 ID(通常为 0xFE 或 0xFF) |
model | str | 电机型号:“rs-00” 等 |
Motor 实例
add_myactuator_motor(motor_id, feedback_id, model)
注册 MyActuator 电机并返回其句柄。
参数:
| 名称 | 类型 | 描述 |
|---|---|---|
motor_id | int | 电机 ID(1-32) |
feedback_id | int | 反馈 ID(通常为 0x240 + motor_id) |
model | str | 电机型号:“X8” 等 |
Motor 实例
add_hightorque_motor(motor_id, feedback_id, model)
注册 HighTorque 电机并返回其句柄。
参数:
| 名称 | 类型 | 描述 |
|---|---|---|
motor_id | int | 电机 ID(1-127) |
feedback_id | int | 反馈 ID(通常为 0x01) |
model | str | 电机型号:“hightorque” |
Motor 实例
add_hexfellow_motor(motor_id, feedback_id, model)
注册 Hexfellow 电机并返回其句柄。需要 CAN-FD 传输。
参数:
| 名称 | 类型 | 描述 |
|---|---|---|
motor_id | int | 电机 ID |
feedback_id | int | 反馈 ID(通常为 0x00) |
model | str | 电机型号:“hexfellow” |
Motor 实例
抛出: CallError 如果不使用 CAN-FD 传输
上下文管理器支持
Controller 类支持 Python 的上下文管理器协议,用于自动资源清理:
错误处理
所有方法可能抛出motorbridge.errors 中的异常:
另见
- Motor API - 电机句柄方法
- Mode and State - 枚举和数据类
- 传输方式 - 传输配置指南