Skip to main content

A) CLI 部分(4个例子)

CLI 对应扫描命令(总线电机 ID 扫描):
CLI 对应扫描命令(Damiao 串口桥 dm-serial):
说明:
  • dm-serial 仅支持 --vendor damiao
  • 如果出现 open serial port 1 failed,通常是 SER/BAUD/MODEL 变量未生效导致参数错位。
CLI 串口桥推荐顺序(先扫描,再四模式,最后失能):
说明:
  • dm-serial 场景当前更稳妥的是 scan/enable/mit/disable
  • pos-vel/vel/force-pos 仍不稳定,建议改走 socketcancan0)执行这三种模式。
Python binding 串口桥推荐顺序(与上面 CLI 并列):
说明:dm-serial 场景希望更快返回时,--ensure-timeout-ms 建议先用 300,按现场再调到 200~500 Python dm-serial 现成示例脚本(可直接运行):

A.1 参数含义 / 单位 / 常用范围(Damiao)

A.2 四种模式使用场景(记忆版)

  1. MIT:最通用,位置+速度+阻抗+前馈扭矩一起调。适合精细调手感、做混合控制。
  2. POS_VEL:到某个角度,并限制速度。适合“先到位”的安全动作。
  3. VEL:纯速度指令。适合连续转动、速度响应测试。
  4. FORCE_POS:位置目标 + 力矩限幅。适合“要到位,但别死顶太狠”。

A.3 调参建议(实操)

  1. 先用 POS_VEL 小速度到位,确认方向和机械限位。
  2. 再上 MIT,从小 kp/kd、小 tau 开始递增。
  3. FORCE_POS 先从 ratio=0.1~0.2 起步,逐步增加。
  4. 每次测试后执行文末 disable 停机命令。

B) ABI 部分(C/C++,4个例子)

先构建 ABI 和 demo:
ABI(C/C++)对应扫描命令(使用 C++ 扫描示例):

C) ABI Python(ctypes) 部分(4个例子)

ABI Python(ctypes) 对应扫描命令(当前 ctypes demo 无 scan 子命令,配套用 Python 扫描示例):

D) bindings/python 部分(4个例子)

bindings/python 对应扫描命令:

E) bindings/cpp 部分(4个例子)

先构建:
bindings/cpp 对应扫描命令:

F) 通用停机命令


G) 扫描功能(4种方式)

G.1 方式1:Rust CLI 扫描(推荐,信息最全)

典型上报字段:
  • id
  • feedback_id
  • model_guess
  • limits=(pmax,vmax,tmax)

G.2 方式2:Python binding 扫描脚本(scan_ids_demo)

典型上报字段:
  • motor-id
  • feedback-id
  • 命中/未命中结果

G.3 方式3:C++ binding 扫描脚本(scan_ids_demo)

典型上报字段:
  • motor-id
  • feedback-id
  • 命中/未命中结果

G.4 方式4:Python SDK CLI 扫描(motorbridge-cli)

典型上报字段:
  • vendor
  • id
  • 命中数量统计

G.5 扫描信息对齐说明

  1. 你要的“总线电机是否存在、ID 是多少”,4 种方式都能查。
  2. feedback_id:CLI / Python scan_ids_demo / C++ scan_ids_demo 可直接看到。
  3. model_guesslimits:以 Rust motor_cli --mode scan 的输出最完整,其他扫描方式通常不做完整型号猜测与极限打印。
  4. 如果要做“发现 + 精确识别 + 控制参数选型”,建议流程:
    • 先用 G.1 扫描
    • 再用 A/B/C/D/E 的四模式命令做控制验证