APM飞控系统详细介绍

合集下载

apm飞控入门教程

apm飞控入门教程

Apm 飞控较为详细的入门教程最近发现很多模友在看了泡泡老师的视频有很多细节没有看懂在群上提问,为了能使刚用上apm的模友一步到位,再来一个文字教程帮助你们快速使用。

在此也感谢apm2.8交流群中的冷风群主提供的教程~废话不多说了硬件安装1、通过USB接口供电时,如果USB数据处于连接状态,APM会切断数传接口的通讯功能,所以请不要同时使用数传和USB线连接调试APM,USB接口的优先级高于数传接口,仅有供电功能的USB线不在此限;2、APM板载的加速度传感器受震动影响,会产生不必要的动差,直接影响飞控姿态的计算,条件允许请尽量使用一个减震平台来安装APM主板;3、APM板载的高精气压计对温度的变化非常敏感,所以请尽量在气压计上覆盖一块黑色海绵用来遮光,以避免阳光直射的室外飞行环境下,光照热辐射对气压计的影响。

另外覆盖海绵,也可以避免飞行器自身气流对气压计的干扰。

使用建议对于初次使用APM自驾仪的用户来说,建议你分步骤完成APM的入门使用:1、首先安装地面站控制软件及驱动,熟悉地面站界面的各个菜单功能;2、仅连接USB线学会固件的下载;3、连接接收机和USB线完成APM的遥控校准、加速度校准和罗盘校准;4、完成各类参数的设定;5、组装飞机,完成各类安全检查后试飞;6、PID参数调整;7、APM各类高阶应用地面站调试软件Mission Planner安装首先,MissionPlanner的安装运行需要微软的Net Framework 4.0组件,所以在安装Mission Planner之前请先下载Net Flamework 4.0并安装安装完NetFramework后开始下载Mission Planner安装程序包,最新版本的Mission Planner可以点击此处下载,下载页面中每个版本都提供了MSI版和ZIP版可供选择。

MSI 为应用程序安装包版,安装过程中会同时安装APM的USB驱动,安装后插上APM的USB 线即可使用。

APM飞控源码讲解

APM飞控源码讲解

APM飞控系统介绍APM飞控系统是国外的一个开源飞控系统,能够支持固定翼,直升机,3轴,4轴,6轴飞行器。

在此我只介绍固定翼飞控系统。

飞控原理在APM飞控系统中,采用的是两级PID控制方式,第一级是导航级,第二级是控制级,导航级的计算集中在medium_loop( ) 和fastloop( )的update_current_flight_mode( )函数中,控制级集中在fastloop( )的stabilize( )函数中。

导航级PID控制就是要解决飞机如何以预定空速飞行在预定高度的问题,以及如何转弯飞往目标问题,通过算法给出飞机需要的俯仰角、油门和横滚角,然后交给控制级进行控制解算。

控制级的任务就是依据需要的俯仰角、油门、横滚角,结合飞机当前的姿态解算出合适的舵机控制量,使飞机保持预定的俯仰角,横滚角和方向角。

最后通过舵机控制级set_servos_4( )将控制量转换成具体的pwm信号量输出给舵机。

值得一提的是,油门的控制量是在导航级确定的。

控制级中不对油门控制量进行解算,而直接交给舵机控制级。

而对于方向舵的控制,导航级并不给出方向舵量的解算,而是由控制级直接解算方向舵控制量,然后再交给舵机控制级。

以下,我剔除了APM飞控系统的细枝末节,仅仅将飞控系统的重要语句展现,只浅显易懂地说明APM飞控系统的核心工作原理。

一,如何让飞机保持预定高度和空速飞行要想让飞机在预定高度飞行,飞控必须控制好飞机的升降舵和油门,因此,首先介绍固定翼升降舵和油门的控制,固定翼的升降舵和油门控制方式主要有两种:一种是高度控制油门,空速控制升降舵方式。

实际飞行存在四种情况,第一种情况是飞机飞行过程中,如果高度低于目标高度,飞控就会控制油门加大,从而导致空速加大,然后才导致拉升降舵,飞机爬升;第二种情况与第一种情况相反;第三种情况是飞机在目标高度,但是空速高于目标空速,这种情况飞控会直接拉升降舵,使飞机爬升,降低空速,但是,高度增加了,飞控又会减小油门,导致空速降低,空速低于目标空速后,飞控推升降舵,导致飞机降低高度。

