线程评级:
在索引robot.Pose()时有一个问题
# 1
你好,

这个程序有点问题。我正在做库卡KRC 4在线编程。

如果我这样做:

构成自我.robot.Pose ()
打印(构成)
一个构成(:3.,:3.
打印(np.array (a))


自我的地方。机器人=自我.robot自我.RDK.Item (“库卡kr 60-3”ITEM_TYPE_ROBOT)np代表numpy。

姿势是这样的:

Pose(1718.216, 26.280, 1023.377, -132.634, -31.332, -165.801):
[[-0.828, 0.210, -0.520, 1718.216],
[-0.205, 0.750, 0.628, 26.280],
[0.522, 0.627, -0.579, 1023.377],
[0.000, 0.000, 0.000, 1.000]]

a是这个:

[[-0.82807276 -0.20474388 0.52189602]
[0.20951249 0.75045489 0.62683489]
[-0.52000002 0.62840863 -0.57853485]

为什么不一样呢?注意,当索引时,在0.210上有一个“-”符号,而在0.520上没有负号。符号的这些变化打乱了我的程序。请尽快让我知道。谢谢。
嗨Tharisata,

我有一段时间没有使用Numpy了,但这似乎是你的问题,因为没有它一切看起来都很好。



杰里米
有关RoboDK及其功能的有用信息,请访问我们的在线文档通过观看我们的教程Youtube频道


# 3
嗨,杰里米,

抱歉之前的帖子是错误的:打印版本是np.array(a)不是a。

是的,当你索引时姿势是好的。然而,如果你调用np。一个rray on it or even do a.tolist() it changes certain values into negative numbers.

我不认为这是Numpy的情况,因为它也不适用于.tolist()。解决这个问题的方法是这样做,通过分别索引每一行并调用numpy:

Def _get_rot33(self, pose):
”“”
有一个问题与姿态矩阵-它改变符号时,转换
到numpy数组。这种方法与之相反。
”“”
Rot_mat = pose[:3,:3]
Row0 = np.转置(np.array(rot_mat[0])) # ndim 1x3
Row1 = np.转置(np.array(rot_mat[1]))
Row2 = np.转置(np.array(rot_mat[2]))

Rot33 = np.vstack((row0,row1,row2))
返回rot33

…但这本来就不应该成为问题。也许这是RoboDK定义Pose()的方式?




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