无人机知识:如何让飞行器飞到指定点

军用/航空电子

366人已加入

描述

  本文从工程代码的角度入手,简单聊聊飞控的高级飞行模式如何设计。

  前提是这里假定底层的控制器已经设计好,包含速度控制器-》高度控制器-》姿态控制器。常见的飞控的手动操作飞行模式为姿态、定高、定点,要满足以上的飞行模式,则至少需要做到速度控制器部分,即摇杆作为速度方向目标值,控制飞行器定速飞行以及不控杆情况下的定点悬停。

  然而,要实现飞行器的自主飞行,一般由地面站或APP给飞控发送目标位置的经纬度,那如何让飞行器飞到指定点呢?

  这里以返航模式举例,引出位置控制器的必要性以及不同控制器的差异性。

  返航模式

  要想让飞控完成返航功能,则必不可少的需要一个位置控制器,即根据当前位置和目标位置(这里指的是home点),得到速度目标值,从而进入下一级的速度控制器。

  最简单的位置控制器:

  根据当前位置和目标位置的经纬度,分别对经纬度求误差,转换成距离后,乘以一定的比例系数K,从而转换成Vn和Ve的速度目标值,判定当前位置和目标位置的距离,从而判定是否已经完成返航,到达home点上空,进行自主降落即可。

  这个方法有什么问题?

  一句话概括就是没有考虑轨迹跟踪的问题,即是否按照航线飞行。

  示意图如下

  

飞行器

  假设在点1处,进入返航状态,则应该是以黑线的状态飞往home点。如果由于风力的影响,飞行器被吹到了点2处,以上述的返航设计方法,则会以蓝色箭头的方向飞往home点。虽说不影响返航功能,但是这种不压线的飞行,在后续的自主飞行设计中也会受到影响,所以这种简单的位置控制势必会影响后面自主航线飞行的性能。

  改进:

  位置控制器的输入是目标点的经纬度,输出的是Vn 、Ve方向的目标速度,作为下一级速度控制器的输入。与之前不一样的地方在于,引入了垂直航线的距离,通过这个距离控制飞行器压线飞行。

  步骤:

  Ø 根据当前点和目标点的经纬度,得到两点之间的距离;

  Ø 计算当前点和目标点的航向角;

  Ø 根据距离和航向角,计算出沿着目标方向和垂直方向的距离;

  Ø 垂直方向的距离用来判定飞行轨迹是否压线准确;

  Ø 沿着目标的距离以及补偿的垂直的距离通过一个系数,将距离信息转换到速度信息,再分解到NE坐标系,得到Vn、Ve的速度目标值。

  设计好位置控制器后,这时实现自主飞行就非常简单了,只需给飞控发送目标点的经纬度即可,而航点飞行的策略,则可自由添加,比如到点悬停多长时间,要不要对准机头方向,高度要不要上升或下降等等。

  鉴于好久不更新了,先更新一篇,讲一个小问题,这个问题相信很多人在实现功能的时候并未注意过。笔者发现有关轨迹跟踪的论文文章比较多,大多理论为主,看的云里雾里,但其实要解决的问题很简单,有兴趣深挖的人可以搜寻有关l1导航的资料,px4开源飞控中,固定翼有用到。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分