Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5

ROBODK-MATLAB Collision detection

There's a function in Robodk-Matlab API which checks collision between two joint configurations:

% Verify if a joint movement from j1 to j2 is free of colllision
collision = robot.MoveJ_Test(jhome, jhome2, 1);

Is it possible to modify this function in such way, that there is only one joint configuration input? I don't need to calculate a collision between two points, I just want to know if a specific point is in collision.
To check if your robot is in a collided state you can use the Collisions function.

collided = RDK.Collisions()
Thank you for your quick response. So here's the thing. I am calculating workpiece reachability in Matlab and already have a large data set of inverse kinematic solutions. I have to check if those solutions are collision free. For now I am using built in Matlab collision checker but it is to slow.. so I wanted to try collision checking with RoboDK, which will probably be even slower because of additional communication between softwares.

In your code example I have to sent joints from Matlab to RoboDK and then check collision backwards. This is not suitable for large data (I get timed out error). Is there possibility to check collision with the help of robodk directly in matlab on existing data set?
I recommend you to try collision checking with the RoboDK API for Matlab. The communication time should be very small. The communication time may be negligible if your cell is complex. I recommend you to take a look at these tips to improve collision calculation time:

If you want to remove the dependency of the RoboDK API you can write a plugin in RoboDK to load files and check for collisions. More information here:

Can you provide more information about the timeout error? You may need to increase the timeout if your cell is too complex.
I'll take a look at those links for robodk matlab api and try to speed things up. Thank you.

Users browsing this thread:
1 Guest(s)