GStreamer-based Camera Node for ROS 2
This GStreamer based camera ROS node is from https://github.com/clydemcqueen/gscam2. Some changes are made to customize the original ROS node for the uses with Robotics SDK for TDA4:
Added GStreamer piplelines that use the GStreamer plugins optimized for TDA4 devices, and added NV12 encoding mode.
Added an example
camara_info.yaml
for Logitech webcam C920 and associated LDC look-up-table file (required to use TI TDA4 LDC hardware accelerator).Added launch files (under ‘launch’ folder) for Logitech webcam (in MJPG mode and YUYV mode), and OV5640 (in YUYV mode).
Dependency: following modules are already built and installed in the the Robotics SDK ROS Docker images.
Usage
Camera Calibration and Rectification Map Generation: See corresponding parts of mono_capture/README.md.
Build the ROS node:
cd $ROS_WS colcon build --base-paths /opt/robotics_sdk/ros2 --executor sequential source install/setup.bash
Launch the “gscam2” ROS node: Before launching the “gscam2”, please make sure to update
device
in the launch file to point to correct camera device (/dev/videoX
). For capturing in MJPG (motion JPEG) mode,ros2 launch gscam2 v4l_mjpg_launch.py
For capturing in YUYV mode,
ros2 launch gscam2 v4l_yuv_launch.py ros2 launch gscam2 v4l_ov5640_launch.py # for OV5640 CSI camera
Note: The measured framerate for the output topic can be less than the framerate set in the launch file, depending on the light condition of the scenes. This is a normal behavior inherited from v4l2src
and the ISP settings of, e.g., USB webcam.
Visualization on Remote Ubuntu PC
By default, the output topic raw_image
is published in NV12 color format to make more efficient when the node is integrated with the vision vision CNN processing chain (including ti_vision_cnn
ROS node) on TDA4. We provide a launch file for visualization on the remote Ubuntu (included in ti_viz_nodes
ROS package).
In the PC ROS2 Docker container,
ros2 launch ti_viz_nodes gscam_nv12_launch.py