RoboDK论坛
Mat.Offset()姿态格式-打印版本

+- RoboDK论坛(//www.jasonament.com/forum
+——论坛:RoboDK (EN) (//www.jasonament.com/forum/Forum-RoboDK-EN
+——论坛:RoboDK bug (//www.jasonament.com/forum/Forum-RoboDK-bugs
+——Thread: (Python API) Mat.Offset()/ Thread-Python-API-Mat-Offset-pose-format



Mat.Offset()姿态格式-j_cso-09-29-2022

1.文档错误//www.jasonament.com/doc/en/PythonAPI/robodk.html#robodk.robomath.Mat.Offset

"根据参考系坐标计算相对目标。X,Y,Z用毫米表示,W,P,R用度表示。”

参数是rx, ry, rz,不是W, P, r,不要混淆//www.jasonament.com/doc/en/PythonAPI/robodk.html#robodk.robomath.Offset正确地列出了rx,ry,rz。

2.据我所知,Offset()使用了所有Pose_2_*函数都不支持的姿势格式,因为它需要rx,ry,rz的度数。我找到的最接近的支持姿势是Pose_2_TxyzRxyz(),它以弧度返回rx,ry,rz。所以如果我想要相互抵消2个姿势,我必须将弧度转换为角度:

代码:
A = robodk。姿势(100,200,300,30,45,60)
B = robodk。姿态(10,0,0,0,0,0)

x, y, z, rx_radians, ry_radians, rz_radians = robomath.Pose_2_TxyzRxyz(b)
Rx_degrees = math.degrees(rx_radians)
Ry_degrees = math.degrees(ry_radians)
Rz_degrees = math.degrees(rz_radians)
c = a.Offset(x, y, z, rx_degrees, ry_degrees, rz_degrees)


同样奇怪的是Offset()想要分解出x,y,z,rx,ry,rz,而不是Pose: a.Offset(b)。

3.如果我有一个包含姿态f的参考系它的子目标包含姿态t,等价的数学是什么?在一堆乱七八糟的Offset()之后,看起来它只是f * t。我也可以用上面的代码得到相同的答案,但由于大多数人查看Offset()可能试图做我对两个姿势的处理,可能值得一提的是,他们只需要将姿势相乘。


RE:(Python API) Mat.Offset()姿态格式-山姆-09-29-2022

1.我已经更新了文档,它应该能在下次发布时反映出变化。

2和3。如果这两个姿态已知,我们通常直接使用new_pose = pose_a * pose_b。

Offset()在循环中很方便,例如:

代码:
对于范围(10)中的I:
Pose_i = pose。偏移量(0,0,0,rz=i*5)


注意,Pose_2_Staubli以度为单位返回Pose_2_TxyzRxyz。


Baidu
map