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.
CLI 指南(motor_cli)
通道兼容说明(PCAN + slcan + Damiao 串口桥)
- Linux SocketCAN 直接使用网卡名:
can0、can1、slcan0。
- 串口类 USB-CAN 需先创建并拉起
slcan0:sudo 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-serial(dm-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-00 到 rs-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..255;feedback_id / host_id 会校验为 0..255。
RobStride 请继续使用真实 RS 型号作为限值/日志提示;参数读写使用第 4 章通用运行参数表。