Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/assembly/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 机器人操作的坐标轴变换_Python_Linear Algebra_Ros_Robotics_Coordinate Transformation - Fatal编程技术网

Python 机器人操作的坐标轴变换

Python 机器人操作的坐标轴变换,python,linear-algebra,ros,robotics,coordinate-transformation,Python,Linear Algebra,Ros,Robotics,Coordinate Transformation,这是一个相当通用的基于机器人学的线性代数问题,我正在寻找一种基于算法的数学方法来解决我的问题并获得理解,而不是一个严格基于ROS的答案 我正在尝试使用机械臂自定义拾取对象。我有一个单独的感知模块,可以检测物体并估计抓取的姿势。但是,它位于相机帧中,并遵循坐标帧的图像处理惯例,即,具有以下权限: +x轴,向前:+z轴,向下:+y轴 从这个感知模块,我得到两个值-3x3旋转矩阵和1x3平移向量。 例如,假设T1 Tra: [0.09014122 0.16243269 0.6211668 ] Rot:

这是一个相当通用的基于机器人学的线性代数问题,我正在寻找一种基于算法的数学方法来解决我的问题并获得理解,而不是一个严格基于ROS的答案

我正在尝试使用机械臂自定义拾取对象。我有一个单独的感知模块,可以检测物体并估计抓取的姿势。但是,它位于相机帧中,并遵循坐标帧的图像处理惯例,即,具有以下权限:

+x轴,向前:+z轴,向下:+y轴

从这个感知模块,我得到两个值-3x3旋转矩阵和1x3平移向量。 例如,假设
T1

Tra: [0.09014122 0.16243269 0.6211668 ]
Rot: [[ 0.          0.03210089 -0.99948463]
[ 0.          0.99948463  0.03210089]
[ 1.         -0.          0.        ]]
(即,我必须抓住该位置和方向) 可以理解,我的机器人从底座到摄像机的转换在右手坐标系中。这里有一个相同的例子,比如说
T2

translation: 
  x: 0.0564581200121
  y: 0.318823912978
  z: 0.452250135698
rotation: 
  x: -0.6954818376
  y: 0.693982204231
  z: -0.13156524004
  w: 0.13184954074
我正在使用
scipy.spatial.transform
将我的姿势从一种格式转换为另一种格式,因此实际实现可以处理任何格式的姿势

现在,从机器人获得物体的姿势,是一个简单的变换T2乘以T1。然而,T1遵循与T2不同的约定

我该怎么办?使用此示例进行详细解释将不胜感激!我试图从零开始理解,因此我更愿意自己得出一个变换矩阵,应用于上面的矩阵,以获得最终姿势


这个问题可能也属于数学堆栈交换和ROS,但正如我所提到的,我试图从分析的角度来解决这个问题。

如果你想通过乘以T2*T1得到物体的姿势,T1,T2必须在齐次坐标中,其中T1,T2包含旋转矩阵和平移。T1,T2的大小应该是4x4,用于3D


在您的例子中,T2的方向用四元数表示。将其转换为旋转矩阵,并使用旋转矩阵、平移创建齐次矩阵。

如果要通过乘以T2*T1获得对象的姿势,则T1、T2必须在齐次坐标中,其中T1、T2包含旋转矩阵和平移。T1,T2的大小应该是4x4,用于3D


在您的例子中,T2的方向用四元数表示。将其转换为旋转矩阵,并使用旋转矩阵、平移创建齐次矩阵。

Hello。对迟来的答复表示歉意。这似乎不起作用。你能进一步解释一下吗?你能展示一下t1和t2变换的齐次矩阵吗?嘿@nayab。抱歉,我现在读对了。我把T1乘以T2。而不是T2*T1。现在它有意义了。很抱歉你好对迟来的答复表示歉意。这似乎不起作用。你能进一步解释一下吗?你能展示一下t1和t2变换的齐次矩阵吗?嘿@nayab。抱歉,我现在读对了。我把T1乘以T2。而不是T2*T1。现在它有意义了。很抱歉