线程评级:
MoveL_Test的意外结果
# 1
你好,

我是代表我的一个学生发表这篇文章的,因为他还没有收到激活电子邮件(几周前我也遇到了同样的事情)。

我们一直在使用“MoveL_Test”来评估两个姿势之间的线性运动是否可行。我们已经发现了一些情况,其中“MoveL_Test”返回“-2”,但是,在这些确切的情况下,如果我们运行MoveL,它工作!根据文档,当MoveL_Test返回“-2”时,这意味着目标根本无法到达,但事实并非如此,因为“MoveL”可以工作。实际上,这里使用的姿势(关节值)是SolveIK_All的结果,其中每个姿势至少获得一个解决方案,因此它应该是可达的。

综上所述,在“MoveL”和“MoveJ”都可能出现的情况下,move_test似乎给出了“-2”。

我附加了一个项目和一个python文件演示这一点。我们在Windows 11 64位的Visual Studio Code上使用RoboDK 5.5.2和Python 3.9。

谢谢并致以最良好的问候。
雨果Costelha


附加文件
.rdk bugExample_MoveL_Test.rdk(大小:2.83 MB /下载:2雷电竞app下载安卓3)
. py bugExample_MoveL_Test_code.py(大小:1.66 KB /下载:2雷电竞app下载安卓1)
SolveFK和SolveIK函数要求使用机器人法兰相对于机器人底座的姿态。这意味着它们不依赖于活动工具和活动参考系(与大多数其他函数相反,如Pose, setPose, MoveJ, moveel, MoveJ_Test, move_test等,这些函数都考虑了活动工具和参考系)。

因此,你应该根据你的活动工具和坐标系计算目标姿态,如下所示:
代码:
jointVector0 = [-2.673, 11.398, 0.966, -276.009, -88.591, -167.432]
jointVector1 = [-1.381, 10.534, -14.661, -277.682, -86.983, 176.095]

target_pose = robot.PoseFrame().inv() * robot.SolveFK(jointVector1) * robot.PoseTool()
测试=机器人。MoveL_Test (j - 1 = jointVector0姿势= target_pose)
打印(测试)
# 3
嗨,阿尔伯特,

谢谢你的回复。我们发送的示例是一个较短的示例,用于演示我们所指的内容。在实践中,我们正在使用“SolveIK_All(pose, tool=None, reference=None)”,并且我们在原始代码中传递了“tool= robot. posetool()”和“reference=robot.poseFrame()”参数(但我们没有在SolveFK部分传递这些参数)。使用这些参数,它考虑到工具和参考系,对吗?对于SolveFK也是一样,我们可以传递参数“tool”和“reference”,它应该考虑它们,对吗?

我们刚刚尝试使用SolveFK来解决这些问题,现在它似乎正在按照预期工作。

谢谢和问候。
# 4
是的,你可以将工具和参考姿势传递给SolveIK和SolveFK,姿势也应该正确计算。




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

Baidu
map