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/indigorosinstall_generator desktop_full --rosdistro indigo --deps --wet-only --tar > indigo-desktop-full-wet.rosinstallwstool init -j4 src indigo-desktop-full-wet.rosinstallUpdate source if there is already work space (in my case):
wstool update -t srcResolving Dependencies: rosdep install --from-paths src --ignore-src --rosdistro indigo -yBuilding 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));
^