安装Bumblebee2相机package 遇到的problems installing libdc1394v2


http://ros-users.122217.n3.nabble.com/Does-cturtle-not-have-everything-boxturtle-does-td1030354.html


problems installing libdc1394v2

asked Feb 25 '11

updated Mar 3 '11

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/trunk/bumblebee2) 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/Firewire#Method%203.%20%27udev%20rule%27):

"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 into problem after problem here!

Thanks again!

Rob

add a comment

3 Answers

Sort by » oldest newest most voted
4

answered Feb 25 '11

updated Mar 1 '11

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.

link

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  (Feb 28 '11)
add a comment
1

answered Mar 2 '11

updated Mar 2 '11

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)
link

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  (Mar 3 '11)
Yeah, and thanks a lot to u. Yongqiang Gao  (Mar 4 '11)
add a comment
-1

answered Feb 28 '11

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)

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////


17 posts
I'm trying to get the bumblebee2 driver working, and I noticed that
cturtle doesn't have all the packages that boxturtle did:
> svn list
https://code.ros.org/svn/ros-pkg/branches/trunk_boxturtle/stacks/camera_drivers_experimental
        CMakeLists.txt
        Makefile
        camera1394/
        camera_info_manager/
        libdc1394v2/
        rosdep.yaml
        stack.xml
        swissranger_camera/

> svn list
https://code.ros.org/svn/ros-pkg/branches/trunk_cturtle/stacks/camera_drivers_experimental
        CMakeLists.txt
        Makefile
        rosdep.yaml
        stack.xml
        swissranger_camera/


Now, camera_info_manager moved to the normal camera_drivers directory,
but I can't find libdc1394v2 anywhere in cturtle.  Did the libdc1394v2
driver move somewhere I have not looked, did it get rolled into
something else, or do I have to check out boxturtle_trunk to be able to
access the full set of packages?


Thanks
Garratt



_______________________________________________
ros-users mailing list
[hidden email]
https://code.ros.org/mailman/listinfo/ros-users
Remove Ads

Soonhac Hong
Reply | Threaded | More  

Re: Does cturtle not have everything boxturtle does?

10 posts
  Hi Garratt,

I'm forwarding the Patrick Beeson's email as follows.

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)


I hope it will be what you find.

Best,
Soonhac


On 8/6/2010 10:49 AM, garratt wrote:

> I'm trying to get the bumblebee2 driver working, and I noticed that
> cturtle doesn't have all the packages that boxturtle did:
>> svn list
> https://code.ros.org/svn/ros-pkg/branches/trunk_boxturtle/stacks/camera_drivers_experimental
> CMakeLists.txt
> Makefile
> camera1394/
> camera_info_manager/
> libdc1394v2/
> rosdep.yaml
> stack.xml
> swissranger_camera/
>
>> svn list
> https://code.ros.org/svn/ros-pkg/branches/trunk_cturtle/stacks/camera_drivers_experimental
> CMakeLists.txt
> Makefile
> rosdep.yaml
> stack.xml
> swissranger_camera/
>
>
> Now, camera_info_manager moved to the normal camera_drivers directory,
> but I can't find libdc1394v2 anywhere in cturtle.  Did the libdc1394v2
> driver move somewhere I have not looked, did it get rolled into
> something else, or do I have to check out boxturtle_trunk to be able to
> access the full set of packages?
>
>
> Thanks
> Garratt
>
>
>
> _______________________________________________
> ros-users mailing list
> [hidden email]
> https://code.ros.org/mailman/listinfo/ros-users
>
... [ show rest of quote]

_______________________________________________
ros-users mailing list
[hidden email]
https://code.ros.org/mailman/listinfo/ros-users
Jack O'Quin
Reply | Threaded | More  

Re: Does cturtle not have everything boxturtle does?

562 posts
In reply to this post by garratt gallagher
On Fri, Aug 6, 2010 at 9:49 AM, garratt < [hidden email]> wrote:

> I'm trying to get the bumblebee2 driver working, and I noticed that
> cturtle doesn't have all the packages that boxturtle did:
>> svn list
> https://code.ros.org/svn/ros-pkg/branches/trunk_boxturtle/stacks/camera_drivers_experimental
>        CMakeLists.txt
>        Makefile
>        camera1394/
>        camera_info_manager/
>        libdc1394v2/
>        rosdep.yaml
>        stack.xml
>        swissranger_camera/
>
>> svn list
> https://code.ros.org/svn/ros-pkg/branches/trunk_cturtle/stacks/camera_drivers_experimental
>        CMakeLists.txt
>        Makefile
>        rosdep.yaml
>        stack.xml
>        swissranger_camera/
>
>
> Now, camera_info_manager moved to the normal camera_drivers directory,
> but I can't find libdc1394v2 anywhere in cturtle.  Did the libdc1394v2
> driver move somewhere I have not looked, did it get rolled into
> something else, or do I have to check out boxturtle_trunk to be able to
> access the full set of packages?
... [ show rest of quote]

The libdc1394v2 package was mostly only needed on Ubuntu Hardy, which
had an old libdc1394 version 1 package. C-turtle no longer supports
Hardy, which is no loss because it did not work very well for IEEE
1394 digital cameras anyway. (At least that was my experience.)

So, libdc1394v2 is relegated to end-of-life status as an experimental
package for Box Turtle only. There is no need for a C-turtle version,
which now resolves that library via rosdep. Libdc1394v2 will probably
end up in the graveyard some day when Box Turtle is no longer
supported.

For C-Turtle, the <depend package="libdc1394v2"/> becomes a <rosdep
name="libdc1394-dev"/>.

We should update the wiki page for libdc1394v2 to provide more of this
information. I just noticed that page is no longer linked to
camera_drivers_experiemental, so it might be somewhat hard to locate.
--
 joq
_______________________________________________
ros-users mailing list
[hidden email]
https://code.ros.org/mailman/listinfo/ros-users


你可能感兴趣的:(安装Bumblebee2相机package 遇到的problems installing libdc1394v2)