# TurtleBot Installation for ROS

See this link first: ROS Wiki, Turtlebot

## OpenNI installation

To be able to use the Kinect on the Turtlebot with ROS, you need some OpenNI software, Java-stuff…

OpenNI is not in the official repos for Wheezy, we'll have to build it from source… Since it exists in Testing and Sid, things will be a little bit easier…

  mkdir libopenni-dev
  cd ./libopenni-dev
  sudo apt-get build-dep libopenni-dev
  sudo apt-get -b source libopenni-dev
  sudo dpkg -i ./libopenni-dev_*.deb ./libopenni0_*.deb
  

It's time to continue with the actual installation…

## TurtleBot packages Make sure you got the good ROS_env before starting theses steps. Install some dependencies:

  apt-get install libftdi-dev pyqt4-dev-tools libvtk5-dev

### In your old workspace If you still have the workspace you used when installing ROS from source let's add some packages

  cd ros_workspace
  rosinstall_generator ecl_streams ecl_geometry ecl_mobile_robot ecl_sigslots ecl_command_line openni_launch depthimage_to_laserscan joy --rosdistro hydro --deps --wet-only > turtlebot_deps.rosinstall
  wget https://raw.github.com/turtlebot/turtlebot/hydro/turtlebot.rosinstall
  wstool merge turtlebot_deps.rosinstall -t src 
  wstool merge turtlebot.rosinstall -t src
  wstool update -j8 -t src
  rosdep install --from-paths src --ignore-src --rosdistro hydro -y -r --os=debian:wheezy
  sudo /opt/ros/hydro/env.sh catkin_make_isolated --install --install-space /opt/ros/hydro/ -q --merge

### In a new workspace If you have deleted your previous ROS install workspace, you need a new one..

  mkdir turtlebot
  cd turtlebot
  rosinstall_generator ecl_streams ecl_geometry ecl_mobile_robot ecl_sigslots ecl_command_line openni_launch depthimage_to_laserscan joy --rosdistro hydro --deps --wet-only > turtlebot_deps.rosinstall
  wget https://raw.github.com/turtlebot/turtlebot/hydro/turtlebot.rosinstall
  wstool init -j8 src turtlebot_deps.rosinstall 
  wstool merge turtlebot.rosinstall -t src
  wstool update -j8 -t src
  rosdep install --from-paths src --ignore-src --rosdistro hydro -y -r --os=debian:wheezy
  sudo /opt/ros/hydro/env.sh catkin_make_isolated --install --install-space /opt/ros/hydro/ -q --force-cmake --merge

<note>If `wstool update` returns errors for the packages already installed, you can add the option `–continue-on-error`</note>

## End And to prepare setup UDEV:

  rosrun kobuki_ftdi create_udev_rules

## Issues I had issues with boost 1.53 and `shared_dynamic_cast` while compiling `kobuki_base` and `create_base` gazebo plugins. Fixt it replacing all `shared_dynamic_cast` by `dynamic_pointer_cast` in the .cpp files.