线程评级:
move_test的速度
如果您正确地禁用了碰撞检查,您应该不会在标准输出/调试输出中看到碰撞检查时间。因此,在代码的某个地方,你必须激活它,或者你可能有另一个实例连接到API并做其他事情。

我能够毫无问题地运行下面的代码,并获得恒定的时间。

代码:
RDK = new RoboDK();
RDK - >连接();

RDK - > setCollisionActive(假);
RDK - >渲染(假);


//station = RDK->AddFile("Sim Robot.rdk"));
项目机器人= RDK->getItem("", RoboDK::ITEM_TYPE_ROBOT);

Mat pose1 = RDK->getItem("Take").Pose();
Mat pose2 = RDK->getItem("Out").Pose();

tjoint home = robot. jointhome ();
Mat toolTCP = robot.PoseTool();
Mat robot2ref = robot.PoseFrame();



//测试可达
For (int i=0;我< 1000;我+ +){
t关节开始=机器人。SolveIK(pose1, home, &toolTCP, &robot2ref);
if (start.Length() != 6){返回;}
t关节结束=机器人。SolveIK(pose2, home, &toolTCP, &robot2ref);
if (end.Length() != 6){返回;}

//模拟移动
自动res =机器人。MoveL_Test(开始,pose2);
qDebug() << res;
我有同样的代码,碰撞无效,渲染无效。我只有一个实例,我只使用RoboDK当我的机器人检查下一个位置,调试输出不显示任何东西,如果我不要求检查下一个位置,所以一切都是它应该做的。

我应该在什么时间检查MoveL位置而不发生碰撞?
我做了更多的测试,看看是否RDK - > setCollisionActive(假)真正的工作。当我激活或不激活它时,我确实有一些差异(细微的差异)。我修改了我的程序,每次都测试完全相同的动作,并检查差异:
碰撞开启时:时间在100 - 110毫秒之间(一次短移动)
碰撞关闭:160 - 180毫秒之间(对于同一个短动作)

在RoboDK的控制台,也有一个不同:


关闭碰撞:

代码:
运行API命令:"CollisionMoveL"
MoveL测试:开始…
移动测试:线性移动是可能的。检查碰撞……
碰撞检查开始…
碰撞检测时间:2ms。碰撞:0平均:1毫秒
碰撞检查开始…
碰撞检测时间:2ms。碰撞:0平均:1毫秒
移动测试:完成!未发现碰撞。测试次数:50次
更新位置和渲染…
没有3D窗口渲染
使用API命令完成:"CollisionMoveL"

开启碰撞:

代码:
运行API命令:"CollisionMoveL"
MoveL测试:开始…
移动测试:线性移动是可能的。检查碰撞……
碰撞检查开始…
碰撞检测时间:1ms。碰撞:0平均:1毫秒
碰撞检查开始…
碰撞检测时间:2ms。碰撞:0平均:1毫秒
碰撞检查开始…
碰撞检测时间:2ms。碰撞:0平均:1毫秒
碰撞检查开始…
碰撞检测时间:2ms。碰撞:0平均:1毫秒
碰撞检查开始…
碰撞检测时间:1ms。碰撞:0平均:1毫秒
移动测试:完成!未发现碰撞。测试次数:50次
更新位置和渲染…
没有3D窗口渲染
使用API命令完成:"CollisionMoveL"

所以看起来RoboDK正在测试5组与COLLISION_ON的碰撞,2组与COLLISION_OFF的碰撞。
如果我只想检查奇点/轴的极限,就完全没有碰撞,甚至连机器人和自己都没有,什么都没有。怎么设置呢?我知道奇点检查更快,因为当它检测到一个奇点时,它需要几毫秒。

如果我让我的程序发送RDK - >渲染(假)没有UI, RoboDK崩溃
这个问题有最新进展吗?已经一个月了




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