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定点+气压定高模式。

APM飞控姿态角控制系统

APM飞控姿态角控制系统

On every update (i.e. 400hz on Pixhawk, 100hz on APM2.x) the following happens: 1、the top level flight-mode.cpp’s “update_flight_mode()” function is called. This function checks the vehicle’s flight mode (ie. “control_mode” variable) and then calls the appropriate <flight mode>_run() function (i.e. stabilize_run for stabilize mode, rtl_run for RTL mode, etc). The <flight mode>_run() function can be found in the appropriately named control_<flight mode>.cpp file (i.e.control_stabilize.cpp, control_rtl.cpp, etc).2、the <flight mode>_run function is responsible for converting the user’s input (found in g.rc_1.control_in, g.rc_2.control_in, etc) into a lean angle, rotation rate, climb rate, etc that is appropriate for this flight mode. For example AltHold converts the user’s roll and pitch input into lean angles (in degrees), the yaw input is converted into a rotation rate (in degrees per second) and the throttle input is converted to a climb rate (in cm/s).3、the last thing the <flight mode>_run function must do is pass these desired angles, rates etc into Attitude Control and/or Position Control libraries (these are both held in the AC_AttitudeControlfolder).4、The AC_AttitudeControl library provides 5 possible ways to control the attitude of the vehicle, the most common 3 are described below.(1)、angle_ef_roll_pitch_rate_ef_yaw() : this accepts an “earth frame” angle for roll and pitch, and an“earth frame” rate for yaw. For example providing this function roll = -1000, pitch = -1500, yaw = 500 means lean the vehicle left to 10degrees, pitch forward to 15degrees and rotate right at 5deg/second(2)、angle_ef_roll_pitch_yaw() : this accepts “earth frame” angles for roll, pitch and yaw. similar to above except providing yaw of 500 means rotate the vehicle to 5 degrees east of north.(3)、rate_bf_roll_pitch_yaw() : this accepts a “body frame” rate (in degrees/sec) for roll pitch and yaw. For example providing this function roll = -1000, pitch = -1500, yaw = 500 would lead to the vehicle rolling left at 10deg/sec, pitching forward at 15deg/sec and rotating about the vehicle’s z axis at 5 deg/sec.5、可以看到,是在3中调用了4中的任意一个函数,这样就可以调用rate_controller_run()了After any calls to these functions are made the AC_AttitudeControl::rate_controller_run() is called. This converts the output from the methods listed above into roll, pitch and yaw inputs which are sent to the AP_Motors library via it’s set_roll, set_pitch, set_yaw and set_throttle methods. .6、The AC_PosControl library allows 3D position control of the vehicle. Normally only the simpler Z-axis(i.e. altitude control) methods are used because more complicated 3D position flight modes (i.e. Loiter) make use of the AC_WPNav library. In any case, some commonly used methods of this library include:set_alt_target_from_climb_rate() : this accepts a climb rate in cm/s and updates an absolute altitude targetset_pos_target() : this accepts a 3D position vector which is an offset from home in cmIf any methods in AC_PosControl are called then the flight mode code must also call theAC_PosControl::update_z_controller() method.This will run the z-axis position control PID loops and send low-level throttle level to the AP_Motors library. If any xy-axis methods are called thenAC_PosControl::update_xy_controller() must be called.7、The AP_Motors library holds the “motor mixing” code. This code is responsible for converting the roll, pitch, yaw and throttle values received from the AC_AttitudeControl and AC_PosControl libraries into absolute motor outputs(i.e. PWM values). So the higher level libs would make use of these functions:set_roll(), set_pitch(), set_yaw() : accepts roll, pitch and yaw values in the range of -4500 ~ 4500. These are not desired angles or even rates but rather just a value. For example set_roll(-4500) would mean roll left as fast as possible.set_throttle() : accepts an absolute throttle value in the range of 0 ~ 1000. 0 = motors off, 1000 = full throttle.There are different classes for each frame type (quad, Y6, traditional helicopter) but in each there is an “output_armed” function which is responsible for implementing the conversion of these roll, pitch, yaw and throttle values into pwm outputs. This conversion often includes implementing a “stability patch” which handles prioritising one axis of control over another when the input requests are outside the physical limits of the frame (i.e. max throttle and max roll is not possible with a quad because some motors must be less than others to cause a roll). At the bottom of the “output_armed” function there is a call to the hal.rcout->write() which passes the desired pwm values to the AP_HAL layer.。

APM飞控系统详细介绍

APM飞控系统详细介绍

APM飞控系统详细介绍APM飞控系统的硬件部分主要由处理器、传感器模块和扩展模块组成。

处理器采用32位的ARM Cortex-M4内核,性能强大,能够处理复杂的算法和控制逻辑。

