How to check collision between several robots?
Show older comments
I have created four robots (rigidBodyTrees) with the Robotics Toolbox.
In reality, this is one robot with four arms.
I chose to create four different robots, because I want to ignore self collision (the self being the same arm).
I want to generate configurations for each arm (each robot) and then check whether there is collision between them.
How do I do this? The documentation says:
This suggests that I can only enter the configuration for one robot and the worldObjects cannot be placed depending on the configuration that is generated but are 'fixed'.
I really hope someone can help me!
3 Comments
Karsh Tharyani
on 13 Jan 2021
Edited: Karsh Tharyani
on 13 Jan 2021
Hi Eva,
Thanks for your question. You can consider modelling your four-arms robot as a single rigidBodyTree with four sub-trees.
Next, if you feel like you want to ignore self collisions, you can set the "IgnoreSelfCollisions" to "on".
Let me know if this helps.
Best,
Karsh
(Edit)
I think I might have misunderstood your question. Sounds like (and correct me if I am wrong), you want to find out the collision between bodies of two arms, but not of bodies within an arm. Based on your current approach, you would have to update the poses of the world objects (which will correspond to links on the other arms) using "getTransform".
Alternatively, you can model your robot as, like I mentioned above, a four sub-trees "rigidBodyTree", and use "checkCollision" for a configuration and set "Exhaustive" "on".
[isColliding, separationDistance, witnessPts] = checkCollision(robot, config, "Exhaustive", "on");
Next, you can deduce based on the "separationDistance" (see here) values to decide whether the configuration is in collision or not. For example, if the (1,3) entry of "separationDistance" is NaN and that bodies at indices 1 and 3 form the same arm, this is not a collision and this can be filtered out.
Eva
on 14 Jan 2021
Yiping Liu
on 13 Jun 2021
Can you share your script so we can take a detailed look?
Answers (1)
Karsh Tharyani
on 14 Jun 2021
Moved: Remo Pillat
on 16 Jul 2024
0 votes
Hi Eva,
Please reach out to Technical Support with your question. You can provide them with the supporting files that reproduce the issue.
Best,
Karsh
Categories
Find more on Motion Planning in Help Center and File Exchange
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!