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

problems installing libdc1394v2

asked 2011-02-24 11:33:39 -0600

rob-bot gravatar image

updated 2011-03-02 10:22:10 -0600

mmwise gravatar image

Hello everyone. I am new to ROS and am currently working on getting the Bumblebee2 node (By Soonhac Hong, source: http://cu-ros-pkg.googlecode.com/svn/... ) to work properly in Ubuntu 10.10 for my Pt grey Bumblebee2 stereo camera . When I use rosmake to build the bumblebee2 package I am consistently getting an error:

" Failed to invoke /opt/ros/cturtle/ros/bin/rospack deps-manifests bumblebee2

[rospack] couldn't find dependency [libdc1394v2] of [bumblebee2]

[rospack] missing dependency "

This results in a successful build of 5 packages with one failure...

So I I tried installing libdc1394v2 as per instructions on the distributor's website... I am still having the same problem.

If it isn't already obvious, I am also quite new to Ubuntu and I'm not even certain if I am installing this package properly. I followed the instructions, any idea why I am still having problems launching this node? I apologize if I sound like a complete idiot here, I am very eager to learn more but I am at a loss as to what I need to do to educate myself. I feel like it may be my lack of Ubuntu knowledge and not a lack of ROS knowledge that is holding me back.

I have attempted to run the camera using coriander... I receive an error that states that it does not detect any camera connected to the bus. The camera works properly in a Windows environment.

Any help is appreciated! Thanks

UPDATE:

Following the instructions of user joq, I edited the manifest.xml file in the bumblebee2 package and created a rosdep.yaml files with gedit. I am now getting a new error:

" ros@ros-SG45:~$ rosdep install bumblebee2

Failed to find stack for package [libdc1394-dev]

Failed to load rosdep.yaml for package [libdc1394-dev]:Cannot locate installation of package libdc1394-dev: [rospack] couldn't find package [libdc1394-dev]. ROS_ROOT[/opt/ros/cturtle/ros] ROS_PACKAGE_PATH[/home/ros/bumblebee2:/opt/ros/cturtle/stacks]

executing this script:

set -o errexit

No Packages to install "

I was under the impression that the ros-cturtle-camera-drivers were installed when I installed the ROS + base version in the first place. If this is incorrect, then how do I determine if these drivers are already installed / how do I install them? If ros-cturtle-camera-drivers were the name of a package I would know what to do, but it isn't (as far as my search has told me) so I'm not sure what software you are referring to specifically.

I have gone through all of the bus permission troubleshooting per joq's advice as well, to no avail. The camera still is not working with coriander, and I also tried it using Kino. No luck. However, I was presented with another issue when attempting to add a raw1394 specific udev rule, as described at ( https://help.ubuntu.com/community/Fir... ):

" ros@ros-SG45:~$ modprobe -r raw1394 && modprobe raw1394

FATAL: Error removing raw1394 (/lib/modules/2.6.35-25-generic-pae/kernel/drivers/ieee1394/raw1394.ko): Operation not permitted "

I'm just running ... (more)

edit retag flag offensive close merge delete

3 Answers

Sort by ยป oldest newest most voted
4

answered 2011-02-24 12:12:42 -0600

joq gravatar image

updated 2011-02-28 13:14:10 -0600

Maybe there is a newer version of the bumblebee2 package, I don't know.

That dependency is now out of date. There does still exist a libdc1394v2 package in camera_drivers_experimental, but it is no longer maintained. You may be able to download and compile that package from SVN, but I do not recommend it.

The simplest solution is probably to replace the <depend package="libdc1394v2"/> in the package manifest with a <rosdep name="libdc1394-dev"/>. To resolve that dependency either install ros-cturtle-camera-drivers or else create a rosdep.yaml in that package with these stanzas:

libraw1394-dev:
  ubuntu: libraw1394-dev
  fedora: libraw1394-devel

libdc1394-dev:
  ubuntu: libdc1394-22-dev
  arch: libdc1394
  fedora: libdc1394-devel
  macports: libdc1394

Your problem with coriander is most likely a common Ubuntu device permissions problem. See: bus permissions troubleshooting.

If you need more details, post a follow-on comment.

[Edit: responses to follow-on questions posted as an "answer"]

If you updated the rosdep.yaml, you should no longer need the libdc1394v2 package.

The reference to <camera_info_manager/camera_info.h> is out of date (predating cturtle). The released version should include <camera_info_manager/camera_info_manager.h>, which is part of the camera_drivers stack in cturtle (moved to image_common in diamondback). I think you have that already.

The dependencies on camera_info_manager are package dependencies, they use the <depends> tag in the manifest.xml, not <rosdep>. The (obsolete) camera_info.h does not belong in the include file of the bumblebee2 package.

You are correct that the inability of Ubuntu to find your camera is a separate problem.

edit flag offensive delete link more

Comments

Thank you so much for the help! Following your instruction, I edited the manifest and created the rosdep.yaml files in a text editor with your code. I am now getting a new error which I have described in an update to my original questions.
rob-bot gravatar image rob-bot  ( 2011-02-27 06:02:35 -0600 )edit
1

answered 2011-03-01 18:31:45 -0600

Yongqiang Gao gravatar image

updated 2011-03-01 18:55:05 -0600

Hi, I also face this problem which take me a long time. and I find a solution which can solve it. Just like joq, while I give the details about it. and I reference to Soonhac Hong

and I paste his below for more people:

Quick set of simple patches to make your code compile against C-turtle:

Index: manifest.xml 
=================================================================== 
--- manifest.xml    (revision 17)
+++ manifest.xml    (working copy)
@@ -11,7 +11,7 @@ 
<depend package="tf"/> 
<depend package="camera_info_manager"/> 
<depend package="dynamic_reconfigure"/> 
- <depend package="libdc1394v2"/> 
+ <rosdep name="libdc1394-dev"/> 
</package>

Index: src/bumblebee2.cpp 
=================================================================== 
--- src/bumblebee2.cpp    (revision 17) 
+++ src/bumblebee2.cpp    (working copy) 
@@ -52,7 +52,7 @@ 
#include <sensor_msgs/CameraInfo.h> 
#include <sensor_msgs/image_encodings.h> 
#include <tf/transform_listener.h> 
-#include <camera_info_manager/camera_info.h> 
+#include <camera_info_manager/camera_info_manager.h> 
#include <image_transport/image_transport.h> 
#include <dynamic_reconfigure/server.h> 
#include <dynamic_reconfigure/SensorLevels.h> 
Index: src/dev_camera1394.cpp 
=================================================================== 
--- src/dev_camera1394.cpp    (revision 17) 
+++ src/dev_camera1394.cpp    (working copy) 
@@ -34,6 +34,7 @@ 
#include <stdint.h> 
#include <sensor_msgs/image_encodings.h> 
+#include <dc1394/dc1394.h> 
#include "bumblebee2.h" 
Index: CMakeLists.txt 
=================================================================== 
--- CMakeLists.txt    (revision 17) 
+++ CMakeLists.txt    (working copy) 
@@ -33,6 +33,6 @@ 
#rosbuild_add_boost_directories() 
#rosbuild_link_boost(${PROJECT_NAME} thread) 
#rosbuild_add_executable(example examples/example.cpp) 
-#target_link_libraries(example ${PROJECT_NAME}) 
+rosbuild_add_executable(${PROJECT_NAME} src/bumblebee2.cpp 
src/dev_camera1394.cpp) 
-rosbuild_add_executable(${PROJECT_NAME} src/bumblebee2.cpp 
src/dev_camera1394.cpp) 
+target_link_libraries(${PROJECT_NAME} dc1394)
edit flag offensive delete link more

Comments

This answer was accidentally flagged as "offensive". It is not. We are still trying to figure out how to remove that marker. Sorry for the confusion.
joq gravatar image joq  ( 2011-03-03 00:12:43 -0600 )edit
Yeah, and thanks a lot to u.
Yongqiang Gao gravatar image Yongqiang Gao  ( 2011-03-03 11:05:39 -0600 )edit
-1

answered 2011-02-27 07:59:31 -0600

rob-bot gravatar image

Okay, I got a little further with the issue- enough so that I can call this an answer to my original question.

The answer is actually pretty silly; I did not install libdc1394v2 correctly (I guess?). I just tried building it again and libdc1394v2 seemed to build properly. Then, when I tried to build the bumblebee2 package, I noticed that the failure was associated with a file called "camera_info.h" This is part of the camera_info_manager package, which was not anywhere on my computer. Something is up with the dependencies (rosdep.yaml right?) of THAT package (or I just don't know what I'm doing I suppose) because rosdep did not work when I attempted to install the camera_info_manager dependencies. So when attempting to build camera_info_manager using rosmake I received an error about a file in the "sensor_msgs" package... which I found out was not installed either. After properly installing sensor_msgs and camera_info_manager, then making a copy of camera_info.h and placing it in the include folder in the bumblebee2 package (this seemed to be the only way it could find it; I tried leaving it in camera_info_manager/include to no avail) and editing bumblebee.cpp so that it could find camera_info.h in its include folder, I received what seems to be a much more benign message regarding ROS's inability to find a camera. Considering this is a very different problem than my initial one, I will post it as a new question and call this one answered.

Condensed answer: Make sure sensor_msgs and camera_info_manager is installed, and make sure camera_info.h is findable when building the bumblebee2 package (you can edit where bumblebee.cpp is trying to find this file by editing bumblebee.cpp, line 55)

edit flag offensive delete link more

Question Tools

Stats

Asked: 2011-02-24 11:33:39 -0600

Seen: 3,891 times

Last updated: Mar 02 '11