Install ROS Indigo in Ubuntu 15.10

ROS Indigo

ROS indigo is not official supported in Ubuntu 15.10, it is possible to install in a chroot, but I don’t want have another entire Ubuntu.

With little code change, I have to build ROS from source. Here is the steps (red parts are different from official tutorial):

Installing bootstrap dependencies

sudo apt-get install python-rosdep python-rosinstall-generator python-wstool python-rosinstall build-essential
sudo rosdep init

create new file /etc/ros/rosdep/sources.list.d/10-wily.list with content:

yaml https://github.com/xuyuan/rosdistro/raw/rosdep_wily/rosdep/base.yaml
yaml https://github.com/xuyuan/rosdistro/raw/rosdep_wily/rosdep/python.yaml

this file will use my customized rosdistro for wily (the change is copying package configuration from previous ubuntu release to wily, and I have a python script do this)

then run

rosdep update

Installation

Desktop-Full Install:

mkdir ~/projects/ros/indigo

cd ~/projects/ros/indigo
rosinstall_generator desktop_full --rosdistro indigo --deps --wet-only --tar > indigo-desktop-full-wet.rosinstall
wstool init -j4 src indigo-desktop-full-wet.rosinstall
Update source if there is already work space (in my case):
wstool update -t src
Resolving Dependencies:
rosdep install --from-paths src --ignore-src --rosdistro indigo -y
Building the catkin Workspace:
./src/catkin/bin/catkin_make_isolated --install -DCMAKE_BUILD_TYPE=Release
this will take long time, and I had fixed some error (see troubleshooting below)

setup evn:
source ~/projects/ros/indigo/install_isolated/setup.zsh (or setup.bash)


Troubleshooting

  • make sure protobuf 2.6.1 is installed (I had 2.5 version installed manually, just remove and install with apt-get)
  • when link error happens (i.e. boost 1.55), remove build_isolated/{package} and build again
  • some packages which were installed with checkinstall need to be rebuild
    • run sudo checkinstall make install after cmake&make
    • pcl 1.7.2 (don’t forget to set package name and version)
    • collada-dom (this name and version was recognized correctly)
  • mongo c++ driver has to be installed manually
    • download latest mongo c dirver
    • ./configure && make
    • I use sudo cheinkinstall make install instead of sudo make install for easier package management
    • download latest mongo cxx legacy driver
    • sudo checkinstall scons –c++11=on –sharedclient –disable-warnings-as-errors –prefix=/usr/local install
  • gazebo_ros, gazebo_ros_pkgs/gazebo_plugins, cob_gazebo_plugins/cob_gazebo_ros_control need add flag -std=c++11 in CMakeLists.txt, e.g.

add_definitions(-std=c++11)

 

update 2016.02.13

due to conflicts between boost and Qt, I have to add #ifndef Q_MOC_RUN macro to some header files in moveit_ros_visualization packages, like

#ifndef Q_MOC_RUN
#include <ros/ros.h>
#include <moveit/rdf_loader/rdf_loader.h>
#endif

Known Issue (not fixed yet)

In file included from /home/xu/projects/ros/indigo/src/warehouse_ros/include/mongo_ros/message_collection.h:140:0,
from /home/xu/projects/ros/indigo/src/warehouse_ros/src/mongo_ros.cpp:42:
/home/xu/projects/ros/indigo/src/warehouse_ros/include/mongo_ros/impl/message_collection_impl.hpp: In member function ‘mongo_ros::MessageCollection<M>& mongo_ros::MessageCollection<M>::ensureIndex(const string&)’:
/home/xu/projects/ros/indigo/src/warehouse_ros/include/mongo_ros/impl/message_collection_impl.hpp:127:10: error: ‘class mongo::DBClientConnection’ has no member named ‘ensureIndex’
conn_->ensureIndex(ns_, BSON(field << 1));
^

Leave a Reply

Your email address will not be published.

This site uses Akismet to reduce spam. Learn how your comment data is processed.