MP-500 Autonomous Navigation
Contents
SLAM (slam_gmapping) with MoveBase
Launch
roslaunch neo_mp_500 navigation_basic_slam.launch
Nodes
Autonomous navigation consists of two main parts.
- Localization
- Path planning and execution
In this case localization is done by gmapping, a SLAM-Algorithm.
Within ROS there is a powerful package called move_base for path planning and execution using different plugins.
The following sections will cover the basics to use those packages together with Neobotix mobile robots.
SLAM gmapping
Coming Soon
Map Server
Coming Soon
Move Base
Coming Soon
Usage
Start RVIZ
For the MP-500 we created a ready to use RVIZ configuration, that can be extended to your needs.
Usually you want to launch RVIZ on a different PC that is connected to the same network as the MP-500. The PC has to be configured to connect to the remote ROS-Master. For help visit NetworkSetup
roslaunch neo_mp_500 rviz_navigation.launch
Create a map
After all packages in bringup.launch and navigation_basic_slam.launch are started up, gmapping starts to create the map immediately using the given sensor data. To extend the map, move the robot around using the joystick. To observe the grow of the map you can use RVIZ.
Hint: move the MP-500 slowly and steadily while gmapping creates the map, to get a better result
Save current map
As soon as you are satisfied with the map you can save it to a file using map_server.
rosrun map_server map_saver -f myfilename
This command creates a myfilename.pgm and myfilename.yaml within your active folder.
Define a goal position
Sending a goal position to move_base can be done in different ways:
Open RVIZ and push the 2D Nav Goal button
Publish geometry_msgs/PoseStamped to topic move_base_simple/goal
Using actions
Example Python: actionlib_tutorials
Example C++: actionlib_tutorials
AMCL with MoveBase
Launch
roslaunch neo_mp_500 navigation_basic_amcl.launch
Nodes
Autonomous navigation consists of two main parts.
- Localization
- Path planning and execution
In this case localization is done using an algorithm called amcl. amcl uses a given map to match data in form of sensor_msgs/LaserScan with the occupied parts of the map.
Within ROS there is a powerful package called move_base for path planning and execution using different plugins.
The following sections will cover the basics to use those packages together with Neobotix mobile robots.
AMCL
Coming Soon
Map Server
Coming Soon
Move Base
Coming Soon
Usage
Define a map to use with amcl
As descried above, amcl uses a given map. On default, maps are stored in neo_mp_500/configs/navigation/maps/. Put both files (.pgm and .yaml) into this folder. You can have multiple maps stored there.
To select a map add the following command to you ~/.baschrc
export MAP_NAME=mynewmap
Define a goal position
Sending a goal position to move_base can be done in different ways:
Open RVIZ and push the 2D Nav Goal button
Publish geometry_msgs/PoseStamped to topic move_base_simple/goal
Using actions
Example Python: actionlib_tutorials
Example C++: actionlib_tutorials