You must also configure the cameras before running the ROS node.
VOXL Cam ROS includes the following six launch files:
Each launch file has the following variables settable as command line arguments to roslaunch. Obviously, the defaults for each file are different and appropriate to each camera type.
<!-- cmd line arguments to launch file --> <arg name="cam_name" default="tracking"/> <!-- sets the topic namespace --> <arg name="cam_id" default="$(env TRACKING_CAM_ID)"/> <!-- configure with voxl-configure-cameras --> <arg name="skip_n_frames" default="0"/> <arg name="frame_rate" default="15" /> <arg name="width" default="640"/> <arg name="height" default="480"/> <arg name="frame_id" default="tracking_frame"/> <!-- transform frame used by TF2 --> <arg name="is_cam_master" default="true"/>
The camera name parameter will set the topic name that is published and has nothing to do with selecting which camera is being opened. The exact camera that is opened is specified by the cam_id parameter and defaults to reading the environment variables TRACKING_CAM_ID, STEREO_CAM_ID, and HIRES_CAM_ID which are set with the voxl-configure-cameras script.
The frame rate for tracking and stereo cameras can only be set to 15, 30, and 60 hz. This is all the camera module itself supports. If you need slower frame rates, you can specify the skip_n_frames parameter to subsample.
The tracking and stereo cameras only support 640x480 VGA resolution. the hires camera specifies a variety of resolutions which are printed out by the voxl_cam_ros node when it starts.
This ROS node will fail to start if voxl-vision-px4 or any other process is using the camera in the background. You can get around this by either stopping the offending background process, or starting the ROS node in slave mode where the background process remains in control of the camera but ROS is allowed to read the images.
# on VOXL yocto:~# roslaunch voxl_cam_ros stereo.launch is_cam_master:=false
Since the tracking camera is almost always being used in the background for VIO, we provide a shortcut launch file called tracking_slave.launch which launches the tracking camera in slave mode.
# on VOXL yocto:~# roslaunch voxl_cam_ros tracking_slave.launch
By default voxl-cam-ros has auto-exposure disabled. To enable, you should comment out these two lines here
The default setting is auto exposure. The auto white balance should be enabled by default.
If you try to use ROS commands while SSH’d to VOXL and see errors such as this:
load_parameters: unable to set parameters (last param was [/rosdistro=indigo ]): <Fault 1: "<class 'xml.parsers.expat.ExpatError'>:not well-formed (invalid token): line 13, column 15">
The cause is a known issue with the GNOME Terminal, the default terminal emulator of Ubuntu. The solution is to use another terminal emulator such as xterm or Konsole instead of GNOME Terminal.
More information here: https://gitlab.com/voxl-public/documentation/issues/4