线程评级:
  • 0票(s) - 0平均
  • 1
  • 2
  • 3.
  • 4
  • 5
(Python API) Mat.Offset()姿态格式
# 1
1.文档错误//m.sinclairbody.com/doc/en/PythonAPI/robo...Mat.Offset

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

参数是rx, ry, rz,而不是W, P, r,不要混淆//m.sinclairbody.com/doc/en/PythonAPI/robo...ath.Offset它正确地列出了rx,ry,rz。

2.据我所知,Offset()使用了所有pose___ *函数都不支持的姿态格式,因为它需要rx,ry,rz的度数。我发现最接近的支持姿势是Pose_2_TxyzRxyz(),它以弧度返回rx,ry,rz。所以,如果我想让两个姿态相对偏移,我必须将弧度转换为度数:

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

x, y, z, rx_radians, ry_radians, rz_radians = robomath. pose_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()可能试图做我用两个姿势,可能值得一提的是,他们只需要把姿势相乘在一起。
# 2
1.我已经更新了文档,它应该会在下一个出版物中反映变化。

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

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

代码:
对于(10)范围内的I:
Pose_i = pose。Offset(0,0,0, rz=i*5)


请注意,Pose_2_Staubli以度为单位返回Pose_2_TxyzRxyz。
请阅读论坛的指导方针之前发帖!
有关RoboDK的有用信息,请访问我们的在线文档




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