Install Dependencies

Get SmartSLAM from

svn co smartSlam

If you want to use the algorithm on a real robot there are additional Dependencies. We use for our real world experiments a Pioneer 3DX a XSense IMU and a ToF Camera from PMD Tec (CamCube 2).

  • PMD SDK2 for Linux:

    It is available on the driver CD from CamCube2. The PMD SDK 2 has to be installed into the system as described in the PMD install document. Don't forget to copy the include files also into a directory where it can be found from the compiler (eg. /usr/local/include/).

  • XSensSDK:

    It is available on the driver CD. Copy the include folder of the library in the folder <3DSLAM>/XSenseSDK/ Do the same for the lib folder. Copy it into the folder <3DSLAM>/XSenseSDK/. Now the XSenseSDK folder in our project directory contains the lib and the include folder.

To be able to use the PMD CamCube as user (not as root) you have to define a udev rule by creating a rules file in the folder /etc/udev/rules.d. After plugging in the USB cable, this rule change the group of the device to "users" and change the permission to 766. Now every user from the user group "users" can use the PMD CamCube. There are 2 further entries in the rule file. One for the XSens IMU and one for the Pioneer Robot. This entries are neccessary that the application the name of the devices (xsens for the XSense IMU and pioneerRobot for the Pioneer 3DX)

# ZAFH HS-Ulm Rules

# PMD CamCube 2
ATTRS{idVendor}=="1c28",ATTRS{idProduct}=="c003", GROUP="users", MODE="0766", SYMLINK+="pmdCamCube2"

# XSens IMU
KERNEL=="ttyUSB*", ATTRS{idVendor}=="0403", ATTRS{idProduct}=="d38b", GROUP="users", SYMLINK+="xsens"

# Pioneer Robot
KERNEL=="ttyUSB*", ATTRS{idVendor}=="067b", ATTRS{idProduct}=="2303", SYMLINK+="pioneerRobot", GROUP="users", MODE="0766"

Build Feature-Based 6DoF SLAM

To build the offline version of the 6DoF Feature-Based SLAM application, run "make" in the sub-folder simulationApp_Release

To build the online 6DoF Feature-Based SLAM application for a real robot, run "make" in the sub-folder experimentApp_Release