机器人的运动学模型
对于差速转向的机器人:

其运动学模型如下:
混合控制的概念
如欲控制机器人的航向:
一个方程两个变量,无法解算。这是由于航向控制与速度控制存在耦合,因此不能单独控制航向,还需要同时控制速度:
解算出:
在离散状态下,混合控制的表达式为:
其中 为采样时间。
一种开环的轨迹规划策略

考虑由直线与圆弧构成的轨迹。从一个位姿过渡到另一个位姿时,首先经过一段圆弧,然后沿直线运行,在接近目标位姿时,再沿圆弧接近目标位姿。
首先设定转弯半径R。由第一个位姿的航向角作垂线,取包含第二个位姿的一半,在这条垂线上以半径R作圆。同理,由第二个位姿的航向角作垂线,取垂线包含第一个位姿的一半,以半径R作圆。最后连接两个圆的公切线,沿第一个圆弧→公切线→第二个圆弧运行,完成机器人的路径规划。根据经验值设定运行的速度,根据路径和速度,计算出运动的时间,与路径相结合,得到轨迹。
设R=1. 从(0,0,0)运动到(5,5,pi/2),根据以上的轨迹规划方法,先沿圆弧运动pi/4,再沿直线运动,再沿圆弧运动pi/4,最终到达目标位姿。
转弯半径, ,代入W=0.4,则有.
在matlab中编写程序:
代入simuink中仿真:

得到的结果是:

观察可以发现,由于是开环控制,导致路径规划的精度不高,y坐标略超过了目标位置,而x坐标略不足目标位置。
平滑轨迹控制方法
首先通过机器人工具箱生成平滑轨迹。这里只使用了x,y坐标来描述机器人的位置。而机器人的姿态将通过初始速度和末尾速度给出。并利用混合控制的方法控制机器人。下例是控制机器人从(0,0,0)→(0,0,pi/2)位姿变换:

说明该轨迹规划成功。
跟踪一条线的轨迹
假设有一个摄像头,传回了图像到计算机,计算机经过解算,拟合出了一条直线,欲控制机器人跟踪这条直线:

首先将该直线经过透视变换转换到俯视图。在俯视图底部建立地面坐标系。假设直线的方程可以写为::

假设机器人以一个恒定的基础速度运动,那么只需要控制两轮差速就可以控制小车的方向。使用两个控制器来调节机器人的运动方向。一个控制器用来控制机器人靠近直线,另一个控制器用来控制航向角与直线平行。
设机器人在地面坐标系的坐标为,机器人与直线的距离定义为:
机器人航向角与直线朝向的偏差定义为:
两个控制器都选用比例控制器:
「解释:相当于两个控制器争夺小车的方向。如果小车距离直线远,则距离d争抢成功,对应小车朝向直线运行。如果小车距离近,则朝向争抢成功,对应小车沿着直线运行。」
在差速转向的小车模型中,控制器的输出u决定转弯半径,也就是两轮的差速。将两轮差速与基准速度做和差即得到控制信号。
搭建Simulink仿真:

将数据导出到工作区,然后绘制轨迹,将轨迹与参考直线对比:

更换机器人的初始位置:


可以看出从各处出发的机器人都能很好地跟踪轨迹,说明设计正确。