课堂笔记《Introduction to Aerial Robotics》

课程地址:https://www.coursera.org/learn/robotics-flight
对应的guokr讨论:http://mooc.guokr.com/course/6888/Robotics--Aerial-Robotics/

看评论是说没学过控制的人学起来很困难啊,那么先试试吧,看看能坚持到哪一步。:)

1.1. Introduction

由于是入门课讲的都是比较基础的东西,简单介绍了一下无人机(Unmanned Aerial Vehicles, UAVs),主要是讲四旋翼(quadrotor)。

  • 民用小型飞行器(貌似一般是叫Drones)目前的市场是15B,估计2020年是25B(话说新闻说DJI在2015年的就卖了10B了,amazing)
  • Quadrotor有6个自由度,3个平移和3个旋转的。
  • Quadrotor的关键部件有:State estimation,Control,Mapping和Planning。
  • State estimation需要知道飞行器的位置和速度,一个关键部分应该是IMU,IMU可以得到3轴的线性加速度和3轴的角速度,见这里
  • Control指控制发动机使得飞行器处于某个设定的state的过程。
  • Mapping对应感知,要让飞行器知道目前所处于的环境。
  • Planning指的是在感知到环境之后,飞行器通过路径规划来避开障碍物到达目的地的过程。
  • 课程引入SLAM(simultaneous localization and mapping)是在state estimation的一节,所以我就理解成SLAM是将state estimation和mapping同时做的过程了。在三维的SLAM中,需要估计的量包括,3维的位移量,飞行器的朝向变化,3维的线速度和3维的角速度。

1.2. Energetics and System Design

感觉难度马上上去了,毕竟本人物理已经忘得差不多了囧。

  • 为何四旋翼有一对是顺时针另外一对是逆时针?因为如果四个都是一个方向,飞行器就会一直打转。。。

  • 这个图(对我来说)比较复杂,横轴是旋翼的角速度或者RPM(每分钟转速),纵轴是上升的推力,它们可以建模成平方的关系,$F=k_F\omega^2$。由于有四个旋翼,那么每个旋翼需要承担四分一的机身重量,所以根据$W_0 = \frac{1}{4}mg$可以得到每个旋翼在悬停时候需要的角速度$\omega_0$。但是旋翼的旋转会引入一个drag moment(理解成发动机产生的摩擦力?),这个drag moment跟旋翼的角速度也是平方的关系,$M=k_M\omega^2$。这个drag moment需要通过torque-speed characteristics(转矩-速度特性)来调节发动机的torque来平衡掉。
  • 当这些力和力矩是平衡的时候,飞行器会悬停(或者保持匀速运动),不平衡时,就会引入加速度$a$,比如将相对的两个旋翼的角速度加快,那么飞行器就会加速上升,反之是加速下降。

  • 对于控制,这一节中只考虑控制高度,也就是z方向,这可以建模成一个二阶的动态系统,为什么是二阶?因为控制考虑只需要考虑垂直方向的位移$x$,然后系统的输入是加速度$a$(上图中也用$u$来表示这个输入),即位移的二阶导数(x上加两点表示),所以这是一个二阶的动态系统。(注:动态系统我理解成系统的状态是随着时间推移渐变的,而不是一下子剧变,也就是输入-输出曲线应该是一条平滑的曲线而不是折线。)

  • 进一步地,这个二阶动态系统可以建模成,在t时刻期待的位移是$x^{des}(t)$,要求此时的模型在输入为$u$的加速度下的所行进的路径$x$尽可能接近$x^{des}(t)$。为了达到t时刻的误差$e(t)$能够指数级别地接近0,可以引入方程$\ddot{e}+K_v\dot{e}+K_pe=0$,并取一组解$K_p$和$K_v$满足它们都大于0。然后将$K_p$和$K_v$代入到$u(t)=\ddot{x}^{des}(t)+K_v\dot{e}(t)+K_pe(t)$就可以了。这个“简单”的控制方法成为PD控制方法,其中P for Proportional(比例项,因为它是e乘以一个系数$K_p$),D for Derivative(导数项,因为它是e的一阶导数乘以一个系数$K_v$)。

  • 直观理解上,P理解成弹簧或者电容,而D理解成阻尼或者电阻。如果P越大,那么系统响应越快,但是也越震荡,也更容易overshoot。如果D越大,那么系统收敛变慢,但同时也没有那么容易overshoot。另外,当模型有类似风的干扰或者系统错误时,可以引入积分项I来解决,这个控制模型叫PID控制。
很久没有更新网站,发现多了不少评论和问题,无法一一回复,如果现在仍有问题请再次留言 :) 2016.03.29