This ROS2 package based on GSCam supports the Jetbot Pro robot with ROS 2 Eloquent Elusor, the last possible version for Ubuntu 18.04, officially supported by NVIDIA Jetson Nano 4GB.
GSCam supports the following versions of ROS2 and GStreamer:
ROS2 version | Ubuntu version | GStreamer version |
---|---|---|
Eloquent | 18.04 | 1.00 |
These dependencies will be picked up by rosdep and are required to compile:
- libgstreamer1.0-dev
- libgstreamer-plugins-base1.0-dev
These additional packages are often useful:
- gstreamer1.0-tools
- libgstreamer-plugins-good1.0-dev
Ubuntu install:
sudo apt-get install gstreamer1.0-tools libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev libgstreamer-plugins-good1.0-dev
GSCam for ROS2 is licensed under the Apache 2 license.
Note that GStreamer is licensed under the LGPL, and GStreamer plugins have their own license requirements.
gscam
camera/image_raw
camera/camera_info
camera/set_camera_info
camera_name
: The name of the camera (corrsponding to the camera info)camera_info_url
: A url (file://path/to/file
,package://pkg_name/path/to/file
) to the camera calibration filegscam_config
: The GStreamer configuration stringframe_id
: The tf2 frame IDreopen_on_eof
: Re-open the stream if it ends (EOF)sync_sink
: Synchronize the app sink (sometimes setting this tofalse
can resolve problems with sub-par framerates)use_gst_timestamps
: Use the GStreamer buffer timestamps for the image message header timestamps (setting this tofalse
results in header timestamps being the time that the image buffer transfer is completed)image_encoding
: image encoding ("rgb8", "mono8", "yuv422", "jpeg")use_sensor_data_qos
: The flag to use sensor data qos for camera topic(image, camera_info)
See example launch files and configs in the examples directory.
These examples have been tested and work well:
- v4l.launch.xml: Standard video4linux cameras like USB webcams
- v4ljpeg.launch.xml: Same as above, but publishes compressed images
- videofile.launch.xml: Opens any videofile readable by GStreamer
- component_pipeline_launch.py: Launch an image pipeline using ROS2 composition