Skip to content

OpenArm 调试流程

基础流程

OpenArm 官方本身提供了基础的使用手册可做参考:

OpenArm 官方调试文档:https://docs.openarm.dev/software/setup/

完整流程以及建议

本文将提供完整调试流程,并结合实际使用经验,给出调试建议。

单电机调试

无论是通过 OpenArm 的调试文档还是跟本文进行调试,都建议先从单个电机开始,每个电机测试完成后,再进行多电机组合调试。

通过这种流程,能够有效避免整机在调试过程中出现异常,却难以锁定问题的情况。

1. 修改电机 ID

  • 根据以下表格,确认对应调试电机ID。
关节发送方接收方
J10x010x11
J20x020x12
J30x030x13
J40x040x14
J50x050x15
J60x060x16
J70x070x17
J80x080x18

2. 配置 SocketCAN 接口

  • 环境准备,请确保已安装以下工具:
bash
sudo apt install -y software-properties-common
sudo add-apt-repository -y ppa:openarm/main
sudo apt update
sudo apt install -y \
  can-utils \
  iproute2 \
  libopenarm-can-dev \
  openarm-can-utils
  • CAN 适配器波特率配置

OpenArm 提供的配置指令:

bash
# CAN 2.0
openarm-can-configure-socketcan can0

# CAN FD 1M/5M (recommended)
openarm-can-configure-socketcan can0 -fd -b 1000000 -d 5000000

手动配置:

配置 CAN 2.0,波特率 1M:

bash
sudo ip link set can0 down
sudo ip link set can0 type can bitrate 1000000
sudo ip link set can0 up

配置 CAN FD,波特率 1M/5M:

bash
sudo ip link set can0 down
sudo ip link set can0 type can bitrate 1000000 dbitrate 5000000 fd on
sudo ip link set can0 up

3. 手动控制电机

  • 首先开启 candump 工具,记录通道报文。
bash
candump -x can0
  • 修改电机波特率,发送临时电机波特率修改指令(掉电后配置消失)。

将电机波特率设置为 1M/5M 命令如下:

bash
openarm-can-change-baudrate --baudrate 5000000 --canid 1 --socketcan can0

若确认后续波特率,可在指令后加上 --flash 记录至闪存(⚠ 请勿频繁记录到闪存,单个电机限制修改 10000 次。)

此时电机默认以 CAN FD 模式通讯,参数修改为 1000000,则波特率为 1M,工作模式为 CAN 2.0。

  • 观察 candump 工具,应捕获类似下图数据:

示例图片中为四组指令,CAN 适配器发送波特率配置指令,电机收到后回复。(若没有应答,则存在异常)

前两组配置为 1M 波特率 CAN 2.0 模式,后两组配置为 1M/5M 波特率 CAN FD 模式。

通过最后一组电机回复的 CAN 帧格式,可以判断电机处于 FD 工作模式。

  • 使用 cansend 指令控制电机使能失能

通过发送配置波特率以及以下配置指令,观察 candump 获取电机回复以及电机状态指示灯,可以判断电机通讯是否正常。

建议使用 CAN 2.0进行初步通讯测试,排除FD配置参数不匹配导致的失败。

CAN 2.0 模式:

bash
cansend can0 001#FFFFFFFFFFFFFFFB # 错误清除
cansend can0 001#FFFFFFFFFFFFFFFC # 使能
cansend can0 001#FFFFFFFFFFFFFFFD # 失能

CAN FD 模式:

bash
cansend can0 001##1FFFFFFFFFFFFFFFB # 错误清除
cansend can0 001##1FFFFFFFFFFFFFFFC # 使能
cansend can0 001##1FFFFFFFFFFFFFFFD # 失能

电机指示灯:

  • 绿灯常亮:电机使能
  • 红灯常亮:电机失能
  • 红灯闪烁:电机错误状态

candump 接收示例:

常见问题排查

若调试过程中出现通讯异常的情况,我们针对CAN 通讯异常排查方法以及常见通讯问题处理提供了详尽的说明文档。

通讯异常排查:https://mp.weixin.qq.com/s/N5zSEOQ8qPamX8igaHNg7Q 常见线路问题:https://mp.weixin.qq.com/s/5dGna857x9LAaTmiI6rMAQ 常见参数配置问题:TODO

驱动智能连接,赋能科技未来