传感器模块包括加速度计、陀螺仪、磁力计、气压计等,用于测量无人机的姿态、运动状态和环境参数。

扩展模块可以根据具体需求增加,如GPS模块、无线通信模块等,可以实现定位和遥控功能。

APM飞控系统的软件部分主要由固件和地面站软件组成。

固件是嵌入在硬件中的软件程序,实现了飞行控制算法和导航功能。

固件基于开源协议发布,可以在开源社区中进行开发和修改。

地面站软件是一款PC端软件,用于与无人机通信、调试和飞行参数的设置。

地面站软件支持Windows、Mac和Linux等多个操作系统,用户可以通过USB或无线通信与飞控系统进行交互。

APM飞控系统具有多种飞行模式,包括手动模式、稳定模式、定高模式、定点模式、自动模式等。

手动模式下,飞行员可以通过遥控器直接控制飞行器的姿态和运动。

稳定模式下,飞控系统会自动控制飞行器保持平稳飞行。

定高模式下,飞行器会自动控制飞行高度,保持稳定飞行。

定点模式下,飞行器会自动控制飞行位置,保持固定的坐标。

自动模式下,飞行器会根据用户设置的任务点和航线自主飞行。

APM飞控系统还支持一系列高级功能,如航点导航、飞行轨迹规划、跟踪目标、自主避障等。

航点导航功能可以实现无人机按照预设的航点序列自主飞行。

飞行轨迹规划功能可以根据用户设置的起始点和目标点规划最优飞行路径。

跟踪目标功能可以通过视觉或无线信号识别目标物体并进行跟踪飞行。

自主避障功能可以根据传感器获取的环境信息进行障碍物的避让。

这些高级功能大大增强了无人机的自主性和智能性。

总之,APM飞控系统是一款功能强大、灵活可扩展的飞行控制系统。

它广泛应用于无人机领域,可用于各种类型的飞行器,包括多旋翼、固定翼和垂直起降等。

作为开源项目,APM飞控系统吸引了众多开发者和爱好者的参与,形成了庞大的用户社区,用户可以从社区获取和共享各种有用的资源和经验。

APM for PX4飞控使用手册-第三章:组装单独的PX4FMU.

APM for PX4飞控使用手册-第三章:组装单独的PX4FMU.

APM for PX4飞控使用手册第三章:使用单独的PX4FMU组装飞机——sw笨笨翻译1.介绍:本文介绍PX4飞控的安装,是单独使用PX4FMU的方案。

2.在四旋翼飞行器上安装PX4FMU1基本需求a你需要先准备好PX4FMU。

b如果你需要的飞行器比最简单的四旋翼复杂,那么你还是应该配备PX4IO 板。

cPX4的“Muliti”主接插件需要配套一个特殊的电缆,需要准备好。

d如果需要,你可以剪短信号线,直接焊到电路板背后的相应焊盘上。

e电路板需要减振。

2将PX4FMU安装在四旋翼飞行器的中心顶部a正常情况下PX4FMU的SD卡座(TF卡座——译者注在上方。

b但是将PX4FMU的另一面朝上会比较方便观察LED的状态显示。

c如果将PX4FMU的元器件的一面安装在顶部,那么就不用在MissionPlanner 的高级选项中的“Board Orientation (AHRS_ORIENTATION”选项中选择“Roll 180”。

d电路板上的箭头应该指向飞行器的前方。

e如果使用减震器,最好在固定前将一个O型圈放在PX4电路板下方,用来保护电路板。

f但是减震器往往不足以提供良好的减振,请参考Wiki网站上关于减振的部分内容。

3在向上无遮挡物的位置,面朝上安装GPS模块aGPS可以稍微架高,这样可以在更大的范围接收卫星信号。

3.单独使用PX4FMU的接线示意图,使用四旋翼和PPM接收机注意:15针Muliti接插件的地线和电源线是错误的,图中第15针为地线,第1针为电源线。

4.连接PX4FMU与四旋翼飞行器1使用粗线连接电调的地线和电源线,并连到电池接插件。

b可以使用电源转接板2将BEC(接收机电源转接器——译者注(5V电源连接到电池输入脚。

a连接BEC的地到PX4的地(Multi接口的第15针b连接BEC电源到PX4的电源输入(Multi接口的第1针c注意:如果不使用分离的BEC,请将集成BEC的电调中的一个电调的电源和地线连接到Mulit接口的1和15针,用于给PX4供电。

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 for PX4飞控使用手册-第一章:起步-中文翻译

APM for PX4飞控使用手册-第一章:起步-中文翻译

APM for PX4飞控使用手册第一章:起步——sw笨笨翻译1.介绍:3D Robotics的开源飞控技术解决方案APM:Copter,带有高级组织形式的个人自动导航仪技术,能够为飞行器带来易用的自主飞行能力。

本手册可以带领您进行第一次的设置、调参和飞行活动。

2.什么是APM:Copter系统APM:Copter是一种基于APM飞控板和Mission Planner地面站软件的多用途无人系统。

APM飞控通过内置的陀螺仪、加速度计和其他电子元件控制多旋翼的飞行。

在地面站计算机上使用Mission Planner定制飞行任务并下载到APM。

一旦飞行器进入自主飞行模式,APM从GPS模块读取位置信息并执行任务脚本。

为了安全起见,APM需要连接一个遥控器,用于对飞行器进行人工遥控。

飞行器使用锂电池作为电源,每次飞行要至少带两块电池。

要使得飞行更加有趣,你可以搭载有效载荷:空中拍照,视频片段,或者你自己需要的任务设备。

试飞APM的基本步骤如下:1)起步:了解APM:Copter以及无人机系统组成。

2)组装:建立你的旋翼系统,包含飞控和GPS模块。

3)地面站设置:在地面站计算机上安装Mission Planner,并向飞控板上传固件。

4)设置遥控器:建立遥控器与飞控的连接,设置飞行模式,启动传感器。

5)调参(DIY需要):校准电调,核对电机的旋转以及旋转方向,校准性能并调参。

6)建立飞行任务:Mission Planner介绍,创建导航点,下载任务。

