微分平坦(differential flatness)

  推荐下自己的公众号——Joe学习笔记,公众号上会不定期更新一些文章,主要是自己平时学到的知识,内容包括自动驾驶、计算机视觉、人工智能和机器人技术。我会第一时间把文章更新在公众号上,欢迎大家订阅和分享!文章是从公众号搬过来的。
在这里插入图片描述
  现代控制理论中使用如下模型表示系统:
在这里插入图片描述
  其中x为状态变量,u为输入变量,y为输出变量。机器人控制方面f,g很多时候是x,u的非线性函数。常用的方法是通过泰勒一阶展开线性化后再对模型进行控制。往往只有在工作点附近才能很好的控制系统。近年来随着非线性控制的发展,提出了微分平坦(differential flatness)这一概念。一个简单的例子:二维平面上的圆在极坐标下只需一个参数表示,即进行了降维操作。
在这里插入图片描述
  微分平坦使用系统的输出和其导数对状态变量和输入变量进行表示,通过选择合理的输出变量可以对系统进行有效的降维。正式的定义为:对一些存在平坦输出的非线性系统,如果可以找到一组系统输出,使得所有状态变量和输入变量都可以由这组输出及其有限阶微分进行表示,那么该系统即为微分平坦系统。
  此特性可以在机器人进行运动规划的时候指导选择哪些输出变量进行规划,并将所有的轨迹约束条件都映射到平坦输出空间,并在输出空间中规划出最优轨迹,然后再上升回到初始的状态和输入空间中。这使得最优控制问题的维数降低到能在实际应用中实时计算的数目。
  以自动驾驶汽车为例,其运动学方程可以表示为:
微分平坦(differential flatness)_第1张图片
  选择其平坦输出为z=[X,Y]、输入u为速度和前轮转角,经过简单推导可以得出输入量与输出量的关系式为:
微分平坦(differential flatness)_第2张图片
  因此在规划轨迹的时候只需要规划x(t)和y(t)即可,将选定的平坦输出变量参数化为合适的时间函数:
微分平坦(differential flatness)_第3张图片
  这里beta(t)是基函数。基函数作为函数空间的一组基底,该空间的任何函数均可由这组基底的线性组合进行表示。基函数的选择有多种多样,如多项式函数、三角函数、B样条函数、贝塞尔函数等。通过对选定的平坦输出参数化之后,我们只需求解得到一组参数化的系数,即确定一组合适的平坦输出参数。根据微分平坦的性质可知,所生成的轨迹能满足非完整性等多种约束的要求,从而解决了多约束条件下的轨迹规划问题。
  另一个例子是四轴飞行器,简略介绍,四轴飞行器的输入为力F和三个力矩M,状态变量为位置、角度、速度和角速度:
在这里插入图片描述
  常用的平坦输出为位置和yaw:
在这里插入图片描述
  因此只需要规划4个平坦输出即可,和无人车一样,将选定的平坦输出变量参数化为合适的时间函数,常用的基函数为多项式函数和贝塞尔函数。

参考文献:
[1]马川. 基于多项式理论智能车辆轨迹规划[J]. 农业装备与车辆工程, 2013, 51(3):17-21.
[2]黄敏. 基于微分平坦理论的四旋翼无人机轨迹规划的研究[D]. 2013.
[3]Mellinger D , Kumar V . Minimum snap trajectory generation and control for quadrotors[C].

你可能感兴趣的:(机器人技术)