基于全向轮机器人的贝塞尔曲线轨迹生成算法

2014-04-29 11:19:37高柳
中国新通信 2014年14期

高柳

【摘要】 全向轮底盘可以实现平面内三个自由度的运动,,灵活性强,易于控制。而贝塞尔曲线在曲线规划路径时有,不仅计算简单,形态多样,且其控制点控制端点切向的能力使两端曲线之间的衔接非常容易实现。本算法利用贝塞尔曲线参数的性质,近似算法实现底盘运动过程中的轨迹控制,大大减少了控制芯片的运算量,提高芯片控制能力,在实际试验中取得了很好的效果。

【关键词】 全向轮 贝塞尔曲线 轨迹生成算法

1 贝塞尔曲线简介

贝塞尔曲线最初是由发过雷诺汽车工程师Pierre B6zier设计开发的。它的控制点的作用像磁铁一样,在某个方向上拉拽曲线并影响曲线弯曲的方式[1]。当两段曲线衔接时,通过控制点来控制连接点切线方向相同便可实现圆滑的连接。

对于点四个控制点控制的贝塞尔曲线,其参数方程为:

当参数t从0变化到1时,对应曲线上的点也从变化到。图1是用matlab对t进行的分析计算,其中蓝色折线是四个控制点的连线,红色折线是将t在之间均匀取值时,各个t值对应点的连线。从图中可以看出,当t等间距取值时,对应曲线的线段长度也近似相等。事实上,t的值超过的范围时对应的点仍在该三次曲线上,相当于是这条曲线的延伸。

2 轨迹生成算法

2.1控制条件

在控制全向轮底盘机器人进行行走时,可以将速度方向分解为切向速度和法向速度。通过控制切向速度来控制机器人行走的速度,控制法向速度以调节法向的偏差,这样就可以实现曲线行走。切向的速度可以直接赋值,而法向偏差需要通过自身坐标计算得出。由于解三阶的贝塞尔曲线需要解三次方程,计算复杂,对于芯片和程序来说都是很大的压力。通过利用底盘行走的连续性和参数t连续的特点,可以近似求出当前位置对应的t,得到法向偏差。

2.2当前位置计算

记四个控制点坐标为,,,。是行走路径的起点,开始机器人位于附近。 在行走过程中,需要不停地校正偏差,对于程序来说,可通过周期性的计算来实现。如图2所示,对于第一个周期,默认当前点对应的t为0,即对应点,然后依次通过当前点计算出下一点。在计算下一点时,取(t+dt)点作为参考点,和当前点的连线作为近似切线,其中dt是一个非常小的常量。由于dt非常小,这段曲线可看作直线来计算。假设机器人当前的位置为N(由定位系统测得),做垂直切线于点,点到点的长度对应了dt,则点到点的长度对应了,其中k为的长度除以到的长度。这样便可求出t1的值,即求出t1点:

由于参数t具有连续性,不论机器人超前或者落后参考点,都可以得到正确的结果。而且因为t并不局限于0~1之间,在曲线端点超出部分也可以正确计算。为了提高精度,可将求得的点从新作为,再次计算得到新的。这样一个周期计算两次,可极大提高容差。

2.3偏差调节

求出当前点对应的t和切线方向后,很容易计算出法向偏差。通过pid调节便可使机器人沿着曲线行走。PID控制器是一种线性控制器,它根据给定值与被控参量(反馈量)构成控制偏差。将偏差的比例、积分、微分通过线性组合构成控制量,对被控对象进行控制[2]。偏差可通过向量运算使其带有符号,在pid调节中满足正负偏差的要求。

3 实际实验

在实际实验中,采用了dsp2812作为主控芯片,主频150MHz。通过双码盘加陀螺仪定位,在程序控制上每5ms计算一个周期。行走时机器人在切向的最高速度达到3m/s。通过实验记录的法向偏差如表1所示,实际路径和规划路径基本符合,法向偏差的大小在7cm以内,且有波动现象。

参考文献

[1] 孙式河,王海隼,岳丈静. 基于局部性原理的可变步长Bezier曲线生成算法[J]. 计算机光盘软件与应用,2011(7)

[2] 王豪. 水轮机调节PID控制算法简介[J]. 河南科技,2013(15)