使用Arduino IDE校准舵机
Last updated
Last updated
校准舵机对于机器人的正常运行至关重要。
预组装版本的机器人应该已经正确安装了腿,但没有进行微调校准。
校准舵机前请确保您已经上传了OpenCat主程序固件 。
在校准之前,通电前我们不知道舵机将指向哪里。 所以如果躯干连接上腿部部件,腿会旋转到随机角度,并可能与机器人的身体或其他腿碰撞并被堵转。 如果一个舵机堵转了很长时间,它可能会损坏。
Nybble 和 Bittle 的校准原理相同。
进入校准模式需要做好以下准备:
1. 全部舵机线路与主板连接好
2. 电池电量充足
3. 连接好USB适配器并能正常通信
如果您使用未组装的套件构建机器人,请在校准之前不要安装头,腿组件。 您还需要安装电池并长按电池上的按钮为机器人供电。
校准分为三个步骤:
进入校准模式,使舵机自由转动到中位;
安装各个肢体到校准位;
通过串口监视器微调关节修正量。
检查所有舵机接头插入的位置和方向,您必须把舵机和外接电池都插上NyBoard后才可以正确校准。 在我们安装腿部组件之前,舵机的输出轴应该处于零状态(转到中位然后停下)。
在串口监视器输入c
来进入校准模式,舵机应该迅速地依次转到中位然后停下,同时齿轮箱会发出一些声响。由于舵机的起始位置各不相同,有些舵机的转角会大一些。在串口监视器会打印出一列表:
第一行是关节序号,第二行是它们的修正量,第三行是刚刚输入的校准指令。
Index
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Offset
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
初始的关节修正量是 “-1” 或 “0”,需要测定后修改。
模型舵机用电位器作为位置环反馈的传感器。在保持某目标角度时,可能会有轻微抖动。舵机厂可以通过调整PID参数来抑制这种抖动,但随着电位器触点的磨损,这种“帕金森”症状会加重,但主要影响静态姿势的保持,在动态中并不明显。高端舵机可能会用贵上10倍的成本来解决这个问题,对我们而言,更换老化的舵机是更加经济的方案。
输入‘c’指令后,所有舵机都转到了中位,就可以安装之前组装好的舵机关联部件了。它们基本上按照相互垂直的角度互相连接,校准姿势如下图所示:
如果您使用未组装的套件搭建机器人,请按照上方图片安装舵机相关部件,并尽量保证它们相互垂直(大腿垂直于躯干, 小腿垂直于大腿)。 详细请参考用户手册中的相关章节:
Nybble
Bittle
把舵机关联部件直插到舵机输出轴上,这过程中不要转动舵机输出轴。
关节角使用本体极坐标系,以逆时针转动为正。从机身左侧看,关节逆时针转动定义为正方向。
对于Nybble头的俯仰关节例外,因为我们习惯说“抬头”,直觉上是正方向,但从左侧看是顺时针转动。
但从机身右侧看,转动方向的正负性刚好相反。
如果我们仔细观察舵机输出轴,可以发现它上面有一定数量的齿,这些齿可以防止输出轴在转动时相对摇臂滑动。在我们的舵机上,输出轴的圆周被分隔成25个齿,每个齿间隔14.4度(偏移 -7.2~7.2 度)。这意味着我们安装关节时不可能绝对垂直,只能尽可能地接近垂直。
校准的指令格式(参考串口协议)是cIndex Offset
,Index是舵机编号, Offset是校准修正量。注意Index和Offset之间有空格。 机器人舵机编号如下图所示:
比如:
c8 6
表示给8号舵机+6度的修正量。对于每个舵机都需要进行这样的校准以使各部位转动到校准位。
c0 -4 表示给0号舵机-4度的修正量。
修正量的分辨率是1度,不要使小数。
如果您发现需要的修正量的绝对值大于9度,那说明您在安装肢体时不够靠近校准位,这会导致该关节的有效行程不对称,在某一侧的可到达角度范围变小。把这个肢体取下来,转一个齿的角度重新安装,就可以得到一个方向相反,但是绝对值更小的修正量。
比如,如果您必须使用 -9 作为校准值,请将肢体取下,旋转一颗牙齿,然后再装回去。 新的校准值应该在 5 左右,即它们的绝对值总和为 14。在重新安装时,避免旋转舵机的输出轴。
找到可以使肢体达到零状态的最佳偏移量。 这是一个反复试验的过程。
校准后,记得要输入s
来保存修正量,否则程序重启后它们就失效了。您甚至可以每校准一个舵机就保存一次。
实际测量时,我们的观测会由于透视关系而产生偏差,这也是为什么我们在读直尺的刻度时要尽量在尺的上方平视。
在校准机器人的关节时,保持平视也特别重要,所以我提供了“L”形的关节校准器辅助参考。按先调4个肩关节(8~11)后调4个膝关节(12~15)的顺序依次校准,目标是使校准器的三个尖角同时对准舵机螺丝或脚尖孔洞的圆心。在校准每个关节时,要从圆心-尖角的延长线上平视观察,校准器的三角窗口边应该和小腿上的三角窗口边平行。
校准后,可在串口监视器输入d
或kbalance
验证效果。机器人会在对应的休息和站立姿势间切换,它的四肢应该是前后、左右对称的。
您可能需要进行几轮校准才能达到最佳状态。
试着了解机器从如何在步行过程中保持平衡。如果要向机器人身体上添加新部件,请尽最大努力在脊柱周围对称分布其重量。也可以前后滑动电池座,以找到最佳的平衡位置。由于电池的前半部分较重,必要时您也可以反向插入电池,以使重心更多地向后移动。
如果重心发生变化,您可能需要重新校准。
请不要强行为机器人增加过重的物品,可能导致舵机扫齿或卡住。