【Robotics toolbox】(二)平移变换transl | 旋转坐标变换trot| t2t | r2t

2023-10-08 22:50

本文主要是介绍【Robotics toolbox】(二)平移变换transl | 旋转坐标变换trot| t2t | r2t,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

  • 1 坐标变换
    • 1.1 平移坐标变换
    • 1.2 旋转平移矩阵
    • 1.3 齐次坐标变换
  • 2 相关函数详细用法
    • 2.1平移变换transl
    • 2.2 旋转坐标变换
    • 2.3 t2r()
    • 2.4 r2t()

关注微信公众号`二进制人工智能`,回复`robot`获取机器人工具箱

1 坐标变换

在这里插入图片描述
在三维空间中,任一坐标系均可作为描述一个物体位姿的参考坐标系。在机器人学的许多问题中,常常需要在不同的参考坐标系中表示同一个物体的位姿。例如,图1-8的应用例子中,需要在相机的指导下﹐使用机器人的手臂去夹取一个目标物体。因此,需要获取世界坐标系、固定相机的坐标系.机器人的坐标系.机器人的相机坐标系、目标物体的坐标系的位置与姿态,使得机器人的末端执行器能够达到夹取目标物体所需要的位姿,执行夹取任务。

1.1 平移坐标变换

在这里插入图片描述
如图1-9所示,坐标系 A {A} A没有经过旋转,只经过平移得到坐标系 { B } \{B\} {B} P P P B B B坐标系中的一点,用矢量 B P ^BP BP表示它在坐标系 { B } \{B\} {B}中的位置; A P B O R G ^AP_{BORG} APBORG表示 A A A坐标系平移到 B B B坐标系的距离。当 P P P用坐标系表示时,用矢量 A P ^AP AP表示。因为矢量 A P ^AP AP B P ^BP BP具有相同的姿态,所以可以使用矢量相加的方法表示 A P ^AP AP
在这里插入图片描述

4 × 4 4\times 4 4×4的齐次矩阵表示平移变换矩阵 T T T,则
在这里插入图片描述

其中, p x , p y 和 p z p_x,p_y和p_z pxpypz ,是平移向量 Р Р Р相对于参考坐标系 X X X轴、 Y Y Y轴和 Z Z Z轴的3个分量。与矢量和旋转矩阵一样,坐标系还可以用上述变换算子表示。

对于平移坐标变换,机器人工具箱提供了函数transl()计算一段平移相对应的平移变换矩阵。

例如,空间中的一个坐标系 { A } \{A\} {A},它可以表示为:
在这里插入图片描述

如果将这个坐标系沿着参考坐标系的 Y Y Y轴移动10个单位,然后再沿着 Z Z Z轴移动5个单位得到坐标系 { B } \{B\} {B},求坐标系 { B } \{B\} {B}的表示。

A=[0.527,-0.574,0.628,5;0.369,0.819,0.439,3;-0.766,0,0.643,8;0,0,0,1];
T=transl(0,10,5)
B=T*A

在这里插入图片描述

1.2 旋转平移矩阵

在这里插入图片描述

如图1-10所示,当坐标系 { A } \{A\} {A}没有经过平移,只经过旋转时(旋转矩阵为 B A R ^A_BR BAR),得到坐标系 { B } \{B\} {B}。同一个点 P P P在坐标系 { A } \{A\} {A} { B } \{B\} {B}中的表示分别为 A P ^AP AP B P ^BP BP,这两个矢量有这样的变换关系:
在这里插入图片描述
机器人工具箱分别提供了trotx(),troty(),trotz()三个函数计算旋转变换矩阵,分别对应于 X X X轴, Y Y Y轴, Z Z Z轴旋转一定的角度,得到的是一个 4 × 4 4\times 4 4×4的矩阵。

例如:使用上面的坐标系 A A A,绕着 X X X轴旋转30°,求旋转后的坐标系 { C } \{C\} {C}

A=[0.527,-0.574,0.628,5;0.369,0.819,0.439,3;-0.766,0,0.643,8;0,0,0,1];
T=trotx(pi/6)
C=T*A

在这里插入图片描述

1.3 齐次坐标变换

在这里插入图片描述

如图1-11所示,当坐标系 { A } \{A\} {A}经过平移(距离为 A P B O R G ^AP_{BORG} APBORG)于旋转(旋转矩阵为^A_BR)得到坐标系 { B } \{B\} {B}。同一个点 P P P在坐标系 { A } \{A\} {A} { B } \{B\} {B}中的表示分别为 A P ^AP AP B P ^BP BP,这两个矢量有如下的变换关系:
在这里插入图片描述

从上式可以得出在不同坐标系中的位姿 A P ^AP AP B P ^BP BP之间的关系,但在上式中 A P ^AP AP B P ^BP BP并不是齐次变换的关系,结果只能简易计算相邻坐标系中位姿之间的关系,当不是相邻甚至需要得到末端执行器和基座坐标系上位姿的关系时,计算量太大,太复杂,所以应该将这个等式写成齐次变换的形式。因为在三维矩阵计算不能充分描述齐次变换,所以增加了矩阵的维数,将等式改写为四维矩阵的形式,即:
在这里插入图片描述
将转换因子用齐次变换矩阵 B A T ^A_BT BAT表示,即:
在这里插入图片描述

