模块概览
导入主要组件
导入错误类
Controller 控制器类
控制器是整个 SDK 的入口点,负责管理 CAN 通信和电机注册。构造函数
Controller(channel="can0")
标准 SocketCAN 传输,适用于大多数场景。
可能抛出的异常:
Controller.from_socketcanfd(channel="can0")
CAN-FD 传输,Hexfellow 电机必须使用此方法。
Controller.from_dm_serial(serial_port="/dev/ttyACM0", baud=921600)
达妙串口桥传输,仅适用于达妙电机。
电机注册方法
add_damiao_motor(motor_id, feedback_id, model)
注册达妙电机。
支持的达妙型号:
add_robstride_motor(motor_id, feedback_id, model)
注册 RobStride 电机。
add_myactuator_motor(motor_id, feedback_id, model)
注册 MyActuator 电机。
add_hightorque_motor(motor_id, feedback_id, model)
注册 HighTorque 电机。
add_hexfellow_motor(motor_id, feedback_id, model)
注册 Hexfellow 电机,必须使用 CAN-FD。
全局操作方法
enable_all()
使能该控制器下的所有电机。
disable_all()
禁用该控制器下的所有电机。
poll_feedback_once()
手动轮询一次反馈(v0.1.6 及更早需要)。
生命周期方法
shutdown()
优雅关闭所有电机。
close_bus()
关闭 CAN 总线连接。
close()
释放所有资源。
Motor 电机类
电机类提供单个电机的所有控制方法。生命周期方法
enable()
使能单个电机。
disable()
禁用单个电机。
clear_error()
清除电机错误状态。
set_zero_position()
将当前位置设置为零点。
close()
释放电机句柄。
模式控制方法
ensure_mode(mode, timeout_ms=1000)
确保电机处于指定模式,如果不是则切换。
控制命令方法
send_mit(pos, vel, kp, kd, tau)
MIT 模式控制命令,最灵活的控制方式。
send_pos_vel(pos, vlim)
位置-速度模式控制命令。
send_vel(vel)
速度模式控制命令。
send_force_pos(pos, vlim, ratio)
力位置模式控制命令,适合夹爪等需要力控制的应用。
反馈方法
request_feedback()
请求电机发送反馈帧。
get_state()
获取缓存的状态,返回 MotorState 或 None。
寄存器访问方法
write_register_u32(rid, value)
写入 32 位无符号整数寄存器。
get_register_u32(rid, timeout_ms=1000)
读取 32 位无符号整数寄存器。
返回值: int(0 ~ 4294967295)
write_register_f32(rid, value)
写入 32 位浮点数寄存器。
get_register_f32(rid, timeout_ms=1000)
读取 32 位浮点数寄存器。
返回值: float
store_parameters()
将当前参数保存到闪存(永久保存)。
set_can_timeout_ms(timeout_ms)
设置 CAN 通信超时时间。
RobStride 专用方法
robstride_ping()
Ping RobStride 电机,获取设备信息。
(device_id: int, responder_id: int)
robstride_set_device_id(new_device_id)
设置 RobStride 电机的设备 ID。
RobStride 参数写入方法
RobStride 参数读取方法
Mode 模式枚举
使用示例
模式常量
除了Mode 枚举,还可以使用模块级常量:
MotorState 状态数据类
字段详解
使用示例
状态码含义
Error 错误类
类层次结构
MotorBridgeError
基础异常类,所有 motorbridge 异常的基类。AbiLoadError
底层库加载失败时抛出。CallError
API 调用返回非零状态时抛出。错误处理最佳实践
RegisterSpec 寄存器规格类
使用示例
寄存器常量
寄存器 ID 常量
寄存器表
完整模板
这是一个包含所有功能的完整模板:厂商规则速查
版本兼容性
参见
- Controller API - 控制器详细参考
- Motor API - 电机详细参考
- CLI 参考 - 命令行工具
- 最佳实践 - 生产级模式
- 故障排除 - 常见问题