Documentation Index
Fetch the complete documentation index at: https://motorbridge.seeedstudio.com/llms.txt
Use this file to discover all available pages before exploring further.
Source:
docs/zh/abi.mdABI 指南(motor_abi)
构建
- Linux:
target/release/libmotor_abi.so、libmotor_abi.a - Windows:
target/release/motor_abi.dll、motor_abi.lib - 头文件:
motor_abi/include/motor_abi.h
统一接口面
ABI 对外保持一套统一控制接口。 统一模式 ID(motor_handle_ensure_mode):
1 = MIT2 = POS_VEL3 = VEL4 = FORCE_POS
- 位置:
rad - 速度:
rad/s - 力矩:
Nm
motor_handle_enablemotor_handle_disablemotor_handle_clear_errormotor_handle_set_zero_positionmotor_handle_ensure_modemotor_handle_send_mitmotor_handle_send_pos_velmotor_handle_send_velmotor_handle_send_force_posmotor_handle_request_feedbackmotor_handle_set_can_timeout_msmotor_handle_store_parametersmotor_handle_get_state
厂商入口
- Damiao:
motor_controller_add_damiao_motor(...) - Hexfellow:
motor_controller_add_hexfellow_motor(...)(通过socketcanfd走 CAN-FD) - RobStride:
motor_controller_add_robstride_motor(...) - MyActuator:
motor_controller_add_myactuator_motor(...) - HighTorque:
motor_controller_add_hightorque_motor(...)
统一模式与厂商原生协议映射
| 统一模式 | Damiao 原生 | Hexfellow 原生 | RobStride 原生 | MyActuator 原生 | HighTorque 原生 |
|---|---|---|---|---|---|
MIT | Mit | 模式 5 | Mit | 不支持 | 映射到原生 pos+vel+tqe |
POS_VEL | PosVel | 模式 1 | 映射到 Position(run_mode=1,limit_spd=0x7017,loc_ref=0x7016) | Position 设定流程 | 映射到原生 pos+vel+tqe |
VEL | Vel | 不支持 | Velocity | Velocity 设定流程 | 映射到原生速度命令 |
FORCE_POS | ForcePos | 不支持 | 不支持 | 不支持 | 映射到原生 pos+vel+tqe |
- 不支持的调用返回非 0,并可通过
motor_last_error_message()获取清晰错误信息。 - 即使某厂商忽略部分参数,也保持统一函数签名不变。
- 例如:HighTorque 支持
send_mit(pos, vel, kp, kd, tau)统一签名,但原生协议不使用kp/kd。 - Hexfellow 的 ABI 路径支持
MIT和POS_VEL,VEL/FORCE_POS会返回不支持。 - RobStride 的 ABI 路径支持
POS_VEL,语义映射为原生 Position:先设置run_mode=1,再写limit_spd与loc_ref。 - RobStride 的统一高层目前支持
MIT/POS_VEL/VEL;TORQUE/CURRENT仍是参数级能力(通过robstride_write_param_*),尚未开放统一模式。 - Damiao 置零顺序规则:先调用
motor_handle_disable,再调用motor_handle_set_zero_position;否则会被核心防护拒绝。 - Damiao 置零稳定规则:
set_zero_position成功后,核心层内置固定稳定等待(约20ms),ABI 不额外暴露等待参数。
厂商扩展接口
Damiao 寄存器接口:motor_handle_write_register_f32motor_handle_write_register_u32motor_handle_get_register_f32motor_handle_get_register_u32
motor_handle_robstride_pingmotor_handle_robstride_set_device_idmotor_handle_robstride_write_param_i8/u8/u16/u32/f32motor_handle_robstride_get_param_i8/u8/u16/u32/f32
典型调用顺序
- 选择传输层构造器:
motor_controller_new_socketcan(channel)(通用路径)motor_controller_new_dm_serial(serial_port, baud)(仅 Damiao 串口桥;跨平台,可用/dev/ttyACM0或COM3)
motor_controller_add_<vendor>_motor- 可选:
motor_controller_enable_all - 可选:
motor_handle_ensure_mode - 发送控制命令 / 读取状态 / 调用厂商扩展接口
motor_controller_shutdownmotor_handle_freemotor_controller_free
示例
- C ABI 示例:
examples/c/c_abi_demo.c - C++ ABI 示例:
examples/cpp/cpp_abi_demo.cpp - Python ctypes 示例:
examples/python/python_ctypes_demo.py