线程评级:
Python API -外部轴
# 1
大家好!
我想知道什么是正确的方式移动外轴(机械- 3个线性轴(只使用2个),没有任何机器人同步)。我把这个机械装置看作另一个机器人。它只在X轴和Y轴上运动。

现在我在制作目标方面遇到了麻烦(它说了很多目标是无法到达的,即使当我手动移动机器人并教授当前位置时),当我尝试使用[x,y,0,0,0,0]的移动命令时,它实际上移动了机构的参考系,而不是机构。

我希望你能理解我所说的,谢谢!
也许不相关,但RoboDK似乎需要一些时间来更新位置。我们有一个线性轨道(1轴),更新轨道的姿态需要一些时间,所以我添加了一个延迟:

代码:
姿势= robodk。UR_2_Pose([x, 0, 0, 0, 0])
self.rail.setPose(构成)

#黑客:如果我们不这样做,RoboDK说我们是遥不可及的。
time . sleep (0.25)

#插入你的机器人移动到这里
# 3
大卫,
您提到的延迟会触发渲染(默认情况下,任何超过0.1秒的延迟)。相反,您可以将此延迟替换为更新渲染调用。在这种情况下,Update是最有效的调用,它只会在内部更新位置,以便您可以验证可访问性或移动机器人。Render命令将触发更新并显示屏幕。

氮氧化合物,
如果要指定外部轴的位置,则需要创建一个目标。这个用Python写的例子会让你有一个想法:

代码:
从robolink导入* # RoboDK API
从robodk导入机器人工具箱
RDK = Robolink()

检索机器人,参考框架并创建程序
机器人= RDK。项目(ITEM_TYPE_ROBOT”)
reference = robot.Parent()

#创建新程序
程序= RDK.AddProgram('Test')

#定义一个参考姿势
Pos = transl(100,200,300)*rotx(pi)

#关闭自动渲染(更快)
RDK.Render(假)

#不显示指令(更快)
program.ShowInstructions(假)

#指定你想使用的参考系
program.setPoseFrame(参考)

对于范围(100)中的I:
targetname='目标%i' %i
目标= RDK.AddTarget (targetname,参考,机器人)
目标。setPose(transl(i*100, 0,0) * pos)

#设置外部轴
轴= [20,i*100]

#对于直角坐标目标,RoboDK将忽略机器人关节,但不会忽略外部轴
All_axes = [0]*6 + axes
#创建数组的快速方法:
# [0,0,0,0,0,0, 0,0, ext_axis_1, ext_axis_2]

#设置目标并创建一个移动指令
target.setJoints (all_axes)
target.setAsCartesianTarget ()
program.MoveL(目标)

#如果你正在创建一个很长的程序,这有助于保持树小(更快)
如果I % 20 == 0:
program.ShowTargets(假);

program.ShowTargets(假)

在结尾显示程序说明
program.ShowInstructions(真正的)




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