Robotics: Aerial Robotics(空中机器人)笔记(四):无人机动力学建模

2023-05-16

在这一章里,我们将探索四旋翼无人机动力学的相关知识。 我将主要讲刚体动力学中的牛顿-欧拉方程以及在四旋翼无人机上的形式。

上一章链接:

Robotics: Aerial Robotics(空中机器人)笔记(三):无人机运动学

四旋翼无人机合力与合力矩分析

与之前的讨论相同,我们将讨论两个坐标系。一个是移动机器人上的坐标系,另一个是惯性坐标系。四旋翼无人机上 有四个转子,每个转子都是电机独立驱动的。 r 是质心的位置向量,并且 我们知道每个电机产生的升力和相应的阻力矩,那么四旋翼无人机的合力以及合力矩也可以求出:

为了求出四旋翼无人机的加速度,我们必须引入牛顿-欧拉方程。

牛顿-欧拉方程(Newton-Euler Equations)

我们把刚体当作一个由无数个粒子组成的系统,每个粒子的运动符合牛顿第二定律:

那么我们考虑牛顿第二定律下的由粒子组成的系统:

首先我们要定义系统的质心 C,可以通过以下的公式求得,其中 p_i 是系统中每个粒子的位置矢量, m_i 是每个粒子对应的质量,m 是刚体的质量:

事实证明,粒子系统的质心 C 在惯性系 A 中加速,就好像它是一个质量为 m(等于系统总质量)的单个粒子,受到的力等于合外力。所以我们就有如下式子,其中加速度 \textbf{a} 是速度 \textbf{v} 的微分,上标 A 表示正在计算所有这些量都在一个惯性系 A 中,而上标 C 指的是正在计算质心的速度

 那么通过高中物理的学习我们可以知道动量 \textbf{p}=m\textbf{v} ,那么我们就可以得到合力等于其线动量的   变化率:

 其中 \textbf{L} 指的是粒子系统的线动量。

 考虑完平动,那么我们就来考虑旋动了。由力和力矩的对应关系我们就可以得到其合力矩应为其   角动量的变化率,其中 H 是惯性系 A 以刚体 B 的质心 C 为原点的的角动量

 角动量的表达如下,其中 \mathbf{I}_C 是以 C 为原点的惯性张量,^A\omega^B 是刚体 B 在惯性系 A 上的角速度:

主惯性轴和主惯性矩(Principal Axes and Principal Moments of Inertia)

这门课上关于主惯性轴和主惯性矩的内容讲的稍微有些跳跃,所以我以我的理解以及网上对此的相关介绍来说明。

转动惯量

我们首先讲一下转动惯量,它是一个用来衡量做旋转运动的物体由静止状态变为旋转状态或者由旋转状态变为静止的物理量。在物体做平动运动中,与转动惯量对应的就是物体的惯性,其与质量有关。而转动惯量不单与质量有关,还与旋转物体的质量相对于回转轴的分布状态有关。

对于一般物体,其绕某一轴z的转动惯量计算公式如下:

惯性张量

作为转动惯量的推广,惯性张量是刚体绕某一点转动时惯性的量度,惯性张量与点的选取、坐标系的选取和刚体本身质量分布有关:

I=\begin{bmatrix} I_{xx}&-I_{xy} &-I_{xz} \\ -I_{xy}&I_{yy} &-I_{yz} \\ -I_{xz}&-I_{yz} &I_{zz} \end{bmatrix}

其中,I_{xx} ,I_{yy} 和 I_{zz} 为惯性矩,其它元素称之为惯性积。这里只是稍微过一个知识点,每个元素具体的计算公式感兴趣的同学们可以自行去查。

主惯性轴和主惯性矩

如果选取的坐标系oxyz与刚体在o点的三个惯性主轴相重合,则惯性积均为0,这时惯性张量为对角矩阵,称此时的坐标系各轴为惯性主轴,相应的惯性矩为主惯性矩。

那么此时的惯性张量如下:

I=\begin{bmatrix} I_{xx}&0 &0 \\ 0&I_{yy} &0 \\0&0 &I_{zz} \end{bmatrix}

