0
$\begingroup$

Rosanswers logo

Hello,

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?

Update:

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?


Originally posted by Bradley Powers on ROS Answers with karma: 422 on 2011-06-10

Post score: 1


Original comments

Comment by Bradley Powers on 2011-06-10:
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.

Comment by Eric Perko on 2011-06-10:
What OS are you running on?

$\endgroup$

3 Answers 3

0
$\begingroup$

Rosanswers logo

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


Originally posted by KoenBuys with karma: 2314 on 2011-06-10

This answer was NOT ACCEPTED on the original site

Post score: 1


Original comments

Comment by Eric Perko on 2011-06-10:
The best way to find this url is to run a command like roslocate uri camera_drivers.

$\endgroup$
0
$\begingroup$

Rosanswers logo

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?

Originally posted by Eric Perko with karma: 8406 on 2011-06-10

This answer was NOT ACCEPTED on the original site

Post score: 3

$\endgroup$
0
$\begingroup$

Rosanswers logo

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:

http://packages.ros.org/cgi-bin/gen_rosinstall.py?rosdistro=diamondback&variant=perception&overlay=no

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 "http://packages.ros.org/cgi-bin/gen_rosinstall.py?rosdistro=diamondback&variant=perception&overlay=no"

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.


Update:

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:

/etc/udev/rules.d/10-descriptivename.rules

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

lsusb

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


Originally posted by Bradley Powers with karma: 422 on 2011-06-10

This answer was ACCEPTED on the original site

Post score: 2


Original comments

Comment by Eric Perko on 2011-06-10:
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 ;)

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.