线程评级:
从四元数创建目标
# 1
你好,

我正在努力从四元数在python脚本中创建机器人目标。当我在RoboDK中用“新目标”按钮创建一个目标并粘贴四元数时,它工作得很好。但是我有364个需要创建的目标,我想用python脚本做到这一点,但我不知道代码应该是什么样子。
我希望有人能帮我。我已经写了一个小脚本,但这只是将xyz坐标传输到RoboDK,而不是方向。
我附上了我的一个姿势的4x4矩阵(四元数),以及我写的脚本。


附加文件
. txt pose_t_1.txt(大小:410字节/下载:43)
. txt RDK_pythonscript.txt(大小:945字节/下载:46)
# 2
看起来在您提供的文本文件中已经有了一个4x4矩阵。

你可以通过使用Python中的列表列表直接提供矩阵的所有组件来创建这个矩阵(Mat):
代码:
poselist = [[1, 0, 0, 0], [0 1 0,0], [0, 0, 1, 0], [0, 0, 0, 1]]
姿态= robomath.Mat(姿态)
如果不是pose. ishomohomogeneous ():
打印(“有问题:这个姿势不均匀。”)
打印(构成)

与Pose_2_ABB相反的是一个函数,它接受7个值(xyz,q1,q2,q3,q4)并返回一个姿态(4x4矩阵)。这个函数可以是这样的:
代码:
def ABB_2_Pose (xyzq1234):
Xyz = xyzq1234[0:3]
Q1234 = xyzq1234[3:7]
姿态= quaternion_2_pose(q1234)
pose.setPos(某某)
返回的姿势
# 3
艾伯特你好,
谢谢你的快速回答!现在我正在尝试实现您提供的第一个解决方案,但不知为何我的程序无法识别robomath模块。
首先,程序给了我以下错误:
NameError: name 'robomath'没有定义
然后我试着导入机器人:
从robodk导入robomath
但这给了我一个错误:
ImportError:无法从robodk导入名称“robomath”(/home/robi/.local/lib/python3.8/site-packages/robodk/robodk.py)

我使用的是RoboDK 5.3.0版本

有什么解决办法吗?

致以最亲切的问候
达斯汀
# 4
尝试在RoboDK导入的脚本顶部使用以下代码:
代码:
从robolink导入*
从robodk导入*

这应该适用于所有版本。然后你可以像这样直接访问所有函数:

代码:
姿势=垫子(4)
xyzabc = Pose_2_KUKA(pose)




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