通道兼容说明(PCAN + slcan + CAN-FD + Damiao 串口桥)
- Linux SocketCAN 直接使用网卡名:
can0、can1、slcan0。 - 串口类 USB-CAN 需先创建并拉起
slcan0:sudo slcand -o -c -s8 /dev/ttyUSB0 slcan0 && sudo ip link set slcan0 up。 - CAN-FD 链路可通过 CLI(
--transport socketcanfd)和 C++ SDK(Controller::from_socketcanfd(...))使用,Hexfellow 必须走该链路。 - 仅 Damiao 可选串口桥链路:
--transport dm-serial --serial-port /dev/ttyACM0 --serial-baud 921600。 - Damiao 串口桥完整接口与命令模板见
motor_cli/README.zh-CN.md第3.6节(英文见motor_cli/README.md)。 - Linux SocketCAN 下
--channel不要带@bitrate(例如can0@1000000无效)。 - Windows(PCAN 后端)中,
can0/can1映射PCAN_USBBUS1/2,可选@bitrate后缀。
motor_abi 的 RAII 风格 C++ 包装层。
English version: README.md
ABI 元数据 helper
motorbridge::abi_version()返回当前加载的 ABI 库版本。motorbridge::abi_capabilities_json()返回当前加载 ABI 的能力 JSON。bindings/api_surface.json用于跟踪 C ABI、Python、C++ 和文档接口对齐。
Damiao 置零规则(dm-serial)
- Damiao 场景下,
set_zero_position()前先调用disable()。 - 核心层已加入防护:非失能状态调用
set_zero_position()会被拒绝。 - 核心层在
set_zero_position()后内置固定稳定等待(约20ms)。 - C++/ABI 函数签名未变,本次属于核心行为防护升级。
Controller 入口
Controller(channel)(SocketCAN/PCAN 路径)Controller::from_socketcanfd(channel)(CAN-FD 路径,Hexfellow 必须使用)Controller::from_dm_serial(serial_port, baud)(仅 Damiao 串口桥)add_damiao_motor(motor_id, feedback_id, model)add_hexfellow_motor(motor_id, feedback_id, model)add_myactuator_motor(motor_id, feedback_id, model)add_robstride_motor(motor_id, feedback_id, model)add_hightorque_motor(motor_id, feedback_id, model)
快速开始
Damiao:rs-00 到 rs-06。C++ wrapper 的 add_robstride_motor(...) 调用形态一致,但 ABI 背后的参数读写会使用第 4 章通用运行参数表。
C++ RobStride wrapper 已对齐 Python binding 的公开 helper:
robstride_ping(...)robstride_set_run_mode(...)robstride_write_param(...)/robstride_write_param_i32(...)robstride_read_param(...)/robstride_read_param_i32(...)robstride_save_params(...)robstride_reset_can_id(...)robstride_set_position(...)/robstride_set_velocity(...)/robstride_set_current(...)robstride_set_limits(...)
示例程序
examples/cpp_wrapper_demo.cppexamples/hexfellow_canfd_demo.cpp(Hexfellow,CAN-FD,仅 MIT / POS_VEL)examples/robstride_wrapper_demo.cppexamples/full_modes_demo.cppexamples/pid_register_tune_demo.cppexamples/scan_ids_demo.cpp(Damiao 历史辅助)examples/pos_ctrl_demo.cppexamples/pos_repl_demo.cpp
Windows 实验支持(PCAN-USB)
项目主线仍以 Linux 为主。Windows 支持为实验性能力,当前通过 PEAK PCAN 后端实现。- 安装 PEAK 驱动与 PCAN-Basic 运行时(
PCANBasic.dll)。 - Windows 下验证命令建议使用
can0@1000000。