====== 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