7)飞行:启动测试飞行,安全飞行,飞行策略,飞行检验,和应急程序。

3.系统构成要使用APM:Copter你需要如下设备:1)多旋翼飞行器(前两句广告略——译者注)新手比较适合使用四旋翼飞行器,相关需求成本较低,使用简单。

六旋翼飞行器比四旋翼飞行器稳定,带载荷能力较强。

Y6型六旋翼飞行器飞行效率较常规六旋翼略低,但是更加稳定,设计更加有利于前置摄像机,并且能够在单发动机失效的情况下提供裕度。

详细的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 for PX4飞控使用手册-第二章:组装PX4FMU和PX4IO-中文翻译

APM for PX4飞控使用手册-第二章:组装PX4FMU和PX4IO-中文翻译

APM for PX4飞控使用手册第二章:使用PX4FMU与PX4IO组装飞机——sw笨笨翻译1.介绍:本文介绍PX4飞控的安装,是使用PX4FMU和PX4IO的方案。

2.PX4FMU与PX4IO的组装1)首先将PX4套件中PX4IO板上的9x3针的接插件焊接在板子右侧(这是舵机连接接插件——译者注),那边有“PX4 autupilot”(应该是SERVOS——译者注)的字样。

注意:接插件的方向是塑料绝缘层朝向电路板后方(就是向外因为要插舵机——译者注)2)将小型的白色接插件2针的PAP-02-VS焊接到PX4IO板电池焊盘的正后边。

3)安装PX4IO到PX4FMU板上a)气压计需要保护,免于受到风,乱流,运动和螺旋桨涡流的影响,需要进行如下步骤。

(如果是多旋翼飞行器,我认为气压计距离螺旋桨较远应该可以省略这步,这是给直升机预备的——译者注)i.剪下大约1/2英寸大小的一块软泡沫,要比PX4FMU板载接插件小一些。

ii.在插接PX4FMU和PX4IO之前,将这块泡沫放置在两块板中间。

iii.这块围绕的附件能够减轻气压计的问题,但是需要确保其不干扰磁力计。

b)将PX4FMU板和PX4IO板的接插件连接,需要检查确保全部阵脚没有弯曲并且完全插入。

c)将组合完成的PX4飞控牢固的水平安装在旋翼飞行器的中心位置。

d)正常情况下PX4FMU应该安装在顶部。

e)但是如果将PX4IO安装在顶部则有利于的接插件安装与卸下。

f)如果将PX4IO安装在顶部,那么就不用在Mission Planner 的高级选项中的“Board Orientation (AHRS_ORIENTATION)”选项中选择“Roll 180”。

g)电路板上的箭头应该指向飞行器的前方。

h)MicroSD卡(TF卡——译者注)插座应该指向飞行器后方。

4)使用硬件中包含的固定螺丝a)无论那个电路板的哪面朝上,使用黑色尼龙螺栓(一面是螺纹,一面是螺纹孔的应该叫做尼龙螺柱——译者注)从下向上穿过上面那个电路板固定孔,并且在顶上安装尼龙螺母。

APM飞控系统详细介绍

APM飞控系统详细介绍

