无人机原理

2023-05-16

文章目录

  • 1基本运动
  • 2为何无人机螺旋桨多为偶数
  • 3机器人的运动控制
  • 4加速度计
  • 5陀螺仪
  • 6姿态角解算
    • 欧拉角的平面换算

1基本运动

在这里插入图片描述
为了平衡扭矩,上图中1、3逆时针转动,电机2、4顺时针转动进行反扭矩对消
上升
F1=F2=F3=F4
F1+F2+F3+F4=T
俯仰
F1=F4
F2=F3
F2+F3>F1+F4顺时针
F2+F3<F1+F4逆时针
滚转
F1=F2
F3=F4
F3+F4>F1+F2顺时针
F3+F4<F1+F2逆时针
偏航:偏航运动利用反扭矩进行空置
τg1=τg3
τg2=τg4
τg1+τg3>τg2+τg4顺时针
反之逆时针
在这里插入图片描述
前后运动
Tcos(a)=G
T前进=Tsin(a)
在没外力作用下,水平分力会沿前进方向加速运动。

2为何无人机螺旋桨多为偶数

多旋翼无人机的螺旋桨数量大都是偶数的,奇数的比较少,这是为什么呢?很简单,以4旋翼无人机为例,螺旋桨旋转的时候会产生一个反向的扭矩,如果无人机上没有相应的设计来抵消这个反向扭矩,它就会不停地自旋
在这里插入图片描述
如果一定要用奇数个浆,在每个桨的下面再装一个反向桨,于是3桨就变成了6桨,增加了成本
在这里插入图片描述
将3桨无人机其中一个桨设置为可调角度,让它产生侧向的分力来抵消自旋,这样就只需要增加一个用来调桨角度的电机。但除了改变偏航角外,在绝大多数运行情况需要保证反向扭矩平衡,这增加了系统复杂度,同时当出现命令改变,传统pid只需要改变单参数,而加入改变角度电机,需要有一个抉择,有一个最优化选择的问题。

3机器人的运动控制

在这里插入图片描述
单级PID控制飞行姿态,在不进行打舵控制下飞行稳定,但遥控大舵量时就会使飞行器失衡和时滞,主要原因是电机转速与推力的平方成正比。力影响加速度,加速度影响角速度使之平衡,速度影响角度。中间不是直接影响。
在这里插入图片描述
双闭环串级PID,即对角度进行PID控制,也对角速度进行PID控制。外部角度PID控制器的输出(期望角速度)作为内环角速度PID控制器的输入。内环校正角速度的偏差。
在这里插入图片描述

4加速度计

加速度测量的是重力分量,有绝对的参照物即重力轴,因此在无外力的加速的情况下,能够准确输出姿态角,并且此角度不会有累积误差,在长时 间内都是准确的。虽然经过低通滤波器滤除了大部分由于电机震动引入的噪声信号,但是当飞行器在三维空间做变速运动时,加速度传感器同样会检测变速运动的加速度信号,从而导致姿态角的解算将不再准确。
在这里插入图片描述
上图为初始无震动干扰情况下输出信号,由于飞行器放置位置有一定的偏差,会导致 x,y 轴测量数 据并非为零。
在这里插入图片描述
下图为正常运行时的频谱,这要误差来源于高频的电机转动,其噪声幅度与实际值接近,需要过滤。
使用M阶滤波算法
在这里插入图片描述

5陀螺仪

陀螺仪测量飞行器的角速度,需要对时间进行积分,从而得到旋转的角度。陀螺仪只依靠自己本身,但随着积分时间的增加,其积分误差也将逐渐增大,使得 计算的角度与实际角度相异
在这里插入图片描述
在这里插入图片描述
可以发现陀螺仪噪声比较小,但陀螺仪没有经过初始偏差矫正,总是偏向一方,这样积分后偏差会相加。无论用那种传感器都无法满足我们的需要
互补滤波算法将多种传感器融合解算出姿态角利用加速度计去修正陀螺仪

6姿态角解算

在这里插入图片描述
在这里插入图片描述