下图中左边部分就是选取的坐标系oxyz没有与刚体在o点的三个惯性主轴重合的情况,我们可以看出角动量矢量与角速度矢量此时不是平行的。而右边则是重合的情况,此时角动量矢量与角速度矢量平行。惯性张量就只剩下惯性矩,可以让计算更加方便。

欧拉运动方程(Euler's Equations of Motion)

有了前面的铺垫,我们就可以来计算相应的刚体运动方程了。我们在刚体上选取一个坐标系 B ,这个坐标系就是沿着刚体的三个惯性主轴,原点为质心 C 建立起来的,它固定在了刚体上,所以称之为刚体系。如下图所示:

角速度也就可以分解成这三个方向上的量:

 还记得之前求合力矩的公式吗?

我们可以把它分解成两项相加,其中第一项是在角动量在刚体系上求导,第二项是一个修正因子,对第一项进行相关修正。这个修正因子将刚体坐标系的角速度与角动量进行了叉乘,实际上是一个在力学领域中非常常见的概念,在运动坐标系中对某向量进行求导的结果与在固定坐标系中的是不同的:

其中第一项可以写成:

 那么最终的合力矩在三个方向上的分量就可以求出来:

这便是欧拉运动方程,在接下来的内容中 我们将使用 p,q 和 r 来表示沿 b1,b2 和 b3 的角速度向量:

四旋翼无人机运动方程(Quadrotor Equations of Motion)

回到之前说的,我们已经知道了四旋翼无人机的合力和合力矩:

那么根据牛顿-欧拉方程我们可以得到如下的表达式,其中 R 是刚体系 B 旋转到惯性系 A 的旋转矩阵,L 是每个转子到质心的长度,事实上我们需要知道的就只是一些几何结构的参数,例如质量,力矩长度等,这些参数的测量比较容易:

通过上式我们也可以得到角速度与欧拉角变化之间的关系:

这个式子的推导如下: 

在Z-X-Y欧拉角中,旋转矩阵为:

R=R_z(\psi)R_x(\phi)R_y(\theta)

由第三章四旋翼无人机的运动学的学习中我们知道,其以角速度为特征的反对称矩阵如下,并将上式代入到下式得到:

\hat{w_b}=(p \ q\ r)\hat{} = R^T\dot{R}

=R_y^T\dot{R}_y+R_y^T(R_x^T\dot{R}_x)+R_y^TR_x^T(R_z^T\dot{R}_z)R_xR_y

我们知道 R^T\dot{R} 对应的是总的角速度,那么 R_y^T\dot{R}_y 对应的就是 y 上的角速度,其它同理:

R_x(\phi)^T\dot{R}_x(\phi) = (\dot{\phi} \ 0 \ 0)\hat{}

R_y(\theta)^T\dot{R}_y(\theta) = (0\ \dot{\theta} \ 0)\hat{}

R_z(\psi)^T\dot{R}_z(\psi) = (0 \ 0 \ \dot{\psi} )\hat{}

运用矩阵积和叉积的相关性质 Rw \times Rv = R(w\times v),我们可以得到:

(Rw)\hat{}Rv = R\hat{w}v

那么就有,其中 R 是正交矩阵,所以 RR^T 为单位矩阵:

(Rw)\hat{}R = R\hat{w} \ \ \ \ \ \ \ or \ \ \ \ \ \ (Rw)\hat{} = R\hat{w}R^T

我们再看回原式,是不是就可以写成如下形式,然后把帽子摘下:

(p \ q\ r)\hat{} = (0 \ \dot{\theta} \0)\hat{} + [R_y^T(\dot{\phi} \0 \0)]\hat{} + [R_y^TR_x^T(0 \0 \ \dot{\psi})]\hat{} \\

(p \ q\ r) = (0 \ \dot{\theta} \0) + [R_y^T(\dot{\phi} \0 \0)] + [R_y^TR_x^T(0 \0 \ \dot{\psi})]

接下来把 R_y, R_x 代进去:

R_y=\begin{bmatrix} cos\theta&0 &sin\theta \\ 0&1 &0 \\ -sin\theta&0 &cos\theta \end{bmatrix} \ \ \ \ R_x = \begin{bmatrix} 1&0 &0 \\ 0&cos\phi &-sin\phi \\ 0&sin\phi &cos\phi \end{bmatrix}

得到: 

\begin{bmatrix} p\\ q\\ r \end{bmatrix}= \begin{bmatrix} \dot{\phi}cos\theta-\dot{\psi}cos\phi sin\theta\\ \dot{\theta}+\dot{\psi}sin\phi\\ \dot{\phi}sin\theta+\dot{\psi}cos\phi cos\theta \end{bmatrix}= \begin{bmatrix} cos\theta &0 &-cos\phi sin\theta \\ 0 &1 &sin\phi \\ sin\theta&0 &cos\phi cos\theta \end{bmatrix}\begin{bmatrix} \dot{\phi}\\ \dot{\theta} \\ \dot{\psi} \end{bmatrix}

得证。

四旋翼无人机的状态空间(State Space for Quadrotors)

简单起见,我们后面将先讨论平面无人机的运动问题,无人机将只会在yz平面上移动。换句话说,无人机不会沿着x轴移动,同时进一步假设不会进行偏航角或俯仰角运动,如下图所示,具体的公式推导也已经在之前的章节中完成:

因此我们得出了如图所示的三个方程,这三个方程描述了 y 和 z 方向的速度变化速率,以及在偏航角角速度的变化速率,这就引出了状态向量的概念。

为了描述这种系统,定义一个状态向量是很有用的。在三维的情况下我们用六个变量来描述机器人的组态。状态向量包含其组态向量及组态的微分向量,所以在三维的情况下状态向量有12维,包含所有这些状态向量的空间称为状态空间。:

对于平面无人机,要考虑的量就少很多,则有:

 对于平衡组态(equilibrium configuration),我们可以想像此时无人机处于一个悬停的状态,那么其在三维空间上的位置可以是任意的,并且其偏航角也可以是任意的,而俯仰角和翻滚角为0,由于都是常数,那么其求导的值都为0,就有:

对于平面无人机,同理:

下一章链接:

Robotics: Aerial Robotics(空中机器人)笔记(五):无人机在二维平面以及三维空间中的PD运动控制

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

Robotics: Aerial Robotics(空中机器人)笔记(四):无人机动力学建模 的相关文章

随机推荐

  • Jetson TX1 介绍

    前因 Jetson TX1 核心模块目前已经停产 xff0c 但是我们发现市面上有很多二手模块可以很容易获取 xff0c 同时 xff0c 英伟达对于Jetson TX1 的所有软件支持依然集成在了SDK manager中 xff0c 在最
  • Received status code 400 from server: Bad Request

    一 报错信息 FAILURE span class token operator span span class token class name Build span failed span class token keyword wit
  • Oracle VirtualBox虚拟机安装

    1 到官网下载虚拟机安装包 xff08 https www virtualbox org wiki Downloads xff09 2 下载后的样子 3 选择安装路径 4 选择要安装的功能 5 安装 6 安装完成
  • VirtualBox虚拟机安装Red Hat Enterprise Linux7.2

    1 首先安装好VirtualBox 2 下载好rhel server 7 2 xff0c 下载好长这样 3 点击新建 xff0c 在弹出窗口中输入名称 xff0c 选择类型和版本 xff0c 之后点击下一步 4 选择内存大小 xff0c 根
  • HTML 页面中的 target 用法

    值含义 blank在新窗口中打开链接 parent在父窗体中打开链接 self在当前窗体打开链接 此为默认值 top在当前窗体打开链接 xff0c 并替换当前的整个窗体 框架页 一个对应的框架页的名称在对应框架页中打开
  • VirtualBox挂载RedHat光盘

    1 使用root用户登录RedHat系统 xff0c 点击设备 gt 安装增强功能 2 安装增强功能后桌面会出现一个光盘标志 xff0c 弹出框点取消 3 为防止后续步骤出错 xff0c 此处重新分配光盘 点击设备 gt 分配光驱 xff0
  • RedHat系统使用yum安装软件

    使用yum命令安装软件 xff0c 此处以system config users为例 1 配置yum源配置文件 xff08 存放在 etc yum repos d文件夹下 xff09 xff1b 切换到 etc yum repos d文件夹
  • 初识HTML

    什么是HTML xff1f HTML 指的是超文本标记语言 HyperText Markup LanguageHTML 不是一种编程语言 xff0c 而是一种标记语言标记语言是一套标记标签 markup tag HTML 使用标记标签来描述
  • Window 安装MySQL8

    1 下载安装包 官网下载MySQL安装包 xff0c 下载地址 https dev mysql com downloads mysql 2 解压缩 将下载好的压缩包解压至你的安装目录 xff0c 我的路径为E tools MySQL ins
  • Windows 安装Navicat 连接MySQL

    1 下载Navicat Premium 进入官网https www navicat com cn download navicat premium下载Navicat Premium 2 安装 选择安装路径 然后一直点击下一步 xff0c 直
  • win10 安装Python3.8和pip

    下载安装包 1 进入Python官网https www python org xff0c 选择Windows 2 往下滑 xff0c 找到3 8 10 xff0c 选择Download Windows installer 64 bit xf
  • jeston TX1/TX2 系统迁移至SD卡的正确步骤

    如果是刚刚开始Nvidia jeston TX1 TX2 开发的初学者 xff0c 希望本文可以帮助节省时间 首先上张图 xff0c 完成配置后的 jeston TX1 载板使用的是作者自己设计的EdgeBox EHub tx1 tx2 E
  • win 10安装IPython

    什么是IPython Ipython是一种交互式解释器 Ipython的性能优于标准Python的shell IPython支持变量自动补全 xff0c 自动缩进 xff0c 支持 bash shell 命令 xff0c 内置了许多很有用的
  • Java连接MySQL数据库

    Java连接MySQL数据库 数据库帮助类DBHelper java 使用的JDBC驱动是 mysql connector java 8 0 25 jar span class token keyword import span java
  • ubuntu安装cmake

    参考 xff1a ubuntu安装cmake 陈 洪 伟的博客 CSDN博客 ubuntu安装cmake 注意 xff1a https cmake org download 下载cmake时 xff0c 要下载Source distribu
  • ADRC最速综合函数fhan实现

    ADRC最优综合函数fhan函数测试 fhan函数是ADRC的跟踪微分控制器的核心函数 xff0c 使得状态变量可以快速跟踪上系统输入 本例中 xff0c 设理想输入v 61 sin t 用状态变量x1跟踪输入 xff0c x2跟踪输入的导
  • 【日志】gazebo无法加载模型 & 黑屏 & ResourceNotFound &[gazebo-1] process has died [pid 11734, exit code 255]

    问题1 ResourceNotFound xacro 解决方法 sudo apt get install ros kinetic xacro 问题2 ERROR cannot launch node of type gazebo ros g
  • Robotics: Aerial Robotics(空中机器人)笔记(二):如何设计一架四旋翼无人机

    在这一章里 xff0c 我们将探索四旋翼如何飞行的 这章将会讲一些基本的力学原理以及如何设计无人机 上一章链接 xff1a Robotics Aerial Robotics xff08 空中机器人 xff09 笔记 xff08 一 xff0
  • Robotics: Aerial Robotics(空中机器人)笔记(三):无人机运动学建模

    在这一章里 xff0c 我们将探索四旋翼无人机的运动学原理 这章将会讲机器人学中的坐标转换 xff08 Transformation xff09 旋转 xff08 Rotation xff09 欧拉角 xff08 Euler Angles
  • Robotics: Aerial Robotics(空中机器人)笔记(四):无人机动力学建模

    在这一章里 xff0c 我们将探索四旋翼无人机动力学的相关知识 我将主要讲刚体动力学中的牛顿 欧拉方程以及在四旋翼无人机上的形式 上一章链接 xff1a Robotics Aerial Robotics xff08 空中机器人 xff09