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

Revision history [back]

The bare minimum is to get images from your camera and then publish them as sensor_msgs/Image.

OpenCV is good as a data intermediate format, if you can get images from your camera and display them with cv::imshow or save them to disk with imwrite and they look good then converting them to ros with cv_bridge should be painless.

The next thing to do is use image_transport CameraPublisher and use a CameraInfoManager along with it and you will be able to get compressed image outputs and synchronized camera_info messages along with the standard image.

For performance it is good to have the driver be a nodelet.

Dynamic reconfigure support is nice for adjusting parameters that should be adjustable live- exposure, frame rate, and anything else the camera supports.

Beyond that look at examples of existing cameras:

https://github.com/ros-drivers/usb_cam

https://github.com/magazino/pylon_camera

https://github.com/ros-drivers/pointgrey_camera_driver

https://github.com/ros-drivers/axis_camera

(Is there a generic network or security camera driver?)

The bare minimum is to get images from your camera and then publish them as sensor_msgs/Image.

OpenCV is good as a data intermediate format, if you can get images from your camera and display them with cv::imshow or save them to disk with imwrite and they look good then converting them to ros with cv_bridge should be painless.

The next thing to do is use image_transport CameraPublisher and use a CameraInfoManager along with it and you will be able to get compressed image outputs and synchronized camera_info messages along with the standard image.

For performance it is good to have the driver be a nodelet.

Dynamic reconfigure support is nice for adjusting changing parameters that should be adjustable live- exposure, frame rate, and anything else the camera supports.

Beyond that look at examples of existing cameras:

https://github.com/ros-drivers/usb_cam

https://github.com/magazino/pylon_camera

https://github.com/ros-drivers/pointgrey_camera_driver

https://github.com/ros-drivers/axis_camera

(Is there a generic network or security camera driver?)