玩转四旋翼无人机(姿态控制 in ArduPilot)

本文深入探讨了ArduPilot项目中四旋翼无人机的姿态控制,从飞行模式到控制算法,包括angle_ef_roll_pitch_rate_ef_yaw、angle_ef_roll_pitch_yaw和rate_bf_roll_pitch_yaw等函数的应用,以及AC_AttitudeControl和AC_PosControl库的作用,详细阐述了如何将用户输入转换为实际飞行控制指令,涉及飞行器的3D位置控制和电机混合代码。
摘要由CSDN通过智能技术生成

本文主要介绍关于ardupliot project中关于四旋翼的姿态控制的

首先给出姿态控制的结构图
这里写图片描述

顶层文件flight-mode.的飞行模式,然后调用合适的 <flight mode>_run()函数(i.e. stabilize_run for stabilize mode, rtl_run for RTL mode, etc). <flight mode>_run()函数可以在文件control_<flight mode>.cpp (i.e. control_stabilize.cpp, control_rtl.cpp, etc)中找到。该函数负责转换当前用户的输入(如rc_1.control_in, g.rc_2.control_in)为一个针对飞行模式的倾斜角,旋转速度,攀升速度。如在定高模式下,yaw输入转换为旋转速度。油门输入转化为攀升速度。该函数的最后要做的就是将这些的道德角度速度传递给姿态控制和位置控制器。

姿态控制库提供了5中飞行器的控制方式。最常用的3种是
- angle_ef_roll_pitch_rate_ef_yaw() : 该函数支持一个地球坐标系下的滚转和俯仰角度、yaw速度。
- angle_ef_roll_pitch_yaw() : 该函数支持一个地球坐标系下的滚转、俯仰、偏航角度。
- rate_bf_roll_pitch_yaw() : 该函数支持集体坐标系下的滚转、俯仰、偏航角度。
调用上述angle_ef_roll_pitch_rate_ef_yaw等函数之后,在执行中调用了 AC_AttitudeControl::rate_controller_run()。该函数转换上述方法计算的输出为roll pitch yaw,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值