This package implements eddiebot navigation stack, which performs map building and navigating a known map given a target goal.
For running the eddiebot navigation stack, following packages should be installed
- openni2_launch: this package provides driver for Primesense Carmine
- rtabmap_ros: this package implements Real-Time Appearance-Based Mapping
- iai_kinect2: this package provides driver for Kinect v2
Note: to install iai_kinect2, some dependencies should be installed as prerequisite.
Here, we use eddiebot with Primesene camera as an example, if you want to use eddiebot with Kinect-v2, try minimal_kinect_v2.launch
and rtabmap_mapping_kinect2.launch
.
Open a new terminal, boot up all eddiebot drivers
roslaunch eddiebot_bringup minimal_primesense.launch
Open a new terminal, start rtabmap mapping mode
roslaunch eddiebot_navigation rtabmap_mapping.launch
Open a new terminal, start teleoperation through keyboard (i.e., control the eddiebot through keyboard)
roslaunch eddiebot_teleop teleop_keyboard.launch
If you want to view the map building process through rviz, run the following command in a new terminal
roslaunch eddiebot_rviz_launchers view_mapping.launch
Note: when stopping the map building process, by default the map is stored in .ros/rtabmap.db
, you can change the saving directory by adding parameter database_path
in rtabmap launch process.
For example,
roslaunch eddiebot_navigation rtabmap_mapping.launch database_path:=<new_path>
Once you have built a map or have a known map, you can have the eddiebot navigates the map given a target goal, it can then autonomously plan through the environment.
To send a goal:
- Click the "2D Nav Goal" button in rviz
- Click on the map where you want the TurtleBot to drive and drag in the direction the eddiebot should be pointing at the end.
This can fail if the path or goal is blocked.
Open a new terminal, boot up all eddiebot drivers
roslaunch eddiebot_bringup minimal.launch
Open a new terminal, start rtabmap localization mode
roslaunch eddiebot_navigation rtabmap_mapping.launch localization:=true
Open a new terminal, start teleoperation through keyboard (i.e., control the eddiebot through keyboard)
roslaunch eddiebot_teleop teleop_keyboard.launch
If you want to view the map building process through rviz, run the following command in a new terminal
roslaunch eddiebot_rviz_launchers view_mapping.launch
1. Cannot view rtabmap MapData rivz
We use rtabmap rviz plugin to visualize rtabmap MapData. However, this plugin has an internal problem, that is rviz should be launched before rtabmap_mapping.launch
. What's more, once you disable it in the rviz, you should restart all the pipeline to re-view the MapData.