详细的APM飞控调试资料

详细的APM飞控调试资料

调整ArduCopter 参数如果你使用的机身不是官方ArduCopter 套件,你可能需要改变一些PID设置(PID 是比例-积分- 微分的简称,是一个标准的控制方法。

更多的资料在这里)。

在此页底部的有一个PID的全面的指导.你可以在任务规划器的配置选项卡中以交互方式调整PID:基本性能故障排除•我的多旋翼在稳定模式下缓慢震荡(大幅运动): 降低 STABILIZE_ROLL_P,STABILIZE_PITCH_P.•我的多旋翼在稳定模式下***震荡(小幅运动): 降低 RATE_ROLL_P, RATE_PITCH_P。

•我的飞机过于迟钝:降低 RATE_ROLL_P,RATE_PITCH_P,和/或增加 STABILIZE_ROLL_P, STABILIZE_PITCH_P.•我调整了 Rate_P,还是不行:也许你的 STABILIZE_P gain 增益过高。

降低一点(见上文),并再次尝试调整 RATE_P.•我的飞机在起飞时向左或向右旋转15°:你的电机不直或着电调没有校准。

扭转电机,直到他们都直了。

运行ESC校准程序。

•激烈飞行后我的飞机偏向一方 10 - 30°:如该文所述,焊接 IMU 的滤波器U。

你可以在 system.pde 里调整漂移校正。

如果需要,大概调高0。

5.此外,降落30秒,然后继续飞行。

•我的飞机无法在空中保持完全静止:确保在飞机的重心在正中心。

然后在水平面上运行水平命令(保持关闭状态15秒,调用该功能).你也可以在无风的环境(重要)使用自动微调模式飞行。

任何风将导致四轴旋转180度后你的修改产生相反的作用。

你可以使用遥控俯仰和横滚微调,但记得在用配置工具设置遥控时,要把它们放回中心.我不喜欢使用发射微调,但永远不要使用偏航微调.(四轴也很容易受到紊流的影响。

他们将需要不断的修正,除非你安装一个光流传感器。

某天……)•我的飞机飞行很好,但后来在悬停时一条电机臂奇怪地下降了:你的电机坏了。

APM飞行模式解说

APM飞行模式解说

APM飞行模式注解ELEV是俯仰或升降 1通道对 PitchAILE是横滚或副翼 2通道对 RollTHRO是油门 3通道对 ThrottlRUDD是方向 4通道对 Yaw红正黑负白信号,红正棕负橙信号Pitch 俯仰 Roll 横滚 Throttl 油门 Yaw 方向1、稳定模式Stabilize稳定模式是使用得最多的飞行模式,也是最基本的飞行模式,起飞和降落都应该使用此模式。

此模式下,飞控会让飞行器保持稳定,是初学者进行一般飞行的首选,也是FPV第一视角飞行的最佳模式。

一定要确保遥控器上的开关能很方便无误地拨到该模式,应急时会非常重要。

2、比率控制模式Acro这个是非稳定模式,这时apm将完全依托遥控器遥控的控制,新手慎用。

3、定高模式ALT_HOLD定高模式(Alt Hold)是使用自动油门,试图保持目前的高度的稳定模式。

定高模式时高度仍然可以通过提高或降低油门控制,但中间会有一个油门死区,油门动作幅度超过这个死区时,飞行器才会响应你的升降动作当进入任何带有自动高度控制的模式,你目前的油门将被用来作为调整油门保持高度的基准。

在进入高度保持前确保你在悬停在一个稳定的高度。

飞行器将随着时间补偿不良的数值。

只要它不会下跌过快,就不会有什么问题。

离开高度保持模式时请务必小心,油门位置将成为新的油门,如果不是在飞行器的中性悬停位置,将会导致飞行器迅速下降或上升。

在这种模式下你不能降落及关闭马达,因为现在是油门摇杆控制高度,而非马达。

请切换到稳定模式,才可以降落和关闭马达。

