2_竞赛无人机基础飞行控制函数——零基础学习竞赛无人机搭积木式编程

竞赛无人机基础飞行控制函数

无人机的在空中的基本飞行包括姿态控制(角度、角速度)与高度控制(位置、速度、加速度)两个部分。

  • 姿态控制是无人机按照飞行控制指令姿态保持水平或者以某一倾斜角度飞行,同时结合偏航方向旋转控制可以实现自转、刷锅等飞行动作。需要注意的是姿态自稳只是对无人机的姿态角度进行了控制,并不能使无人机水平位置不发生偏移,水平位置依赖于定点控制(如SLAM定位、GPS定位、光流定位等)。
  • 高度控制是控制无人机在某一高度位置上悬停或者以一定速度控制无人机上升和下降。
  1. 姿态控制函数

void Angle_Control_Target(Controller_Output *_flight_output)

输入参数Controller_Output结构体定义如下

其中用户只需要关注圈红处的变量,在姿态自稳控制中,以下三组期望输入来源于遥控器输入信号解析后的直接给定,偏航角控制模式为ROTATE表示偏航手动控制模式,此手动模式也是飞控初始化后默认偏航控制模式。

Flight.roll_outer_control_output =RC_Data.rc_rpyt[RC_ROLL];

Flight.pitch_outer_control_output=RC_Data.rc_rpyt[RC_PITCH];

Flight.yaw_outer_control_output  =RC_Data.rc_rpyt[RC_YAW];

Flight.yaw_ctrl_mode=ROTATE;

除了ROTATE偏航控制模式,在用户二次开发无人机自主飞行控制中,主要有使用的还有如下几种:

  • AZIMUTH  绝对偏航角度控制模式

其中偏航模式参数AZIMUTH 表示直接对偏航角度进行控制,此时yaw_outer_control_output给定的是期望偏航角度。

  • CLOCKWISE    相对偏航角度顺时针控制模式

其中偏航模式参数CLOCKWISE表示直接对偏航角度进行控制,此时yaw_outer_control_output给定的是以当前偏航角度为基准,需要顺时针旋转的偏航角度。

  • ANTI_CLOCKWISE 相对偏航角度逆时针控制模式

其中偏航模式参数ANTI_CLOCKWISE表示直接对偏航角度进行控制,此时yaw_outer_control_output给定的是以当前偏航角度为基准,需要逆时针旋转的偏航角度。

②③两种相对运动方式,在给定期望时同时需要设置yaw_ctrl_start参数,姿态控制函数在执行过程中会实时对角度偏差进行判断,看是否到达对应偏航角度,完成后会将yaw_ctrl_end标志位置1,用户可以判断yaw_ctrl_end的数据来确定偏航控制是否完成,进而处理下一阶段子任务。初次接触的用户可以结合Subtask_Demo.c提供的flight_subtask_1、flight_subtask_2来练习掌握用法。

  • CLOCKWISE_TURN  角速度控制顺时针模式

其中偏航模式参数CLOCKWISE_TURN表示直接对偏航角速度进行控制,此时yaw_ctrl_mode给定的是顺时针旋转的期望偏航运动的角速度。

  • ANTI_CLOCKWISE_TURN 角速度控制逆时针模式

其中偏航模式参数CLOCKWISE_TURN表示直接对偏航角速度进行控制,此时yaw_ctrl_mode给定的是顺时针旋转的期望偏航运动的角速度。

④⑤两种相对运动方式,在给定期望时同时需要设置yaw_ctrl_start参数,以及需要执行的时间参数execution_time_ms,姿态控制函数在执行过程中会实时对已执行的时间进行判断是否完成,完成后会将yaw_ctrl_end标志位置1,用户可以判断yaw_ctrl_end的数据来确定偏航控制是否完成,进而处理下一阶段子任务。初次接触的用户可以结合Subtask_Demo.c提供的flight_subtask_3、flight_subtask_4来练习掌握用法。

  1. 高度控制函数

void Flight_Alt_Hold_Control(uint8_t mode,float target_alt,float target_vel)

输入参数uint8_t mode可选参数如下:

ALTHOLD_MANUAL_CTRL、ALTHOLD_AUTO_POS_CTRL、ALTHOLD_AUTO_VEL_CTRL分别表示高度手动控制、高度直接位置控制、高度直接速度控制,在ALTHOLD_MANUAL_CTRL模式中,高度可以通过遥控器油门杆来控制,油门杆偏离中位死区向上、向下分别表示给定无人机期望向上爬升速度和下降速度,油门回中后飞机会锁定当前高度作为悬停保持高度;ALTHOLD_AUTO_POS_CTRL模式中,期望高度直接来源于target_alt,无人机将高度位置控制到target_alt所在高度进行悬停;ALTHOLD_AUTO_VEL_CTRL模式中,无人机不在对高度位置进行控制,高度方向上期望速度直接来源于target_vel给定,arget_vel>0表示期望速度向上,反之表示期望速度向下,相关用法例子如下:

猜你喜欢

转载自blog.csdn.net/u011992534/article/details/123762260