齐次变换矩阵的原理与应用

ops/2024/9/25 19:22:43/

齐次变换矩阵的原理与应用

通过齐次变换矩阵,可以描述机械臂末端执行器(法兰)在三维空间中的平移和旋转操作。该矩阵结合了旋转和平移信息,用于坐标变换。

1. 齐次变换矩阵的基本形式

一个齐次变换矩阵 T是一个 4x4 矩阵,表示刚体的旋转和平移:
T = [ R t 0 1 ] = [ r 11 r 12 r 13 x r 21 r 22 r 23 y r 31 r 32 r 33 z 0 0 0 1 ] T = \begin{bmatrix} R & t \\ 0 & 1 \end{bmatrix} = \begin{bmatrix} r_{11} & r_{12} & r_{13} & x \\ r_{21} & r_{22} & r_{23} & y \\ r_{31} & r_{32} & r_{33} & z \\ 0 & 0 & 0 & 1 \end{bmatrix} T=[R0t1]= r11r21r310r12r22r320r13r23r330xyz1

  • R是 3×3 的旋转矩阵,描述物体的姿态。
  • t = [x, y, z]^T 的平移向量,描述物体的位置。
  • 最后一行 [0,0,0,1] 保持矩阵的数学性质。

2. 平移和旋转的数学表达

平移矩阵

平移矩阵 Tmove 用于描述物体在空间中的移动:
T move = [ 1 0 0 Δ x 0 1 0 Δ y 0 0 1 Δ z 0 0 0 1 ] T_{\text{move}} = \begin{bmatrix} 1 & 0 & 0 & \Delta x \\ 0 & 1 & 0 & \Delta y \\ 0 & 0 & 1 & \Delta z \\ 0 & 0 & 0 & 1 \end{bmatrix} Tmove= 100001000010ΔxΔyΔz1
其中,Δx,Δy,Δz是沿 X、Y、Z 方向的移动距离。

旋转矩阵

旋转矩阵用于描述物体在各轴上的旋转。常见的旋转矩阵包括:

  • 绕 X 轴旋转的旋转矩阵Rx(θ):
    R x ( θ ) = [ 1 0 0 0 cos ⁡ θ − sin ⁡ θ 0 sin ⁡ θ cos ⁡ θ ] R_x(\theta) = \begin{bmatrix} 1 & 0 & 0 \\ 0 & \cos \theta & -\sin \theta \\ 0 & \sin \theta & \cos \theta \end{bmatrix} Rx(θ)= 1000cosθsinθ0sinθcosθ

  • 绕 Y 轴旋转的旋转矩阵 Ry(θ):
    R y ( θ ) = [ cos ⁡ θ 0 sin ⁡ θ 0 1 0 − sin ⁡ θ 0 cos ⁡ θ ] R_y(\theta) = \begin{bmatrix} \cos \theta & 0 & \sin \theta \\ 0 & 1 & 0 \\ -\sin \theta & 0 & \cos \theta \end{bmatrix} Ry(θ)= cosθ0sinθ010sinθ0cosθ

  • 绕 Z 轴旋转的旋转矩阵 Rz(θ):
    R z ( θ ) = [ cos ⁡ θ − sin ⁡ θ 0 sin ⁡ θ cos ⁡ θ 0 0 0 1 ] R_z(\theta) = \begin{bmatrix} \cos \theta & -\sin \theta & 0 \\ \sin \theta & \cos \theta & 0 \\ 0 & 0 & 1 \end{bmatrix} Rz(θ)= cosθsinθ0sinθcosθ0001

综合旋转矩阵 R

综合旋转矩阵 RRR 是三个单轴旋转矩阵的乘积:
R = R z ( θ z ) ⋅ R y ( θ y ) ⋅ R x ( θ x ) R = R_z(\theta_z) \cdot R_y(\theta_y) \cdot R_x(\theta_x) R=Rz(θz)Ry(θy)Rx(θx)

3. 位姿变换的数学运算