4、自动模式 AUTO自动模式下,飞行器将按照预先设置的任务规划控制它的飞行由于任务规划依赖GPS的定位信息,所以在解锁起飞前,必须确保GPS已经完成定位(APM 板上蓝色LED常亮)切换到自动模式有两种情况:如果使用自动模式从地面起飞,飞行器有一个安全机制防止你误拨到自动模式时误启动发生危险,所以需要先手动解锁并手动推油门起飞。

起飞后飞行器会参考你最近一次ALT Hold 定高的油门值作为油门基准,当爬升到任务规划的第一个目标高度后,开始执行任务规划飞向目标;如果是空中切换到自动模式,飞行器首先会爬升到第一目标的高度然后开始执行任务6、悬停模式Loiter悬停模式是GPS定点+气压定高模式。

apm飞行操作

apm飞行操作

001--APM开机和校准首次飞行检查列表下面是在飞场的一些基本检查:地面校准将你的发射器模式设为"手动"。

这是启动系统的安全模式,它允许系统通过摆动舵机来指示它们的状态。

地面启动时将有一系列的舵机摆动(开始时第一次,中途第二次,结束时第三次)当你在飞场启动飞控时,你应当将飞机*尽可能水平*(飞行姿态,所以如果尾巴是拖着的,抬起尾巴)放置在地面上,保持静止不动,直至三个彩色LED停止闪烁(大约30秒)。

这意味着陀螺仪已经完成校准,飞机可以起飞了(假设GPS已经锁定)。

如果你的飞机尾部擦地,那么应该在校准时将尾部抬起至平飞状态。

在地面启动结束之后,你还要等待 GPS 锁定才能飞行。

如果你没有等到 GPS 锁定,那么返航位置将设置错误,并且气压高度计校准也将错误。

通常应该在2分钟之内锁定。

如果你使用 MediaTek 模块,模块上的蓝色的LED会在等待锁定过程中闪烁,在锁定后常亮。

在这之后,APM 上的红色LED将停止闪烁并保持常亮。

如果 MediaTek 上的蓝色 LED 常亮,而 APM 上的红色 LED 却一直闪烁,按下 APM 上的重启按钮。

在重启之后,红色 LED 应该保持常亮。

每次飞行前: 起飞之前,将飞机拿在手中,切换到增稳模式,然后前后左右倾斜飞机,确认控制翼面正确摆动(让飞机返回水平飞行)。

这将确保你没有意外的移动拨动开关到错误位置,否则舵机将反向。

在每次飞行之前都应该检查一遍,就像你用发射器检查所有的控制翼面一样。

没有做该检查是炸机的头号原因。

第一次飞行强烈建议你切换到增稳模式或线操纵飞行模式,观察控制翼面的行为。

在你俯仰或侧倾时,翼面应该让飞机回到水平。

除非你根据你的飞机调整了配置参数,否则不建议使用除手动飞行之外的任何飞行模式。

第二次飞行第二次飞行时, 使用CLI将第三飞行模式 (遥控上模式开关的第3个位置)设为自动返航模式(RTL)。

这将测试导航功能。

飞机将回到你的位置,以固定高度盘旋(盘旋高度可以使用任务规划器设置)。

APM Flight Modes 飞行模式介绍(超详细)

APM Flight Modes 飞行模式介绍(超详细)

APM Flight Modes 飞行模式介绍概述多旋翼(直升机)一共有14 个内置的飞行模式,10个的常用的。

飞行模式可以通过遥控器控制,也可以通过GCS地面站进行发送命令更改遥控器和地面站都可以同时控制飞行模式,通常以最后一个命令为准推荐使用的飞行模式一般来讲,当第一次使用APM:Copter的时候,你应该依次使用下列飞行模式获得提高,要保证熟练了再进行下一个。

点击下方任意飞行模式可获得更多信息。

