线程评级:
  • 0票(s) - 0平均
  • 1
  • 2
  • 3.
  • 4
  • 5
MoveL_Test的意外结果
# 1
你好,

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

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

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

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

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


附加文件
.rdk bugExample_MoveL_Test.rdk(大小:2.83 MB /下载:52022世界杯国家队名单6)
. py bugExample_MoveL_Test_code.py(大小:1.66 KB /下载:62022世界杯国家队名单2)
# 2
SolveFK和SolveIK函数要求使用机器人法兰相对于机器人基座的姿态。这意味着它们不依赖于活动工具和活动参考帧(与大多数其他函数相反,如Pose, setPose, MoveJ, MoveL, MoveJ_Test, MoveL_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客人(年代)