旋转矩阵使用API?-打印版本 +- RoboDK论坛(//www.x7093.com/forum) +——论坛:RoboDK (EN) (//www.x7093.com/forum/Forum-RoboDK-EN) +——论坛:RoboDK API (//www.x7093.com/forum/Forum-RoboDK-API) +——线程:旋转矩阵使用API?(/ Thread-Rotation-Matrix-using-API) |
旋转矩阵使用API?-mnurpeiissov-02-08-2019 你好, 有没有提取旋转矩阵的方法?调用机器人时返回的Mat。SolveFK包含关于机器人姿态的信息,其中最后一列的前三个元素表示X、Y、Z位置。Mat的3x3(前三个cols和前三行)是旋转矩阵吗?如果我使用Pose_2_TxyzRxyz,然后使用欧拉角惯例rotz*roty*rotx构造旋转矩阵(我不确定这种方法是否正确),我最终得到的结果与Mat的3x3不同。我会感激任何帮助。 致以最亲切的问候 旋转矩阵使用API?-艾伯特-02-08-2019 这是不正确的。 调用以下函数: pose = TxyzRxyz_2_Pose([x,y,z,rx,ry,rz]) 其中x,y,z是以mm为单位的平移,rx,ry,rz是以弧度为单位的旋转。 这与做以下事情是一样的: 姿态= transl(x,y,z)*rotx(rx)*roty(ry)*rotz(rz) 你可以恢复这个操作: x,y,z,rx,ry,rz = Pose_2_TxyzRxyz(pose) 更多信息请点击这里: //www.x7093.com/doc/en/PythonAPI/robodk.html#robodk.Pose_2_TxyzRxyz 如果你正在使用Python API并且你只想要旋转矩阵,你可以这样做: 旋转= pose[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 旋转矩阵使用API?-mnurpeiissov-02-09-2019 谢谢你的回复。我用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 (附件= 157][附件= 158][附件= 159] |