OpenArm 调试流程
基础流程
OpenArm 官方本身提供了基础的使用手册可做参考:
OpenArm 官方调试文档:https://docs.openarm.dev/software/setup/
完整流程以及建议
本文将提供完整调试流程,并结合实际使用经验,给出调试建议。
单电机调试
无论是通过 OpenArm 的调试文档还是跟本文进行调试,都建议先从单个电机开始,每个电机测试完成后,再进行多电机组合调试。
通过这种流程,能够有效避免整机在调试过程中出现异常,却难以锁定问题的情况。
1. 修改电机 ID
- 根据以下表格,确认对应调试电机ID。
| 关节 | 发送方 | 接收方 |
|---|---|---|
| J1 | 0x01 | 0x11 |
| J2 | 0x02 | 0x12 |
| J3 | 0x03 | 0x13 |
| J4 | 0x04 | 0x14 |
| J5 | 0x05 | 0x15 |
| J6 | 0x06 | 0x16 |
| J7 | 0x07 | 0x17 |
| J8 | 0x08 | 0x18 |
准备达妙调试工具
Windows 下载链接:https://files.seeedstudio.com/wiki/robotics/Actuator/damiao/Debugging_Tools_v.1.6.8.8.exe
检查电机电源以及串口线接好,运行程序。并按照图示流程,修改电机 ID。
可通过校准,简单测试电机是否正常。
2. 配置 SocketCAN 接口
- 环境准备,请确保已安装以下工具:
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 提供的配置指令:
# 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:
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:
sudo ip link set can0 down
sudo ip link set can0 type can bitrate 1000000 dbitrate 5000000 fd on
sudo ip link set can0 up3. 手动控制电机
- 首先开启 candump 工具,记录通道报文。
candump -x can0- 修改电机波特率,发送临时电机波特率修改指令(掉电后配置消失)。
将电机波特率设置为 1M/5M 命令如下:
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 模式:
cansend can0 001#FFFFFFFFFFFFFFFB # 错误清除
cansend can0 001#FFFFFFFFFFFFFFFC # 使能
cansend can0 001#FFFFFFFFFFFFFFFD # 失能CAN FD 模式:
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