从零搭建 OpenArm 开源机械臂完成 7 自由度双臂装配并调通 CAN 总线通信【免费下载链接】openarmA fully open-source humanoid arm for physical AI research and deployment in contact-rich environments.项目地址: https://gitcode.com/GitHub_Trending/op/openarmOpenArm 是一台面向物理 AI 研究的 7 自由度人形机械臂双臂整套约 6500 美元。这篇指南带你把它从零装起来先叠关节、再穿 CAN 总线最后用 ROS2 把每条臂跑起来。项目速览先看几个关键指标心里有数再动手。项目指标自由度单臂 7 DOF双机位共 14 个关节 夹爪名义负载4.1 kg最差姿态下保持 1 分钟峰值负载6.0 kg3 秒内抬到最差姿态再保持 1 秒通信CAN-FD默认 5 Mbps电机达妙 DM4310 / DM4340 / DM8009P高反向驱动整套成本双臂约 6,500 美元结构人类尺度比例铝合金立柱 机械限位负载含末端执行器。装了 1.5 kg 的夹爪名义负载要按 2.6 kg 算。准备清单下单前把下面这份清单对一遍缺一项都会卡住后面某一步。机械件达妙电机 ×8J1–J7 夹爪型号 DM4310 / DM4340 / DM8009P 按关节分配24 V 直流电源电流按串联电机数量累加XT30 22 电机级联线、CANH/CANL 总线线、120 Ω 终端电阻CNC 铝件、3D 打印外壳、标准件轴承、线性导轨、M3/M4 螺栓工具USB CAN 调试器配电机 ID 用配 Windows 电脑SocketCAN 兼容接口USB-CAN-FD接 Linux 电脑螺丝刀、内六角扳手、万用表、扎带3D 打印机外壳件软件与系统Ubuntu 22.04 / 24.04内核带 SocketCANWindows 电脑一台达妙配 ID 工具只跑在 WindowsROS2 Humble后续做 ROS2 控制再装核心实操按物理顺序来先有结构再通电最后编号。别急着装外壳。底座与关节自下而上叠装目标把立柱、底座和各关节按 J1→J7 顺序叠成可转动的骨架。关键步骤先把铝型材立柱和加固件固定在底座板上底板的 M6 螺孔用来锁到桌面或台面。从 J1-J2 开始装装完一层转一层确认能自由转动再往上叠。每个关节都带机械限位装的时候顺手确认限位块到位它负责挡住极限姿态、保护走线。验证点用手沿每个轴缓慢推动无卡滞、无异响限位处能被机械挡块自然挡住。夹爪与末端执行器到位目标在 J7 之后装好对称夹爪保证左右手指能正常开合。关键步骤先装夹爪本体左/右对称件再装滑块与导轨连接件。把热熔件按图示位置压装到位装完检查左右手指平行度。夹爪电机 DM4310 此时可不通电只确认连杆无干涉。验证点手动拨动手指开合行程顺畅、左右对称无碰线。电气接线电源进线与 CAN 总线串链目标把 24 V 电源和 CAN-FD 总线接到每条臂形成可通信的物理通路。关键步骤电源用 XT30 接法注意 J8009P 电机可直接插线、无需转接板。电机按 J1→J8 顺序用 XT30 22 级联CANH/CANL 一一对应。在总线两端打开 120 Ω 终端电阻这是后面通信稳定的关键。肘部J4附近的走线最容易松接线时多留余量。验证点万用表量总线两端电阻约 60 Ω两个 120 Ω 并联电源电压稳定在 24 V。软件与通信配置结构接好后下一步把通信链路拉通。先配 ID再上总线最后跑演示。第一步在 Windows 上给电机编号。达妙调试工具走串口 UART921600 bps而不是 CAN。用 ReadParam 读出参数把发送 ID 和接收 ID 改成下表再 WriteParam 存回J1→0x01/0x11J2→0x02/0x12J3→0x03/0x13J4→0x04/0x14J5→0x05/0x15J6→0x06/0x16J7→0x07/0x17J8 夹爪→0x08/0x18。工具里点一次 calibrate 让电机转一下能转就说明这条臂通了。第二步在 Linux 上找 CAN 接口名。先确认系统里接口叫什么ip link show预期列表里出现 can0 / can1 / slcan0 之类的接口。串口类设备可能要slcand包装后才可见。第三步装工具链。把 CAN 工具和 OpenArm 库装进来sudo apt install -y can-utils iproute2 libopenarm-can-dev openarm-can-utils验证which openarm-can-cli能返回路径。第四步配置 CAN-FD。 用库自带命令把四个口按 CAN-FD 5 Mbps 配好openarm-can-configure-socketcan-4-arms -fd -b 1000000 -d 5000000不想用库命令的话手动配单个口等价于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验证ip link show can0状态 UP 且带fd on。第五步通信自检。给 1 号电机发使能帧看总线能不能到电机cansend can0 001#FFFFFFFFFFFFFFFC预期电机 LED 变绿另一终端candump can0能看到can0 011 [8] ...回包。测完记得发cansend can0 001#FFFFFFFFFFFFFFFD关掉电机。第六步遥测面板。打开面板实时看各电机状态openarm-can-cli -i can0 monitor预期滚动显示 position、velocity、torque、temperature波特率与之前配置一致。第七步跑整套演示。 通信通了再跑急停按钮手边放着openarm-can-demo预期依次打印 Enabling、Querying Motor Recv IDs、Closing gripper最后安全禁用电机。可选ROS2 侧。要做 ROS2 控制再装最小集并确认环境sudo apt install -y ros-humble-desktop验证ros2 -h与ros2 topic list正常返回。进阶方向遥操作采集主从臂做示教支持单侧和双侧两种控制录下的专家演示可直接喂给模仿学习。详见 遥操作文档。物理仿真MuJoCo 用 MJCF 描述双机位场景先跑通算法再上真机Isaac Lab 面向大规模强化学习训练。详见 MuJoCo 与 Isaac Lab。数据与推理openarm_dataset 定义数据集格式与 Python API配合 Dora 数据流节点做采集、推理、遥操作的闭环。避坑与常见异常按现象 → 原因 → 对策排查多数问题出在接线和波特率。现象电机通电但不转。原因供电电流不够或 XT30 电源没接牢。 对策按电流表给足DM4310/DM4340 约 0.3 ADM8009P 约 0.75 A串联累加重插电源。现象发送帧后收不到回包。原因接口与电机波特率不一致或发送/接收 ID 配错。 对策用openarm-can-cli -i can0 change_baud -b 5000000 -c 1 --save对齐波特率核对 0x01→0x11 这类配对。现象运动中整条臂停摆、总线掉线。原因线过长或绕线导致信号反射CAN 进入 bus-off。 对策sudo ip link set can0 down再up重启接口理顺走线、缩短总线。现象接头在运动中脱落。原因L 型接头未固定。 对策断电后用扎带或胶带固定接头肘部 J4 走线重点检查。现象机械臂晃动、动作不稳。原因振动把腕部、肘部螺丝震松。 对策断电后逐个复紧底座和关节螺丝。⚠️ 这台臂反向驱动性高急停断电后夹着的东西会快速下坠。急停开关装在手边够得到的位置操作区清场。完整条款见 安全指南。资源索引项目总览与子仓库清单装配与设置总入口电机 ID 配置SocketCAN 接口配置电机通信自检电机配置与零点校准演示运行CAN CLI 参考ROS2 安装ROS2 控制硬件总览MuJoCo 仿真Isaac Lab 仿真遥操作主从 / VR安全指南常见问题MuJoCo 教程视频下一步先打开仓库根目录的 README.md 拿到各子仓库清单再进website/docs/hardware/对照 CAD 和 BOM 下单、打印。在第一台关节真正转起来之前把 CAN 总线自检跑通比急着装外壳更重要。【免费下载链接】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),仅供参考
阅读完成 · 觉得有帮助?