====== Installing ROS Electric in debian Sid in your local home ======
This instructions are based on [[http://www.ros.org/wiki/electric/Installation/Debian| this]].
This instructions details the steps necessary to install ros in your local home. You will not need to touch (or damage) your main system using this method.
Enjoy!
===== Installing dependencies and setting environment for compilation =====
* Install dependency packages:
sudo apt-get install build-essential python-yaml cmake subversion wget python-setuptools mercurial build-essential python-yaml cmake subversion wget python-setuptools mercurial git-core python-yaml libapr1-dev libaprutil1-dev libbz2-dev python-dev libgtest-dev python-paramiko libboost-all-dev liblog4cxx10-dev pkg-config python-empy python-nose swig python-wxgtk2.8 python-gtk2 python-matplotlib libwxgtk2.8-dev python-imaging libqt4-dev graphviz qt4-qmake python-numpy bison++ autoconf libtinyxml-dev libxml2-dev nvidia-cg-dev libxt-dev libxaw7-dev nvidia-cg-toolkit libfreetype6-dev libxrandr-dev libfreeimage-dev libcurl-ocaml-dev libeigen3-dev libyaml-cpp-dev python-sip-dev python-sip python-qt4-dev python-qt4
* Overwrite OS version detection: (Also add this to your .bashrc file)
export ROS_OS_OVERRIDE=debian:squeeze
* For parallel compilation: (Also add this to your .bashrc file)
export ROS_PARALLEL_JOBS=-j10
* First configure a local directory for binary installations with xstow. Please follow the tutorial [[using_xstow_for_local_installations|Using xstow for local installations]].
===== Installing rosinstall =====
Rosinstall is a script that "helps" in the process of installing ROS. We will install rosinstall locally in our home directory.
* Python-pip is used to install rosinstall.
sudo apt-get install python-pip libeigen3-dev libxml2-dev libcurl4-gnutls-dev libcurl-ocaml-dev libtinyxml-dev
* Configure the local directory for python-pip installations:
export PYTHONUSERBASE=${HOME}/local/DIR/rosinstall_electric
* Install rosinstall
pip install --user -U rosinstall vcstools
cd ~/local/DIR
xstow rosinstall_electric
* Download and install ros basic files:
mkdir ~/local/src/ros_electric
rosinstall ~/local/src/ros_electric "http://packages.ros.org/cgi-bin/gen_rosinstall.py?rosdistro=electric&variant=desktop-full&overlay=no"
* This will give an error of packages not found. Then edit the file ~/local/src/ros_electric/ros/rosdep.yaml and change:
squeeze: libboost1.42-all-dev
for
squeeze: libboost1.49-all-dev
* Then run again:
rosinstall ~/local/src/ros_electric "http://packages.ros.org/cgi-bin/gen_rosinstall.py?rosdistro=electric&variant=desktop-full&overlay=no"
* In file ~/local/src/ros_electric/visualization_common/ogre/ edit file ensure-nvidia-cg-toolkit-is-installed.sh and change:
-e /usr/lib/libCg.so -a \
-e /usr/lib/libCgGL.so ]; then
with:
-e /usr/lib/x86_64-linux-gnu/libCg.so -a \
-e /usr/lib/x86_64-linux-gnu/libCgGL.so ]; then
* In file /home/username/local/src/ros_electric/image_common/image_transport/src/publisher.cpp, change line 59:
BOOST_FOREACH(const PublisherPlugin& pub, publishers_)
count += pub.getNumSubscribers();
with:
for ( uint32_t i = 0 ; i < publishers_.size() ; i++ )
count += publishers_[i].getNumSubscribers() ;
* In file /home/memeruiz/local/src/ros_electric/geometry/tf/include/tf/message_filter.h, change line 401:
signalMessage(evt);
with:
this->signalMessage(evt);
* In ~/local/src/ros_electric/common_rosdeps/rosdep.yaml, change:
debian:
source:
uri: 'https://kforge.ros.org/rosrelease/viewvc/sourcedeps/assimp/assimp-2.0.86-1.rdmanifest'
md5sum: d5137302d8f00241ee10e623b97f9d22
with:
debian:
apt:
packages: [ libassimp-dev ]
* Compile rviz
rosmake rviz
==== ar_kinect ====
* Install packages
sudo apt-get install python-vtk tcl-vtk libhdf5-dev libhdf5-serial-dev
* Add ar_kinect and artoolkit packages to workspace
rosws set ar_kinect --svn http://albany-ros-pkg.googlecode.com/svn/trunk/albany_vision/ar_kinect
rosws update ar_kinect
rosws set artoolkit --git http://robotics.ccny.cuny.edu/git/ccny-ros-pkg/ccny_vision.git
rosws update artoolkit
env_ros_elec
* Edit file ~/local/src/ros_electric/vision_opencv/opencv2/manifest.xml and change:
with:
* In file /home/memeruiz/local/src/ros_electric/perception_pcl/pcl/build/pcl/octree/include/pcl/octree/impl/octree_pointcloud.hpp, change line 972, 1082, 1211, 1275 from getBranchChild with this->getBranchChild
* Also in line 208 change getLeaf with this->getLeaf
* in lines 959, 1079, 1182, 1272 change branchHasChild with this->branchHasChild
* In file /home/memeruiz/local/src/ros_electric/perception_pcl/pcl/build/pcl/surface/include/pcl/surface/impl/marching_cubes_greedy.hpp, change in line 75 getNeighborList1D with this->getNeighborList1D
* In line 79 getIndexIn3D with this->getIndexIn3D
* In file /home/memeruiz/local/src/ros_electric/perception_pcl/pcl/build/pcl/features/include/pcl/features/impl/fpfh_omp.hpp line 96 change computePointSPFHSignature with this->computePointSPFHSignature
* In file /home/memeruiz/local/src/ros_electric/perception_pcl/pcl/build/pcl/features/include/pcl/features/impl/shot_omp.hpp line 90, 150 change computePointSHOT with this->computePointSHOT
* In file /home/memeruiz/local/src/ros_electric/perception_pcl/pcl/build/pcl/features/include/pcl/features/impl/shot.hpp line 710, 816 change getSHOTLocalRF with this->getSHOTLocalRF
* Edit file /usr/lib/vtk-5.8/VTKConfig.cmake in line 200, change to:
# The VTK targets file.
IF(NOT CMAKE_SCRIPT_MODE_FILE AND NOT VTK_INSTALL_EXPORT_NAME AND NOT TARGET vtkCommon
AND EXISTS "${VTK_INSTALL_PREFIX}/lib/vtk-5.8/VTKTargets.cmake")
INCLUDE("${VTK_INSTALL_PREFIX}/lib/vtk-5.8/VTKTargets.cmake")
ENDIF()
* Compile ar_kinect
rosmake ar_kinect