线程评分:
  • 0投票 - 0平均
  • 1
  • 2
  • 3
  • 4
  • 5
移动到笛卡尔目标导出为MoveJ构成目标?
我在笛卡尔空间中定义了一个目标,并且一个程序使Mecademic 500机器人通过“ MoveJ”关节移动进入那里。生成的机器人程序包含以下相关命令:

robot.run('setwrf',[0.000,280.000,0.000,0.000,0.000,90.000,-90.000])
robot.run('MoveConjoints',[37.303900,4.182890,-0.568555,85.270100,-37.453300,-84.049700])

MoveChoints设置了六个关节角,如“机器人接头”下的目标性质中存储。运行时,机器人按预期移动到笛卡尔目标。

现在,我移动机器人的基础并重新运行程序。Robodk中的仿真更新了关节角度(自从基地移动以来具有不同的值),机器人再次达到笛卡尔目标。

当我再次生成一个机器人程序时,由于机器人的基本位置已更改,因此SetWrf命令的值会按预期更改。但是,MoveChoints命令的值保持与“机器人关节”下的目标属性中存储的值相同。它们与Robodk模拟中更新的关节角度不匹配。由于MoveJoints是独立于SETWRF的机器人姿势命令,因此与模拟不同,机器人将不会达到目标。

因此,Robodk对笛卡尔目标的“ MoveJ”命令似乎被以“ Move Choints”为导出到姿势目标。尽管机器人应采取不同的姿势来解释其基地已移动,但仍保持了“机器人关节”下的目标特性中存储的关节角度。我想念什么?

亲切的问候,

马丁
嗨,马丁,

这个问题问得好。
我认为您非常了解情况。
当您移动框架时,所有目标的所有笛卡尔位置都是重新计算的,但是所有关节值都不是这样。
我认为这是我们在某个时候做出的性能选择,因为我们必须一次重新计算出可能非常大量目标的反转运动学。

您可以使用两种不同的方法更新机器人关节。
1-右键单击程序 - >重新计算目标
这将重新计算该计划中所有目标的联合价值。

2-选择树中的目标(这将使机器人进入目标,确保激活正确的工具和正确的框架) - >右键单击目标 - >教授当前位置。

杰里米
通过访问我们亚慱体育app在线下载在线文档通过在我们的教程上观看教程YouTube频道


嗨,杰里米(Hi Jeremy),我尝试了这两个方法和与目标相对应的关节值确实正确更新,包括输出.py文件中的MoveChoints命令的值。

剩下的问题是,当我有一个程序,该程序调用了相同的子程序(移至目标)两次,并且在两个调用之间移动了框架。子程序仅定义一次,而两个调用的值应具有不同的值。在Robodk的仿真中,每个调用会自动更新值,但是在输出程序中,此信息丢失了。

可能是,联合移动到笛卡尔目标并转移到机器人姿势的联合移动越来越大吗?我认为,应将到笛卡尔目标的联合移动应后处理到“ MovePose(X,Y,Z,Alpha,Beta,Gamma)”命令,该命令将SETWRF命令的值提交给帐户。联合移动到姿势目标应该是“ MoveChoints(A1,A2,A3,A4,A5,A6)”命令(如今)。

但是即使到那时,在输出文件中的子程序中定义的setWrf命令仍将被固定值粘住,与模拟不同,该值根据移动的帧对它们进行更新。




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