因此上式可以表示为:
在这里插入图片描述

对于旋转矩阵 B A R ^A_BR BAR,根据正交矩阵的性质可以得到:
在这里插入图片描述
而对于旋转矩阵,其逆矩阵不等于原矩阵,经过推导,可得到:

在这里插入图片描述
因此,得到了相邻坐标系间矢量(旋转矢量和移动矢量)的齐次变换。

下面用例子说明如何用机器人工具箱解决齐次变换的问题。
在这里插入图片描述
解:
(1)旋转矩阵 B A R = R ( y , 60 ° ) ^A_BR=R(y,60°) BAR=R(y60°),平移矢量为 A p B = [ 4 0 3 ] T ^Ap_B=[4\quad0\quad 3]^T ApB=[403]T
在这里插入图片描述

输入命令,得到 B A T ^A_BT BAT

T=transl(4,0,3)*troty(pi/3)

在这里插入图片描述

p 1 p_1 p1在坐标系 { A } \{A\} {A}中的描述为 A P = B A T B P ^AP=^A_BT^BP AP=BATBP,输入命令:

p=T*[2;4;3;1]

得到 A P ^AP AP
在这里插入图片描述

(2)由 A P = B A T B P ^AP=^A_BT^BP AP=BATBP可得到 B P = B A T − 1 ⋅ A P ^BP=^A_BT^{-1}\cdot ^AP BP=BAT1AP,输入命令:

p2=inv(T)*[2;4;3;1]

运行结果:
在这里插入图片描述

画出坐标系A和B:

T=transl(4,0,3)*troty(pi/3);
T0=transl(0,0,0);
trplot(T0,'frame','A','color','b');
hold on;
trplot(T,'frame','B','color','r');
axis([0,5,0,5,0,5]);

在这里插入图片描述

此外,关于齐次变换矩阵 B A T ^A_BT BAT,机器人工具箱提供了函数t2r()可以提取旋转矩阵分量:

R=t2r(T)

在这里插入图片描述
而函数r2t()则可以将旋转矩阵转换成对应的齐次变换矩阵。如通过运行指令r2t(R)可以得到上面的矩阵T

T1=r2t(R)

在这里插入图片描述

通过以下的命令可以提取平移变换分量:

p=transl(T)

在这里插入图片描述

2 相关函数详细用法

2.1平移变换transl

(1)使用transl()创建平移变换矩阵。

T= transl(x,y,z):表示能够获取一个分别沿着工 x , y , z x,y,z xyz轴平移一段距离得到的4×4齐次变换矩阵。

T = transl(p):表示由经过矩阵(或向量)p =[r,y,z]的平移得到的齐次变换矩阵。
如果p ( M × 3 ) (M×3) (M×3)的矩阵,则 T T T为一组齐次变换矩阵 ( 4 × 4 × M ) (4×4×M) (4×4×M),其中T(:,: ,i)对应于p的第i行。
(2)使用transl提取一个矩阵中的平移变换分量。

[x, y,z]= transl(T): x , y , z x,y,z xyz是齐次变换矩阵中的三个分量,是一个 1 × M 1×M 1×M的向量。

p =transl(T):p是齐次变换矩阵中T的平移部分,是一个 3 × M 3×M 3×M的矩阵。

2.2 旋转坐标变换

