Installing ROS and the Kinect stack on the Pandaboard


I did all of this on my own computer (64-bit Ubuntu 11.10) with a the premade OMAP4 Ubuntu server image from Ubuntu's website, a program called kpartx to help mount it, chroot, and qemu (user, not system). I won't be describing any of that in detail here, and hopefully these same steps will workon the Pandaboard itself, albeit much more slowly ;)

Also note that some of this is from memory, and the rest is stuff I haven't tried but I think should be easier than what I did. I don't guarentee that this will all work.


Install rosinstall based on the instructions here: Then, into ~/ros, install from This will probably download all the source and then fail, but that's good enough for now.

Install dependancies


rosdep install -ar

which will hopefully install everything needed, with a few exceptions. Then run

sudo apt-get install libserial-dev libsdl-image-1.2-dev libusb-1.0-0-dev libhdf5-serial-dev

which installs a few that rosdep missed for me. Also, you'll need to install OpenNI and some other thing, so follow the instructions in Cross compiling OpenNI for ARM. As for the rest of the things rosdep missed, they'll have to be built from source:


Download from, and compile with

mkdir build
cd build
sudo make install


Download with

svn co -r 1149 assimp

Revision 1150 changed header file names and broke compatibility ಠ_ಠ

mkdir build
cd build
cmake -DCMAKE_CXX_FLAGS="-std=c++0x" ..
sudo make install


Ignore this one. You won't be able to build ogre or anything depending on it as a result.


This has a tendency to freeze for some reason. It's quite annoying. Hopefully you can get it to work by trying it enough times while running pkg-config a lot of times in another window. Configure like this:


Once it's built, cd to /usr/local/lib/pkgconfig, and run

ln -s opencv.pc opencv-2.3.1.pc


Everything in ~/ros should now compile! (except ogre and friends). Run

rosmake -air --no-rosdep

I haven't tried that command, so I don't know if it will actually put ROS_NOBUILD in the packages. I used these in my ~/.bash_aliases:

function nobuild {
  touch `rospack find $1`/ROS_NOBUILD

function try {
  echo Trying  $1
  roscd $1
  make && touch ROS_NOBUILD

function tryall {
  for i in "$@"; do try $i; done

along with a tool I wrote myself which would tell me in what order to "try" the packages. It was much easier than dealing with rosmake.


Check out the code with

hg clone -u electric openni_kinect

There have been significant and breaky changes after the tag electric. Even in that tag, you'll probably need to add


to CMakeLists.txt in openni_tracker and openni_camera. Then, they should build.

Good luck!