ArduPlane——ArduPilot—— 框架概述

版权声明:本文为博主原创博文,未经允许不得转载,若要转载,请说明出处并给出博文链接      

 

      最近开始学习下Ardupilot里固定翼Arduplane的相关知识,一些关键基础的拿出来学习分享,以便回顾知新!

      首先来一张arduplane的代码框架图,以便梳理代码流程,直观容易理解(连代码库以及cpp文件都标记的如此清楚,开源 的真是越来越666了)。

           

框架中几个主要的步骤:

ahrs_update:调用EKF获取最新的传感器数据并对姿态和位置进行估计。

read_radio : 读取自动驾驶仪的输入并计算出适当的姿态或位置目标。

navigate:调用L1控制器和TECS(全局能量控制系统)控制器(见下文)来提供位置目标给roll、pitch、throttle控制器。

update_flight_mode : 将L1控制器的roll和pitch目标复制给nav_roll_cd和nav_pitch_cd这两个全局变量。

stabilize :执行较低级别的roll,pitch和throttle控制器。

set_servos : 将来自roll,pitch和throttle控制器的输出发送到相应的伺服,作为伺服的输入。

 

ArduPlane  控制器

如下图所示,Plane有2个较为上层的控制器和4个较为底层的控制器。

                       

1.    L1控制器将起点和目的地(每一个都用纬度和经度来表示)转换成横向加速度,以使飞机沿着从起点到目的地的路径水平飞行。想要继续了解L1导航算法,可以看L1 control——ArduPilot——更新航点update_waypoint(一)&&L1 control——ArduPilot——更新航点update_waypoint(二)&& L1 control——ArduPilot——更新圆圈update_Loiter这三篇博客。

2.    TECS(全局能量控制系统)控制飞机的动能(即速度)与其势能(即高度)之间的交换。它的输入是一个目标速度和高度,它试图通过计算目标throttle和pitch值,然后传递到下面的pitch和throttle控制器来达到这些目标。想要了解更多的TECS可以去看TECS—ArduPilot—代码框架理解

 

本文只是提供一个固定翼的代码框架,便于梳理代码流程,进一步学习

 

相关ArduPilot的学习博客链接:

飞控博客列表

  • 5
    点赞
  • 35
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值