Skip to main content

模块概览

导入主要组件

导入错误类


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()

获取缓存的状态,返回 MotorStateNone

寄存器访问方法

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 常量

寄存器表


完整模板

这是一个包含所有功能的完整模板:

厂商规则速查


版本兼容性


参见