•Stabilize (增稳模式)•Alt Hold (定高模式、高度保持模式)•Loiter (悬停模式)•RTL (Return-to-Launch) (回家模式:返回起飞点)•Auto (自动模式:自动航点飞行,需要依靠GPS)其他飞行模式:•Acro 特技模式(没有飞控辅助增稳的模式)•AutoTune 自动微调(当飞机往一个严重偏的时候,可以执行自动微调)•Brake 刹车锁定模式(将飞机锁定在一个位置,而不受遥控器摇杆影响)•Circle 绕圈模式(绕着兴趣点画圈)•Drift 漂移模式•Guided 引导模式Guided_NoGPS 引导模式-不需要GPS•Land 降落模式•PosHold 定点模式•Sport 运动模块•Throw 抛飞模式(把无人机抛在空中,自动起飞稳定)•Follow Me 跟随模式(无人机跟着你飞行,但是需要GPS和手机地面站配合)•Simple and Super Simple (简单和超级简单模式)•Avoid_ADSB (基于ADSB的避让载人飞机模式。

需要外界ADSB模块)•大多数遥控器只有一个三段开关,所以只能设置三种模式。

如果需要设置6种模式,可以进行开关混控需要依赖GPS的飞行模式:有些飞行模式需要依赖GPS才能飞行,你可以通过状态灯或者地面站获知GPS 是否已经锁定。

以下飞行模式需要GPS锁定才能解锁飞行:•Loiter 悬停模式•RTL (Return-to-Launch) 回家模式•Auto 自动模式•Guided 引导模式•Drift 漂移模式•PosHold 定点模式•Follow Me 跟随模式•Circle 绕圈模式•Throw 抛飞模式不需要依赖GPS锁定的飞行模式:•Stabilize 自稳模式•Alt Hold 定高模式•Acro 特技模式•Sport 运动模式•Land 降落模式全部模式列表:(点击对应的模式查看详解)•Acro Mode•Altitude Hold Mode•Auto Mode•Brake Mode•Circle Mode•Drift Mode•Follow Me Mode (GSC Enabled)•Guided Mode•Land Mode•Loiter Mode•PosHold Mode•Position Mode•RTL Mode•Simple and Super Simple Modes•Sport Mode•Stabilize Mode•Throw ModeStabilize增稳模式概述:•飞手用roll与pitch操作控制飞行器的倾斜角度。

APM飞控介绍范文

APM飞控介绍范文

APM飞控介绍范文APM(ArduPilot Mega)飞控是一款开源的无人机飞行控制器,使用Arduino Mega 2560开发板和ATmega2560微控制器进行控制。

它可以支持多种飞行器类型,包括多旋翼、固定翼、直升机、车辆和船只等,且适用于初学者和专业人士。

APM飞控的功能非常强大,具备多种传感器与功能模块的接口,包括陀螺仪、加速度计、罗盘、GPS、气压计、导航模块、通信模块等。

这些传感器和模块提供了飞行姿态稳定性、位置定位、导航、高度控制、避障等功能。

APM飞控使用可视化的图形用户界面(Ground Control Station,简称GCS)来进行配置和控制。

用户可以通过电脑、手机或平板等设备与APM飞控进行通信,实时获取飞行数据,在线调整参数和模式,进行飞行计划等。

1.多种飞行器类型支持:APM飞控可以支持各种飞行器类型的控制,包括四旋翼、六旋翼、八旋翼、固定翼、直升机等。

通过选择不同的飞行器类型,用户可以针对不同的应用场景进行配置和飞行。

2.多种飞行模式:APM飞控支持多种飞行模式,包括手动模式、稳定模式、姿态模式、定高模式、定点模式、跟随模式、航点模式等。

用户可以根据需求选择不同的飞行模式,以实现自由飞行、稳定飞行、自动飞行等功能。

3.导航和定位功能:APM飞控可以通过GPS进行导航和定位,实现自动驾驶功能。

用户可以设置航点和航线,飞行器能够自动按照设定的航线进行飞行,同时实时在GCS上显示当前位置和飞行状态。

4.传感器和稳定性:APM飞控配备了陀螺仪、加速度计和罗盘等传感器,能够实时获取飞行器的姿态信息。

通过PID控制算法和传感器反馈,可以实现飞行器的姿态稳定和控制。

5.遥控器和数据链路:APM飞控支持与遥控器和数据链路进行通信和控制。

用户可以通过遥控器操控飞行器的飞行,实现手动控制、姿态控制等功能。

同时,用户还可以通过数据链路将APM飞控与地面站进行通信,实时获取飞行数据和调整参数。

APM飞行模式解说

