一直想复刻稚晖君的Dummy机械臂,24年11月底终于开始行动,上网学习、材料准备、组装调试前后耗时1个多月,终于在春节前顺利完工,正好用它给大家拜个年。很多同学在咨询细节,这里就整理一份保姆式教程,其中学习借鉴了bilibili的“木子晓汶”“不爱学习任同学”等共享的资料,希望对大家有帮助。
拜年视频:Dummy给大家拜年了
一、零配件采购
Dummy机械臂的配件分为机械臂主体(CNC或3D打印件)、步进电机、谐波减速器、控制电路(Ref主控板、电机控制板)、其它配件(同步轮、皮带、螺丝、线缆等),我这里使用的是CNC,以及成品控制电路(部分代码需要重新烧录)。本文使用的是“木子晓汶”Dummy2全谐波无刷电机版,电路板为V1.01版本。文章最后附有我整理的零配件采购清单。
二、软件环境
1.安装虚拟环境
(1)从网盘下载虚拟机文件。该虚拟文件包括了Dummy编译调试所需使用的软件(包括Ubntu、Clion、CLI-Tool、DummyStudio、Dummy源代码、3D模型等等),相关环境配置也设置好,安装好虚拟机后可直接使用。下载链接:https://pan.baidu.com/s/1f0q63Wy9RGFZxN248lNdEQ?pwd=sz4p 提取码: sz4p
(2)运行安装VirtualBox-7.0.12-159484-Win.exe(按缺省配置安装)
(3)注册安装Ubntu虚拟机,对显示和终端进行配置
(4)解决跨系统复制粘贴问题
“设备”—>“安装增强功能”,打开左边栏“VBox_GAs_7.0.12”,并右键选择在终端打开,运行“sudo ./VBoxLinuxAdditions.run”,然后重启服务,设置“共享粘贴板”—>“双向”即可使用。
2.运行Clion烧录程序
(1)安装Git服务
sudo apt install git
(2)从Git克隆最新代码文件(可选,虚拟机已有Dummy源代码)
git config --global user.name '******'
git config --global user.email '******+******@user.noreply.gitee.com'
git clone https://gitee.com/switchpi/dummy.git
(3)在终端执行“/opt/clion-2023.2/bin/clion.sh”启动Clion
(4)加载程序后就可以进行编译了。
(5)配置烧录环境。配置编译环境OpenOCD,选择执行文件,进入修改配置界面。
选择“+”添加配置,选择“OpenOCD”,然后设置文件名,再设置stlink.cfg文件路径。
如不清楚stlink.cfg文件路径,可回到编译界面直接搜索,或打开终端,找到路径下的stlink.cfg文件,输入pwd并复制路径。再次进入配置界面,把复制的路径粘贴到主板配置文件处,添加文件名stlink.cfg,最后应用保存即可。
(6)烧录程序。使用stlink进行烧录,接线如下(如图):将ref板的P2插槽的P1(GND)、P2(SWCLK)、P3(SWDIO)分别与stlink的GND、SWCLK、SWDIO脚进行连接。给dummy接上24V电源并打开开关,选择“设备”—>“USB”—>“stlink”,然后即可开始烧录程序。
具体可参见视频:Dummy机械臂——烧录软件
三、电路及电机测试
1、连接ref控制主板
连接开关和24V电源插座,24V接主板电源输入焊点(P3旁边,+号接正),开关灯接主板灯电源焊点(P3旁边)。P3用来接环形LED灯,3个引脚分别为GND、VCC、RGB。
2、连接步进电机主板
将电机按以下顺序与驱动板连接:
42电机(以张大头步进电机为例)
插脚序号 | 1 | 3 | 4 | 6 |
引脚 | A+ | B+ | A- | B- |
配线颜色 | 红 | 黑 | 蓝 | 绿 |
35电机(以张大头步进电机为例)
插脚序号 | 1 | 3 | 4 | 6 |
引脚 | A+ | B+ | A- | B- |
配线颜色 | 黑 | 蓝 | 绿 | 红 |
35电机(以夹爪电机例)
插脚序号 | ||||
引脚 | A+ | B+ | A- | B- |
配线颜色 | 红 | 黄 | 绿 | 蓝 |
然后用6P排线(同向线)将ref控制主板P1连接到42步进电机(电机1)主板输入口。电机1到电机2,以及后续店家均使用6P排线(反向线)。注意:不同版本的电机驱动板在使用同向或反向线时可能会有所不同,具体要查看电路或咨询卖家。
同向线:
反向线:
3、校准电机
开机后Led1、Led2常亮,长按K1键松开后电机自动左右旋转,后Led2灯由闪烁变为常亮,表示完成校准。单按一下K1键,电机进入使能状态,Led1亮、Led2灭,再次单按一下K1键,电机解锁,Led1、Led2均亮。
以上操作可在机械臂组装完成后再进行。
4、设置电机顺序
通过S1跳线的ID1、ID2、ID3来设置驱动板对应电机的顺序,分别设置为001、002...110,如下表:
ID4 | ID3 | ID2 | ID1 | |
J1 | ON | |||
J2 | ON | |||
J3 | ON | ON | ||
J4 | ON | |||
J5 | ON | ON | ||
J6 | ON | ON |
5、连接并测试电路
参考视频:Dummy机械臂——电路连接测试
6、组装安装电机和驱动板
参考视频:Dummy机械臂——安装电机控制板
四、组装谐波减速器
首先需要安装1、4号电机减速器。在谐波减速器上放置密封环,并在腔体内均匀抹上适量润滑油,将钢轴插入柔轮内拧紧螺丝固定,在钢珠上抹上少许润滑油,然后将柔轮一边旋转一边插入谐波减速器腔体。
参考视频:Dummy机械臂——安装1、4号电机减速器
五、安装机械臂各关节
1、安装基座部分
(1)安装J1谐波减速器
(2)安装控制面板
(3)安装底座
参考视频:Dummy机械臂——安装底座J1电机、主控板和面板
2、安装J2、J3电机和减速器
参考视频:Dummy机械臂——安装J2、J3电机和减速器
3、安装J1、J4和J5
参考视频:Dummy机械臂——安装J1、J4和J5
4、连接J1和J2J3,安装J6电机
参考视频:Dummy机械臂——连接J1和J2J3,安装J6电机
5、安装J5电机及减速器,连接J5和J6
参考视频:Dummy机械臂——安装J5电机及减速器,连接J5和J6
6、连接J3和J4,连接线路
参考视频:Dummy机械臂——连接J3和J4,连接线路
7、底座固定
将机械臂底座固定在木板或铝板上,防止运动过程中倾倒。
8、连接电缆并检查测试
按电路测试时的顺序连接各电机驱动板和主控电路。
六、功能测试
1、CLI-Tool配置使用
(1)选择串口设备,“设备”—>“USB”—>“Robot Embedded Framework REF 1.0 CDC Interface”(注意这里USB有正反,如USB插反了会找到CPR2102串口)
(2)启动CLI-Tool
cd CLI-Tool/
python3 run_shell.py
启动后需稍等一段时间,当系统显示“Connect to Dummy-Robot......”即可开始输入控制命令。
(3)命令行控制
输入“dummy0.”按Tab键,右侧将出现命令行提示,根据需要调用。常用控制命令如下:
dummy0.robot.calibrate_home_offset //校准
dummy0.robot.joint_1.set_position_with_time //控制第1关节运动
dummy0.robot.joint_all //所有关节
dummy0.robot.move_j //关节坐标系
dummy0.robot.move_ i //世界坐标系
dummy0.robot.reboot //重启
dummy0.robot.resting //回位
dummy0.robot.set_enable //电机使能
dummy0.robot.joint_1.apply_home_offset //设置关节1电机初始位置
dummy0.robot.joint_1.do_calibration //关节1电机校准
dummy0.robot.joint_1.set_dce_kd(_ki _kp _kv) //设置关节1电机PID
......
2、DummyStudio使用
启动DummyStudio选择“连接机器人”进入命令行模式。
(1)命令行模式:
!HOME
进入HOME状态(7字型)
!START
进入使能状态
!DISABLE
退出使能状态
!RESET
回到初始(折叠)状态
&0,25,108,0,50,0,
各关节转动角度。关节1:0度;关节2:25度;关节3:108度;关节4:0度;关节5:50度;关节6:0度
(2)图形模式:
先进入命令行模式,执行!START命令使电机处于使能状态,关闭命令窗口后就可以通过右下方的滑块操作各关节运动(先选中关节轴手动),按“复位”可回到“7”字状态。
3、电机参数修正
如发现关节电机转动方向反了,可通过修改对应电机的“true”“false”值来调节,另外还要根据实际使用的谐波减速器减速比设置对应电机的数值(除了电机6,我都设置为50)。完成设置后需重新编译并烧录软件。
DummyRobot::DummyRobot(CAN_HandleTypeDef* _hcan) :hcan(_hcan)
{motorJ[ALL] = new CtrlStepMotor(_hcan, 0, false, 1, -180, 180);motorJ[1] = new CtrlStepMotor(_hcan, 1, true, 50, -170, 170);motorJ[2] = new CtrlStepMotor(_hcan, 2, false, 50, -73, 90);motorJ[3] = new CtrlStepMotor(_hcan, 3, true, 50, 35, 180);motorJ[4] = new CtrlStepMotor(_hcan, 4, false, 50, -180, 180);motorJ[5] = new CtrlStepMotor(_hcan, 5, true, 50, -120, 120);motorJ[6] = new CtrlStepMotor(_hcan, 6, true, 10, -720, 720);hand = new DummyHand(_hcan, 7);dof6Solver = new DOF6Kinematic(0.109f, 0.035f, 0.146f, 0.115f, 0.052f, 0.072f);
}
4、电机PID参数调整
如在实际调试过程中,发现某些关节出现抖动,可通过命令调整该关节电机PID参数,直到抖动消失。可使用CLI-Tool下的“dummy0.robot.joint_1.set_dce_kd(_ki _kp _kv)”命令进行设置(joint_1表示1号关节,依次类推)。
七、其他
1、主要配件清单:
主要配件采购清单
2、关于3D打印
组装所需的3D打印件可以自己打印,也可以在淘宝找商家打印,除CNC外,需要打印的部件如下:
需3D打印部件
由于我选择的电机和谐波减速器尺寸与原底座不太匹配,固增加了底座的高度,这是加厚型底座3D模型:修正后底座3D模型