Skip to main content

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: examples/c/README.zh-CN.md

C ABI 示例

通道兼容说明(PCAN + slcan + CAN-FD + Damiao 串口桥)

  • Linux SocketCAN 直接使用网卡名:can0can1slcan0
  • 串口类 USB-CAN 需先创建并拉起 slcan0sudo slcand -o -c -s8 /dev/ttyUSB0 slcan0 && sudo ip link set slcan0 up
  • Hexfellow 示例需使用 CAN-FD 路径(motor_controller_new_socketcanfd(...) / CLI --transport socketcanfd)。
  • 仅 Damiao 可选串口桥链路:--transport dm-serial --serial-port /dev/ttyACM0 --serial-baud 921600
  • Damiao 串口桥完整接口与命令模板见 motor_cli/README.zh-CN.md3.6 节(英文见 motor_cli/README.md)。
  • Linux SocketCAN 下 --channel 不要带 @bitrate(例如 can0@1000000 无效)。
  • Windows(PCAN 后端)中,can0/can1 映射 PCAN_USBBUS1/2,可选 @bitrate 后缀。
这里是直接调用 motor_abi 的 C 示例。
English version: README.md

文件

  • c_abi_demo.c: Damiao + RobStride 的统一示例
  • hexfellow_canfd_demo.c: Hexfellow CAN-FD 示例(仅 mit / pos-vel
覆盖范围:
  • Damiao: enabledisablemitpos-velvelforce-pos
  • RobStride: pingenabledisablemitpos-velvelread-paramwrite-param
    • 说明:力矩/电流仅参数级可用(通过 write-paramiq_ref/限幅参数),不是统一高层模式
  • Hexfellow(仅 CAN-FD): mitpos-vel

构建

cargo build -p motor_abi --release
cc examples/c/c_abi_demo.c -I motor_abi/include -L target/release -lmotor_abi -o c_abi_demo
cc examples/c/hexfellow_canfd_demo.c -I motor_abi/include -L target/release -lmotor_abi -o hexfellow_canfd_demo
LD_LIBRARY_PATH=target/release ./c_abi_demo --help

示例

Damiao MIT:
LD_LIBRARY_PATH=target/release ./c_abi_demo \
  --vendor damiao --channel can0 --model 4340P --motor-id 0x01 --feedback-id 0x11 \
  --mode mit --pos 0 --vel 0 --kp 20 --kd 1 --tau 0 --loop 50 --dt-ms 20
RobStride ping:
LD_LIBRARY_PATH=target/release ./c_abi_demo \
  --vendor robstride --channel can0 --model rs-06 --motor-id 127 --mode ping
RobStride 读取位置参数:
LD_LIBRARY_PATH=target/release ./c_abi_demo \
  --vendor robstride --channel can0 --model rs-06 --motor-id 127 \
  --mode read-param --param-id 0x7019 --param-type f32
示例中的 rs-06 只是演示型号。真实交互前请替换成实际 RS00-RS06 型号,因为 RobStride 参数 ID 和类型来自第 4 章通用运行表。 RobStride 低增益 MIT:
LD_LIBRARY_PATH=target/release ./c_abi_demo \
  --vendor robstride --channel can0 --model rs-00 --motor-id 2 \
  --mode mit --pos 0.5 --vel 0 --kp 20.0 --kd 0.5 --tau 0 --loop 100 --dt-ms 20
Hexfellow(仅 CAN-FD):
LD_LIBRARY_PATH=target/release ./hexfellow_canfd_demo \
  --channel can0 --motor-id 0x01 --feedback-id 0x00 --mode mit --loop 20 --dt-ms 50