/rtslamros

ROS node to use with RT-SLAM

Primary LanguageC++

README - RT-SLAM ROS node
-------------------------

**WARNING: This package is a work-in-progress and still not stable!**

"Quick"start

1) Install robotpkg (See http://robotpkg.openrobots.org)
2) Clone robotpkg wip (See http://robotpkg.openrobots.org/robotpkg-wip.html)
3) Install RT-SLAM
      $ cd $ROBOTPKG_BASE/src/robotpkg/wip/jafar-rtslam/
      $ make update
4) Install ROS hydro (See http://wiki.ros.org/ROS/Installation)
5) Setup the catkin workspace (See http://wiki.ros.org/catkin/Tutorials/create_a_workspace)
6) Put rtslamros directory inside catkin_ws/src
7) Run 
      $ cd ~/catkin_ws/
      $ catkin_make

Requirements
------------

- ROS hydro
- RT-SLAM and its dependencies

Instalation Notes
-----------------

You can use robotpkg (http://robotpkg.openrobots.org/) to install
RT-SLAM and its requirements. RT-SLAM can be found inside the
"work-in-progress" directory
(http://robotpkg.openrobots.org/robotpkg-wip.html).

If you want debug symbols you should add the following lines to your
$ROBOTPKG_BASE/etc/robotpkg.conf:
   PKG_OPTIONS.jafar-kernel+= debug
   PKG_OPTIONS.jafar-rtslam+= debug
before installing rt-slam.

You can also add other optinonal packages by adding the following line
to your $ROBOTPKG_BASE/etc/robotpkg.conf: 
   PKG_OPTIONS.jafar-rtslam+= qdisplay gdhe viam MTI posterLib

To install RT-SLAM:
$] cd $ROBOTPKG_BASE/src/robotpkg/wip/jafar-rtslam/
$] make update

To install ROS follow the instalation notes here:
http://wiki.ros.org/ROS/Installation

Debug Notes
-----------

RT-SLAM has some debug flags defined internally on its header
files. To activate them, you can do the following:

$ cd $ROBOTPKG_BASE/src/robotpkg/wip/jafar-rtslam
$ make extract # Extract src code into work.<hostname>

Then find the file with the definition inside work.<hostname> and
edit to set whatever you want. Then, to recompile and install the
package, do:

$ cd $ROBOTPKG_BASE/src/robotpkg/wip/jafar-rtslam
$ make install

Important: you should keep yout work.<hostname> directory with the
source codes to debug properly. It means do not run "make clean" or
"make update" (the later automatically cleans the directory after the
update).

Available Nodes
---------------

  - jafardemo_node: Uses the original main.hpp file from RT-SLAM. You
                    should run it with the options defined in RT-SLAM
                    webpage.

  - rtslamros_node: Uses a modified main.hpp file, which attempts to
                    use ROS hardwares defined in this ROS package. ROS
                    hardware try to read topics only in online
                    mode. Run it with the same arguments as
                    jafardemo_node.

  - simplertslamros_node: Uses a simplified version of main.hpp. All
                          parameters should be set in simplemain.hpp
                          file before compilation. No arguments are
                          required to run.

How to use it
-------------

Currently, the node which is usable (although maybe still unstable) is
sumplertslam_node. Most of supported options are the same as
RT-SLAM. You can check the options with:

	rosrun rtslamros simplertslamros_node -h

To use the node in online mode from ROS topics, you should remap the
topics "imu", "image_raw" and "camera_info" to the correct topic
names. This can be done through a launch file or by command line. In
the command line this can be done with: 

	rosrun rtslamros simplertslamros_node imu:=/your/imu/topic image_raw:=/your/image_raw/topic camera_info:=/your/camera_info/topic

If you want to run from bags, set the ROS param /use_sim_time to true
using: 

       rosparam set /use_sim_time true

and run your bag with the --clock option

    rosbag play --clock path/to/your/bag/file