Basically, you have three options.
- Write your own "planner" that follows the path. This can actually be a simple controller without any collision avoidance and should be straightforward.
- You can write a
GlobalPlannerPlugin
to move_base
that subscribes to the path you create (or creates it itself) and then passes it down to the local planner. There are quite some questions about this (e.g. here or here). Then you have the full capabilities of move_base
available later on - Use
move_base_flex
. This exposes additional actions which should let you do what you want directly. See this question for details.
I personally have done 1 (pretty easy) and 2 (works quite will). EVen though I haven't tested it, I'd say 3 would be the way to go now (though move_base_flex
is currently still not very stable, but quite actively developed).
EDIT
About option 1: No, there are no tutorials (that I know of). Just create a subscriber to your path message, and try to follow this using a simple controller. Most basic way would be to implement a simple P[I][D]-controller that trys to stay on the path with a fixed x-velocity (in my experience, PD is totally fine for such a task). If your robot is a differential drive, this is the easiest way.
About option 2: The link to the tutorial is in one of the linked answers above. For reference.
Have you taken a look at the navigation stack?
Please don't crosspost. It wastes time and effort of everyone. Please see our support page.
Oh okay, sorry I did not know about that but I understand now.
And yes I have looked at the navigation stack however I am not sure how to integrate move_base with a published path message. I am wondering if anyone have experience with this before and could provide me with some pointers.
Thanks
I have the same problem. Are you finished and solve this problem? Thanks
Hello
To make your robot follow a published path:
-Publish the desired path using the package you have. -Subscribe to the published path in your robot's control system. -Extract the necessary path information from the received message. -Implement a control algorithm that interprets the path information and generates appropriate commands for the robot. -Execute the control commands in your robot's hardware or simulation environment.