线程评级:
  • 0票(s) - 0平均
  • 1
  • 2
  • 3.
  • 4
  • 5
当目标移动时,目标不会更新其关节
# 1
在附加的collision_test_scene。rdk,我有一堆笛卡尔目标它们都是参考坐标系box_frame的子坐标系。然后test_program程序对它们进行MoveJ操作。所以我可以改变box_frame,所有的目标都按照预期移动,当我改变box_frame时,这一切都很好。到目前为止一切顺利。

在移动了box_frame参考帧后,如果我右键单击“目标5”并将其更改为联合目标,则位置会跳转回目标5的原始位置。所以看起来你在每个目标中都存储了笛卡尔和关节姿态,但是当目标被移动时,当父参照系改变时,不更新关节姿态。我猜你会说这是预期的效果,如果我想让它们匹配,我需要“移动到目标”,然后为每个目标“教授当前位置”?

我注意到这一点的原因是Universal Robots的MoveJ后处理程序只关注关节姿势。因此,我可以随心所欲地移动box_frame,并且工具路径在robodk中按预期变化,但它总是生成相同的URScript .script文件,就好像我从未移动box_frame一样。所以机器人最终会做一些和我在屏幕上看到的非常不同的事情。这看起来很明显是个虫子。


附加文件
.rdk collision_test_scene.rdk(大小:3.24 MB /下载:6雷电竞app下载安卓8)
# 2
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] [au:]

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


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

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

在“程序”选项卡中找到此选项,请参见所附图像。


如果您对联合重新计算选项仍有疑问,请告诉我们。
# 7
谢谢,我把不同的版本搞混了。在RoboDK v5.5.2.22919(2022-11-12)上,我无法使用任何方法获得目标重新计算:realculate targets上下文菜单,setParam(' realculatetargets '),并设置“realculate targets before generation”,然后是“Generate robot program as…”。5号目标顽固地停留在原点。

所以这似乎是一种回归。如果我回到v5.4.4.3.22250(2022-06-27),就像我在上一篇文章中描述的那样,仅仅改变参考框架就会显示API(而不是GUI)中的关节变化。如果我做“重新计算目标”,那么GUI和API都是正确的。如果我做setParam(' realculatetargets '),那么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.setParam(“RecalculateTargets”)




浏览此主题的用户:
1客人(年代)

Baidu
map