在之前的学习中我们已经讨论了如何根据给定轨迹对四旋翼进行控制,而控制的时候我们是采用线性化模型来简化相应的公式的,这在控制非高速情况下的无人机是适用的,但如果我们想要让无人机飞行地更加敏捷快速,那么还是要用非线性模型来控制我们的四旋翼无人机,那么这章我们就来探讨一下无人机的非线性控制。
上一章链接:
Robotics: Aerial Robotics(空中机器人)笔记(六):无人机运动规划
轨迹跟踪(Trajectory Tracking)
我们回顾下无人机在三维空间下的轨迹跟踪问题,轨迹应包含三维空间位置矢量和偏航角及其一二阶的导数:
并且我们想让无人机当前的位置和偏航角状态尽可能地快且平稳地跟轨迹接近,也就是其误差成指数性地衰减:
无人机的控制回路与相关公式如下所示,其控制主要是外环的位置控制回路以及内环的姿态控制回路构成,外环决定了输入 ,内环决定了输入 :
我们就下图来看非线性模型下输入 和 是怎么计算的。
首先我们需要一个推力向量 ,这个向量可以让无人机沿着轨迹的方向移动,同时需要抵消掉无人机在竖直方向(惯性系中的 )上的重力。又因为 是一个标量,实际上唯一可以施加推力的方向是无人机刚体系上的 方向,所以 是这个 向量在 方向上的投影。
但是我们知道, 向量和 向量在大多数情况下方向不是一样的,那么投影的话会导致推力不足的情况,也就是说只控制 是不够的 。所以我们得控制无人机的方向,让 向量和 向量对齐,那么就多了一个约束,这个约束就是旋转矩阵要使 向量指向 向量。 的表达式如上图所示,通过移项与PD控制律得到。
那么我们就要求解期望的旋转矩阵,我们已经知道了ZXY欧拉角的旋转矩阵的表达式,其期望旋转矩阵的表达式也与下式相同:
再把已知的 向量 , 向量和期望偏航角代入下面第一个公式,我们就可以解出对应的其它两个姿态角,同时就能得到期望旋转矩阵:
接下来通过下式得到旋转矩阵的误差,不是简单地通过旋转矩阵相减得到,而是计算从当前旋转到期望旋转所需的旋转幅度是多少:
这样子我们就可以通过非线性模型来控制无人机了。
但是事实上,我们不一定能控制无人机旋转到我们期望的旋转位置上,这需要满足特定的不等式:
Large basin of attraction告诉我们越小越轻的飞行器(其惯性越小),能实现更平稳地飞行,即使受到撞击,也能很快地平衡回来,同时也更加灵活。
最后
Robotics的空中机器人部分的课程就到此结束了,完结撒花!其中第四周的部分内容没有写,因为觉得对我用处不大,就只是稍微听听,没有作笔记。后面会继续跟进学习Robotics的其它内容,欢迎大家订阅此专栏~