[ros-users] [Discourse.ros.org] [Packaging and Release Management/Kinetic] Add usb_cam to ROS Kinetic main repository

Kei Okada ros.discourse at gmail.com
Fri Mar 10 06:40:19 UTC 2017

I also need  usb camera driver on ROS kinetic and would like to move this discussion forward.

As we can see  http://wiki.ros.org/Sensors/Cameras#Monocular_Cameras, there are many usb camera driver package. Among them, it seems libuvc_camera is recommended and I remember there are huge discussion and effort to make "official" ROS USB camera driver. So best solution seems to release libuvc_camera to kinetic and continue using as an "official" ROS USB camera driver.

However, there are device file permission issue like http://answers.ros.org/question/219886/libuvc-launch-get-permission-denied-opening-usb-error/ (if some one know clean solution , let me know), so I had test other packages on kinetic.


, with 4 different usb camera

 Bus 003 Device 003: ID 04f2:b39a Chicony Electronics Co., Ltd
 Bus 003 Device 014: ID 056e:700e Elecom Co., Ltd
 Bus 003 Device 015: ID 046d:0825 Logitech, Inc. Webcam C270
 Bus 003 Device 016: ID 0ac8:0336 Z-Star Microelectronics Corp. Elecom UCAM-DLQ30

and all working well. ;-) this is good news.

Unfortunately, camera_umd seems deprecated, usb_cam and libuvc_cam seems inactive, so last resort is video_stream_opencv, @awesomebytes can you release this to kinetic?
This also means we will going to use video_stream_opencv as an "official" driver, which I feel not so popular until new, (I'd like to hear @joq opinion, for example)

Other possibility is force transfer/move usb_cam and usb_cam-release (or libuvc_camera if we can fix the  problem) to ros-driver repository and keep release on kinetic, give maintainer ownership to someone in this list, (if nobody I can). @wjwwood, @dirk-thomas, @tfoote   

This might be off-topic but It was surprising for me that fundamental package such as USB camera driver is not released on kinetic which was launched a year ago.
I think will have more orphaned package in coming years, since people use these package because it is well matured and stable, this also means original developer is satisfied and their interest moved to next project. 

I know that it is common style to keep repository small and independent as discussed 
 https://discourse.ros.org/t/joystick-drivers-package/905 and https://github.com/ros-visualization/rqt_common_plugins/pull/442#issuecomment-285243913. But I think one way to keep package maintaind, at the lowest level such as releasing to new distro, is to create repository containing multiple packages, and if someone want to release one package in that repo, then he/she have to release other packages too, eventhough he/she is not interested in that package. Otherwise, each package requires someone with enough resources (skill, time, motivation, responsibility....) .

So based on my theory, we'll make ros-drivers/camera_drivers package that contains all of camera packages (I know this is very dangerous....) or put opencv based image publisher like video_strem_opencv into https://github.com/ros-perception/image_pipeline.

I would propose to put fundamental packages such as USB camera driver should hosted on in NOT a personal repository but osrf-related organization repository or repository with several responsible  ownership. Of course maintainers who could not keep working are recommended to give a ownership to as an final project, but we rarely see this happens. So if a package is hosted at osrf-related repository, we can assume that someone in osrf will find new maintainer and give him/her permissions,
Or at least, move *-release repository to under team control and enable to release in new distro, if it runs without any changes.

[Visit Topic](https://discourse.ros.org/t/add-usb-cam-to-ros-kinetic-main-repository/607/2) or reply to this email to respond.

More information about the ros-users mailing list