1.前言:

在机器人的应用中,可以使用不同的坐标系来定义机器人,传感器和其他物体的位置。通常,对象在三维空间中的位置可以通过位置和方向值指定。这些值有多个可能的表示形式应用于某些特定应用程序。平移和旋转是位置和方向的替代术语。Robotics System Toolbox机器人系统工具箱支持机器人中常用的表示形式,并允许您在它们之间进行转换。将这些表示应用于三维点时,可以在坐标系之间进行变换(机器人系统工具箱假定位置和方向是在右手笛卡尔坐标系中定义的)。

2、欧拉角:缩写eul (1-by-3)

欧拉角是描述刚体方向的三个角度。每个角度都是围绕给定坐标框轴的标量旋转。机器人系统工具箱支持两个旋转形式。'ZYZ’轴顺序通常用于机器人应用。'ZYX’轴顺序,该顺序也称为"滚动间距偏航(rpy)"。

例如,围绕 pi y轴的旋转表示为:

eul = [0 pi 0]

3、齐次变换:缩写tform (4-by-4)

齐次变换矩阵将平移和旋转组合到一个矩阵中,旋转矩阵算子一般如下。


所以围绕y轴旋转一个角度后,在沿y轴平移4个单位的齐次变换为:

4、四元数:缩写quat (1-by-4)

四元数是具有标量旋转和三元素矢量的四元素矢量。四元数在应用时的优点可以避免其他表示中固有的奇点问题。第一个元素w是一个标量,用于定义旋转轴的[x y z]来规范化矢量。

如:围绕y轴旋转pi/2表示为

quat = [0.7071 0 0.7071 0]

5、旋转矩阵:缩写rotm (3-by-3)

旋转矩阵描述三维空间中的旋转。它是一个方阵,行列式为 1。具体同在上述介绍的旋转算子。

6、平移变换:缩写trvec (1-by-3)

平移变换也是位置矢量,在三维欧几里得空间中表示为笛卡尔坐标。它仅涉及应用于所有点的坐标转换,不涉及旋转。

例如,沿x轴的 3 个单位和沿z轴的 2.5 个单位的平移将表示为:

trvec = [3 0 2.5]

7、机器人系统工具箱所支持的函数变换(蓝色部分表示可以互相转换)

9、后记:

坐标的变换大概写有两篇, MATLAB下坐标系变换(1)和MATLAB坐标系变换(2)—逃不过的四元数。在MATLAB坐标系变换(2)—逃不过的四元数中有演示的代码(主要是机器人工具箱Robotics Toolbox中的一些函数),可以复制运行方便理解,其中开篇的四篇参考链接中有关于各种变换的数学推导,值得研读。另外,作为使用可以直接调用函数进行相关变换即可,mathwork官网中有,可具体查看或使用时help下。链接如下:https://www.mathworks.com/help/robotics/coordinate-system-transformations.html(机器人系统工具箱支持的函数)

最后,使用时发现俩个工具箱中函数有些变换是相同的,毕竟变换下的数学原理是一样的(为了方便将MATLAB坐标系变换(2)—逃不过的四元数中提到的关于数学推导的参考连接也放到此处)

(1)http://mini.eastday.com/mobile/180306210610472.html#(2)https://www.cnblogs.com/21207-iHome/p/6894128.html(3)https://blog.csdn.net/xiaoma_bk/article/details/79082629(4)https://blog.csdn.net/lql0716/article/details/72597719

代码参看(运行了解,方便直接使用)—以下在利用Baxter机器人模型做路径规划时为了解各种变换关系时参看的部分代码。

%% 将四元数转换成旋转矩阵3-by-3
Q=[0.1461 0.9889 0.30125 0.4026];%分别表示四元数的实部与虚部
Rq= quaternion(Q)
Q2R= rotmat(Rq,'frame')
%将3-by-3旋转矩阵转换成齐次式
tform = rotm2tform(Q2R)
%% 四元数转齐次变换矩阵4-by-4
quat = [0.7071 0.7071 0 0];
tform = quat2tform(quat)
%四元数转齐次变换矩阵
Q=[0.141 0.990 0.005 0.023]
tform = quat2tform(Q)
%===================================%
eulZYX = quat2eul(quat)%四元素转欧拉角zyx,或者使用[yaw, pitch, roll] =quat2angle(quat);
quat = eul2quat(eulZYX)%欧拉角转四元数
%===================================%
%从齐次转换矩阵中获得欧拉角,四元素
eulZYX = tform2eul(tform)
quat = tform2quat(tform)
%==================================%
%从齐次转换矩阵中获得3-by-3旋转矩阵
rotm = tform2rotm(tform)
%从齐次转换矩阵中获得平移向量
trvec = tform2trvec(tform)
%% 提取矩阵T中的旋转部分、平移部分
t2r(T)
transl(T)'
%% 欧拉角转齐次变换矩阵
T = rpy2tr(ROLL, PITCH, YAW, OPTIONS)
%eul2tr函数:onvert Euler angles to homogeneous transform欧拉-齐次矩阵
eul = [0 pi/2 pi/2];
tformZYZ = eul2tform(eul,'ZYZ')
%% 所以,从Baxter或得位置矢量和四元素表示的姿态。
%======================%先从Baxter获得左臂末端位姿
untuck(bc, 3);%utuck=[-0.08, -1.0, -1.19, 1.94,  0.67, 1.03, -0.50]
enableEndpointDisplay(bc,3);
currPoseL = bc.LeftArmEndpoint;
disp(currPoseL.Pos);
disp(currPoseL.Orientation);
%=====================%
%可以构成末端位姿矩阵4-by-4
P=[0.579 0.185 0.100];%位置,transl(P)位置变为齐次变换矩阵或trvec2tform(P)
Qpos=[0.141 0.990 0.004 0.023];%姿态
Transfrom=transl(P)*quat2tform(Qpos)%四元数转齐次变换矩阵
trvec1 = tform2trvec(Transfrom)%从齐次中获得平移向量
quat1 = tform2quat(Transfrom)%从齐次中获得四元数向量
q1=Baxter_Left.ikine(Transfrom);%逆解获得角度