在使用空速计的情况下,油门是由飞机机械能偏差控制,也就是空速误差
和高度误差共同决定。update_current_flight_mode( )调用 calc_throttle( )
调 用 g.channel_throttle.servo_out = g.throttle_cruise +
g.pidTeThrottle.get_pid(energy_error, dTnav);
速等信息。
HMC5843/5883模块
测量飞机当前的航向 (heading)
测量飞机空速(误差较大,
MPXV7002模块
而且测得数据不稳定,会导
致油门一阵一阵变化)
BMP085芯片
测量 空气压力,用以换算 成高度
将三轴陀螺仪、三轴加速度
ADS7844芯片
计、双轴陀螺仪输出温度、 空速计输出的模拟电压转
第一句是计算偏航距的,偏航距是飞机当前位置点到航线的距离,事实上就是求 一 个 点 到 一 条 线 之 间 的 距 离 。 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飞控调试资料

详细的APM飞控调试资料

详细的A P M飞控调试资料文件管理序列号:[K8UY-K9IO69-O6M243-OL889-F88688]调整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飞控源码讲解
APM(ArduPilot Mega)是一款开源的飞控系统,其源码可以在
GitHub上找到。

本文将对APM飞控系统的源码进行讲解。

在飞行控制模块中,最重要的是飞行姿态控制算法。

源码中实现了多
种不同的姿态控制算法,包括经典的PID控制器和先进的模型预测控制器。

这些算法通过读取飞行器的传感器数据,如加速度计和陀螺仪,来计算飞
行器当前的姿态,并根据目标姿态进行调整。

源码中还实现了飞行器的导
航控制算法,通过GPS数据和地面站指令,实现导航目标的控制。

另一个重要的模块是传感器数据采集模块,用于获取飞行器的传感器
数据。

源码中实现了对加速度计、陀螺仪、磁力计等传感器的读取和数据
处理。

通过对传感器数据的处理,可以获取飞行器的姿态、加速度、角速
度等信息,用于姿态控制和导航控制。

通信模块负责与地面站进行通信,传输飞行器的状态和控制指令。


码中实现了多种通信方式,包括串口通信和无线通信,以适应不同的应用
场景。

通过与地面站的通信,可以实时监控飞行器的状态,并发送控制指
令进行调整。

此外,源码中还包括一些辅助功能模块,如传感器校准、飞行任务管理、参数配置等。

这些模块可以帮助用户对飞行器进行配置和管理,提供
更加精确和可靠的飞行控制。

总之,APM飞控系统的源码实现了一套完整的飞行控制系统,包括姿
态控制、传感器数据采集、通信等关键功能。

通过对源码的深入理解和学习,可以帮助开发者更好地应用和开发飞行控制系统,实现更高级的飞行
功能和应用。

apm飞控通信协议v

apm飞控通信协议v

apm飞控通信协议vAPM飞控通信协议V2.0简介APM(ArduPilotMega)飞控是一种开源的飞行控制系统,被广泛应用于自动驾驶无人机和机器人领域。

为了实现与外部设备的通信和数据交换,APM采用了特定的通信协议。

本文将介绍APM飞控通信协议V2.0的详细内容。

通信协议概述APM飞控通信协议V2.0是一种二进制协议,用于在飞控系统和其他设备之间传输数据。

该协议基于串行通信,并支持广播和点对点通信模式。

在通信过程中,数据被打包成帧,通过串口进行传输。

帧格式APM飞控通信协议V2.0的帧格式如下:帧头(2字节):标识一帧数据的开始,固定为0x55AA。

帧长度(2字节):指示整帧数据的长度,包括校验位。

数据(n字节):具体的数据内容,长度根据实际需要而定。

校验位(2字节):通过对帧长度和数据进行校验得到的结果,用于验证数据的完整性。

数据类型APM飞控通信协议V2.0支持多种数据类型的传输,包括命令、响应、参数和日志等。

具体的数据类型及其对应的标识如下:命令数据:用于向飞控发送指令,标识为0x01。

响应数据:用于表示飞控对指令的响应结果,标识为0x02。

参数数据:用于获取和修改飞控的参数,标识为0x03。

日志数据:用于记录和传输飞行过程中的日志信息,标识为0x04。

通信流程APM飞控通信协议V2.0的通信流程如下:发送方构建数据帧,设置帧头、帧长度、数据和校验位。

发送方通过串口将数据帧发送给接收方。

接收方接收数据帧,并进行校验,确保数据完整。

接收方解析数据帧,根据帧类型进行相应的处理。

接收方根据需要构建响应数据帧,并将其发送给发送方。

发送方接收响应数据帧,并进行校验和解析。

发送方根据响应结果进行下一步操作或继续通信。

实例演示以下是一个以点对点通信模式为例的APM飞控通信协议V2.0实例:发送方发送命令数据帧给接收方。

接收方接收并解析命令数据帧,执行相应的指令。

接收方构建响应数据帧,将执行结果发送给发送方。

  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());
相关文档
最新文档