(1)T=trotx(0):表示围绕X轴旋转((弧度)得到的齐次变换矩阵(4×4)。

(2)T=troty(0):表示围绕Y轴旋转0(弧度)得到的齐次变换矩阵(4×4)。

(3)T=trotz(0):表示围绕Z轴旋转0(弧度)得到的齐次变换矩阵(4×4)。

以上3个函数中,可选参数为deg,表示角度值单位为度(degree),如totx(180,'deg')

2.3 t2r()

R= t2r(T)获取齐次变换矩阵T中正交旋转矩阵分量。如果T是一个4×4的矩阵,则R是一个3×3的矩阵﹔如果T是一个3×3的矩阵,则R是一个2×2的矩阵。

2.4 r2t()

函数r2t()将旋转矩阵转换为齐次变换矩阵T=r2t(R)获取一个正交旋转矩阵R等价的具有零平移分量的齐次变换矩阵。如果R是一个3×3的矩阵,则T是一个4×4的矩阵;如果R是一个2×2的矩阵,则T是一个3×3的矩阵。

《机器人仿真与编程技术》 杨辰光 李智军 许扬

这篇关于【Robotics toolbox】(二)平移变换transl | 旋转坐标变换trot| t2t | r2t的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/168529

相关文章

poj 2187 凸包or旋转qia壳法

题意: 给n(50000)个点,求这些点与点之间距离最大的距离。 解析: 先求凸包然后暴力。 或者旋转卡壳大法。 代码: #include <iostream>#include <cstdio>#include <cstdlib>#include <algorithm>#include <cstring>#include <cmath>#include <s

Android 10.0 mtk平板camera2横屏预览旋转90度横屏拍照图片旋转90度功能实现

1.前言 在10.0的系统rom定制化开发中,在进行一些平板等默认横屏的设备开发的过程中,需要在进入camera2的 时候,默认预览图像也是需要横屏显示的,在上一篇已经实现了横屏预览功能,然后发现横屏预览后,拍照保存的图片 依然是竖屏的,所以说同样需要将图片也保存为横屏图标了,所以就需要看下mtk的camera2的相关横屏保存图片功能, 如何实现实现横屏保存图片功能 如图所示: 2.mtk

Verybot之OpenCV应用二:霍夫变换查找圆

其实我是想通过这个程序来测试一下,OpenCV在Verybot上跑得怎么样,霍夫变换的原理就不多说了,下面是程序: #include "cv.h"#include "highgui.h"#include "stdio.h"int main(int argc, char** argv){cvNamedWindow("vedio",0);CvCapture* capture;i

Science Robotics 首尔国立大学研究团队推出BBEX外骨骼,实现多维力量支持!

重复性举起物体可能会对脊柱和背部肌肉造成损伤,由此引发的腰椎损伤是工业环境等工作场所中一个普遍且令人关注的问题。为了减轻这类伤害,有研究人员已经研发出在举起任务中为工人提供辅助的背部支撑装置。然而,现有的这类装置通常无法在非对称性的举重过程中提供多维度的力量支持。此外,针对整个人体脊柱的设备安全性验证也一直是一个缺失的环节。 据探索前沿科技边界,传递前沿科技成果的X-robot投稿,来自首尔国立

SW - 引入第三方dwg图纸后,修改坐标原点

文章目录 SW - 引入第三方dwg图纸后,修改坐标原点概述笔记设置图纸新原点END SW - 引入第三方dwg图纸后,修改坐标原点 概述 在solidworks中引入第三方的dwg格式图纸后,坐标原点大概率都不合适。 全图自动缩放后,引入的图纸离默认的原点位置差很多。 需要自己重新设置原点位置,才能自动缩放后,在工作区中间显示引入的图纸。 笔记 将dwg图纸拖到SW中

二维旋转公式

二维旋转公式 ros的tf工具包可以很方便的实现任意坐标系之间的坐标转换。但是,如果只是想简单的测试想法,而又不想编写过于庞杂的代码,考虑自己写二维旋转的函数。而与二维旋转问题对偶的另一个问题便是二维坐标系旋转变换。这两个问题的形式基本一样,只是旋转的角度相差一个负号。就是这个容易搞混,所以做个笔记,以备查用。 1. 二维旋转公式(算法) 而(此文只针对二维)旋转则是表示某一坐标点 ( x

算法复杂度 —— 数据结构前言、算法效率、时间复杂度、空间复杂度、常见复杂度对比、复杂度算法题(旋转数组)

目录 一、数据结构前言 1、数据结构 2、算法 3、学习方法 二、 算法效率 引入概念:算法复杂度  三、时间复杂度 1、大O的渐进表示法 2、时间复杂度计算示例  四、空间复杂度 计算示例:空间复杂度 五、常见复杂度对比 六、复杂度算法题(旋转数组) 1、思路1 2、思路2 3、思路3 一、数据结构前言 1、数据结构         数据结构(D

【机器人工具箱Robotics Toolbox开发笔记(二十)】机器人工具箱SerialLink I类函数参数说明

机器人工具箱中的SerialLink表示串联机器人型机器人的具体类。该类使用D-H参数描述,每个关节一组。SerialLink I类包含的参数如表1所示。 表1 SerialLink I类参数 参  数 意    义 参  数 意    义 plot 显示机器人的图形表示 jacobn 工具坐标系中的雅可比矩阵 plot3D 显示机器人3D图形模型 Jacob_dot

三维激光扫描点云配准外业棋盘的布设与棋盘坐标测量

文章目录 一、棋盘标定板准备二、棋盘标定板布设三、棋盘标定板坐标测量 一、棋盘标定板准备 三维激光扫描棋盘是用来校准和校正激光扫描仪的重要工具,主要用于提高扫描精度。棋盘标定板通常具有以下特点: 高对比度图案:通常是黑白相间的棋盘格,便于识别。已知尺寸:每个格子的尺寸是已知的,可以用于计算比例和调整。平面标定:帮助校准相机和激光扫描仪之间的位置关系。 使用方法 扫描棋盘:

计算几何之向量旋转

实际做题中我们可能会遇到很多有关及计算几何的问题,其中有一类问题就是向量的旋转问题,下面我们来具体探讨一下有关旋转的问题。 首先我们先把问题简化一下,我们先研究一个点绕另一个点旋转一定角度的问题。已知A点坐标(x1,y1),B点坐标(x2,y2),我们需要求得A点绕着B点旋转θ度后的位置。 A点绕B点旋转θ角度后得到的点,问题是我们要如何才能得到A' 点的坐标。(向逆时针方向旋转角度正,