线程评级:
目标移动时不会更新他们的关节
# 1
在附加的collision_test_scene中。rdk,我有一堆笛卡尔目标,它们都是box_frame参考系的子结点。然后test_program程序对每一个都做一个MoveJ。所以我可以改变box_frame,所有的目标都像预期的那样移动,当我改变box_frame时,这一切都很好。到目前为止一切顺利。

在移动box_frame参考帧后,如果我右键单击“Target 5”并将其更改为联合目标,位置将跳回到目标5的原始位置。因此,看起来您在每个目标中存储了笛卡尔和关节姿势,但当父参考系更改时目标移动时,没有更新关节姿势。我猜你会说这是预期的工作,如果我想让他们匹配,我需要“移动到目标”,然后“教当前位置”为每个目标?

我注意到这一点的原因是Universal Robots后处理程序的MoveJ实现只关注关节姿势。所以我可以移动box_frame所有我想要的,工具路径在robodk中如预期的变化,但它总是生成相同的URScript .script文件,就好像我从来没有移动box_frame一样。所以机器人最终做了一些与我在屏幕上看到的非常不同的事情。这看起来很像一个bug。


附加文件
.rdk collision_test_scene.rdk(大小:3.24 MB /下载:4雷电竞app下载安卓3)
RoboDK将关节值存储在笛卡尔目标中,作为优选关节配置的参考。
它们不会自动更新。

在RoboDK:
  • 右键单击程序->重新计算目标。

使用API:
  • prog.setParam(“RecalculateTargets”)

如果需要,你可以参考这些其他帖子:
请细阅论坛的指导方针之前发帖!
有关RoboDK的有用信息,请访问我们的在线文档
# 3
谢谢山姆。是的,我认为《重新计算目标》能够做到这一点,但它并不适合我:

打开collision_test_scene.rdk
“目标5”……选择并观察机器人关节
“box_frame”…选项和改变旋转Z从0到20度
“test_program”…重新计算目标。目标在视觉上按照预期移动,但显示的“机器人关节”没有改变
通过设置“目标5”来验证这一点…“联合目标”,并观察到目标5现在显示在原来的位置。
# 4
如果你需要在生成程序时重新计算正确的关节值,你应该激活这个选项:
  1. 选择Tools-Options
  2. 选择程序
  3. 在生成前激活重新计算目标选项
如果效果更好,请告诉我们。

同样,默认的后处理器“Universal Robots”应该移动到关节目标,默认情况下给出绝对关节。如果你使用URP版本的后期处理器(Universal Robots URP), URP文件将移动到姿势而不是关节。
# 5
我没有看到“工具……选择……计划……“在生成之前重新计算目标”选项(也勾选了所有其他工具…v5.4.3(64位linux)中的选项选项卡)。

奇怪的是,重新计算目标现在正在工作,即使我找不到任何改变。但现在我看到这里更新失败:


1:打开collision_test_scene.rdk

2:

代码:
>>> t = rdk。项目(“目标5”)
> > > t.Joints ()
矩阵:(6,1)
[[64.011],
[-123.779],
[-112.164],
[-34.057]
[90.000],
[64.011]]

3:“box_frame”…选项和改变旋转Z从0到20度

4:

代码:
> > > t.Joints ()
矩阵:(6,1)
[[77.256],
[-139.139]
[-80.559],
[-50.302],
[90.000],
[57.256]]

5.右键点击“目标5”…选项。关节显示旧的(!)值(第一个关节是64而不是77)。


6.右键点击“目标5”…共同的目标。目标5跳转到旧的关节值,查询t.关节()同样返回旧值(64)。

因此,robodk似乎将目标联合数据保存在多个地方,然后未能更新其中一些数据。我猜不新鲜的关节保存在关节5的GUI元素中。
# 6
这个选项应该在最新版本的Windows、Linux和Mac中可用。它是最近添加的。(在过去几个月)。如果需要的姿态有有效的解,就会重新计算关节。这是使用活动工具和参考系计算的。

请参阅所附的图片,在Program选项卡中找到该选项。


如果您对联合重新计算选项仍有问题,请告诉我们。
# 7
谢谢,我搞混了。在RoboDK v5.5.2.22919(2022-11-12)上,我无法使用任何方法重新计算目标:重新计算目标上下文菜单,setParam('RecalculateTargets'),并设置“在生成之前重新计算目标”,然后设置“将机器人程序生成为…”。目标5固执地停留在起点。

所以这似乎是一种倒退。如果我回到v5.4.4.22250(2022-06-27),仅仅改变参考框架就会显示API(而不是GUI)中的关节变化,就像我在上一篇文章中描述的那样。如果我做“重新计算目标”,那么GUI和API都是正确的。如果我做setParam('RecalculateTargets'),那么GUI并不总是更新,但似乎不会恢复到陈旧的值。

所以旧版本大部分工作正常,但当前版本根本不会重新计算。
# 8
你能确认吗?在我看来,当前的RoboDK无法重新计算目标,而旧版本可以正常工作。
# 9
我能够复制,我们将尽快提供修复。

同时,你可以使用这个脚本来更新笛卡尔目标的联合值:

代码:
从robodk导入robolink
RDK = robolink.Robolink()

用于RDK.ItemList(robolink.ITEM_TYPE_TARGET)中的目标:
target.setParam(“重新计算”)
请细阅论坛的指导方针之前发帖!
有关RoboDK的有用信息,请访问我们的在线文档
一个小修正:临时修复应该是在每个目标上调用“重新计算”:
代码:
用于RDK.ItemList(robolink.ITEM_TYPE_TARGET)中的目标:
target.setParam(“重新计算”)

或者你也可以为每个程序触发RecalculateTargets(注意复数形式的区别):
代码:
用于RDK.ItemList(robolink.ITEM_TYPE_PROGRAM)中的prog:
prog.setParam(“RecalculateTargets”)




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

Baidu
map