线程评级:
Mat.Offset()姿态格式
# 1
1.文档错误//www.jasonament.com/doc/en/PythonAPI/robo...Mat.Offset

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

参数是rx, ry, rz,不是W, P, r,不要混淆//www.jasonament.com/doc/en/PythonAPI/robo...ath.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()可能试图做我对两个姿势的处理,可能值得一提的是,他们只需要将姿势相乘。
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。
有关RoboDK及其功能的有用信息,请访问我们的在线文档通过观看我们的教程YouTube频道




浏览此线程的用户:
1客人(年代)

Baidu
map