Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Speed of MoveL_Test
#11
If you have collision check properly disabled you should not see the collision check time in the standard output/debug output. So, somewhere in the code you must be activating it or you may have another instance connecting to the API and doing other things.

I was able to run the following code without issues and getting constant timings.

Code:
RDK = new RoboDK();
RDK->Connected();

RDK->setCollisionActive(false);
RDK->Render(false);


//station = RDK->AddFile("Sim Robot.rdk"));
Item robot = RDK->getItem("", RoboDK::ITEM_TYPE_ROBOT);

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

tJoints home = robot.JointsHome();
Mat toolTCP = robot.PoseTool();
Mat robot2ref = robot.PoseFrame();



// Test reachable
for (int i=0; i<1000; i++){
tJoints start = robot.SolveIK(pose1, home, &toolTCP, &robot2ref);
if (start.Length() != 6) { return; }
tJoints end = robot.SolveIK(pose2, home, &toolTCP, &robot2ref);
if (end.Length() != 6) { return; }

// Simulate MoveL
auto res = robot.MoveL_Test(start, pose2);
qDebug() << res;
}
#12
I have the same code, collision deactivated, render deactivated. I only have one instance, I only use RoboDK when my Robot check for the next position, the debug output doesn't show anything if I don't ask to check the next position, so everything act as is it supposed to.

我该什么时间预计检查MoveL假定ion without collision ?
#13
I did more testing to see if theRDK->setCollisionActive(false)truly worked. I do have some differences when I activate it or not (subtle differences). I modify my program to test the exact same movement every time and check the differencies:
With collision ON: time between 100 - 110 ms (for one short movement)
With collision OFF: time between 160 - 180 ms (for the same one short movement)

In the console of RoboDK, there is also a difference:


With Collision OFF:

Code:
Running API Command: "CollisionMoveL"
MoveL Test: Started ...
MoveL Test: Linear Movement is possible. Checking collisions...
Collision check started...
Collision check time: 2 ms. Collisions: 0 Average: 1 ms
Collision check started...
Collision check time: 2 ms. Collisions: 0 Average: 1 ms
MoveL Test: Done! No collision found. Tested Times: 50
Updating positions and rendering...
No 3D window to render
Done with API Command: "CollisionMoveL"

With Collision ON:

Code:
Running API Command: "CollisionMoveL"
MoveL Test: Started ...
MoveL Test: Linear Movement is possible. Checking collisions...
Collision check started...
Collision check time: 1 ms. Collisions: 0 Average: 1 ms
Collision check started...
Collision check time: 2 ms. Collisions: 0 Average: 1 ms
Collision check started...
Collision check time: 2 ms. Collisions: 0 Average: 1 ms
Collision check started...
Collision check time: 2 ms. Collisions: 0 Average: 1 ms
Collision check started...
Collision check time: 1 ms. Collisions: 0 Average: 1 ms
MoveL Test: Done! No collision found. Tested Times: 50
Updating positions and rendering...
No 3D window to render
Done with API Command: "CollisionMoveL"

So it seems that RoboDK is testing 5 set of collision with COLLISION_ON, and 2 with COLLISION_OFF.
If I only want the singularity / axis limit check, No collision at all, not even the robot with himself, nothing. How can I set that ? I know that the singularity checking is faster, since when it detect a singularity it takes a few ms.

PS: If I let my program sendRDK->Render(false)with no UI, RoboDK crash
#14
Is there an update on this problem ? It's been a month




Users browsing this thread:
1 Guest(s)