线程评分:
  • 0投票 - 0平均
  • 1
  • 2
  • 3
  • 4
  • 5
Python API-外轴
大家好,
我想知道移动外轴的正确方法是什么(机构-3线性轴(仅使用2),而没有任何机器人同步)。我将这种机制视为另一个机器人。它仅在X和Y轴上具有运动。

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

希望您能理解我的意思,谢谢!
也许无关,但是Robodk似乎需要一些时间来更新位置。我们有一个线性导轨(1轴),更新导轨的姿势需要一些时间,因此我添加了一个延迟:

代码:
姿势= robodk.ur_2_pose([x,0,0,0,0,0,0,0])
self.rail.setpose(姿势)

#hack:如果我们不这样做,Robodk说我们已经遥不可及。
时间。

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

nox,
如果要指定外部轴的位置,则需要创建目标。用Python编写的示例将为您提供一个想法:

代码:
来自Robolink Import *#robodk api
来自Robodk Import *#机器人工具箱
rdk = robolink()

#检索机器人,参考框架并创建程序
机器人= rdk.item('',item_type_robot)
参考= robot.parent()

#创建一个新程序
程序= rdk.addprogram('test')

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

#关闭自动渲染(更快)
rdk.render(false)

#不要显示说明(更快)
program.showinstructions(false)

#指定要使用的参考框架
program.setposeframe(参考)

对于我的范围(100):
targetName ='target%i'%i
target = rdk.addtarget(targetName,参考,机器人)
target.setpose(transl(i * 100,0,0) * pos)

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

#对于笛卡尔目标,Robodk将忽略机器人关节,而不是外部轴
all_axes = [0]*6 +轴
#创建数组的快速方法:
#[0,0,0,0,0,0,ext_axis_1,ext_axis_2]

#设定目标并创建移动指令
target.setJoints(all_axes)
target.setascartesiantarget()
program.movel(目标)

#如果您要​​创建一个长程序,这有助于保持树木小(更快)
如果我%20 == 0:
program.showtargets(false);

program.showtargets(false)

#最后显示程序说明
program.showinstructions(true)




用户浏览此线程:
1位客人