首页 / 资讯中心 / 文章详情

四步跑通 OpenArm 电机配置与 CAN 总线通信:从接线到零位校准的实战指南

四步跑通 OpenArm 电机配置与 CAN 总线通信:从接线到零位校准的实战指南 ★ FEATURED ARTICLE
四步跑通 OpenArm 电机配置与 CAN 总线通信从接线到零位校准的实战指南【免费下载链接】openarmA fully open-source humanoid arm for physical AI research and deployment in contact-rich environments.项目地址: https://gitcode.com/GitHub_Trending/op/openarm第一次给 OpenArm 上电你大概率会撞上这个场面电机纹丝不动终端里也抓不到任何数据第一反应往往是硬件是不是坏了。别急着怀疑十有八九只是 OpenArm 电机配置和 OpenArm CAN 总线通信这两件事还没跑通。这篇文章我站在真机旁边按电脑端准备 → 物理接线 → 链路配置 → 电机参数 → 校准验收的顺序带你一次打通顺序和常见的先接线后装软件的写法故意反了过来——先让电脑侧就绪再接线时心里才有底。准备工作装好 CAN 工具并认出你的 CAN 接口在碰任何线缆之前先把电脑侧的活干完。OpenArm 的电机通信走 CAN 总线Controller Area Network一种汽车电子里常用的多设备串联通信协议在 Linux 上依赖 SocketCAN也就是 Linux 内核自带的 CAN 通信栈你只需装几个用户态工具即可。安装 OpenArm 的 CAN 工具集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执行完应看到 apt 正常结束、无报错can-utils和iproute2分别提供抓帧和接口管理命令后两个openarm-*包是本项目的专属配置工具。然后列出系统所有网络接口确认你的 CAN 适配器被识别ip link show输出里应出现名为can0或can1的条目。后面所有命令都基于这个名字先记下来。物理接线四组线缆怎么接、怎么走线OpenArm 的关节电机由四组线缆分别接入主控制器J1-J2肩部、J3-J4上臂段、J4-J7前臂到腕部、J7-J8末端执行器。先看整体拓扑蓝色标注 J3-J4 段粉色标注 J4-J7 段J3-J4 与 J4-J7两条上臂线束J3-J4 线缆一端接 HUB 板另一端分叉去接两个电机。接口分配如下接的时候记住三件事蓝色标记的 J3 接口接上臂电机绿色标记的 J4 接口接肘部电机线缆沿上臂后侧走线避开运动轨迹插到位后轻拉一下确认没有虚接J4-J7 是最复杂的一条线束一个分支要管 J4、J5、J6、J7 四个电机接口分配如图所示按这个顺序接最省力先接 J5 电机较短的那个分支到前臂把肘部弯到极限位置接 J4 电机再调整手臂角度依次接 J6 和 J7 电机J1-J2 肩部与 J7-J8 末端肩部 J1、J2 电机的接口方向有讲究插错会顶到外壳对照下图确认方向后再插末端执行器走 J7-J8 线缆从腕部引出按线束标签对号入座即可插完后确认插头卡扣都锁死。接线完成的目视检查全部接完后绕着臂看一圈前后两个视角的参考效果如下线缆应整齐排列、走向自然没有任何被拉伸或悬吊的段落链路配置CAN 2.0 与 CAN FD 两种模式怎么设线接好了现在把链路层跑起来。先说清两种模式CAN 2.0 是基础帧格式CAN FDFlexible Data-rate在 CAN 2.0 基础上支持更高的数据率和更大的单帧容量日常运行推荐用它。方法一用 OpenArm 配置工具推荐CAN 2.0 模式openarm-can-configure-socketcan can0CAN FD 模式推荐数据段 5 Mbps、仲裁段 1 Mbpsopenarm-can-configure-socketcan can0 -fd -b 1000000 -d 5000000两条命令都应在无报错的情况下静默结束这是工具类命令的成功样子。方法二手动配置不想用工具时用ip link手动完成。CAN 2.0sudo ip link set can0 down sudo ip link set can0 type can bitrate 1000000 sudo ip link set can0 upCAN FDip link set can0 down sudo ip link set can0 type can bitrate 1000000 dbitrate 5000000 fd on sudo ip link set can0 up先 down 再改参数最后 up是这个流程的固定三步。验证接口状态ip link show can0输出中应能看到state UP以及can bitrateFD 模式还带fd字样说明配置已生效。再抓一把总线上实际流动的数据candump can0电机上电后candump会持续滚动打印帧一直空白则说明总线没有数据回到接线一节检查。电机参数波特率的临时设置与永久烧录链路通了接下来让每个电机说同一种语速。这一步有两条硬规矩务必先看:::warning设置电机波特率时必须先用 CAN 2.0 模式写完后再切回 CAN FD 运行。电机参数存储的写入次数有限约 10000 次每次--flash都在消耗寿命确认数值正确再烧录不要反复试。 :::先做临时设置以 5 Mbps、CAN ID 1 的电机为例openarm-can-change-baudrate --baudrate 5000000 --canid 1 --socketcan can0执行后当前会话内该电机即以新波特率应答断电后会还原所以只是试一下。确认无误后再永久烧录进电机openarm-can-change-baudrate --baudrate 5000000 --canid 1 --socketcan can0 --flash多出的--flash就是写进电机内部存储的意思。波特率档位全部列出--baudrate取值对应关系档位波特率说明0125000125 kbps低速备用410000001 Mbps950000005 Mbps推荐校准验收零位校准与电机通信验证先摆好零位再执行校准零位决定了机械臂所有后续动作的坐标基准。校准前先把机械臂手动摆到下图所示的近似零位姿势:::warning 零位校准过程中机械臂会自动运动执行前清空工作区域内的所有人和物体确保紧急停止按钮在手可及之处。 :::默认对 can0 上的右臂执行校准openarm-can-zero-position-calibration左右臂分开挂在不同 CAN 口、用--arm_side指明两条命令分别对应# 左侧领导者臂leader openarm-can-zero-position-calibration --canport can1 --arm_side left_arm # 右侧跟随者臂follower openarm-can-zero-position-calibration --canport can2 --arm_side right_arm校准成功的标志是各关节依次归位到零位并保持中途报错通常回到摆好零位这一步重来。用 motor-check 逐个验证电机最后逐台确认电机在总线上应答示例CAN ID 1 发送、ID 17 接收CAN 2.0 模式openarm-can-motor-check 1 17 can0CAN FD 模式openarm-can-motor-check 1 17 can0 -fd输出中应能看到该电机的应答信息据此核对三件事显示的波特率与你刚烧录的配置一致断电重启后重新检查确认设置没有被还原把每个电机的 ID 都过一遍全部能应答才算验收通过排障速查五类常见问题对照现象可能原因处理系统里找不到 CAN 接口can_raw 内核模块未加载sudo modprobe can_raw通信时通时断线缆接触不良、终端电阻缺失逐个重插接头确认总线上装有 120Ω 终端电阻电机应答混乱 / 无应答电机侧波特率与主机不匹配切回 CAN 2.0 模式重新设置电机波特率零位校准失败机械臂未处于近似零位、电机未供电手动摆回零位姿势检查供电再执行运动轨迹异常零位基准偏移、电机 ID 对不上重新执行零位校准核对电机 ID 映射更细的步骤和截图对照仓库内的官方文档走一遍即可CAN 总线设置文档、通信测试文档、电机配置文档。到这里从一根线缆到一条应答帧都验证过了。电机配置与 CAN 总线通信就绪之后下一步就可以进入 MoveIt2 规划与遥操作阶段那是另一篇文章的事了。【免费下载链接】openarmA fully open-source humanoid arm for physical AI research and deployment in contact-rich environments.项目地址: https://gitcode.com/GitHub_Trending/op/openarm创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
阅读完成 · 觉得有帮助?
咨询建站