APM飞行模式解说

APM飞行模式注解ELEV是俯仰或升降 1通道对 PitchAILE是横滚或副翼 2通道对 RollTHRO是油门 3通道对 ThrottlRUDD是方向 4通道对 Yaw红正黑负白信号,红正棕负橙信号Pitch 俯仰 Roll 横滚 Throttl 油门 Yaw 方向1、稳定模式Stabilize稳定模式是使用得最多的飞行模式,也是最基本的飞行模式,起飞和降落都应该使用此模式。

此模式下,飞控会让飞行器保持稳定,是初学者进行一般飞行的首选,也是FPV第一视角飞行的最佳模式。

一定要确保遥控器上的开关能很方便无误地拨到该模式,应急时会非常重要。

2、比率控制模式Acro这个是非稳定模式,这时apm将完全依托遥控器遥控的控制,新手慎用。

3、定高模式ALT_HOLD定高模式(Alt Hold)是使用自动油门,试图保持目前的高度的稳定模式。

定高模式时高度仍然可以通过提高或降低油门控制,但中间会有一个油门死区,油门动作幅度超过这个死区时,飞行器才会响应你的升降动作当进入任何带有自动高度控制的模式,你目前的油门将被用来作为调整油门保持高度的基准。

在进入高度保持前确保你在悬停在一个稳定的高度。

飞行器将随着时间补偿不良的数值。

只要它不会下跌过快,就不会有什么问题。

离开高度保持模式时请务必小心,油门位置将成为新的油门,如果不是在飞行器的中性悬停位置,将会导致飞行器迅速下降或上升。

在这种模式下你不能降落及关闭马达,因为现在是油门摇杆控制高度,而非马达。

请切换到稳定模式,才可以降落和关闭马达。

4、自动模式 AUTO自动模式下,飞行器将按照预先设置的任务规划控制它的飞行由于任务规划依赖GPS的定位信息,所以在解锁起飞前,必须确保GPS已经完成定位(APM 板上蓝色LED常亮)切换到自动模式有两种情况:如果使用自动模式从地面起飞,飞行器有一个安全机制防止你误拨到自动模式时误启动发生危险,所以需要先手动解锁并手动推油门起飞。

起飞后飞行器会参考你最近一次ALT Hold 定高的油门值作为油门基准,当爬升到任务规划的第一个目标高度后,开始执行任务规划飞向目标;如果是空中切换到自动模式,飞行器首先会爬升到第一目标的高度然后开始执行任务6、悬停模式Loiter悬停模式是GPS定点+气压定高模式。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

