基坐标系与刚体坐标系
基坐标系(Base Coordinate System)和刚体坐标系(Rigid Body Coordinate System)是两个不同的概念,它们在机器人学、机械工程和物理学中有着不同的应用和含义:
-
基坐标系:
- 基坐标系通常指的是一个固定的参考坐标系,它为其他坐标系提供参考。
- 在机器人学中,基坐标系通常是指机器人基座或工作台的坐标系,它是机器人运动的起点。
- 在空间几何中,基坐标系可以是任何固定的坐标系,用于定义其他坐标系的位置和方向。
-
刚体坐标系:
- 刚体坐标系是与刚体一起移动的坐标系,它与刚体的位置和方向保持一致。
- 在机器人学中,每个机器人的关节或连杆通常都有自己的刚体坐标系,这些坐标系随着机器人的运动而移动。
- 刚体坐标系的原点通常位于刚体的质心或某个特定的参考点,坐标轴与刚体的某些特征方向对齐。
区别:
- 固定性:基坐标系通常是固定的,而刚体坐标系是随着刚体的移动而移动的。
- 参考点:基坐标系的原点和方向是相对于实验室、工作台或其他固定结构定义的,而刚体坐标系的原点和方向是相对于刚体本身定义的。
- 应用:基坐标系用于定义其他坐标系的全局位置和方向,而刚体坐标系用于描述刚体内部的相对位置和方向。
在实际应用中,刚体坐标系通常用于描述和计算刚体的运动和动力学,而基坐标系则用于将这些运动和动力学与外部世界联系起来。
姿态表示
姿态矩阵是用于表示一个坐标系相对于另一个坐标系的方向和位置的数学工具。在机器人学、计算机图形学、航空航天等领域中,姿态矩阵被广泛用于描述物体的空间姿态。姿态矩阵通常由旋转矩阵和平移向量组成。
旋转矩阵(Rotation Matrix)
旋转矩阵是一个3x3的正交矩阵,用于描述一个坐标系相对于另一个坐标系的旋转。旋转矩阵具有以下特性:
- 正交性:矩阵与其转置的乘积等于单位矩阵,即 ( R^T R = I )。
- 行列式为1:旋转矩阵的行列式值为1,表示旋转不改变体积,即 ( \det® = 1 )。
- 元素限制:旋转矩阵的元素通常在-1到1之间。
旋转矩阵可以表示为:
R
=
[
r
11
r
12
r
13
r
21
r
22
r
23
r
31
r
32
r
33
]
R = \begin{bmatrix} r_{11} & r_{12} & r_{13} \\ r_{21} & r_{22} & r_{23} \\ r_{31} & r_{32} & r_{33} \end{bmatrix}
R=
r11r21r31r12r22r32r13r23r33
如果我们把沿着x, y, z的旋转记作一个算子,那么旋转算子是不可交换次序的
- 例:坐标系j相对坐标系i的X轴旋转90°,并绕坐标系i的Y轴旋转90°,由例1得到“坐标系j相对坐标系i的X轴旋转90°”的变换描述,也容易得到“绕坐标系i的Y轴旋转90°”的变换描述。但是这两个矩阵能否像平移变换一样随意交换次序呢?答案是否定的,矩阵左乘和矩阵右乘的意义是不一样的:
- 变换算子左乘:表示该变换是相对固定坐标系变换;
- 变换算子右乘:表示该变换是相对动的坐标系(新坐标系)变换。
平移向量(Translation Vector)
平移向量是一个3x1的向量,用于描述一个坐标系相对于另一个坐标系的平移。平移向量可以表示为:
T
=
[
t
x
t
y
t
z
]
T = \begin{bmatrix} t_x \\ t_y \\ t_z \end{bmatrix}
T=
txtytz
我们把对于x, y, z的平移记作一个算子,那么对于平移算子来说,是可以交换次序的
姿态矩阵(Transformation Matrix)
也叫齐次矩阵
姿态矩阵是将旋转矩阵和平移向量组合在一起的4x4矩阵,用于同时描述旋转和平移。姿态矩阵可以表示为:
T = [ R T 0 1 ] 初始姿态矩阵 T 0 = [ 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 ] T = \begin{bmatrix} R & T \\ 0 & 1 \end{bmatrix}\\ 初始姿态矩阵 \\ T_0 = \begin{bmatrix} 1 & 0 & 0 & 0\\ 0 & 1 & 0 & 0\\ 0 & 0 & 1 & 0\\ 0 & 0 & 0 & 1 \end{bmatrix} T=[R0T1]初始姿态矩阵T0= 1000010000100001
其中,( R ) 是3x3的旋转矩阵,( T ) 是3x1的平移向量,最后一行是[0 0 0 1],用于保持矩阵乘法的一致性。
理解姿态矩阵
- 旋转:矩阵的左上角3x3部分表示旋转,用于将一个坐标系中的向量旋转到另一个坐标系中。
- 平移:矩阵的右上角3x1部分表示平移,用于将一个坐标系中的点移动到另一个坐标系中。
- 齐次坐标:通过使用齐次坐标(在向量末尾添加一个1),可以将旋转和平移操作合并为一个矩阵乘法,简化计算过程。
应用
- 机器人学:用于描述机器人各关节的相对位置和方向。
- 计算机图形学:用于变换场景中的物体。
- 航空航天:用于描述飞行器相对于地球或其他参考坐标系的位置和方向。
姿态矩阵是理解和计算空间中物体运动的基础,通过矩阵乘法可以方便地组合多个变换,实现复杂的空间运动描述。
三维表示形式
SDF
SDF表示一个点到一个曲面的最小距离,同时用正负来区分点在曲面内外。点在曲面内部则规定距离为负值,点在曲面外部则规定距离为正值,点在曲面上则距离为0.
实际上,这是一个映射:
S
D
F
(
x
)
=
s
∣
x
R
3
→
R
SDF(x) = s \ |\ x\ \ \ \ \ \R^3\rightarrow \R
SDF(x)=s ∣ x R3→R
Occupancy Field (占用场)
占用场表示一个点被曲面占用的概率(占用就是在曲面内部),用神经网络表示的占用场又叫做Neural Surface Field
实际上也是一个映射:
O
c
c
F
(
x
)
=
p
∣
x
R
3
→
[
0
,
1
]
OccF(x) = p\ |\ x\ \ \ \ \ \R^3\rightarrow[0,1]
OccF(x)=p ∣ x R3→[0,1]
当然可以。在计算机图形学和机器学习中,使用神经网络来表示和处理占用场(Occupancy Field)是一种先进的技术。这里的“占用场”通常指的是一个连续的三维空间场,其中每个点都有一个概率值,表示该点被物体占用的可能性。
传统占用场
在传统的占用场表示中,每个体素(voxel)通常被赋予一个二进制值,0 或 1,表示该点是否被占用。这种方法在处理简单场景时效果很好,但在处理复杂形状或模糊边界时可能会遇到困难。
连续占用场
为了解决这个问题,可以引入一个连续的概率值,而不是二进制值。这样,每个点的概率值 ( s ) 就可以在 0 到 1 之间变化,其中:
- ( s = 0 ) 表示点几乎不可能被占用(即在物体外部)。
- ( s = 1 ) 表示点几乎肯定被占用(即在物体内部)。
- ( s = 0.5 ) 表示点位于物体的表面上或者很难判断其是否被占用。
使用神经网络拟合占用场
神经网络,特别是多层感知机(MLP),可以用来学习和表示这种连续的占用场。这种方法的关键思想是使用神经网络来映射从三维空间中的点到其占用概率的函数 ( F§ )。
-
输入:神经网络的输入是三维空间中的点 ( p ) 的坐标(例如,( x, y, z ))。
-
输出:网络的输出是该点的占用概率 ( s )。
-
训练:通过使用带有标签的训练数据(例如,从三维扫描或合成数据),网络可以学习空间中每个点的占用概率。训练过程中,网络的权重会被调整,以最小化预测占用概率和实际标签之间的差异。
-
表示:一旦训练完成,神经网络就可以作为一个函数 ( F ) 来使用,它能够为任何新的三维空间中的点 ( p ) 预测占用概率。
Neural Radiance Field (神经辐射场)
辐射场 Radiance Field 就是将“空间中的点+点发出的一条射线”映射到“点的密度值+射线的方向对应的颜色值”,映射关系如下:
x,y,z表示点坐标,d 表示从这个点发出的一条射线的方向,R , G , B 表示从这个射线的方向去看这个点的颜色值,σ 表示这个点的密度值,也可以理解成透明度(比如烟雾的密度比较低,固体点的密度就很高)。
N e R F ( x , y , z , d ) → ( R , G , B , σ ) NeRF(x, y, z, d) \rightarrow(R, G, B, \sigma) NeRF(x,y,z,d)→(R,G,B,σ)
神经辐射场(Neural Radiance Fields,简称NeRF)是一种用于从一组稀疏的二维图像重建复杂三维场景的技术。它通过深度学习,利用多个视角的图像来提取场景的几何形状和纹理信息,生成一个连续的三维辐射场。这个辐射场能够以极高的逼真度在任意角度和距离下呈现三维模型。
NeRF的核心是一个深度神经网络,具体来说是一个多层感知机(MLP),它接受三维空间中的坐标和观察方向作为输入,输出相应位置的颜色和密度信息。然后,利用体积渲染技术,NeRF可以从新的视角合成场景的图像。
NeRF的网络结构通常包含多个全连接层,能够学习场景的几何形状、光照和颜色等复杂特征。训练过程中,NeRF的目标是最小化重建图像和目标图像之间的差异,以此来优化网络参数。
NeRF技术的优点在于生成的三维模型质量高、逼真度高,可以在任意角度和距离下呈现出真实的物体表面和纹理细节。此外,它可以从任意数量的输入图像中生成三维模型,而不需要对输入进行特定处理或标记
机器人学中的坐标系、姿态与三维表示
37

被折叠的 条评论
为什么被折叠?



