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

2023-05-16

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

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

  • 姿态控制是无人机按照飞行控制指令姿态保持水平或者以某一倾斜角度飞行,同时结合偏航方向旋转控制可以实现自转、刷锅等飞行动作。需要注意的是姿态自稳只是对无人机的姿态角度进行了控制,并不能使无人机水平位置不发生偏移,水平位置依赖于定点控制(如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表示期望速度向上,反之表示期望速度向下,相关用法例子如下:

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

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

  • ROS学习(开篇)Ubuntu16.04安装ROS Kinetic详细教程

    文章目录 前言一 添加ROS软件源 xff08 sources list xff09 二 添加密钥三 更新apt功能包列表四 安装ROS五 初始化 rosdep六 将ROS环境变量添加到 bashrc文件中七 安装rosinstall等工具
  • ROS学习(14)自定义四轮小车的ROS导航

    文章目录 前言一 创建编译功能包二 代价地图配置三 基本局部规划器配置四 创建导航包的启动文件五 导航仿真六 总结 前言 本篇为自定义四轮小车的ROS导航仿真 xff0c 与前面自定义机器人导航类似 该篇源码非原创 xff0c 特此说明 x
  • ROS学习(24)plugin插件

    文章目录 前言一 工作原理二 具体实现1 创建基类2 创建plugin类3 注册插件4 编译插件的动态链接库5 将插件加入ROS6 调用插件7 运行效果 前言 ROS中的插件就是可以动态加载的扩展功能类 ROS中的pluginlib功能包提
  • ROS学习(28)Web GUI

    文章目录 前言一 rosbridge suite元功能包二 roslibjs ros2djs ros3djs功能包三 tf2 web republisher功能包四 创建web应用五 使用web浏览器控制机器人 前言 ROS Web too
  • 参看了别人写的面试讲解

    转帖 ERP顾问的面试 新的一年就要开始了 xff0c 有不少的同行估计都在想着跳槽了 今天我就把自己的当面试官的感受给大家谈谈 xff0c 也许 xff0c 从中 xff0c 你可以掌握 ERP 实施顾问面试的技巧 在来年 xff0c 当
  • ROS2学习(1)ROS2简述

    文章目录 前言一 ROS1存在的问题二 什么是ROS21 ROS2的设计目标2 ROS2的系统架构3 ROS2的关键中间件 DDS4 ROS2中的通信模型5 ROS2的编译系统 前言 虽然众多开发者对ROS1进行了很多开发建设 xff0c
  • Qt之实现自定义控件的两种方式——提升法

    文章目录 前言一 需求二 实现1 新建项目2 自定义控件类3 提升4 效果 前言 可以通过Qt设计师拖拽原生控件进行界面开发 xff0c 但有时候原生控件不能满足项目需求 此时 xff0c 就需要实现自定义控件 Qt中实现自定义控件 xff
  • Qt之实现自定义控件的两种方式——插件法

    文章目录 前言一 需求二 实现1 新建项目2 自定义控件类3 编译插件4 拖拽使用 xff08 1 xff09 在designer exe中直接拖拽 xff08 2 xff09 在Qt Creator的设计师中直接拖拽 5 在项目中正常使用
  • Qt自定义控件——动态圆形进度条

    文章目录 前言一 需求二 实现1 自定义控件类2 提升3 效果 前言 本篇通过提升法实现一个动态圆形进度条 一 需求 自定义实现一个动态圆形进度条 xff0c 支持设置进度条颜色 目标值背景色 外边框背景色 中央圆环背景色 旋转角度及大小自
  • linux下可视化git工具git-cola安装与使用(SSH方式)

    一 git cola为何物 很多小伙伴 xff0c 特别喜欢使用TortoiseGit xff0c 该软件是做什么的 xff0c 就不用多说吧 奈何 xff0c TortoiseGit只有windows版 xff0c 这让在linux上开发
  • 智能优化算法:布谷鸟搜索算法-附代码

    智能优化算法 xff1a 布谷鸟搜索算法 附代码 文章目录 智能优化算法 xff1a 布谷鸟搜索算法 附代码1 算法原理2 算法结果3 参考文献4 Matlab代码 摘要 xff1a 谷鸟搜索算法 cuckoo search cs xff0
  • 基于布谷鸟优化的BP神经网络(预测应用) - 附代码

    基于布谷鸟优化的BP神经网络 xff08 预测应用 xff09 附代码 文章目录 基于布谷鸟优化的BP神经网络 xff08 预测应用 xff09 附代码1 数据介绍3 CS优化BP神经网络3 1 BP神经网络参数设置3 2 布谷鸟算法应用
  • 基于粒子群优化的BP神经网络(分类应用) - 附代码

    基于粒子群优化的BP神经网络 xff08 分类应用 xff09 附代码 文章目录 基于粒子群优化的BP神经网络 xff08 分类应用 xff09 附代码1 鸢尾花iris数据介绍2 数据集整理3 粒子群优化BP神经网络3 1 BP神经网络参
  • Arm Keil MDK v5.30版本官宣,快来下载!

    近日 xff0c Arm很高兴地宣布发布Arm Keil MDK v5 30 此版本新增了对Cortex M55处理器和CMSIS Build的支持 xff0c 更新包括Arm Compiler 6 14 xff0c CMSIS 5 7 0
  • ubuntu下访问串口

    前言 最近准备将windows上自动瞄准的程序移植到linux xff0c 第一步准备调试一下ubuntu下的串口 在网上搜到一个串口库 xff0c 于是就拿来调用 xff0c 最后调试成功 过程如下 xff1a 过程 1 下载Serial
  • 热备笔记实验

    早上突然断电 本来笔记本的插头就忘记插了 xff0c 电池没用多久就熄火 最纳闷的是接入电源后本机数据库竟然挂掉了 xff0c 嘿嘿 xff0c 正好试一试前几天应用的热备回复 以下是我的全程 C Documents and Setting
  • Android学习之AIDL添加Service权限

    参考 Android开发艺术探索 xff0c 书中提供了两种方法 第一种方法 xff1a 在onBind中验证 在服务端的AndroidManifest添加自定义权限 lt permission android name 61 span c
  • ADRC(自抗扰控制器)技术附Matlab代码框架

    自抗扰控制器 Auto Active Disturbances Rejec ion Controller ADRC 是韩京清学者提出的 xff0c 是一种继PID控制器后的一种新型的实用的控制技术 它不是一种独立的技术 xff0c 可以理解
  • git视频及对初学者的学习建议

    http herry2013git blog 163 com blog static 21956801120144810133569 http herry2013git blog 163 com blog static 2195680112
  • 迷你光流使用说明

    为了让你有兴趣往下学习 xff0c 先上个定点悬停效果视频给你欣赏一下吧 xff01 点击打开视频链接 首先 xff0c 简单介绍一下我使用的这款光流传感器 长宽高 xff1a 14x11x5mm xff0c 重量约0 6克 xff0c 工

随机推荐