Installing ROS Electric in debian Sid in your local home

This instructions are based on 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

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:
<cpp cflags="`pkg-config opencv-2.3.1 --cflags`" lflags="`pkg-config opencv-2.3.1 --libs`"/>

with:

<cpp cflags="`pkg-config opencv --cflags`" lflags="`pkg-config opencv --libs`"/>
  • 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
  • tutorials/installing_ros_electric_in_debian.txt
  • Last modified: 2016/02/26 11:52
  • by amora