cousera Aerial Robotics 无人飞行器 笔记1

2023-10-09 06:59

本文主要是介绍cousera Aerial Robotics 无人飞行器 笔记1,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

第一周 综述

写在前面

这个暑假花了大概整整一周时间拿到了课程的证书,本课程主要内容是四旋翼的系统设计和控制,本课程对于运动学和动力学的数学推导有着比较详细的介绍,并在编程作业中对四旋翼的控制和路径规划进行了仿真,前置课程主要是自动控制原理和理论力学,编程作业主要是用Matlab,目前还没有中文字幕。

由于作者水平有限,可能存在错误,还望指正。

各种各样的无人飞行器

  • aerial robots | 空中机器人
  • Unmanned Aerial Vehicles(UVA) | 无人机
  • Remotely Piloted Vehicles(RPVs) | 遥控飞行器,课程中将其也归为无人机
  • Drones | 最常见的无人机叫法
  • Quadrotor | 四旋翼

这些无人飞行器中的微型飞行器主要包括固定翼,扑翼和旋翼几种,本课程主要研究旋翼机中的四旋翼。

为什么选择四旋翼作为教授对象?

因为四旋翼结构简单,桨叶短而硬,飞行器在忽然转向时,桨叶不会因为陀螺力矩而扑动,也因此,四旋翼的建模比较容易。

四旋翼如何控制其姿态和位置?

将四旋翼的四个旋翼顺时针标号为1,2,3,4,其1,3转子的转动方向为逆时针,2,4转子方向为顺时针。

滚转和俯仰

机体坐标系下,滚转是绕X轴的运动,俯仰是绕Y轴的运动,四旋翼通过改变相对的一对旋翼的转动速度来产生滚转和俯仰力矩。

p1
p2

偏航

机体坐标系下,偏航是绕Z轴的运动,比如要控制飞行器顺时针旋转,则2、4电机减速,1、3电机加速,即逆时针旋转的速度加大,产生偏航力矩。
实现自动飞行有哪些关键因素

  • State Estimation 估计出飞行器当前的位置、速度和姿态等。
  • Control 根据目标状态和当前状态,计算出电机指令。
  • Mapping 绘制所在环境的地图(商业级四旋翼一般无此功能)。
    Planning 在已知外界环境和目标地点的情况下,规划出一条避障轨迹。
SLAM(Simultaneous Localization And Mapping)简介

SLAM也是当前人工智能中计算机视觉领域的一个热门方向,该问题可以表述为下:

机器人在未知环境中从一个未知位置开始移动,在移动过程中进行自身定位,并在自身定位的基础上建立环境地图,实现自主定位和导航。即同时实现Stae Estimation和Mapping。

p3

SLAM问题如上图所示,已知 d 1 , d 2 , d 3 , d 1 ′ , d 2 ′ , d 3 ′ d_1,d_2,d_3,d_1',d_2',d_3' d1,d2,d3,d1,d2,d3,同时估计 x 1 , x 2 , x 3 , δ x x_1,x2,x_3,\delta x x1,x2,x3,δx

动力系统和系统设计

平衡方程

p4
F = ∑ i = 1 4 F i − m g a 3 M = ∑ i = 1 4 r i F i + M i F = \sum_{i=1}^4{Fi}-mga_3 M = \sum_{i=1}^4{r_iF_i+M_i} F=i=14Fimga3M=i=14riFi+Mi

控制方程
PD控制

u ( t ) = x d e s + k v e ( t ) ( 1 ) u(t) = x^{des} + k_v e(t)^{(1)} u(t)=xdes+kve(t)(1)
k v > 0 k_v>0 kv>0 k p > 0 k_p>0 kp>0时,系统稳定, k p k_p kp增大,系统的超调量 σ \sigma σ增大,反应更加迅速, k v k_v kv增大,系统的阻尼增大。

PID控制

u ( t ) = x d e s + k v e ( t ) ( 1 ) + k i ∫ e ( t ) d t u(t) = x^des + k_ve(t)^{(1)} + k_i\int e(t)dt u(t)=xdes+kve(t)(1)+kie(t)dt
I项主要应对未知参数的扰动

设计上的一些考量

能量

四旋翼一般功率比重量的量级约为200W/Kg,固定翼约为120W/Kg,锂电池能提供的量级一般为400W/Kg。可以看出固定翼的效率比旋翼高近一倍。

机动性

yz平面内的四旋翼动力学模型

p5

[ y ( 2 ) z ( 2 ) ϕ ( 2 ) ] = [ 0 − g 0 ] + [ − 1 m c o s ( ϕ ) 0 1 m c o s ( ϕ ) 0 0 1 I x x ] [ u 1 u 2 ] \begin{bmatrix} y^{(2)}\\z^{(2)}\\\phi^{(2)} \end{bmatrix} = \begin{bmatrix} 0\\-g\\0 \end{bmatrix} + \begin{bmatrix} -{1 \over m}cos(\phi)&0\\ {1 \over m}cos(\phi)&0\\ 0& 1 \over I_{xx} \end{bmatrix} \begin{bmatrix} u_1\\u_2 \end{bmatrix} y(2)z(2)ϕ(2)=0g0+m1cos(ϕ)m1cos(ϕ)000Ixx1[u1u2]
u 1 u_1 u1为所有旋翼的合拉力, u 2 u_2 u2为所有旋翼的力矩

尺寸效应

l为四旋翼的臂长,r为旋翼的半径,m为四旋翼的质量。

Froude scaling

m m m ~ y 3 y^3 y3

F F F ~ π r 2 ∗ ( ω r ) 2 \pi r^2 * (\omega r)^2 πr2(ωr)2 ~ l 2 v 2 l^2v^2 l2v2

