ROS机器人项目开发11例(原书第2版)
上QQ阅读APP看书,第一时间看更新

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是每个编码器刻度中轮子所覆盖的距离。