Building Turtlebot for Raspberry Pi 2 [Indigo] Two Questions
What is the best way to build Turtlebot from source? Following the instructions in ROSberryPiInstalling ROS Indigo on Raspberry Pi, I was able to install Indigo successfully. However, the turtlebot node was not included in the basic build. This tutorial on Turtlebot installation has instructions on how to build from source. It recommends installing
rocon, kobuki, turtlebot
from source as follows (similarly for the other two):$
mkdir ~/rocon
$
cd ~/rocon
$
wstool init -j5 src https://raw.github.com/robotics-in-concert/rocon/indigo/rocon.rosinstall
$
source /opt/ros/indigo/setup.bash
$
rosdep install --from-paths src -i -y
$
catkin_make
I chose not to go this route. Instead, I followed the instructions to install packages as described in Section 3 "Maintaining a Source Checkout" in the earlier ROS/Raspberry Pi tutorial.
$
cd ~/ros_catkin_ws
$
rosinstall_generator rocom kobuki turtlebot --rosdistro indigo --deps --wet-only --exclude roslisp --tar > indigo-custom_ros.rosinstall
Next, update the workspace with wstool:$
wstool merge -t src indigo-custom_ros.rosinstall
$
wstool update -t src
After updating the workspace, you may want to run rosdep to install any new dependencies that are required:$
rosdep install --from-paths src --ignore-src --rosdistro indigo -y -r --os=debian:wheezy
Finally, now that the workspace is up to date and dependencies are satisfied, rebuild the workspace:$
sudo ./src/catkin/bin/catkin_make_isolated --install -DCMAKE_BUILD_TYPE=Release --install-space /opt/ros/indigo
So did I do the right thing by doing it this way?
The instructions in the turtlebot installation are probably for developers who want to build from source, but not for someone who has to build from source because it is for a different processor (ARM7 in my case).
But I am apprehensive because now I have to build 321 packages from source! Which brings me to question 2.
libfreenect
andlibusb-1.0
linker issues. The first problem was a build failure when buildinglibreenect.so
. It complained aboutlibusb_get_parent
being an undefined symbol. Luckily someone had run into this before and provided a solution. The problem was that the Rasbian release has an olderlibusb-1.0
and needs to be upgraded to version 1.0.18. That fixed thelibfreenect.so
build problem.However, a little further down the line when
freenect_camera
tried to link tolibfreenect.so
, the linker complained thatlibusb_get_parent
is an undefined symbol. At this point I am stumped -- I've tried editingpackage.xml
forfreenect_camera
(adding dependencies tolibusb
) and messing withCMakeLists.txt
but nothing has worked.How do I get
freenect_camera
to link using the rebuiltlibusb-1.0
?
Did you figure out the answer to your 2nd question? Have the same problem.