MPO_500 Navigation Setup
Contents
Launch File
1. SLAM map building with MPO_500:
roslaunch neo_mpo_500 mpo_500_gmapping.launch
2. Navigation of MPO_500:
roslaunch neo_mpo_500 mpo_500_nav.launch
Gmapping
After the launch of the gmapping.launch file, the robot should be moved around the environment with the help of joystick until the map of that environment is built. Thereafter the map built is saved as a file by the following command:
rosrun map_server map_saver -f /tmp/my_map
Autonomous Navigation
First the built map has to be added to the .bashrc file,
(Example) export MAP_NAME=neobotixmap.yaml
The following are the necessary parameters to be set before commanding robot for autonomous navigation:
AMCL Parameters
Costmap Parameters
Local Planners
Available local planners:
Shows omni-directional behavior |
|
2. DWA local planner |
Shows no omni-directional behavior |
3. Trajectory local planner |
Shows no omni-directional behavior |
4. EBand local pLanner |
Shows no omni-directional behavior |
Nodes and Topics Interaction
Map_server Node
Map server node publishes information on map resolution, map width and height and map origin over the topic /map_metadata and also publishes the map saved in the disk over the topic /map which is converted from colour values in the map to ternary occupancy values(free:0, occupied:100, unknown:-1).
AMCL Node
AMCL node fetching information of laser scanned map data over the topic /map, scans data over the topic /cob_scan_unifier/scan_unified and initialpose gives the pose estimate of the robot.
Move_base Node
Subricbed Topics - /map data, /odometry data, /tf information and also the /scan data.
Based on the goal set, the /move_base node sends velocity commands to the /mecanum_node over the topic /cmd_vel to move the robot around.
In Rviz
Localize the MPO_500
When starting up, the MPO_500 does not know where it is. To provide him its approximate location on the map:
- Click the "2D Pose Estimate" button
- Click on the map where the MPO_500 approximately is located and drag in the direction the robot is pointing.
Repeat the procedure unitl the robot's amcl pose arrays are in-line with the walls.
Set the fixed frame to "map" in Rviz global options to use the "2D Pose Estimate button".
Teleoperation
The teleoperation can be run simultaneously with the navigation stack. It will override the autonomous behavior if commands are being sent. It is often a good idea to teleoperate the robot after seeding the localization to make sure it converges to a good estimate of the position.
Send a navigation goal
To send a goal:
- Click the "2D Nav Goal" button
- Click on the map where you want the robot to drive and drag in the direction the robot should be pointing at the end.