机器人运动控制与语音控制搭建指南
1. 机器人运动控制基础
1.1 舵机设置
在控制机器人运动时,舵机的设置非常关键。例如,当我们期望舵机延伸到 175°,但实际只能到 165°时,末端执行器的位置就会与预期不符,动画可能会在舵机停止移动后仍认为在运行,这显然是不合适的。完成设置后,l2 大腿和小腿的舵机代码如下:
l2f: new five.Servo({
pin:22,
invert: true,
offset: -2,
startAt: 180,
range: [25, 165]
}),
l2t: new five.Servo({
pin:21,
invert: true,
offset: 4,
startAt: 180,
range: [21, 159]
})
当为所有 18 个舵机设置好偏移量和范围后,就可以让机器人动起来了。
1.2 行走难题
让机器人行走并非易事。若不使用 Animation()
类来为机器人设置动画,会是一项艰巨的任务。有人可能认为让机器人前进只需让末端执行器接触地面,然后将基节向后摆动,但这样会使末端执行器绕基节舵机的旋转中心做圆周运动,各条腿的运动相互干扰,导致行走动作非常不流畅。
为解决这个问题,我们需要让胫骨前后移动,使末端执行器沿与机器人移动方向平行的直线运动。同时,当胫骨前后移动时,末端执行器会相对地面上下移动,所以还需要让大腿上下移动来进行补偿。所有 18 个舵机必须协同工作,才能保证机器人的动画流畅。