换成数字量,以供后续计算
电源芯片,usb 电平转换芯
片等
飞控原理 在 APM 飞控系统中,采用的是两级 PID 控制方式,第一级是导航级,第二级是控 制 级 , 导 航 级 的 计 算 集 中 在 medium_loop( ) 和 fastloop( ) 的 update_current_flight_mode( ) 函 数 中 , 控 制 级 集 中 在 fastloop( ) 的 stabilize( )函数中。导航级 PID 控制就是要解决飞机如何以预定空速飞行在预 定高度的问题,以及如何转弯飞往目标问题,通过算法给出飞机需要的俯仰角、 油门和横滚 角,然后交给控制级进行控制解算。控制级的任务就是依据需要的 俯仰角、油门、横滚角,结合飞机当前的姿态解算出合适的舵机控制量,使飞机 保持预定的俯仰 角,横滚角和方向角。最后通过舵机控制级 set_servos_4( ) 将控制量转换成具体的 pwm 信号量输出给舵机。值得一提的是,油门的控制量是 在导航级确定的。控制级中不对油门控制量进行解算,而直接交给舵机控制级。 而对于方向舵的控制,导航级并不给出方向舵量的解算,而是由控制级直接解算 方向舵控制量,然后再交给舵机控制级。 以下,我剔除了 APM 飞控系统的细枝末节,仅仅将飞控系统的重要语句展现,只 浅显易懂地说明 APM 飞控系统的核心工作原理。 一,如何让飞机保持预定高度和空速飞行 要想让飞机在预定高度飞行,飞控必须控制好飞机的升降舵和油门,因此,首先 介绍固定翼升降舵和油门的控制,固定翼的升降舵和油门控制方式主要有两种: 一种是高度控制油门,空速控制升降舵方式。实际飞行存在四种情况,第一种情 况是飞机飞行过程中,如果高度低于目标高 度,飞控就会控制油门加大,从而 导致空速加大,然后才导致拉升降舵,飞机爬升;第二种情况与第一种情况相反; 第三种情况是飞机在目标高度,但是空速高于目 标空速,这种情况飞控会直接 拉升降舵,使飞机爬升,降低空速,但是,高度增加了,飞控又会减小油门,导 致空速降低,空速低于目标空速后,飞控推升降舵,导 致飞机降低高度。这种
g.channel_throttle.servo_out = throttle_target + (g.throttle_max - throttle_target) * nav_pitch / g.pitch_limit_max; } else {
g.channel_throttle.servo_out = throttle_target (throttle_target - g.throttle_min) * nav_pitch / g.pitch_limit_min; }
定好飞机平飞时的迎角,当飞行高度高于 或低于目标高度时,在平飞迎角的基
础上根据高度与目标高度的差设定一个经过 PID 控制器输出的限制幅度的爬升
角,由飞机当前的俯仰角和爬升角的偏差来控制 升降舵面,使飞机迅速达到这
个爬升角,而尽快完成高度偏差的消除。但飞机的高度升高或降低后,必然造成
空速的变化,因此采用油门来控制飞机的空速,即当空 速低于目标空速后,在
g.channel_throttle.servo_out += (g.channel_pitch.servo_out *
g.kff_pitch_to_throttle);
式 中 energy_error = airspeed_energy_error + (float)altitude_error *
在使用空速计的情况下,油门是由飞机机械能偏差控制,也就是空速误差
和高度误差共同决定。update_current_flight_mode( )调用 calc_throttle( )
调 用 g.channel_throttle.servo_out = g.throttle_cruise +
g.pidTeThrottle.get_pid(energy_error, dTnav);
所以,使用空速计时,APM 飞控系统的油门升降舵控制属于空速控制升降,机械
能控制油门方案,类似于第一种控制方案,但是又有点区别。
(2),不使用空速计情况
不使用空速计时,升降舵是由高度偏差控制。update_current_flight_mode( )
中 调 用 calc_nav_pitch( ) 调 用 nav_pitch =
调 用 calc_nav_pitch(
) 调 用 nav_pitch
=
-g.pidNavPitchAirspeed.get_pid(airspeed_error, dTnav)。nav_pitch 就是
导航俯仰角,也就是说,使用空速计时,APM 系统对利用空速偏差 airspeed_error
作为输入量进行导航级 的俯仰角控制。
提高系统安全
双轴陀螺,单轴陀螺,三轴 测量三轴角速度,三轴加速
加速度计
度,配合三轴磁力计或 gps
GPS 导航模块 三轴磁力计模块 空速计 空压计 AD 芯片 其他模块
测得方向数据进行校正,实
现方向余弦算法,计算出飞
机姿态。
Lea-5h 块
或其他信号
gps