机器人中的坐标转换关系(个人记录学习)相关推荐

  1. 聊天机器人中的深度学习

    原文链接:http://www.wildml.com/2016/04/deep-learning-for-chatbots-part-1-introduction/ Part1简介--聊天机器人中的深 ...

  2. 强化学习在机器人中的应用

    强化学习是机器学习中的一个子领域,其中智能体通过与环境的交互,观测交互结果以及获得相应的回报.这种学习的方式是模拟人或动物的学习过程 我们人类,与我们所处的环境有一个直接的感官接触,我们可以通过执行动 ...

  3. 【每周NLP论文推荐】 聊天机器人中FAQ相关的论文推荐

    欢迎来到<每周NLP论文推荐>.在这个专栏里,还是本着有三AI一贯的原则,专注于让大家能够系统性完成学习,所以我们推荐的文章也必定是同一主题的. 今天推荐FAQ相关的论文,FAQ是聊天机器 ...

  4. SLAM在机器人中的应用

    伴随着人工智能.机器人.无人驾驶等技术的蓬勃发展,越来越多的相关智能产品出现在了我们的日常生活中,作为底层技术基石之一的SLAM也逐渐被大家所熟知.下面通过"机器人对于人类的意义" ...

  5. 了解一下智能机器人中,用到的三项关键技术

    工业机器人属于智能机器人的一种,智能机器人发展迅速,下面跟随小编一起,了解一下智能机器人中用到的三大关键技术吧. 一.多传感器信息融合 多传感器信息融合技术是近年来十分热门的研究课题,它与控制理论.信 ...

  6. 聊天机器人中对话模板的高效匹配方法

    /* 版权声明:可以任意转载,转载时请标明文章原始出处和作者信息 .*/ author: 张俊林,黄通文,薛会萍 尽管深度学习目前在研发聊天机器人方面进行的如火如荼,但是这些技术距离真正实用还有不短的 ...

  7. 让机器帮你做决策!强化学习在智能交互搜索的应用分享...

    小叽导读:在时间就是金钱的时代,降低搜索时间成本,迅速找到目标产品具有重要意义.如今的电商平台已不仅仅是一个摆放商品的货架,"智能推荐"成为电商的一个重要功能.今天,我们来看看强化 ...

  8. 让机器帮你做决策!强化学习在智能交互搜索的应用分享

    小叽导读:在时间就是金钱的时代,降低搜索时间成本,迅速找到目标产品具有重要意义.如今的电商平台已不仅仅是一个摆放商品的货架,"智能推荐"成为电商的一个重要功能.今天,我们来看看强化 ...

  9. VINS 细节系列 - 坐标转换关系

    前言 在学习VINS-Mono过程中,对初始化代码中的坐标转换关系做出了一些推导,特意写了博客记录一下,主要记录大体的变量转换关系. 相机和IMU的外参 若需要VINS标定旋转外参,则进入以下代码: ...

最新文章

  1. 2017中国互联网消费生态大数据报告
  2. 什么是Flink?Flink能用来做什么?
  3. 锡山国土推行数据中心“在线变更”
  4. 计算机硬件:内存常识知多少?内存知识盲区详解
  5. 【转】1.4 Magento2语法讲解
  6. ajax 传递arraybuffer,jQuery $ .ajax或$ .load是否允许responseType arrayBuffer?
  7. Codeforces 815C. Karen and Supermarket【树形DP】
  8. Spring Mvc 数据回显、异常处理、文件上传、json交互、ResTful、拦截器的使用(高级三)
  9. oracle19c 安装权限_redhat7.6Linux安装Oracle19C完整版教程
  10. java 线程安全 计数_java – 实现线程安全共享计数器的功能方法
  11. 比特币挖矿初创公司Layer1 CEO换任
  12. 又一北大系AI公司浮出水面,百炼智能宣布获千万元天使投资
  13. 判断数据是增量分区全量分区
  14. 常见的Wi-Fi协议------802a/b/g/n/ac系列
  15. 数值计算求解动态热传导方程
  16. Ubuntu14.04安装微软雅黑字体
  17. 宏碁4743G+固态硬盘(SSD)+机械硬盘(HHD)混合用
  18. Java 媒体框架 之 JMF
  19. 2023-2028年中国黄酒行业市场预测与投资规划分析报告
  20. 电梯门禁系统服务器一般在哪,电梯控制系统与门禁系统有区别吗

热门文章

  1. 织梦教程网模板+Wap端
  2. KDD2020|PinnerSage:Pinterest推荐中的多模式用户嵌入框架
  3. BeyondCompare| Beyond Compare永久适用
  4. 【好奇心驱动力】ESP8266从零开始折腾记录
  5. android 4.4 x86 iso,安卓x86 4.4 iso下载
  6. codechef EBAIT Election Bait【欧几里得算法】
  7. 一法通则百法通 佳能照片打印机连供改造
  8. 建立图书馆书目索引表
  9. 2021届 美的笔试 C++开发工程师
  10. 构建属于自己的 jre Docker 镜像