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: docs/zh/cli.md

CLI 指南(motor_cli

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

  • Linux SocketCAN 直接使用网卡名:can0can1slcan0
  • 串口类 USB-CAN 需先创建并拉起 slcan0sudo slcand -o -c -s8 /dev/ttyUSB0 slcan0 && sudo ip link set slcan0 up
  • 仅 Damiao 可选独立 CAN-FD 链路:--transport socketcanfd(与经典 socketcan 并存)。
  • 仅 Damiao 可选串口桥链路:--transport dm-serial --serial-port /dev/ttyACM0 --serial-baud 921600
  • Linux SocketCAN 下 --channel 不要带 @bitrate(例如 can0@1000000 无效)。
  • Windows(PCAN 后端)中,can0/can1 映射 PCAN_USBBUS1/2,可选 @bitrate 后缀。
传输标识:
  • [STD-CAN] => --transport auto|socketcan
  • [CAN-FD] => --transport socketcanfd
  • [DM-SERIAL] => --transport dm-serial
[CAN-FD] 说明:目前是“链路已接入”,电机验证矩阵尚未声明完成。

调试入口

构建

cargo build -p motor_cli --release

通用参数

  • --vendor damiao|robstride|hightorque|myactuator|hexfellow|all
  • --transport auto|socketcan|socketcanfd|dm-serialdm-serial 仅 Damiao;socketcanfd 用于 Hexfellow)
  • --channel can0
  • --serial-port /dev/ttyACM0 --serial-baud 921600(配合 --transport dm-serial
  • --motor-id <id>
  • --loop <n> --dt-ms <ms>

Damiao 示例

cargo run -p motor_cli --release -- \
  --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
[STD-CAN]
# Damiao 串口桥链路
cargo run -p motor_cli --release -- \
  --vendor damiao --transport dm-serial --serial-port /dev/ttyACM1 --serial-baud 921600 \
  --model 4310 --motor-id 0x04 --feedback-id 0x14 \
  --mode mit --verify-model 0 --ensure-mode 0 \
  --pos 0.5 --vel 0 --kp 20 --kd 1 --tau 0 --loop 80 --dt-ms 20
[DM-SERIAL]
# Damiao 独立 CAN-FD 链路
cargo run -p motor_cli --release -- \
  --vendor damiao --transport socketcanfd --channel can0 \
  --model 4310 --motor-id 0x04 --feedback-id 0x14 \
  --mode mit --verify-model 0 --ensure-mode 0 \
  --pos 0.5 --vel 0 --kp 20 --kd 1 --tau 0 --loop 80 --dt-ms 20
[CAN-FD]

Hexfellow 示例

# Hexfellow 扫描(CAN-FD 链路)
cargo run -p motor_cli --release -- \
  --vendor hexfellow --transport socketcanfd --channel can0 \
  --mode scan --start-id 1 --end-id 32
[CAN-FD]
# Hexfellow 状态查询
cargo run -p motor_cli --release -- \
  --vendor hexfellow --transport socketcanfd --channel can0 \
  --model hexfellow --motor-id 1 --feedback-id 0 \
  --mode status
[CAN-FD]

RobStride 示例

RobStride 支持 rs-00rs-06。请始终传真实电机型号:控制命令的 CLI 形态一致,但 read-param / write-param 会使用第 4 章通用运行参数表。
cargo run -p motor_cli --release -- \
  --vendor robstride --channel can0 --model rs-06 --motor-id 127 --mode ping
cargo run -p motor_cli --release -- \
  --vendor robstride --channel can0 --model rs-06 --motor-id 127 \
  --mode mit --ensure-strict 1 --pos 0.5 --vel 0 --kp 20.0 --kd 0.5 --tau 0 --loop 100 --dt-ms 20
cargo run -p motor_cli --release -- \
  --vendor robstride --channel can0 --model rs-06 --motor-id 127 \
  --mode pos-vel --pos 1.5 --vlim 1.0 --loc-kp 5.0 --loop 1 --dt-ms 20

RobStride 零点校准(Python 包 CLI)

当前 motorbridge-cli 使用子命令结构,置零必须写成 motorbridge-cli run ...。 RobStride 置零还必须带 --zero-exp 1;不带时只打印警告,不发送置零帧。
# 先确认在线
motorbridge-cli run \
  --vendor robstride --channel can0 --model rs-00 \
  --motor-id 1 --feedback-id 0xFD \
  --mode enable --loop 1 --dt-ms 100
# 将当前机械位置写为零点,并保存
motorbridge-cli run \
  --vendor robstride --channel can0 --model rs-00 \
  --motor-id 1 --feedback-id 0xFD \
  --mode set-zero --zero-exp 1 --store 1 \
  --loop 1 --dt-ms 100
# 小幅移动并回零验证
motorbridge-cli run \
  --vendor robstride --channel can0 --model rs-00 \
  --motor-id 1 --feedback-id 0xFD \
  --mode pos-vel --pos 1.5 --vlim 1.0 --loc-kp 5.0 \
  --loop 1 --dt-ms 20

motorbridge-cli run \
  --vendor robstride --channel can0 --model rs-00 \
  --motor-id 1 --feedback-id 0xFD \
  --mode pos-vel --pos -1.5 --vlim 1.0 --loc-kp 5.0 \
  --loop 1 --dt-ms 20

HighTorque(原生 ht_can v1.5.5)

支持模式:
  • scan
  • read / ping
  • mit(统一接口)
  • pos / vel / tqe
  • pos-vel-tqe
  • volt / cur
  • stop / brake / rezero / conf-write / timed-read
统一单位接口(与其他电机保持一致):
  • --pos:弧度(rad)
  • --vel:弧度每秒(rad/s)
  • --tau:扭矩(Nm)
  • --kp--kd:为统一 MIT 参数签名保留,ht_can 协议本身不使用
底层原始接口(调试):
  • --raw-pos--raw-vel--raw-tqe
示例:
# 扫描 ID
cargo run -p motor_cli --release -- \
  --vendor hightorque --channel can0 --mode scan --start-id 1 --end-id 32
# 读状态(输出包含 pos_rad / vel_rad_s)
cargo run -p motor_cli --release -- \
  --vendor hightorque --channel can0 --motor-id 1 --mode read
# 转到 +180 度(pi 弧度),并限制速度/力矩
cargo run -p motor_cli --release -- \
  --vendor hightorque --channel can0 --motor-id 1 \
  --mode mit --pos 3.1415926 --vel 0.8 --tau 0.8
# 停止
cargo run -p motor_cli --release -- \
  --vendor hightorque --channel can0 --motor-id 1 --mode stop

MyActuator 示例

cargo run -p motor_cli --release -- \
  --vendor myactuator --channel can0 --model X8 --motor-id 1 --feedback-id 0x241 \
  --mode status --loop 20 --dt-ms 50
# 将当前位置设为零点(持久生效需断电重启)
cargo run -p motor_cli --release -- \
  --vendor myactuator --channel can0 --model X8 --motor-id 1 --feedback-id 0x241 \
  --mode set-zero --loop 1

全品牌扫描

cargo run -p motor_cli --release -- \
  --vendor all --channel can0 --mode scan --start-id 1 --end-id 255
RobStride 单独扫描:
cargo run -p motor_cli --release -- \
  scan --vendor robstride --channel can0 --start-id 1 --end-id 127 \
  --feedback-ids 0xFD,0xFF,0xFE,0x00,0xAA
RobStride 输出中,probe / device_id 是电机 ID;feedback_id / host_id(如 0xFD)是上位机侧 ID,不是电机 ID。 RobStride motor_id / device_id 会校验为 1..255feedback_id / host_id 会校验为 0..255。 RobStride 请继续使用真实 RS 型号作为限值/日志提示;参数读写使用第 4 章通用运行参数表。