假设当前位姿由齐次变换矩阵 Tnow 表示,可以通过乘以平移或旋转矩阵,得到新的目标位姿 Ttarget:
T target = T now ⋅ T move T_{\text{target}} = T_{\text{now}} \cdot T_{\text{move}} Ttarget=TnowTmove
矩阵的乘法顺序表示变换的执行顺序,顺序不同,结果会有所不同。

4. 从变换矩阵中提取位姿

计算目标变换矩阵后,可以从矩阵中提取出新的位置和姿态:

  • 平移位置:从 Ttarget 的右上角元素 [x, y, z]^T 提取平移分量。
  • 姿态(欧拉角):从旋转矩阵部分提取 RX、RY、RZ 角度。

提取 RX、RY、RZ 的公式如下:
rx = arctan ⁡ 2 ( T 32 , T 33 ) \text{rx} = \arctan2(T_{32}, T_{33}) rx=arctan2(T32,T33)

ry = arcsin ⁡ ( − T 31 ) \text{ry} = \arcsin(-T_{31}) ry=arcsin(T31)

rz = arctan ⁡ 2 ( T 21 , T 11 ) \text{rz} = \arctan2(T_{21}, T_{11}) rz=arctan2(T21,T11)


http://www.ppmy.cn/ops/108244.html

相关文章

项目总体框架

一.后端(包装servlet) 使用BaseServlet进行请求的初步处理(利用继承进行执行这个) 在BaseServlet中 处理请求的类型找到对象的方法,并使用注解找到参数名,执行参数自动注入。 package com.csdn.controlle…

AUTOSAR Adaptive与智能汽车E/E架构发展趋势

AUTOSAR Adaptive是一个面向现代汽车应用需求的标准,特别适用于那些需要高计算能力和灵活性的应用。以下是AUTOSAR Adaptive的典型特性: 高计算能力:AUTOSAR Adaptive支持使用MPU(微处理器),这些处理器的性…

Java中实现导出Word文档的功能

要在Java中实现导出Word文档的功能,你可以使用Apache POI库。POI库是一个用于读写Microsoft Office文件的Java库。 以下是一个简单的示例代码,展示如何使用POI库导出Word文档: import org.apache.poi.xwpf.usermodel.*; import java.io.*;p…

Kafka (快速)安装部署

文章目录 1、软件下载&配置环境1_JDK安装2_Zookeeper安装3_Kafka安装 2、单机安装1_配置主机名和IP映射2_单机Kafka配置 3、集群安装1_配置主机名和IP的映射关系2_时钟同步3_Zookeeper配置信息4_集群Kafka配置 4、kafka的其他脚本命令5、监控工具Kafka-eagle安装 1、软件下…

mapActions辅助函数的使用

什么是mapActions? mapActions 是 Vuex 提供的一个辅助函数,它允许你将组件中的方法映射为 Vuex 中的 Actions,以便于你可以直接从组件内部调用这些 actions。通过使用 mapActions 你可以在组件中以函数的方式引用 Vuex 中的 Actions,从而避…

电阻器件选型

电阻参数 一般都是(前面数字x10^末尾数字),如下面的例子 大概清楚电阻的结构即可,无需掌握 电阻器安装在陶瓷基板的上面;在每一端都有内部金属电极,使其与厚膜电阻体接触;电阻原件的成分是金…

软件架构风格: 仓库风格

通俗示例 想象一下你在管理一个图书馆。 数据库系统:图书馆里的所有书籍都按照一定的规则(比如按照书名、作者或ISBN编号)存放在书架上,你可以通过图书管理员(数据库管理系统)来查找、借阅或归还书籍。 超…

问:Super与this在Java中有什么区别?

this: this 关键字用于引用当前对象。它通常用于区分成员变量和方法参数或局部变量。在实例方法中,this 指向调用该方法的对象。在构造函数中,this 指向正在被初始化的对象。 super: super 关键字用于引用父类(超类&a…