RoboDK论坛
CNC 5轴程序不会为无效姿势返回错误-打印版本

+- RoboDK论坛(//www.w5838.com/forum
+——论坛:RoboDK (EN) (//www.w5838.com/forum/Forum-RoboDK-EN
+——论坛:RoboDK API (//www.w5838.com/forum/Forum-RoboDK-API
+——线程:CNC 5轴程序不返回错误无效的姿势(/ Thread-CNC-5-Axis-program-doesn-t-return-error-for-invalid-pose



CNC 5轴程序不会为无效姿势返回错误-flauzon-04-04-2022

类的c++ API生成程序时Reis RL130P CNC,如果所请求的姿态不可达,API仍然返回一个关节位置。当使用像Staubli TX-90这样的机器人时,当一个位置无法到达时,通常会返回一个无效的关节。

这是非常危险的因为没有办法告诉5轴CNC有错误。

我附上了2张图片,一张显示了使用RoboDK API生成的想要的路径(有效的path.png),另一张显示了无法到达的目标(无效的path.png)的结果,没有从RoboDK c++ API返回错误。

我还为这两种情况附加了一个程序和目标站。

我使用的是最新版本的c++ api以及4月4日可下载的最新版本的RoboDK (v5.4.1.22034)


RE: CNC 5轴程序不返回无效姿势的错误-亚历克斯-04-04-2022

在Python API中,您可以使用move_test()或MoveJ_Test(),如果移动没有碰撞或任何其他问题,则返回0。如果机器人无法达到目标姿态,则返回-2。如果机器人可以到达目标,但不能进行线性运动,则返回-1。

这种方法的c++实现能解决您的问题吗?


RE: CNC 5轴程序不返回无效姿势的错误-flauzon-04-05-2022

(04-04-2022, 09:47 pm)亚历克斯写道:在Python API中,您可以使用move_test()或MoveJ_Test(),如果移动没有碰撞或任何其他问题,则返回0。如果机器人无法达到目标姿态,则返回-2。如果机器人可以到达目标,但不能进行线性运动,则返回-1。

这种方法的c++实现能解决您的问题吗?

我正在使用机器人项目的SolveIK(),这应该返回一个无效的tjoint,如果没有移动是可能的(RoboDK_API:: tjoint::Valid()==false),这里是来自c++文档本身:
引用: /// \短暂 检查 如果 关节 有效的。 的例子, 我们 请求 运动学 而且 在那里 没有 解决方案 关节 有效的。
/// (的例子,一个无效的结果调用类:IItem: SolveIK返回一个有效的关节)
/// \返回 真正的 如果 1 学位 自由 更多的
保龄球 有效的()常量

因此,在CNC 5轴机床的情况下,该方法显然没有返回预期的结果(注意:我们使用SolveIK对其他机床没有问题(无效姿势被正确报告))。

我会按照你的建议去做,并汇报结果。

谢谢,
弗朗索瓦。

你好,亚历克斯,
我已经测试了MoveJ_Test和move_test,但它没有帮助,所有的动作都是有效的。
但是仔细想想,它不会返回任何错误是有意义的,因为我使用的关节位置是从SolveIK()返回的,而且由于SolveIK()返回机器人可以到达的关节位置(即使关节位置不是很好,即关节位置远离所请求的姿势),使用该关节进行测试将会成功。

因此,问题仍然在于SolveIK()不返回错误,因为它应该为CNC 5轴机床。

谢谢,
弗朗索瓦。


RE: CNC 5轴程序不返回无效姿势的错误-艾伯特-04-06-2022

当一个或多个关节超出限制时,SolveIK可能会返回5轴数控机构的有效关节。我们会及时改进的。

目前,您可以通过检查返回的关节是否在所需的关节范围内来检查关节是否有效。


RE: CNC 5轴程序不返回无效姿势的错误-flauzon-04-06-2022

(04-06-2022, 08:34 am)艾伯特写道:当一个或多个关节超出限制时,SolveIK可能会返回5轴数控机构的有效关节。我们会及时改进的。

目前,您可以通过检查返回的关节是否在所需的关节范围内来检查关节是否有效。

这就是问题的关键,返回的关节是有效的,并且没有超出5轴数控机构的限制,只是没有达到所要求的姿势:从附加的rdk站检查任何moveJ,你会看到。

我想我得再检查一下回关节的位置SolveIK使用SolveFK,然后比较来自的姿态SolveIK使用我最初请求的那个,直到bug修复。

最好的问候,
弗朗索瓦。