M M M ~ F l Fl Fl ~ l 3 v 2 l^3v^2 l3v2

α \alpha α ~ $M\over I $ ~ v 2 / l 2 v^2 / l^2 v2/l2

v v v ~ l 1 / 2 l^{1/2} l1/2

Mach Scaling

v v v ~ 1 1 1

F F F ~ l l l

a a a ~ 1 / l 1/l 1/l

α \alpha α ~ 1 / l 2 1/l^2 1/l2

结论

尺寸越小越敏捷

这篇关于cousera Aerial Robotics 无人飞行器 笔记1的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/171142

相关文章

无人叉车3d激光slam多房间建图定位异常处理方案-墙体画线地图切分方案

墙体画线地图切分方案 针对问题:墙体两侧特征混淆误匹配,导致建图和定位偏差,表现为过门跳变、外月台走歪等 ·解决思路:预期的根治方案IGICP需要较长时间完成上线,先使用切分地图的工程化方案,即墙体两侧切分为不同地图,在某一侧只使用该侧地图进行定位 方案思路 切分原理:切分地图基于关键帧位置,而非点云。 理论基础:光照是直线的,一帧点云必定只能照射到墙的一侧,无法同时照到两侧实践考虑:关

【学习笔记】 陈强-机器学习-Python-Ch15 人工神经网络(1)sklearn

系列文章目录 监督学习:参数方法 【学习笔记】 陈强-机器学习-Python-Ch4 线性回归 【学习笔记】 陈强-机器学习-Python-Ch5 逻辑回归 【课后题练习】 陈强-机器学习-Python-Ch5 逻辑回归(SAheart.csv) 【学习笔记】 陈强-机器学习-Python-Ch6 多项逻辑回归 【学习笔记 及 课后题练习】 陈强-机器学习-Python-Ch7 判别分析 【学

系统架构师考试学习笔记第三篇——架构设计高级知识(20)通信系统架构设计理论与实践

本章知识考点:         第20课时主要学习通信系统架构设计的理论和工作中的实践。根据新版考试大纲,本课时知识点会涉及案例分析题(25分),而在历年考试中,案例题对该部分内容的考查并不多,虽在综合知识选择题目中经常考查,但分值也不高。本课时内容侧重于对知识点的记忆和理解,按照以往的出题规律,通信系统架构设计基础知识点多来源于教材内的基础网络设备、网络架构和教材外最新时事热点技术。本课时知识

论文阅读笔记: Segment Anything

文章目录 Segment Anything摘要引言任务模型数据引擎数据集负责任的人工智能 Segment Anything Model图像编码器提示编码器mask解码器解决歧义损失和训练 Segment Anything 论文地址: https://arxiv.org/abs/2304.02643 代码地址:https://github.com/facebookresear

数学建模笔记—— 非线性规划

数学建模笔记—— 非线性规划 非线性规划1. 模型原理1.1 非线性规划的标准型1.2 非线性规划求解的Matlab函数 2. 典型例题3. matlab代码求解3.1 例1 一个简单示例3.2 例2 选址问题1. 第一问 线性规划2. 第二问 非线性规划 非线性规划 非线性规划是一种求解目标函数或约束条件中有一个或几个非线性函数的最优化问题的方法。运筹学的一个重要分支。2

【C++学习笔记 20】C++中的智能指针

智能指针的功能 在上一篇笔记提到了在栈和堆上创建变量的区别,使用new关键字创建变量时,需要搭配delete关键字销毁变量。而智能指针的作用就是调用new分配内存时,不必自己去调用delete,甚至不用调用new。 智能指针实际上就是对原始指针的包装。 unique_ptr 最简单的智能指针,是一种作用域指针,意思是当指针超出该作用域时,会自动调用delete。它名为unique的原因是这个

查看提交历史 —— Git 学习笔记 11

查看提交历史 查看提交历史 不带任何选项的git log-p选项--stat 选项--pretty=oneline选项--pretty=format选项git log常用选项列表参考资料 在提交了若干更新,又或者克隆了某个项目之后,你也许想回顾下提交历史。 完成这个任务最简单而又有效的 工具是 git log 命令。 接下来的例子会用一个用于演示的 simplegit

记录每次更新到仓库 —— Git 学习笔记 10

记录每次更新到仓库 文章目录 文件的状态三个区域检查当前文件状态跟踪新文件取消跟踪(un-tracking)文件重新跟踪(re-tracking)文件暂存已修改文件忽略某些文件查看已暂存和未暂存的修改提交更新跳过暂存区删除文件移动文件参考资料 咱们接着很多天以前的 取得Git仓库 这篇文章继续说。 文件的状态 不管是通过哪种方法,现在我们已经有了一个仓库,并从这个仓

忽略某些文件 —— Git 学习笔记 05

忽略某些文件 忽略某些文件 通过.gitignore文件其他规则源如何选择规则源参考资料 对于某些文件,我们不希望把它们纳入 Git 的管理,也不希望它们总出现在未跟踪文件列表。通常它们都是些自动生成的文件,比如日志文件、编译过程中创建的临时文件等。 通过.gitignore文件 假设我们要忽略 lib.a 文件,那我们可以在 lib.a 所在目录下创建一个名为 .gi

取得 Git 仓库 —— Git 学习笔记 04

取得 Git 仓库 —— Git 学习笔记 04 我认为, Git 的学习分为两大块:一是工作区、索引、本地版本库之间的交互;二是本地版本库和远程版本库之间的交互。第一块是基础,第二块是难点。 下面,我们就围绕着第一部分内容来学习,先不考虑远程仓库,只考虑本地仓库。 怎样取得项目的 Git 仓库? 有两种取得 Git 项目仓库的方法。第一种是在本地创建一个新的仓库,第二种是把其他地方的某个