https://wiki.gumstix.com/index.php?title=ROS
ROS Native Compilation
- Get all libraries and tools
- $ sudo apt-get install python-pip build-essential python-yaml cmake subversion wget python-setuptools mercurial git-core python-yaml libapr1-dev libaprutil1-dev libbz2-dev python-dev python-empy python-nose libgtest-dev python-paramiko libboost-all-dev liblog4cxx10-dev pkg-config libqt4-dev qt4-qmake
- Some of the ROS tools need to come from PIP as I wasn't able to get them through Aptitude
- $ pip install rospkg rosdep rosinstall catkin-pkg wstool
- Initialize dependencies
- $ sudo rosdep init
- $ rosdep update
- Now we create a catkin workspace and initialize to build core ROS packages
- $ mkdir -p ~/ros_core_ws
- $ cd ~/ros_core_ws
- $ wstool init src https://raw.github.com/gist/4129582/e8889c0fc3af2f95892190e0fabc2bd535208355/base.rosinstall
- Build catkin and install it. catkin is the low-level build system of ROS
- $ ./src/catkin/bin/catkin_make
- $ ./src/catkin/bin/catkin_make install
- Setup catkin build environment
- $ source ~/ros_core_ws/install/setup.bash
- Now we create and initialize a workspace to put all our ROS packages
- $ mkdir ~/ros
- $ cd ~/ros
- $ rosws init . ~/ros_core_ws/install/
- Current ROS distribution does not recognize Linaro. We have to patch the os detection file.
- $ vim /usr/local/lib/python2.7/dist-packages/rospkg/os_detect.py
- Add the following bold faced changes
- OS_UBUNTU='ubuntu'
- OS_LINARO='linaro
- OsDetect.register_default(OS_UBUNTU, LsbDetect("Ubuntu"))
- OsDetect.register_default(OS_UBUNTU, LsbDetect("Linaro"))
- There are a couple dependencies required before we can compile iRobot's Create ROS package
- $ roslocate info kdl > kdl.rosinstall
- $ rosws merge kdl.rosinstall
- $ rosws update
- $ rosdep install kdl
- $ rosmake kdl
- $ roslocate info bullet > bullet.rosinstall
- $ rosws merge bullet.rosinstall
- $ rosws update
- $ rosdep install bullet
- $ rosmake bullet
- If the last step fails indicating that a packaged named bullet was not found, try updating dependency map before running rosmake
- $ rosdep update
- And build geometry package, the last dependency
- $ roslocate info geometry > geometry.rosinstall
- In the geometry package's rosinstall file, switch the branch name to fuerte_devel. For some reason the default branch does not work.
-
$ vim geometry.rosinstall
- //version: tf_rework
- version: fuerte_devel
- $ rosws merge geometry.rosinstall
- $ rosws update
- $ rosdep install geometry
- $ rosmake geometry
-
$ vim geometry.rosinstall
- Finally we can install iRobot's ROS package
- $ roslocate info irobot_create_2_1 > irobot_create_2_1.rosinstall
- $ vim irobot_create_2_1.rosinstall
- $ rosws merge irobot_create_2_1
- $ rosws update
- $ rosmake irobot_create_2_1