欧拉角的平面换算

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
那们将一个平面旋转三次的旋转矩阵如下
在这里插入图片描述
欧拉角微分方程中包含了大量的三角运算,这给实时解算带来了一定的困难。而且当俯仰角为 90 度时方程式会出现万向节锁。
这时可以用四元数来表示欧拉角余弦的运算,四元数都可以用欧拉角的余弦来表示,它的意思是在一个四维中的超圆体,因为有四元数虚部系数平方和实数平方的和为1限制在了三维中,可以进行欧拉余弦计算。
在这里插入图片描述
在这里插入图片描述
加速计在静止时的重力是[0,0,1]有大小和方向,用这个反推出在b系下的VX,VY,VZ,并与加速计数值做对比。得到差值来修正陀螺仪数值。
在这里插入图片描述
然后利用陀螺仪数值再来修正四元数。通过四元数可以表示欧拉角
在这里插入图片描述
在这里插入图片描述

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

无人机原理 的相关文章

  • Ubuntu18.04上下载安装使用sogou输入法

    下载地址 xff1a 搜狗输入法Linux官网 首页 安装设置网址 xff1a 搜狗输入法Linux官网 安装指导 这样Ubuntu下工作就更加方便了
  • ros rviz显示rosbag中的图像和imu数据

    一 rosbag相关的指令 1 rostopic list 列举出系统中正在发布的ros 话题 2 rosbag record a 录制系统中所有正在发布的ros 话题 3 rosbag record topic1 topic2 o bag
  • 双目测距误差评估

    我修完产假回来上班了 xff0c 被分到了割草机项目组 xff0c 机遇与挑战并存 xff0c 我啥也不会 xff0c 但是这次扛下来也许就蜕变了呢 xff0c 也许我是想多了 xff0c 管他呢 xff0c 有问题咱就解决 xff0c 有
  • ORB-SLAM2中四叉树管理特征点

    当从图像金字塔中的每一层图像上提取特征点之后 xff0c 都要先用四叉树技术对这些特征点进行管理 该类中定义了四叉树创建的函数以及树中结点的属性 bool bNoMore xff1a 根据该结点中被分配的特征点的数目来决定是否继续对其进行分
  • 在Ubuntu 16.04 上安装和卸载matlab 2018b(Install and uninstall matlab 2018b on ubuntu)

    1 安装2018b可以参考下面两篇文章 https www ph0en1x space 2018 04 23 ubuntu matlab https blog csdn net qq 32892383 article details 796
  • 研究相机和IMU坐标系变换

    刚开始录制的数据时没有考虑相机和IMU之间的坐标变换 xff0c 但是后来发现跟踪效果不好 xff0c 去查验imu数据时 xff0c 发现 xff0c 我采集保存的imu数据格式没有和euroc数据集中的imu数据保存格式统一 xff0c
  • 飞控简析-从入门到跑路序章

    一 序言 茫茫天数此中求 xff0c 世道兴衰不自由 万万千千说不尽 xff0c 不如推背去归休 本人搞飞控差不多两年了 xff0c 从一开始什么都不懂的真 小白 xff0c 到现在的高级小白 xff0c 我已经经历了太多太多 因为感觉飞控
  • 新手到黑客的最全入门路径图(附全部学习资料下载)!

    点击上方 程序人生 xff0c 选择 置顶公众号 第一时间关注程序猿 xff08 媛 xff09 身边的故事 01 入门介绍
  • 飞控简析-从入门到跑路 第二章PX4的位置控制(2)

    1 control auto 说完control manual xff0c 接下来我们在看看control auto control auto是用来处理自动控制的函数 xff0c 即把航线任务转换为期望位置 函数位于Mc pos contr
  • 嵌入式项目研发到量产的流程

    本篇文章讨论嵌入式产品的设计到量产的一个完成流程 xff0c 以车联平台TBox设计为例 流程简述 1 xff09 需求方提需求 xff0c 项目组对需求进行分析 2 xff09 项目组给出设计草案和产品概念模型 3 xff09 设计产品原
  • 我的三种时间对齐方法

    要对齐一段时间内两组时间密度不一样的数据 xff0c S组是4000个时间节点 xff0c G组是20000多个时间节点 xff0c 这里展示了三种方法 xff1a 1 快速扫描算法 xff0c 设置时间精度为0 005s xff0c n的
  • postman后置脚本编写

    参数关联 xff1a 上一个接口返回token xff0c 如何传到下个接口中 xff1f 则需要写后置脚本来获取 1 打开登录接口 xff0c 在Tests区域编写javasscript脚本解析返回response对象 xff0c 从js
  • vscode代码拉取、提交

  • Docker“Got permission denied while trying to connect to the Docker daemon socket“

    问题 我在进行docker pull bestwu qq操作的时候报了错误 xff1a Got permission denied while trying to connect to the Docker daemon socket at
  • USB接口如何检测到设备的插入

    当插座上没有接设备时 xff0c D 43 和D 被15K的电阻下拉到低电平 xff0c 当有设备接入时 xff0c 例如一个U盘设备插入usb接口 xff0c vbus如果是3 3V xff0c 那么对于D 43 的点平则是一个高电平 x
  • 1.gazebo启动与界面介绍

    gazebo启动与界面介绍 1 启动gazebo ubuntu环境下使用ctrl 43 alt 43 t快捷键打开命令行 xff0c 在命令行中直接输入gazebo即可启动gazebo 2 界面介绍 看图 参考官网介绍
  • 程序媛有话说丨35岁的我是如何成功转型,给职场迷茫的师兄师姐师弟师妹

    点击上方 程序人生 xff0c 选择 置顶公众号 第一时间关注程序猿 xff08 媛 xff09 身边的故事 我 82 年出生在中国的一个二线城市 xff0c 毕业于一个三流大学的计算机专业 父母都是国有企业的一般职工 xff0c 没有什么
  • AI时代的思维方式

    2017年5月23日 xff0c 百度联盟大会在重庆召开 xff0c 李彦宏发表演讲 xff0c 阐释AI 时代的思维方式 xff1a 手机还会长期存在 但移动的机会不多了 From think Mobile to think AI 软硬结

