I need to simulate a path planning approach for a 2D space where the obstacles are moving. Initially, I need to implement probabilistic road map, D* lite, A* and Bug2 algorithm. The robot needs to be able to follow the wall of the obstacles.
I do not know which library is most suitable for these algorithms. I have a tight schedule, I need to finish the simulation within 1 month. I found ROS, matlab and Player. Which one can handle the simulation of dynamic obstacles and has the algorithms that I need. Any other suggestions are welcome.
-
$\begingroup$ What do you mean by simulate? Do you need a simulated robot which actually moves on screen or do you need a plot of the results of the algorithm? $\endgroup$– 50k4Feb 20, 2019 at 9:42
-
$\begingroup$ I need a robot that moves on the screen. The robot needs to reach a goal and avoid moving obstacles at the same time. $\endgroup$– Ben HafFeb 20, 2019 at 11:18
2 Answers
Generally you will need to combine more tools to achive your goals. You will need a path planner library and script, you need to move things around and you need visualisation.
An open source 3D simulation environment which supports dynamic obstacles is Gazebo. You mention Player, as i understand that is also somthing similar, but I have never seen it in use and it seems that Gazebo grew out of the Player Project. Gazebo would take care about moving things around and visualisation. You will need to add a pathplanner.
As for path panning libraries, probably the best known ones are OPML and MoveIt! (MoveIt! is based partially on OPML). MoveIt! is a ROS library and there are tutorials how to couple this library with Gazebo. However, OMPL and MoveIt does not include all the algorithms you have mentioned out of the box. This means that you have to search for plugins or implement the algorithms yourself.
Matlab probably has most of the algorithms you need, either in the Robotics Toolbox or on Matlab file exchange, or they can be implemented. However, rendered 3D visualisation is not as easily done as with Gazebo. If 3D plots and graphs would suffice Matlab alone is also a viable option. If not, you can connect Gazebo to Matlab by following this tutorial.
-
$\begingroup$ Thanks a lot. Your answer is really helpful. $\endgroup$– Ben HafFeb 20, 2019 at 14:57
The most compact pathplanner in a 2d world is “rrt.py lavalle” The code which can be found in the Internet, includes the documentation and has only 64 LoC. It draws a wonderful randomized tree to the screen with the help of pygame. It works under all operating systems and can be adapted to new constraints.
What i can't recommend is to combine RRT with Fuzzy logic to inject expert knowledge in the pathplanner. In theory, this would allow to handle dynamic obstacles and classifies different maps. The problem here is, that it is not sure, how to falsify this kind of things, so the question is, if it's still mathematics or something else.