[ros-users] Digital Camera 1394 in ROS?

Jack O'Quin jack.oquin at gmail.com
Wed Mar 10 16:25:02 UTC 2010


On Wed, Mar 10, 2010 at 9:29 AM, Rosen Diankov <rosen.diankov at gmail.com> wrote:
>
> I'm sorry you've been having so many problems with cameradc1394,
> perhaps we can come up with a solution that will work well for you.

Thanks, Rosen.

I do not mean to come across as harshly critical of cameradc1394. I
appreciate the work that has gone into it, and want to make it more
accessible to users. We are trying to get undergraduates working
productively with ROS vision components. Many of them are unfamiliar
with both ROS and Linux. They will have a lot more trouble getting
this working than I did.

> - You say it seems to work but not easy to install? Typing 'rosmake
> cameradc1394'  should make and install everything for you, so are you
> having trouble compiling things?

I did get it to work. It just took me a couple of hours. See below...

> - i think the libdc1394v2 package is for systems that do not have
> libdc1394 version 2 installed, otherwise the library itself should be
> stable.

On a recent boxturtle ROS install, the rosmake will fail because
cameradc1394 depends on libdc1394v2, which is no longer being
distributed. So, users either have to edit your manifest.xml to remove
that dependency (which is still needed on Ubuntu Hardy), or they have
to find and install the SVN repository for the
camera_drivers_experimental package (doable, but not trivial).

> - cameradc1394 links the the ROS image libraries in order to
> serialize/convert the message correctly, display the image, and
> undistort it (radial distortion). You can disable the display
> dynamically, so the the only other place where opencv would be used is
> for undistortion and sending messages. Fortunately, both of these are
> not that heavy on computation, so your system should handle it.

I am not particularly worried about computational overhead. It's more
a question of system design and consistency.

The other ROS camera drivers do not depend on opencv2. There are
higher-level packages, such as image_view for that sort of function.
I'd prefer a simple DC1394 driver that behaves like the other ROS
camera packages. That way people can work consistently with all those
devices.

> - i'm pretty sure the svn checkout command on sourceforge points to
> the correct code:
> svn co https://cmu-ros-pkg.svn.sourceforge.net/svnroot/cmu-ros-pkg cmu-ros-pkg
>
> The 'trunk' folder might be making things a little confusing for you,
> therefore i recommend:
>
> svn co https://cmu-ros-pkg.svn.sourceforge.net/svnroot/cmu-ros-pkg/trunk
> cmu-ros-pkg

As you say, that is the correct URL for checkout. This error is
currently not important, because you have no other branches (so far).
But, you would not want users accidentally checking out *all* the
branches instead of just the mainline version. When there is a stable
version, they should check out branches/latest, instead, I suppose.

> - There is a link on the ros.org camera_drivers webpage
> (http://www.ros.org/wiki/camera_drivers) into the correct wiki
> location where the cameradc1394 webpage is stored. I'm not sure why
> you feel it is hard to locate.....

It would be easier to find under http://ros.org/wiki/cameradc1394
(which does not exist). It was hard to find because the SourceForge
page for cmu-ros-pkg does not point to it. I did eventually find a
pointer to it at the bottom of http://ros.org/wiki/libdc1394v2 (which
does exist).

> - the README in the top source directory was old and contained nothing
> useful, i just deleted it

Good idea, thanks.

> - I think you are the first person that has expressed dissatisfaction
> with the way cameradc1394 is structured (no code reviews, etc), I've
> tried to stick with the camera API willowgarage publishes as much as
> possible. In the past year, it has been hard to keep up with it due to
> many changes, but we're actively maintaining cameradc1394. For
> example, I just noticed that the API requires a "set_camera_info" and
> "request_image" services, which we will add as soon as we have time.

I fully understand the difficulty of tracking rapidly changing
interfaces in a complex system. That is why I favor better integration
into the ROS development process.  I believe a design review would
have identified the inconsistencies between cameradc1394 and the other
ROS camera drivers.

A good review might have caught the set_camera_info change, as well. I
have so far been unable to display 1394 camera images with rviz. That
may be the reason.

> If it makes a big difference for your team that the cameradc1394
> resided on WillowGarage's servers rather than sourceforge's, then I'm
> sure WillowGarage would be happy to host it.

I expect they would. I don't see the repo location as a problem right
now (as long as the checkout URL is correct and up to date).

I believe including good documentation into the ros.org wiki would
make the package much more accessible to beginning users. I am willing
to assist, if you feel that would be helpful. I don't know much about
digital cameras, but I do know how to edit the wiki. :-)

Regards,
-- 
 joq



More information about the ros-users mailing list