RPY角的具体描述

news2024/9/20 14:23:36

目录

一、 RPY角度

二、左乘与右乘

三、xyz固定角和zyx欧拉角旋转矩阵等价

四、参考文献


一、 RPY角度

1.1、X-Y-Z固定角[1]
        首先将坐标系{B}和一个已知参考坐标系{A}重合。先将{B}绕\hat{x}_A旋转γ角,在绕\hat{Y}_A旋转β角,在绕\hat{Z}_A旋转α角,每次旋转都是绕着固定参考坐标系{A}的轴。如图1所示。
        同时将γ角、β角和α角成为偏转角(yaw)、俯仰角(pitch)和回转角(roll)。

图1 

1.2、滚动角、俯仰角和偏航角[2]
        旋转按照x-y-z的顺序进行,首先绕x_0轴偏航\psi角度,接下来绕y_0轴俯仰\Theta角度,最后绕z_0轴滚动\phi角度。滚动(roll)、俯仰(pitch)、偏航(yaw)。 如图2所示。
        备注:认为书中将x和z的偏航和滚动写反了,故更改过来。

图2 

1.3 绕固定轴x-y-z旋转(RPY角度)[3]
        RPY角是描述船舶在海中航行时姿态的一种方法。将船的行驶方向取为z轴的方向,则绕z轴的旋转(α角)称为回转(roll),绕y轴的旋转(β角)称为俯仰(pitch),绕x轴的旋转(γ角)称为偏转(yaw)。如图3所示。
        备注:船舶在海中航行时姿态是当对于固定坐标系,所以xyz称为固定角。xyz与左乘顺序有关。

图3 

1.4  RPY角[4]
        RPY角也可以描述飞行器姿态的典型改变。ZYX角也称为滚动-俯仰-偏航角。如图4所示。
备注:飞行器姿态是相对于当前坐标系的描述。所以称ZYX角称为欧拉角。ZYX与右乘顺序有关。

图4 

总结:
(1)、1.1、1.2和1.3是当对于固定坐标系xyz描述的RPY角。
(2)、1.4是相对于欧拉角zyx描述的RPY角。但是他们最终的结果是一样的。
 

二、左乘与右乘

(1)、当两个坐标系原点重合,矢量描述由坐标系{B}变换到坐标系{A}时,如果A为固定坐标系时,我们仅需要左乘旋转矩阵即可

_{}^{A}\textrm{}P= _{C}^{A}\textrm{}T(_{B}^{C}\textrm{}T_{}^{B}\textrm{}P) 

 备注:左乘可以理解为先进行括号里面的,更新完坐标系后,在进行下一次变换

(2)、矢量描述由坐标系{D}变换到坐标系{U}时。此时需要根据坐标系变换方程来进行变换。坐标系{D}可以通过两种形式来表达变换。如图5所示。

{_{D}^{U}\textrm{}}T={_{A}^{U}\textrm{}}T{_{A}^{U}\textrm{}}T  第一种

 {_{D}^{U}\textrm{}}T={_{B}^{U}\textrm{}}T{_{C}^{B}\textrm{}}T{_{D}^{C}\textrm{}}T   第二种

{_{A}^{U}\textrm{}}T{_{D}^{A}\textrm{}}T={_{B}^{U}\textrm{}}T{_{C}^{B}\textrm{}}T{_{D}^{C}\textrm{}}T   变换方程

_{}^{U}\textrm{}P= ({_{A}^{U}\textrm{}}T{_{D}^{A}\textrm{}}T )_{}^{D}\textrm{}P_{}^{U}\textrm{}P= ({_{B}^{U}\textrm{}}T{_{C}^{B}\textrm{}}T{_{D}^{C}\textrm{}}T)_{}^{D}\textrm{}P

 备注:右乘可以理解为多次变换可以计算完成后,在进行坐标系变换。

图5  

三、xyz固定角和zyx欧拉角旋转矩阵等价

当xyz固定角时,先绕哪个轴就先在坐标系左侧乘旋转矩阵进行变换。

当zyx欧拉角时,因为坐标系姿态变换为右乘,同时可以先完成变换,在左乘坐标系进行变换。 

所以xyz固定角和zyx欧拉角旋转矩阵等价。旋转矩阵如图6所示。

