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

Revision history [back]

click to hide/show revision 1
initial version

As you can see, it wasn't able to find the calibration file and so it changed to /dev/video0.

it might look like that, but that is not what is happening.

Camera calibration files are just configuration files that contain information on certain characteristics of your camera (the intrinsics). Those then allow other components to process images produced by that camera. See the camera_calibration page for some more background information.

Even without that file uvc_camera will publish images (if everything else is ok), but other nodes just will not know anything about your camera's intrinsics (and so will not be able to compensate for things like lens distortions). See #q256300 for a related question.

rosrun uvc_camera uvc_camera_node device:=/dev/video1

The node opened video0 because - just as in #q271685 - you forgot to prefix device with an underscore (_). Without that underscore, rosrun will interpret device as a topic name (used when remapping), not a parameter. See wiki/rosbash - rosrun where this is explained.

As @ahendrix in #q271685 explained, you'll need to start the node as follows:

rosrun uvc_camera uvc_camera_node _device:=/dev/video1

That will make the node attempt to open /dev/video1.

The thing is, i don't even know why is he trying to look in "/home/cesar/.ros/camera_info/camera.yaml". I never specified that path, or any path.

$HOME/.ros/camera_info/camera.yaml is just the default path and file that ROS camera drivers will look for camera calibration files, if you haven't provided it with a specific URL to override that location.

The file ".ros" in "/home/cesar" doesn't exist.

and that is 'normal', as you probably haven't calibrated your USB camera yet. You will want to do that though - once you get the node to start up. See the How to Calibrate a Monocular Camera tutorial for one way to do that.