线程评级:
  • 0票(s) - 0平均
  • 1
  • 2
  • 3.
  • 4
  • 5
旋转矩阵使用API?
# 1
你好,

有办法提取旋转矩阵吗?呼叫机器人时返回的垫子。SolveFK包含关于机器人姿态的信息,其中最后一列的前三个元素表示X,Y,Z位置。是3x3(前三个颜色和前三行)的Mat是旋转矩阵?如果我使用Pose_2_TxyzRxyz,然后使用欧拉角约定rotz*roty*rotx构造旋转矩阵(我不确定这种方法是否正确),我最终得到的结果与Mat的3x3不同。我将感谢任何帮助。

致以最亲切的问候
# 2
这是不正确的。

调用以下函数:
pose = TxyzRxyz_2_Pose([x,y,z,rx,ry,rz])
其中x,y,z是以mm为单位的平移,rx,ry,rz是以弧度为单位的旋转。

这和下面的做法是一样的:
Pose = transl(x,y,z)*rotx(rx)*roty(ry)*rotz(rz)

你可以这样恢复这个操作:
x,y,z,rx,ry,rz = Pose_2_TxyzRxyz(pose)

更多信息请点击这里:
//www.sinclairbody.com/doc/en/PythonAPI/robo...2_TxyzRxyz

如果你正在使用Python API并且你只想要旋转矩阵,你可以这样做:
旋转=姿势[0:3,0:3]

另一个提示:
您可以通过以下方式更改点的坐标系统:
Point_ref1 = [x,y,z,1]
Point_ref2 = pose * point_ref1

您可以通过以下方式更改矢量的坐标系:
Vector_ref1 = [u,v,w]
Vector_ref2 = pose * vector_ref1
# 3
谢谢你的回复。我用DH表构造了变换矩阵,并用MATLAB进行了计算。当所有关节都为0时,我得到了不同的旋转和平移。当所有关节设置为0时,robodk显示沿X,Y,Z方向的平移分别为[-817,-191,-4.45]。计算结果为[-817,-9.53,-5.33]。所以我们有不同的Y和Z平移。旋转矩阵是两个不同的,但是我没有附上它们。原因是什么呢?我已经获得了DH参数http://rsewiki.elektro.dtu.dk/index.php/UR5






浏览此主题的用户:
1客人(年代)