图6 


四、参考文献

[1].机器人学导论(原书第四版)
[2].机器人建模和控制
[3].机器人学建模、控制和视觉(第2版).熊有伦、李文龙 
[4].机器人学建模、规划和控制

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2130130.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

做统计(蓝桥杯初级)

系列文章目录 e,新系列没有目录) 文章目录 系列文章目录前言一、个人名片二、描述三、输入输出以及代码示例1.输入输入样例: 2.输出输出样例: 3.代码示例 四、思路总结 前言 今天我们来做《做统计》 一、个人名片 个人主页&…

Flutter-底部选择弹窗(showModalBottomSheet)

前言 现在有个需求,需要用底部弹窗来添加定时的重复。在这里使用原生的showModalBottomSheet来实现 showModalBottomSheet的Props 名称 描述 isScrollControlled全屏还是半屏isDismissible外部是否可以点击,false不可以点击,true可以点击&a…

剪花布条(KPM模板题)

思路&#xff1a;套用KMP模板即可。 #include<bits/stdc.h> using namespace std; #define IOS ios::sync_with_stdio(false);cin.tie(0);cout.tie(0); #define endl \n int ne[200005]; int main() {IOSstring a,b;while(cin >> a){if(a"#") break;cin …

LEAN 类型系统属性 之 算法式相等的非传递性(Algorithm equality is not transitive)注解

由于 subsingleton 使用函数&#xff08;eliminator&#xff09; 的存在&#xff0c;导致算法式相等&#xff08;Algorithm defintional equality&#xff09;的非传递性。 在《定义上相等的非确定性&#xff08;Undecidability of Definitional Equality&#xff09;》 中有&…

[基于 Vue CLI 5 + Vue 3 + Ant Design Vue 4 搭建项目] 10 Ant Design Vue 的注册

1.全局全部注册 这样就可以将 ant design vue 全部组件注册进来 2.全局部分注册 这样就是按需注册了 本次&#xff0c; 我们选择第1种方式&#xff0c;全部注册进来 3.注册全局 css 4.测试一下 在 AboutView.vue 中添加一个 Test 按钮 使用 npm run serve 启动服务 访问 A…

如何通过subprocess在数据采集中执行外部命令 —以微博为例

介绍 在现代网络爬虫开发中&#xff0c;爬虫程序常常需要与外部工具或命令交互&#xff0c;以完成一些特定任务。subprocess 是 Python 提供的强大模块&#xff0c;用于启动和管理外部进程&#xff0c;广泛应用于爬虫技术中。本文将探讨如何通过 subprocess 在爬虫中执行外部命…

k8s 常见问题梳理

1、“cni0” already has an IP address different from 10.244.2.1/24 删除网卡 ifconfig cni0 down ip link delete cni0ip link add cni0 type bridge ip link set dev cni0 up ifconfig cni0 10.244.2.1/24 ifconfig cni0 mtu 1450 up

二.Unity中使用虚拟摇杆来控制角色移动

上一篇中我们完成了不借助第三方插件实现手游的虚拟摇杆&#xff0c;现在借助这个虚拟摇杆来实现控制角色的移动。 虚拟摇杆实际上就给角色输出方向&#xff0c;类似于键盘的WSAD&#xff0c;也是一个二维坐标&#xff0c;也就是(-1,1)的范围&#xff0c;将摇杆的方向进行归一化…

Windows与Linux下 SDL2的第一个窗口程序

Windows效果和Linux效果如下&#xff1a; 下面是代码&#xff1a; #include <stdio.h> #include "SDL.h"int main(int argc, char* argv[]) { // 初始化SDL视频子系统if (SDL_Init(SDL_INIT_VIDEO) ! 0){// 如果初始化失败&#xff0c;打印错误信息printf(&…

HPA自动扩缩容和命名空间资源限制

目录 HPA概念 安装HPA的依赖环境 安装metrics-server 手动扩缩容 自动扩缩容 yaml文件 创建HPA 自动扩容 自动缩容 命名空间资源限制 HPA概念 HPA是针对pod的数量进行自动扩缩容。&#xff08;是针对控制器deployment、replicaset、StatefulSet创建的pod&#xff0…

TS接口、泛型、自定义类型

