ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question

Installing camera-drivers on ARM

asked 2011-06-10 03:46:20 -0500

Bradley Powers gravatar image

updated 2011-06-10 09:42:19 -0500


I need to get camera_drivers installed on a working ROS image on a Gumstix. Because the packages repository doesn't contain binaries for ARM, the typical method of installing camera_drivers installed (apt-get) won't work on this computer. In addition, rosdep can't seem to find it either as camera-drivers, camera_drivers, or ros-diamondback-camera-drivers. Any recommendations?


Here's the output from rosmake:

gumros@linaro:~/ros$ rosmake camera_drivers
Could not detect OS. platform detection will not work
[ rosmake ] Packages requested are: ['camera_drivers']                                                                                                       
[ rosmake ] Logging to directory/home/gumros/.ros/rosmake/rosmake_output-20110610-213913                                                                     
[ rosmake ] Expanded args ['camera_drivers'] to:
['prosilica_camera', 'camera1394', 'prosilica_gige_sdk', 'wge100_camera', 'wge100_camera_firmware']         
[ rosmake ] Checking rosdeps compliance for packages camera_drivers.  This may take a few seconds.                                                           
[ rosmake ] rosdep check failed to find system dependencies: rosdep ABORTED: Could not detect OS, tried ['rosdep_test_os', 'debian', 'ubuntu', 'ubuntu', 'opensuse', 'fedora', 'rhel', 'arch', 'macports', 'gentoo', 'cygwin', 'freebsd']
[ rosmake ] Starting >>> tools/rospack                                                                                                                       
[ rosmake ] Finished <<< tools/rospack                                                                                                                       
[rosmake-0] Starting >>> prosilica_camera [ make ]                                                                                                           
[ rosmake ] All 29 linesrosilica_camera: 1.8 sec ]                                                                                 [ 1 Active 1/26 Complete ]
  mkdir -p bin
  cd build && cmake -Wdev -DCMAKE_TOOLCHAIN_FILE=`rospack find rosbuild`/rostoolchain.cmake  ..
  perl: warning: Setting locale failed.
  perl: warning: Please check that your locale settings:
    LANGUAGE = (unset),
    LC_ALL = (unset),
    LANG = "en_US.utf8"
      are supported and installed on your system.
  perl: warning: Falling back to the standard locale ("C").
  [rosbuild] Building package prosilica_camera
  Failed to invoke /home/gumros/ros/ros/bin/rospack deps-manifests prosilica_camera
  [rospack] couldn't find dependency [sensor_msgs] of [prosilica_camera]
  [rospack] missing dependency

  CMake Error at /home/gumros/ros/ros/core/rosbuild/public.cmake:113 (message):

    Failed to invoke rospack to get compile flags for package
    'prosilica_camera'.  Look above for errors from rospack itself.  Aborting.
    Please fix the broken dependency!

  Call Stack (most recent call first):
    /home/gumros/ros/ros/core/rosbuild/public.cmake:183 (rosbuild_invoke_rospack)
    CMakeLists.txt:5 (rosbuild_init)

  -- Configuring incomplete, errors occurred!
[ rosmake ] Output from build of package prosilica_camera written to:
[ rosmake ]    /home/gumros/.ros/rosmake/rosmake_output-20110610-213913/prosilica_camera/build_output.log
[rosmake-0] Finished <<< prosilica_camera [FAIL] [ 1.92 seconds ]                                                                                            
[ rosmake ] Halting due to failure in package prosilica_camera. 
[ rosmake ] Waiting for other threads to complete.                                          
[ rosmake ] Results:                                                                                                                                         
[ rosmake ] Built 2 packages with 1 failures.                                                                                                                
[ rosmake ] Summary output to directory                                                                                                                      
[ rosmake ] /home/gumros/.ros/rosmake/rosmake_output-20110610-213913                                                                                         
[ rosmake ] WARNING: Rosdep did not detect the following system dependencies as installed: rosdep ABORTED: Could not detect OS, tried ['rosdep_test_os', 'debian', 'ubuntu', 'ubuntu', 'opensuse', 'fedora', 'rhel', 'arch', 'macports', 'gentoo', 'cygwin', 'freebsd'] Consider using --rosdep-install option or `rosdep install prosilica_camera camera1394 prosilica_gige_sdk wge100_camera wge100_camera_firmware`

This indicates that rosdep can't install dependencies because it can't determine OS. Any recommendations?

edit retag flag offensive close merge delete