测量飞机当前的经纬度,高 度,航迹方向(track),地
0.098f,是空速动能偏差,加上飞机重力势能偏差。可以看出,油门是由设定的
巡航油门 g.throttle_cruise、机械能偏差 PID 调节量和 升降舵通道补偿共同
决定,但是巡航油门是设定值,是固定的。g.kff_pitch_to_throttle 默认是 0,
所以,实际上油门的增减是由机械能 偏差控制的。
控制方式的好处是,飞机始终以空速为第一因素来进行控制,因此保证了飞行的
安全,特别是当发动机熄火等异常情况发生时,使飞机能继续 保持安全,直到
高度降低到地面。这种方式的缺点在于对高度的控制是间接控制,因此高度控制
可能会有一定的滞后或者波动。
另一种是高度控制升降舵,空速控制油门的方式。这种控制方式的原理是设
第一句是计算偏航距的,偏航距是飞机当前位置点到航线的距离,事实上就是求 一 个 点 到 一 条 线 之 间 的 距 离 。 wp_distance 是 这 个 直 角 三 角 形 的 斜 边 , target_bearing - crosstrack_bearing 正是偏航距对应的边相对的那个锐角。 第二句中 crosstrack_error * g.crosstrack_gain 使用偏航距乘以偏航修正增 益就得出需要的偏航距修正量,然后使用 constrain( )函数将偏航距修正量限 制 在 -g.crosstrack_entry_angle.get() 与 g.crosstrack_entry_angle.get() 之间。g.crosstrack_entry_angle.get()其实就是最大的偏航 距修正量。在上 一段中 target_bearing 计算时已经有 nav_bearing = target_bearing。现在又 nav_bearing += constrain(crosstrack_error * g.crosstrack_gain, -g.crosstrack_entry_angle.get(), g.crosstrack_entry_angle.get()),这样 其实就把目标航向角和偏航距修正都加到了 nav_bearing 中。
APM 飞控系统详细介绍 2013-04-05 12:28:24 来源: 击:2658
评论:2 点
APM 飞控系统是国外的一个开源飞控系统,能够支持固定翼,直升机,3轴,4轴, 6轴飞行器。在此我只介绍固定翼飞控系统。 APM 飞控系统主要结
先上一个购买链接,看了下,板子质量还不错,全原装进口元器件 紫色 PCB 沉 金工艺,商家也挺用心。 新品 APM 2.5.2 多旋 固定翼 飞控 ARDUPILOT MEGA 2.5.2 最新版
g.pidNavPitchAltitude.get_pid(altitude_error, dTnav)。所以升降舵的控
制,是由高度误差 altitude_error 作为 PID 调节的输入量。
不使用空速计时,油门是由导航俯仰角控制。update_current_flight_mode( )
Байду номын сангаас
调用 calc_throttle( )调用 if (nav_pitch >= 0) {
可以看出此时的油门控制是利用的是比例调节,依据的比例关系是 = 。
二,如何让飞机飞往目标 要使飞机飞往目标,那就必须知道飞机当前位置、目标位置和当前航向等
问题。在 APM 飞控系统中,GPS 模块能够提供飞机当前经纬度信息,航迹方向和 地速信 息。根据这些信息,再用程序解算飞机当前位置和目标位置的关系,就 能知道目标航向角 target_bearing,知道了目标航向角 target_bearing 后就可 以用于引导飞机飞向目标。但是仅用目标航向角进行导航,不能压航线飞行,为 了解决这个问题,APM 飞控系统中又增加了 偏航距 crosstrack_error 的计算, 并 且 根 据 偏 航 距 , 计 算 出 需 要 的 偏 航 修 正 量 crosstrack_error * g.crosstrack_gain。使飞机能尽快飞到航线上。最后把目标航向角和偏航修正 量组成导航航向角 nav_bearing,提供给控制级 PID。所以目标航向角的计算和 偏航修正量的计算是构成如何让飞机飞往目标的核心。下面具体介绍 APM 中关于 这部分的程序。 APM 飞控系统中的 GPS 信息只能每秒更新 4-10 次。所以,计算目标航向角和偏 航 修 正 量 的 程 序 都 在 每 秒 大 约 执 行 10 次 的 medium_loop( ) 中 。 在 medium_loop( ) 的 case 1 中会执行 navigate( ),正是在这个函数中,执行了 导航航向角 nav_bearing 的计算。 首先计算的是目标航向角。在 navigate( )中有: target_bearing = get_bearing(¤t_loc, &next_WP); nav_bearing = target_bearing; 第一个语句中 current_loc 和 next_WP 是结构体,里面存储这一个位置点的经度、 纬度、高度信息,current_lot 中存储的是当前 点,next_WP 中存储的是目标点。 根据这个进行在球体表面的三角函数计算(此文中,由于篇幅所限,很多东西不 进行详细讲解),就可以得出目标航向 target_bearing。 接下 来,要计算偏航修正量。navigate( )调用 update_navigation( )调用 verify_commands( )调用 verify_nav_wp( )调用 update_crosstrack( ),这个 函数中有: crosstrack_error = sin(radians((target_bearing - crosstrack_bearing) / 100)) * wp_distance; nav_bearing += constrain(crosstrack_error * g.crosstrack_gain, -g.crosstrack_entry_angle.get(), g.crosstrack_entry_angle.get());
相关文档
最新文档