这里记录下typescript中接口、泛型和自定义类型的使用 接口定义 // 定义一个接口,用来限制Teacher的属性 export interface Teacher {name: string;age: number;gender: string; }export type teacherList Teacher[];// 一个自定义类型 export type Teachers Array<Teach…

【UE5 C++课程系列笔记】02——创建C++类的三种方式

目录 一、从UE编辑器中创建 引用头文件报错的两种解决方式 &#xff08;1&#xff09;方式1 &#xff08;2&#xff09;方式2 二、在文件夹中直接创建 三、在Visual Studio中创建 一、从UE编辑器中创建 在UE编辑器中选择“Tools-》New C Class” 这里新建的类的父类选择…

Gitlab 中几种不同的认证机制(Access Tokens,SSH Keys,Deploy Tokens,Deploy Keys)

前言 公司主要使用 Go 语言做项目&#xff0c;有一些 Gitlab 私有仓库需要引用&#xff0c;在做 CI 时&#xff0c;要自行配置权限以获取代码。 最近发现各个项目组在做 CI 遇到仓库权限问题时的解决方式不尽相同&#xff0c;有用 Project Token 的&#xff0c;有用 Deploy K…

【python】OpenCV—Augmented Reality Using Aruco Markers

文章目录 1、任务描述2、Aruco Markers3、代码实现4、更多例子展示5、涉及到的库cv2.findHomography 6、参考 1、任务描述 借助 Aruco Markers&#xff0c;替换墙面上画面中的内容 2、Aruco Markers OpenCV 中的 aruco 模块共有 25 个预定义的标记字典。字典中的所有标记包含…

新代机床采集数据

新代集團1995年成立於台灣新竹,事業版圖遍布全球,以台灣為中心向外發展,據點橫跨歐洲、美洲、亞洲三大洲。新代長期深耕於機床控制器的軟體及硬體技術研發,專注於運動控制領域,目前已成為亞太市場中深具影響力的控制器領導品牌之一。主營產品包括:機床數控系統、伺服驅動…

Java虚拟机 - 高级篇

一、GraalVM 1. 什么是GraalVM 2. GraalVM的两种运行模式 &#xff08;1&#xff09;JIT即时编译模式 &#xff08;2&#xff09;AOT提前编译模式 3. 应用场景 4. 参数优化和故障诊断 二、新一代的GC 1. 垃圾回收器的技术演进 2. Shenandoah GC 测试代码&#xff1a; /** C…

Ubuntu 20.04/22.04无法连接网络(网络图标丢失、找不到网卡)的解决方案

问题复述&#xff1a; Ubuntu 20.04无法连接到网络&#xff0c;网络连接图标丢失&#xff0c;网络设置中无网络设置选项。 解决方案 对于Ubuntu 20.04而言&#xff1a;逐条执行 sudo service network-manager stopsudo rm /var/lib/NetworkManager/NetworkManager.statesudo…

《深度学习》OpenCV轮廓检测 模版匹配 解析及实现

目录 一、模型匹配 1、什么是模型匹配 2、步骤 1&#xff09;提取模型的特征 2&#xff09;在图像中查找特征点 3&#xff09;进行特征匹配 4&#xff09;模型匹配 3、参数及用法 1、用法 2、参数 1&#xff09;image&#xff1a;待搜索对象 2&#xff09;templ&am…

利用AI驱动智能BI数据可视化-深度评测Amazon Quicksight(四)

简介 随着生成式人工智能的兴起&#xff0c;传统的 BI 报表功能已经无法满足用户对于自动化和智能化的需求&#xff0c;今天我们将介绍亚马逊云科技平台上的AI驱动数据可视化神器 – Quicksight&#xff0c;利用生成式AI的能力来加速业务决策&#xff0c;从而提高业务生产力。…

科技之光,照亮未来之路“2024南京国际人工智能展会”

全球科技产业的版图正以前所未有的速度重构&#xff0c;而位于中国东部沿海经济带的江浙沪地区&#xff0c;作为科技创新与产业升级的高地&#xff0c;始终站在这一浪潮的最前沿。2024年&#xff0c;这一区域的科技盛宴——“2024南京人工智能展会”即将在南京国际博览中心盛大…