What OS are you running on?
Eric Perko gravatar image Eric Perko  ( 2011-06-10 09:49:10 -0500 )edit
Ubuntu/Linaro. Linaro is a program for creating Ubuntu images for ARM platforms like Gumstix. Unfortunately, Linaro images call themselves Linaro, instead of Ubuntu. I have no idea how to fix this issue.
Bradley Powers gravatar image Bradley Powers  ( 2011-06-10 09:58:35 -0500 )edit

4 Answers

Sort by ยป oldest newest most voted

answered 2011-06-10 16:01:49 -0500

Bradley Powers gravatar image

updated 2011-06-15 02:39:24 -0500

After much poking and prodding, I was able to get camera_drivers, image_pipeline, vision_opencv, et. al to compile. I haven't tested whether or not they function correctly, but I wanted to let everyone know. Here's what I did:

export ROS_OS_OVERRIDE=ubuntu:11.04

This fixes the issue with rosdep being unable to detect os. I then found a base ROS installation that contained all of the stacks I needed, the perception install, available here:

I edited out some packages I didn't need, but you can just as easily keep them all. I then used rosinstall to download everything:

rosinstall ~/ros ""

Next, I compiled ros:

rosmake -i ros

Then, I compiled the camera_drivers package and others:

rosmake --rosdep-install camera1394 camera_calibration image_proc

Which, after many hours, compiled successfully.


I now have the camera up and running, publishing to a number of image topics quite happily. After getting the various bits of code required compiled, it was fairly straightforward.

In essence, you have to create a udev rule. With your favorite text editor, create a file in:


Add the following:

# udev rules file for CAMERA_NAME_HERE
BUS=="usb", SYSFS{idVendor}=="XXXX", SYSFS{idProduct}=="YYYY", GROUP="admin"

Where CAMERA_NAME_HERE is the name for your camera (mine was Point Grey FireflyMV), XXXX is your Vendor ID, and YYYY is your Product ID. Both Vendor and Product IDs can be found using


With your camera plugged in.

One thing to note is that the group I'm using here is admin instead of plugdev. Normally for security reasons, you would use plugdev, but on this particular Linaro build, there is no plugdev group, and setting it up is somewhat of a chore. Admin works just fine, if you don't mind the small security threat it poses.

After that, you can just rosrun your camera driver, and you're off to the races. I did find that the publishing rate for the image was about half that of the frame rate of the camera. I'm looking in to why the camera1394 node is running so slowly.

Thanks for all the help!

-Bradley Powers

edit flag offensive delete link more


Well... this is the most correct answer to the question :). I suggest you update with any further changes if necessary to keep it running and then let an admin come and mark it as the correct answer (or you can try to). An upvote is fine for me - I don't need the extra Karma that badly ;)
Eric Perko gravatar image Eric Perko  ( 2011-06-10 16:18:47 -0500 )edit

answered 2011-06-10 14:04:17 -0500

Eric Perko gravatar image

I see two errors in your build log.

  1. rosdep is failing because it cannot detect your OS
  2. rospack (and therefore rosmake) cannot find the sensor_msgs package

Solutions (I hope):

  1. Since Linaro is just an Ubuntu by another name, you could try the ROS_OS_OVERRIDE environment variable to tell ROS which Ubuntu distro it is derived from (and therefore pick up the right apt package names for the rosdep dependencies).
  2. Do you have a base ROS installation correctly installed? For example, diamondback-desktop-full or some other variant that includes things like ros_comm and sensor_msgs? You'll need to have some variant of Diamondback installed properly before installing the camera_drivers stack. Obviously, this will have to be installed from source as well since you are on the ARM board. If ROS is installed, is your .bashrc properly setup? If so, can you do rospack find sensor_msgs in a terminal?
edit flag offensive delete link more

answered 2011-06-10 06:58:20 -0500

KoenBuys gravatar image

You can check out the">SVN source code and compile this yourself, add it to your ROS_PACKAGE_PATH and it should work.

edit flag offensive delete link more


The best way to find this url is to run a command like `roslocate uri camera_drivers`.
Eric Perko gravatar image Eric Perko  ( 2011-06-10 08:14:06 -0500 )edit

answered 2011-06-10 10:00:11 -0500

Bradley Powers gravatar image

updated 2011-06-10 10:07:37 -0500

I should be able to get around this by installing every dependency, and every sub-dependency, etc. But that isn't how this should work.

edit flag offensive delete link more

Question Tools



Asked: 2011-06-10 03:46:20 -0500

Seen: 2,124 times

Last updated: Jun 15 '11