基于C#的机械臂欧拉角与旋转矩阵转换
欧拉角概述
机器人末端执行器姿态描述方法主要有四种:旋转矩阵法、欧拉角法、等效轴角法和四元数法。所以,欧拉角是描述机械臂末端姿态的重要方法之一。
关于欧拉角的历史,由来已久,莱昂哈德·欧拉用欧拉角来描述刚体在三维欧几里得空间的取向。对于任何参考系,一个刚体的取向,是依照顺序,从这参考系,做三个欧拉角的旋转而设定的。所以,刚体的取向可以用三个基本旋转矩阵来决定。换句话说,任何关于刚体旋转的旋转矩阵是由三个基本旋转矩阵复合而成的。
欧拉角描述机械臂姿态
在笛卡尔坐标系下,可以通过连续三次且相邻两次旋转不可以绕相同的坐标轴的旋转运动,来描述转动刚体相对于参考坐标系的方向。这三个角度就是欧拉角,当给定定坐标系和动坐标系后,可以产生24种不同旋转次序来描述刚体相对于定坐标系的姿态。
欧拉角法是描述物体姿态最简单的方式,只需要三个元素就可描述出末端坐标系的姿态。定义三个正交的旋转轴,按照绕着指定顺序的旋转轴旋转使刚体从初始姿态到目标姿态。其中绕轴旋转的角度称为欧拉角,以下所指的欧拉角是按照zyz轴的旋转顺序,姿态矩阵的表达式为
其中,RotX、RotY、RotZ,可以分别用如下代码表示:
public static Matrix<double> RotX(double angle){var c = Math.Cos(angle);var s = Math.Sin(angle);var ans = CreateMatrix.DenseOfArray(new double[,]{{1, 0, 0},{0, c, -s},{0, s, c},});return ans;}public static Matrix<double> RotY(double angle){var c = Math.Cos(angle);var s = Math.Sin(angle);var ans = CreateMatrix.DenseOfArray(new double[,]{{+c, 0, s},{+0, 1, 0},{-s, 0, c},});return ans;}public static Matrix<double> RotZ(double angle){var c = Math.Cos(angle);var s = Math.Sin(angle);var ans = CreateMatrix.DenseOfArray(new double[,]{{c, -s, 0},{s, +c, 0},{0, +0, 1},});return ans;}
ABB机器人的欧拉角序列
ABB机械臂欧拉角序列采用ZYX序列,ZYX代表旋转轴的顺序,Z轴为第一个旋转轴、Y轴为第二个旋转轴、X轴为第三个旋转轴。
旋转矩阵示例代码如下:
public static Matrix<double> MakeRotationMatrixFromZyxEuler(double r, double p, double y){var matR = RotZ(r);var matP = RotY(p);var matY = RotX(y);var ans = matR.Multiply(matP).Multiply(matY);return ans;}
川崎机器人的欧拉角序列
川崎机械臂欧拉角序列采用ZYZ序列,ZYZ代表旋转轴的顺序,Z轴为第一个旋转轴、Y轴为第二个旋转轴、Z轴为第三个旋转轴。其旋转角度用O、A、T表示。
旋转矩阵示例代码如下:
public static Matrix<double> MakeRotationMatrixFromZyzEuler(double o, double a, double t){var matO = RotZ(o);var matA = RotY(a);var matT = RotZ(t);var ans = matO.Multiply(matA).Multiply(matT);return ans;}
示例程序
计算机械臂的欧拉角(zyz和zyx两类序列)和旋转矩阵
https://download.csdn.net/download/qq_20660115/88686069
相关文章:
![](https://img-blog.csdnimg.cn/direct/47dc48ba0df04b48b965a203e33eb00d.png)
基于C#的机械臂欧拉角与旋转矩阵转换
欧拉角概述 机器人末端执行器姿态描述方法主要有四种:旋转矩阵法、欧拉角法、等效轴角法和四元数法。所以,欧拉角是描述机械臂末端姿态的重要方法之一。 关于欧拉角的历史,由来已久,莱昂哈德欧拉用欧拉角来描述刚体在三维欧几里…...
![](https://www.ngui.cc/images/no-images.jpg)
【百度前端三面面试题】
在某乎看到的《百度前端三面面试题全部公开,三面的最后一个问题令我窒息》 其中下面三个问题没有给出答案,我虽然是前端出身,但也面试过一些人,大概分析一下这些问题。 面试中问这几个问题的目的是什么 ,怎么回答 上…...
![](https://www.ngui.cc/images/no-images.jpg)
【Java面试题】HTTP与 HTTPS 的区别
HTTP 与 HTTPS 的区别 : 主要体现在三个方面,分别是 信息传输安全、证书和身份验证 、连接方式 信息传输安全: HTTP 是超文本传输协议,HTTP下的信息是明文传输的,因此使用HTTP协议可能导致信息被截获或者第三方恶意…...
![](https://www.ngui.cc/images/no-images.jpg)
vue3 v-model语法糖
vue2 中父子组件数据同步 父→子 子→父 如何实现? v-model“count” 或者 xxx.sync“msg” v-model 语法糖 完整写法 :value“count” 和 input“count$event” xxx.sync 语法糖 完整写法 :xxx“msg” 和 update:xxx“msg$event” 现在:一个 v-mo…...
![](https://img-blog.csdnimg.cn/direct/8cd3780e660c4f8ab0caac4b8ba0fc9d.png)
【k8s】deamonset文件和说明
目录 deamonset的相关命令 deamonset的定义 deamonset的使用场景 deamonset的例子 deamonset字段说明 serviceAccountName DaemonSet的结构及其各个部分的作用 deamonset的相关命令 #查看<name-space>空间内有哪些deamonset kubectl get DaemonSet -n <na…...
![](https://img-blog.csdnimg.cn/direct/22e7df9701fc46979e2240f50c63fe68.png)
Zookeeper-Zookeeper特性与节点数据类型详解
1.Zookeeper介绍 ZooKeeper 是一个开源的分布式协调框架,是Apache Hadoop 的一个子项目,主要用来解决分布式集群中应用系统的一致性问题。Zookeeper 的设计目标是将那些复杂目容易出错的分布式一致性服务封装起来,构成一高效可靠的原语集&…...
![](https://img-blog.csdnimg.cn/direct/775722a3e5174676bafdb7d6007d675e.png)
云计算复习提纲
第一章 大数据的概念:海量数据的规模巨大到无法通过目前主流的计算机系统在合理时间内获取、存储、管理、处理并提炼以帮助使用者决策 大数据的特点:①数据量大,存储的数据量巨大,PB级别是常态;②多样,数…...
![](https://img-blog.csdnimg.cn/direct/3b802e5051bc4428afca5059b790e15a.png)
Vue-响应式数据
一、ref创建基本类型的响应式数据 vue3可以使用ref、reactive去定义响应式数数据。 知识点汇总 使用ref需要先引入ref,import {ref} from vue在模板 template 中使用了添加ref 的响应式数据,变量的后面不用添加.value所有js代码里面,去操作r…...
![](https://img-blog.csdnimg.cn/direct/370c66f8386043588a84f54063d8811b.png)
Vue开发者必备!手把手教你实现类似Element Plus的全局提示组件!
前言 在Web开发中,用户体验至关重要。有效的信息提示和错误消息对于确保用户更好地理解和操作至关重要。在这个背景下,全局弹框提示组件成为了一个非常有用的工具。Vue.js,作为当前最受欢迎的前端框架之一,为创建灵活、可复用的弹…...
![](https://img-blog.csdnimg.cn/direct/3dbd41f660f946a4835aa9e5c4050f19.png)
大数据 - Hadoop系列《三》- HDFS(分布式文件系统)概述
🐶5.1 hdfs的概念 HDFS分布式文件系统,全称为:Hadoop Distributed File System。 它是一个文件系统,用于存储文件,通过目录树来定位文件;其次,它是分布式的,由很多服务器联合起来实现其功能,集…...
![](https://www.ngui.cc/images/no-images.jpg)
Golang标准库sync的使用
Go语言作为现代编程语言,其并发编程的优势是有目共睹的。在实际编程中,我们常常需要保证多个goroutine之间的同步,这就需要使用到Go语言的sync标准库。sync库提供了基本的同步原语,例如互斥锁(Mutex)和等待…...
![](https://www.ngui.cc/images/no-images.jpg)
判断两张图片是否完全一致
判断两张图片是否为完全相同的图片 批量判断尺寸 大小 图像展示内容体是否完全一致的图片 import os import hashlib from PIL import Imagedef check_img_repeat(directory):"""批量对图片进行重复性校验是检查一组图像中是否有相同或几乎相同的图像副本。一…...
![](https://img-blog.csdnimg.cn/img_convert/80cad1193e0e4751cfe501559982d80f.png)
2024洗地机哪家强?口碑洗地机推荐
现如今,智能家电在人们生活中变得越来越受欢迎,例如智能洗地机的出现,不仅省时省力,还实现了家务清洁的自由。在家庭中,地面清洁一直是一个令人头疼的问题,各种智能家居品牌通过开发各种智能家电产品来解决…...
![](https://img-blog.csdnimg.cn/direct/c596d23d1afb4741bc53e7cda4976472.png)
k8s的资源管理
命令行: kubectl命令行工具优点: 90%以上的场景都可以满足 对资源的增,删,查比较方便,对改不是很友好缺点:命令比较冗长,复杂难记 声明方式:k8s当中的yaml文件实现资源管理----声明式GUI:图形化工具的管理。 查看k8s的…...
![](https://img-blog.csdnimg.cn/direct/90fdb357c0f9474a8e291fd06815a01c.png)
docker应用部署(部署MySql,部署Tomcat,部署Nginx,部署Redis)
Docker 应用部署 一、部署MySQL 搜索mysql镜像 docker search mysql拉取mysql镜像 docker pull mysql:5.6创建容器,设置端口映射、目录映射 # 在/root目录下创建mysql目录用于存储mysql数据信息 mkdir ~/mysql cd ~/mysqldocker run -id \ -p 3307:3306 \ --na…...
![](https://www.ngui.cc/images/no-images.jpg)
非常好用的ocr图片文字识别技术,识别图片中的文字
目录 一.配置环境 二.应用 2.1常见图片识别 2.2排版简单的印刷体截图图片识别 2.3竖排文字识别 2.4英文识别 2.5繁体中文识别 2.6单行文字的图片识别 三.参考 一.配置环境 pip3 install cnocr -i https://pypi.tuna.tsinghua.edu.cn/simple pip3 install onnxruntime…...
![](https://img-blog.csdnimg.cn/direct/6affed3b0d2b4d5b8e086410363095da.png)
20231227在Firefly的AIO-3399J开发板的Android11的挖掘机的DTS配置单后摄像头ov13850
20231227在Firefly的AIO-3399J开发板的Android11的挖掘机的DTS配置单后摄像头ov13850 2023/12/27 18:40 1、简略步骤: rootrootrootroot-X99-Turbo:~/3TB$ cat Android11.0.tar.bz2.a* > Android11.0.tar.bz2 rootrootrootroot-X99-Turbo:~/3TB$ tar jxvf Androi…...
![](https://img-blog.csdnimg.cn/direct/f23f62a005f94924a9e105fa4271840d.png)
Unity中Shader裁剪空间推导(透视相机到裁剪空间的转化矩阵)
文章目录 前言一、简单看一下 观察空间—>裁剪空间—>屏幕空间 的转化1、观察空间(右手坐标系、透视相机)2、裁剪空间(左手坐标系、且转化为了齐次坐标)3、屏幕空间(把裁剪坐标归一化设置)4、从观察空…...
![](https://img-blog.csdnimg.cn/img_convert/80f61c880825a8a2f5e0686f075c72ff.png)
企业签名分发对移动应用开发者有什么影响
企业签名分发是移动应用开发者在应用程序发布前测试、内部分发和特定的受众群体分发等方面比较常用的一种工具。那对于应用商城分发有啥区别,下面简单的探讨一下。 独立分发能力 通过企业签名分发开发者可以自己决定应用程序的发布时间和方式,不用受应用…...
![](https://img-blog.csdnimg.cn/img_convert/762850731fe8b931ed27b725c0879096.jpeg)
3D游戏角色建模纹理贴图处理
在线工具推荐: 3D数字孪生场景编辑器 - GLTF/GLB材质纹理编辑器 - 3D模型在线转换 - Three.js AI自动纹理开发包 - YOLO 虚幻合成数据生成器 - 三维模型预览图生成器 - 3D模型语义搜索引擎 在本文中,我们将介绍 3D 纹理的基础知识,并讨…...
![](https://www.ngui.cc/images/no-images.jpg)
【C++ 单例模式】
正确的析构 静态实例和回收类 SingletonMode.cpp #include <iostream> #include <pthread.h>class Singleton {private:Singleton(){std::cout << "构造" << std::endl;};~Singleton(){std::cout << "析构" << std::…...
![](https://www.ngui.cc/images/no-images.jpg)
React16源码: ConcurrentMode的使用及源码实现
ConcurrentMode 1 ) 概述 ConcurrentMode 是 React 16 出来的一个最令人振奋的功能在2018年年初是 Async Mode,在发布了16.6之后,名字进行了更新然后改成了 ConcurrentMode,中间的API有一个过渡的版本,后续会提到它其实是 React…...
![](https://img-blog.csdnimg.cn/direct/421e49c5a418487697f21a456c7868dc.png)
SQL性能优化-索引
1.性能下降sql慢执行时间长等待时间长常见原因 1)索引失效 索引分为单索、复合索引。 四种创建索引方式 create index index_name on user (name); create index index_name_2 on user(id,name,email); 2)查询语句较烂 3)关联查询太多join&a…...
![](https://img-blog.csdnimg.cn/cc002cbd5c414c5393e19c5e0a0dbf20.gif#pic_center)
Ubuntu本地快速搭建web小游戏网站,公网用户远程访问
🔥博客主页: 小羊失眠啦. 🎥系列专栏:《C语言》 《数据结构》 《Linux》《Cpolar》 ❤️感谢大家点赞👍收藏⭐评论✍️ 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,…...
![](https://img-blog.csdnimg.cn/img_convert/281f840d955c518b1f79b9cdc10e8df4.png)
easyrecovery 2024最新免费密钥分享 实用数据恢复软件分享
在日常使用电脑时,我们经常会遇到误删文件的情况,若文件还未被彻底删除,我们还可以通过电脑中的回收站将其恢复,但若是回收站都被清空的话,想要恢复文件就变得比较困难了,而EasyRecovery可以很好的帮助我们…...
![](https://img-blog.csdnimg.cn/direct/21b239a3710f45faa10259f0a3af15ca.png)
2.4信道复用技术
目录 2.4信道复用技术2.4.1频分复用、时分复用和统计时分复用频分复用FDM(Frequency Division Multiplexing)时分复用TDM(Time Division Multiplexing)统计时分复用STDM(Statistic TDM) 2.4.2波分复用2.4.3…...
![](https://img-blog.csdnimg.cn/img_convert/1b1ff1c4744e7861bd0b1de18391ce15.png)
JVM篇:JVM的简介
JVM简介 JVM全称为Java Virtual Machine,翻译过来就是java虚拟机,Java程序(Java二进制字节码)的运行环境 JVM的优点: Java最大的一个优点是,一次编写,到处运行。之所以能够实现这个功能就是依…...
![](https://img-blog.csdnimg.cn/direct/5046549611c544c0b24d216db3201cbd.png)
uniapp 输入手机号并且正则校验
1.<input input“onInput” :value“phoneNum” type“number” maxlength“11”/> 3. method里面写 onInput(e){ this.phoneNum e.detail.value }, 4.调用接口时候校验正则 if (!/^1[3456789]\d{9}$/.test(this.phoneNum)) {uni.showToast({title: 请输入正确的手机号…...
![](https://img-blog.csdnimg.cn/direct/f801f2e1191b426c8db495ebf21d5298.png#pic_center)
经典目标检测YOLO系列(一)复现YOLOV1(3)正样本的匹配及损失函数的实现
经典目标检测YOLO系列(一)复现YOLOV1(3)正样本的匹配及损失函数的实现 之前,我们依据《YOLO目标检测》(ISBN:9787115627094)一书,提出了新的YOLOV1架构,并解决前向推理过程中的两个问题,继续按照此书进行YOLOV1的复现。 经典目标…...
![](https://img-blog.csdnimg.cn/direct/3b8a3eab70f449de817f0cb451e00423.png)
kbdnecat.DLL文件缺失,软件或游戏无法启动运营,快速修复方法
“kbdnecat.DLL文件是什么?为什么一起动游戏或软件,Windows就报错“kbdnecat.DLL文件缺失,软件无法启动””,应该怎么修复呢? 首先,先来了解“kbdnecat.DLL文件”是什么? kbdnecat.DLL是一个动…...
![](/images/no-images.jpg)
贵阳白云区疫情最新情况今天/宁波seo网站推广
二叉树结构的实现1.二叉树相关操作2.二叉树的存储结构2.1. 二叉树的顺序存储结构2.2. 二叉链表存储结构2.3 三叉链表存储结构3.二叉树的遍历的操作3.1. 递归遍历二叉树3.2. 非递归遍历二叉树3.2.1. 基于任务分析的二叉树遍历非递归算法3.2.2. 基于搜索路径分析的二叉树遍历的非…...
![](http://static.oschina.net/uploads/img/201408/15110648_Yg0M.jpg)
网站后台设计培训学校/东莞seo顾问
2019独角兽企业重金招聘Python工程师标准>>> 一、Log4php简介 Log4php是Log4xx系列日志组件之一,是Log4j迁移到php的版本,主要用来记录日志信息,支持多种输入目的地,包括:日志文件、日志回滚文件、数据库、…...
![](https://img-blog.csdnimg.cn/20200722231332389.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0JlZV9BSQ==,size_16,color_FFFFFF,t_70)
mac 阿里云 wordpress/大数据培训包就业靠谱吗
linux命令大全一文搞定Linux必备命令 工作了几年,总结了Linux必备命令及相应命令的使用方法,点击下方【Linux命令】,可知使用方法: www.Linux命令.com...
![](/images/no-images.jpg)
无锡找做网站公司/竞价推广价格
1.急性心肌梗死有意义的心肌标记物是() A.谷丙转氨酶 B.肌酸激酶 C.淀粉酶 D.转肽酶 E.碱性磷酸酶 2.下列哪项不是右心衰竭的体征() A.肝大 B.胸水 C.腹水 D.颈静脉怒张 E.肝颈静脉回流征阳性 3.右心衰竭可能的症状不包括&…...
![](https://img2018.cnblogs.com/blog/327258/201812/327258-20181228183334719-1365695864.png)
网站制作样板/百度关键词排名神器
.NetCore 下开发独立的(RPL)含有界面的组件包 (一)准备工作 .NetCore 下开发独立的(RPL)含有界面的组件包 (二)扩展中间件及服 务 .NetCore 下开发独立的(RPL࿰…...
![](/images/no-images.jpg)
一个网站做多有几种颜色/自媒体软文发布平台
我发现还有一些其他的帖子可以解决我的问题,但是没有一篇能解决我的问题,所以我正在创建这篇帖子。我正在尝试为我的覆盆子Pi B安装rpi.gpio。我安装了python3 pip,但每次尝试从命令行用pip3调用它时,我都会得到“command not fou…...