
机器人关节模块上电,第一步先做零位标定
拿到这套机器人动力硬件,别急着写控制算法,先把单个关节的零位标定跑通。这步大概半小时,能省掉后面一半莫名其妙的抖动。
这是英汉思动力旗下那套智能运动硬件,我这边是借实验室的一台,前后折腾了大概两周。它把电机、减速器、编码器、驱动器全塞进一个壳子里,外面只留电源口和通信口。先解释几个词,不然下面没法写。关节模块就是机器人身上会转的那个肩膀或者膝盖。减速器是一组齿轮,作用是把电机的高转速换成大力气。编码器是装在轴上的一把尺子,记录这根轴转了多少度。上位机是电脑上那个用来发指令、看数据的软件,不是网页。
接线之前,先想清楚两件事
第一件,先空载。别一上来就把它装到机械臂上,装上去以后只要转错一次方向,撞坏的就是你自己的结构件。用台钳夹住,或者找块重一点的底板拧上就行。
第二件,确认电源。壳子上一般印了额定电压和峰值电流,按那个配,别顺手拿一个适配器就插。我第一次就是电源功率不够,一给指令就掉压重启,坐在那儿折腾了四十分钟才反应过来。
接线顺序是 先接通信线,再上电。通信线是电脑和关节之间说话的通道,常见的是 USB 转 CAN 或者 USB 转串口。CAN 总线两端要各接一个 120 欧姆的终端电阻,我第一次没接,上位机里设备列表一直是空的,还以为是驱动没装。
四步跑通第一次标定
1. 通信线接好,再插电源。关节上的指示灯会亮,一般是慢闪,表示它在等连接。灯完全不亮就先回去量电源。
2. 打开上位机。第一次要装驱动,装完点 扫描,设备列表里会出现一个设备编号和固件信息。点 连接,界面上会多出当前角度、当前电流、温度这几栏。角度那一栏显示的是编码器原始值,不是你熟悉的度数,先不用管。
3. 找 零位标定,有的软件里写的是 Set Zero。手动把关节转到机械零位,壳子上通常有两条对齐的刻线。转到位以后点一下按钮,当前角度会变成 0。这一步的意思是告诉控制器,这儿就是零点,以后所有角度都从这儿算起。
4. 跑一条低速轨迹。在 轨迹测试 里选正弦模式,幅值我这边用的是正负 10 度,频率 0.2 赫兹,也就是五秒转一个来回。点 开始,角度曲线和电流曲线会一起出来。
之前看过一篇运动控制的教学,里面有句话写得很直白,机器人动力学就是让机器人知道"用多大力气做什么动作"。角度曲线只说明它动了,电流曲线才说明它费了多大力气。
接下来是踩坑的部分,三个地方最容易卡住。
第一个,上电以后电机嗡嗡响、壳子发热,关节就是不动。多半是零位没标好,或者 方向 参数反了。零位重标一次,再看方向是正还是负。
第二个,一给指令就报过流或者过温,软件直接断开。先空载再试一次,还是报就把限流往下调。这个参数一般叫 电流上限,调小一点,先让它动起来,再谈精度。
第三个,曲线看着像正弦,但毛刺特别多,或者相位明显滞后。一般是采样率太低。上位机默认采样率有时候只有几十赫兹,跑 0.2 赫兹的轨迹够用,跑快一点就不够,提到几百赫兹再看。
标定跑通以后,这个关节在你手里才算是个可控的东西。以前我总觉得硬件调参是玄学,现在想法变了一点,大部分玄学其实是零位和方向这两个基础项没弄干净。
往后看,我的判断是这类消费级关节模块会往开箱即用走,零位、方向这些参数出厂就配好,插上就认。现在还是得自己接线、自己标零位、自己盯曲线。
学完这个,下一步可以试两件事。一是接第二个关节,做双关节联动,让它们同时动,看两条曲线的时间差。二是用 Python 把数据读出来存成表格。我 Python 也就用了一个月,写个十几行的串口读取脚本够用,存成 csv 再用顺手的工具画图,比在上位机里截图强多了。
物界前沿