3.5.1 机器人底座需求
要构建机器人底座,需要满足以下需求:
·一个坚固的底盘,包含一组具有良好摩擦性能的轮子。
·强大的驱动器,可以帮助携带所需的有效载荷。
·驱动控制。
如果读者计划建立一个真正的机器人底座,那么可能还需要考虑其他因素,例如电源管理系统(能够在预期续航时间内保障机器人有效运行)、必要的电气和嵌入式特性以及机械动力传输系统。实际上,ROS能够帮助读者更好地实现上述需要。为什么?这是因为基于ROS能够对真实工作的机器人进行仿真(更准确地说,是模拟。但如果读者调整一些参数并应用实时约束,则肯定能够以更高的逼真度进行仿真),需要考虑的因素及实现如下所示:
·底盘和轮子可以用URDF中的物理特性定义。
·驱动器可以使用Gazebo-ros插件定义。
·驱动器控制可以基于ros_controllers定义。
基于上述考虑,如果要构建自定义机器人,首先我们要考虑机器人的规格参数。
1.机器人底座规格参数
我们的机器人底座可能需要携带一个机器人手臂和一些额外的负载。此外,还应确保它是机电稳定的,使得它有足够的扭矩拉动自己的负载以及额定负载,并以较少的顿挫和边际位姿误差顺利地平滑移动。
所谓位姿包含了物体相对于世界/地球/环境的位置和旋转(姿态)坐标。
对于我们要构建的机器人底座而言,具体规格参数为:
·尺寸:600×450×200(长×宽×高,单位为毫米)。
·类型:四轮差分驱动机器人。
·速度:最高1米/秒。
·载荷:50千克(包含机械臂)。
2.机器人底座运动学模型
我们的机器人底座只有两个自由度:沿x轴平移和沿z轴旋转。由于方向盘固定,因此机器人不能在y轴上瞬时移动。因为机器人只能在地面上移动,所以它也不能在z轴上移动。此外,沿着x轴或y轴旋转意味着机器人要么向左或右倒下,要么向前或后倒下,因此这也是不可能的。
如果是麦卡纳姆轮系(又称为瑞典轮)的情况下,机器人底座将有3个自由度,可以在x和y轴构成的平面上万向平移,并能沿z轴旋转。
因此,我们的机器人运动学模型如下所示:
其中,x′、y′和θ′表征了机器人的最终位姿,ω表征了机器人的角速度,δt表征了时间步长。这就是所谓的正向运动学方程,因为我们是根据机器人的尺寸和速度来确定机器人的位姿的。
上述公式中的未知量为:
R=l/2×(nl+nr)/(nr-nl)
其中,nl和nr为左右两个轮子的编码器计数值,l是轮子的轴长:
ICC=[x-Rsinθ,y+Rcosθ]
同样可以得到:
ωδt=(nr-nl)step/l
其中,step是每个编码器刻度中轮子所覆盖的距离。