Hello
I want to know how does collision avoidance algorithm works in the "motionPlanningDemo 1" example? I know that the collision avoidance algorithm have not been provided by the ompl, so it should be added by coppeliasim.
Could someone help me with this? I need this information for my thesis.
Thanks in advance.
Collision Avoidance Algorithm
Re: Collision Avoidance Algorithm
Hello,
I am not sure I perfectly understand what you mean. Is your question about the collision detection itself, or about the task planning?
Path planning is often effectively doing collision avoidance, e.g. given a start and goal configuration, find a path that links both and that respects some constraints (e.g. does not collide). So OMPL typically produces many different configurations/states, and coppeliaSim will check additional constraints for those states, e.g. collision detection, but also others via a state validity callback function (if such a function is present).
Cheers
I am not sure I perfectly understand what you mean. Is your question about the collision detection itself, or about the task planning?
Path planning is often effectively doing collision avoidance, e.g. given a start and goal configuration, find a path that links both and that respects some constraints (e.g. does not collide). So OMPL typically produces many different configurations/states, and coppeliaSim will check additional constraints for those states, e.g. collision detection, but also others via a state validity callback function (if such a function is present).
Cheers
-
- Posts: 6
- Joined: 02 Feb 2021, 07:35
Re: Collision Avoidance Algorithm
Hello
Sorry for replying you late.
Yes you're right, first ompl produces many different configurations, then coppeliasim checks the constraints. Let the only constraint be collision avoidance. How coppeliasim knows that collision happens or not, in a configuration? I guess coppeliasim just solves the forward kinematics for each and every point of manipulator body and then by using objects position and orientations and geometries in the scene, it figures out that any point of robot body collides or not. But this method doesn't seem to be time efficient. Or a better collision avoidance method maybe calculating collision distance for robot. If this distance is zero then the robot collides with objects in the scene or itself.
I mean there must be an algorithm for figuring out collision, in coppeliasim. What is the logic of this algorithm. I wish l've made it clear now.
Thank you.
Sorry for replying you late.
Yes you're right, first ompl produces many different configurations, then coppeliasim checks the constraints. Let the only constraint be collision avoidance. How coppeliasim knows that collision happens or not, in a configuration? I guess coppeliasim just solves the forward kinematics for each and every point of manipulator body and then by using objects position and orientations and geometries in the scene, it figures out that any point of robot body collides or not. But this method doesn't seem to be time efficient. Or a better collision avoidance method maybe calculating collision distance for robot. If this distance is zero then the robot collides with objects in the scene or itself.
I mean there must be an algorithm for figuring out collision, in coppeliasim. What is the logic of this algorithm. I wish l've made it clear now.
Thank you.
Re: Collision Avoidance Algorithm
In CoppeliaSim you have two distinct functions: collision detection, and minimum distance calculation. Both are very efficient and fast. Of course, if you use minimum distance calculation to detect a distance of 0, you are effectively doing collision detection. But that will be quite slower than using collision detection in the first place.
When you say it doesn't seem to be time efficient, what do you mean exactly? How would you make it faster or more efficient?
Details on the algorithms themselves can be found here.
Cheers
When you say it doesn't seem to be time efficient, what do you mean exactly? How would you make it faster or more efficient?
Details on the algorithms themselves can be found here.
Cheers