-
Notifications
You must be signed in to change notification settings - Fork 10
Detailed Installation Guide
MCPTAM is maintained for Ubuntu 14.04 and ROS Indigo only, although it REL 0.1.3 is known to work in Ubuntu 12.04 and ROS Hydro as well. The following instructions assume you are working in Ubuntu 14.04 and ROS Indigo.
The list of required ROS packages is given below:
$ sudo apt-get install ros-indigo-image-transport ros-indigo-image-transport-plugins ros-indigo-pcl-ros ros-indigo-libg2o
If you would like to use USB cameras that run using the uvc_camera
node:
$ sudo apt-get install ros-indigo-uvc-camera
Since MCPTAM is an extension of PTAM, we use the same image, math, and GUI libraries, namely libCVD, TooN, and GVars3. Installing libCVD, TooN and GVars3 the same process as for PTAM. The installation order matters and must follow:
- TooN
- libCVD
- GVars3
1.1 Install TooN
Get the latest version of TooN from the website (http://www.edwardrosten.com/cvd/toon.html). MCPTAM was developed with TooN v2.1 but also works with TooN v2.2. Installation is the usual configure, make, make install. There isn't really anything to make as it's just a bunch of headers. Follow the installation instructions on the target website. $ ./configure $ make $ sudo make install
1.2 Install libCVD
Get the latest version of libCVD from the website (http://www.edwardrosten.com/cvd/). MCPTAM was developed with release 20121025. Installation is the usual procedure of configure, make, make install. Follow the installation instructions on the target website. The following options are recommended for configure:
$ export CXXFLAGS=-D_REENTRANT
$ ./configure --without-ffmpeg
$ make
$ sudo make install
1.3 Install GVars3
Get the latest version of GVars3 from the website (http://www.edwardrosten.com/cvd/gvars3.html). MCPTAM was developed with version 3.0. Installation is the usual procedure of configure, make, make install. Follow the installation instructions on the target website. The following options are recommended for configure:
$ ./configure --disable-widgets
$ make
$ sudo make install
(It is assumed that you are using ROS Hydro and the Catkin build system)
Set up the ROS environment.
$ source /opt/ros/indigo/setup.bash
Create a Catkin workspace for the package or use one you've defined previously.
$ mkdir -p ~/catkin_ws/src
$ cd ~/catkin_ws/src/
$ catkin_init_workspace
Set up your Catkin workspace.
$ cd ~/catkin_ws/
$ catkin_make
$ source devel/setup.bash
Download the MCPTAM source code from the SVN repository or the packaged compressed files, and extract into the catkin_ws/src/
folder of the workspace.
Compile the MCPTAM source code with catkin_make
.
$ cd ~/catkin_ws/
$ catkin_make
Here is an example launch file for the @mcptam@ node.
<launch>
<!-- mcptam node -->
<node name="mcptam" pkg="mcptam" type="mcptam" clear_params="true" output="screen">
<rosparam command="load" file="$(find mcptam)/groups/$(arg group_name).yaml" />
<remap from="reset" to="mcptam/reset" />
<param name="image_transport" type="string" value="compressed"/>
<param name="get_pose_separately" type="bool" value="false" />
<param name="mkf_distance_mean_diff_fraction" type="double" value="0.5" />
<param name="mm_max_scaled_mkf_dist" type="double" value="0.3" />
<param name="mm_outlier_multiplier" type="double" value="1.1" />
<param name="mm_init_cov_thresh" type="double" value="1.0" />
</node>
</launch>
This file will launch the mcptam
node and load the camera groups from the groups/<group_name>.yaml
file. The parameter get_pose_separately
being false
specifies that the camera_info
messages from the cameras will contain the extrinsic calibration parameters in the messages themselves.
Another example of a launch file is presented, which loads the extrinsic calibration parameters from a file instead of from the camera_info
messages.
<launch>
<!-- mcptam node -->
<node name="mcptam" pkg="mcptam" type="mcptam" clear_params="true" output="screen">
<rosparam command="load" file="$(find mcptam)/groups/$(arg group_name).yaml" />
<remap from="reset" to="mcptam/reset" />
<param name="image_transport" type="string" value="compressed"/>
<param name="get_pose_separately" type="bool" value="false" />
<param name="camera_pose_file" type="string" value="$(find mcptam)/poses/poses.dat" />
<param name="mkf_distance_mean_diff_fraction" type="double" value="0.5" />
<param name="mm_max_scaled_mkf_dist" type="double" value="0.3" />
<param name="mm_outlier_multiplier" type="double" value="1.1" />
<param name="mm_init_cov_thresh" type="double" value="1.0" />
</node>
</launch>
The extrinsic calibration is loaded from the file poses/poses.dat
and overwrites the pose extracted from the camera_info
message for each camera.
Once the mcptam
node is running, press [Spacebar] to start tracking. If you are subscribing to any camera groups with more than one camera in it, MCPTAM will wait until it receives data from one of these multi-camera groups before initializing using the stereo effect. If there is no field-of-view overlap between these images, MCPTAM will initialize immediately but requires sufficient motion (both translation and rotation) to converge to an accurate solution in map size and shape. Note that asynchronous operation of a cluster composed of several camera groups is a bit touchy and hasn't been as well tested as synchronous operation of several cameras or monocular operation.
- Home
- [Quick Start Guide](Quick Start Guide)
- [Detailed Installation Guide](Detailed Installation Guide)
- [Camera Calibration](Camera Calibration)
- Client/Server Guide
- MCPTAM-Roadmap