随机推荐

  • dubbo超时重试和异常处理

    dubbo超时重试和异常处理 参考 xff1a https www cnblogs com ASPNET2008 p 7292472 html https www tuicool com articles YfA3Ub https www
  • 语音信号的短时傅里叶分析

    语音信号的短时傅里叶分析 文章目录 语音信号的短时傅里叶分析概述短时傅里叶变换短时傅里叶的取样率时域取样率频域取样率总取样率 语音信号的短时综合滤波器组求和法快速傅里叶变换求和法 语谱图宽带语谱图的典型谱型窄带语谱图的典型谱型窄带语谱图的典
  • 5分钟教你搞定一个超详细超简单的图形化界面(Java图形化界面设计之容器(JFrame))

    第一步 xff1a 创建一个maven项目 第二步 xff1a pom xml文件导入相关依赖 第三步 xff1a 写代码啦 xff0c 写完后直接运行即可 第四步 xff1a 程序运行起来啦 第一步 xff1a 创建一个maven项目 第
  • openMP使用

    openMP使用 项目需要对程序的运行进行加速 xff0c 在不考虑更换硬件的前提下 xff0c 考虑采用多线程对代码进行优化 xff0c 以下记录学习过程 处理器采用大疆秒算2 C xff0c CMakeList配置参考这篇博客 xff1
  • VSCode git工具

    之前都是老老实实用命令行敲命令 xff0c 其实VSCode自带得git工具已经非常方便 命令行提交代码 首先先介绍之前在命令行 ubuntu终端 xff0c windows git bash here 操作 xff1a 工程路径下 xff
  • vscode给docker内部的的ros工程代码打断点

    背景 打断点debug虽然不能直观看到变量在时间轴上的整体变化曲线 xff0c 但是其针对某一帧问题数据 xff0c 暂停后一步步单步执行监视每个变量的变化 xff0c 方便直观的判断每一步逻辑的正确性 xff0c 即使这个变量结构再复杂也
  • js中onclick()获取当前点击对象的属性值

    HTML span class token operator lt span a type span class token operator 61 span span class token single quoted string st
  • layui上传文件loading加载动画

    jquery layui 开始请求打开layui加载动画 所有请求结束后关闭layui加载动画 ajaxSetup 方法为将来的 AJAX 请求设置默认值 ajax请求中有一个beforeSend方法 xff0c 用于在向服务器发送请求前执
  • 微信小程序事件bindtap实现页面跳转

    index wxml通过bindtap 61 34 getUrl 34 设置一个名为getUrl事件 lt view class 61 34 tab con 34 gt lt view class 61 34 newsinfo 34 bin
  • 程序员找工作的个人经验教训以及注意事项

    点击上方 程序人生 xff0c 选择 置顶公众号 第一时间关注程序猿 xff08 媛 xff09 身边的故事 忽然间想到如果要找工作的话 xff0c 需要注意一些什么问题 没毕业的 xff0c 刚刚毕业的 xff0c 刚刚工作的都可以借鉴一
  • JavaScript逻辑运算与或非

    逻辑运算 amp amp 与 或 非 javascript中的逻辑运算两边的操作数 xff0c 可以是任意类型的任意值 默认布尔值 xff1a 当参与逻辑运算或判断语句中时 xff0c 任意类型的任意值都有一个默认的布尔型的值 与运算 xf
  • PHP面试题

    PHP知识 php反转字符串的三种方法 1 把分割字符串到一个数组中 xff0c 然后遍历拼接 xff1a lt php function joinStrrev str if strlen str lt 61 1 return str ne
  • tp6实现商城后台登录功能

    后台登录逻辑 1 没有登录状态 xff0c 访问后台页面都应该跳转到登录页 已经登录状态 xff1a 1 访问登录页面 xff0c 应该跳转到后台首页 解决方案 xff1a 后台登录拦截 xff1a 1 传统common base php控
  • Jenkins环境部署

    简介 Jenkins是一款开源 CI amp CD 软件 xff0c 用于自动化各种任务 xff0c 包括构建 测试和部署软件 Jenkins 支持各种运行方式 xff0c 可通过系统包 Docker 或者通过一个独立的 Java 程序 J
  • Nginx中Return指令使用

    Return指令使用 1 返回状态码 return 404 location test set name 39 user123 39 return 404 name curl i http 192 168 56 10 test 2 返回字符
  • MySQL触发器

    介绍 触发器是与表有关的数据库对象 xff0c 指在 insert update delete 之前或之后 xff0c 触发并执行触发器中定义的SQL语句集合 触发器的这种特性可以协助应用在数据库端确保数据的完整性 日志记录 数据校验等操作
  • 制作composer包提供sdk扩展

    目录 1 初始化包 2 将代码推送到github远程仓库 3 为写好扩展包打上tag标签标记当前代码版本 4 将包发布到包管理平台 初始化包 xff0c 生成 Creates a basic composer json file in cu
  • Go环境搭建与IDE开发工具配置

    安装Go语言编译器 Go语言编译器 61 编译器 61 将源代码编译为可执行程序 61 源代码 61 程序员使用高级语言所书写的代码文件 61 高级语言 61 c c 43 43 go 61 机器语言 61 0和1构成 xff0c 机器能直
  • 计算机中的速率、带宽、时延、利用率解读

    计算机网络的性能一般是指它的几个重要的性能指标 但除了这些重要的性能指标外 xff0c 还有一些非性能特征 xff08 nonperformance characteristics xff09 也对计算机网络的性能有很大的影响 那么 xff
  • 无人机原理

    文章目录 1基本运动2为何无人机螺旋桨多为偶数3机器人的运动控制4加速度计5陀螺仪6姿态角解算欧拉角的平面换算 1基本运动 为了平衡扭矩 xff0c 上图中1 3逆时针转动 xff0c 电机2 4顺时针转动进行反扭矩对消 上升 F1 61