-
Notifications
You must be signed in to change notification settings - Fork 28
Tutorial | Running Omnimapper
In this tutorial we will go through the steps in starting OmniMapper using the example bag files provided to help give some insight into the capabilities current the framework. This tutorial assumes you have already completed the installation process. Fist make sure you have downloaded an example bag file provided the Examples section of the wiki.
To start off, open a new terminal session and start a new instance of roscore. Note that you can only have one instance of roscore running on individual system at a time.
Once you have roscore running, open a new terminal session, leaving the previous running, and launch OmniMapper by using one of the provided launch files in OmniMapper source with roslaunch. Note that if your environment variables have been correctly configured, you should be able to tab-auto-complete the roslaunch arguments. More on using writing your own launch files here.
Now that you have OmniMapper launched and configured for a recording of our robotic platform, Jeeves, we can now playback the example bag file using rosbag. Note that we'll need to specify the --clock
argument to provide a simulated clock, and use --pause
so that one the bag file has been loaded, it will begin in a paused state. This is helpful for large bag files that can regularly take a bit of time to load at first. Simply press the spacebar key in the terminal to toggle between play and pause. So, in another new terminal session use this command with the relative or absolute path of example bag file:
rosbag play --clock --pause path/to/one_loop.bag
command | bag file loaded and paused |
---|---|
When you launched OmniMapper with roslaunch
, the launch should have also opened a new rviz
window. This serves as a graphical frontend to view the various aspects about the robot. You can use this tool to view or hide sensory inputs and mapping outputs of the current robot. You can make and "File -> Save As..." your own rviz views with the GUI and open them like so:
To save bandwidth and computation, OmniMapper does not continuously publish all visualizations. In order to invoke a some types of visualizations or various functions, a rosservice call
is used. So if rviz is subscribed to the PointCloud2 topic /omnimapper_ros_node/map_cloud/
, and we would like to see the reconstructed cloud up to point of the current optimized pose, as seen above, we would request it using the service call bellow. Remember that you can use the tab key to auto-complete or list all matching arguments like in most UNIX Command Line Interfaces. Service calls can also be done in code, allowing for other applications to make requests from other ROS nodes as explained here.
-
An easier way access some of the available callbacks is to use rviz with the Evaluation Interactive Marker. By displaying this, you can right click on the marker (a grey cube) and enable the drawing of say the pose marginals, as seen as transparent light blue ellipsoids centered along the optimized trajectory.
rqt is a software framework of ROS that implements the various GUI tools in the form of plugins. This is a useful debugging tool when checking hierarchy of the tf tree, or visualizing the node graph with published/subscribed topics and more. You can navigate through the "PLugins" drop down menu for more introspection tools.
As an FYI, the terminal manager show here is called Terminator, as in the robot future of terminals. It is a useful tool for navigating and organizing multiple terminal sessions, just be mindful that your environmental variables do not update until you close and reopen a terminal tab or until you source ~/.bashrc
agian.