This is the argus device for YARP. It supports the FRAMOS cameras.
The FRAMOS™ cameras currently compatible with YARP are:
- FRAMOS-IMX415
This software may be modified and distributed under the terms of the BSD-3-Clause license. See the accompanying LICENSE file for details.
The argusCamera device uses the Libargus API, which is a module included in the Jetson Linux Multimedia API, released under the NVIDIA license. See the relative documentation for the terms of the license.
Before proceeding further, please install the following dependencies:
- Nvidia JetPack v5.1.2 for
Jetson Orin NX
+ BSP r35.4.1 forBoson for FRAMOS
carrier board - YARP 3.10 or greater
Jetson Linux Multimedia API
(already installed with JetPack, otherwise it should be installed withsudo apt install nvidia-l4t-jetson-multimedia-api
)- OpenCV + CUDA (optional)
Warning
Sometimes, on Jetson platforms, an error similar to the one below can occur:
(gst-plugin-scanner:21845): GStreamer-WARNING **: 04:34:02.887: Failed to load plugin '/usr/lib/aarch64-linux-gnu/gstreamer-1.0/libgstlibav.so': /usr/lib/aarch64-linux-gnu/libgomp.so.1: cannot allocate memory in static TLS block
As stated here, this could be solved with:
export LD_PRELOAD=/usr/lib/aarch64-linux-gnu/libgomp.so.1
After installing the necessary dependencies, please follow this guide to configure and setup the Jetson Orin NX
board to use the FRAMOS-IMX415
cameras.
mkdir build
cd build
cmake -DCMAKE_INSTALL_PREFIX=<installation_path> ..
make
make install
Optionally, GPU usage can be enabled by adding -DTRY_ACTIVATE_CUDA=true
to the cmake options above.
In order to make the device detectable, add <installation_path>/share/yarp
to the YARP_DATA_DIRS
environment variable of the system.
Alternatively, if YARP
has been installed using the robotology-superbuild, it is possible to use <directory-where-you-downloaded-robotology-superbuild>/build/install
as the <installation_path>
.
From command line:
yarpdev --device argusCamera --d 0 --period 0.011 --rotation 90.0 --width 1920 --height 1080 --rotation_with_crop false
or from the root of the repository:
yarpdev --from conf/conf.ini
Where conf.ini
:
device argusCamera
d 0
period 0.011
rotation 90.0
width 1920
height 1080
rotation_with_crop false
Otherwise, the device can be launched via yarprorbotinterface
as:
yarprobotinterface --config conf/camera.xml
This device driver exposes the yarp::dev::IFrameGrabberImage
and
yarp::dev::IFrameGrabberControls
interfaces to read the images and operate on the available settings.
See the documentation for more details about each interface.
YARP device name | YARP default nws |
---|---|
argusCamera |
frameGrabber_nws_yarp |
yarp-device-argus
is based on yarpDeviceParamParserGenerator
. The parameters accepted by this device are:
Group name | Parameter name | Type | Units | Default Value | Required | Description | Notes |
---|---|---|---|---|---|---|---|
d | int | - | 0 | No | Enumeration of the camera device | ||
period | double | seconds | 0.033 | No | Refresh period of acquisition of the camera in s | Check the camera documentation for the fps cap | |
rotation | double | degrees | 0.0 | No | Rotation applied from the center of the image | Depending the size requested some rotations are not allowed. The rotation worsens the performance of the device. Allowed values: 0.0, 90.0, -90.0, 180.0. | |
width | int | pixel | 640 | No | Width of the images requested to the camera | The cameras has a value cap for the width of the image that can be provided, check the documentation. Zero or negative value not accepted | |
height | int | pixel | 480 | No | Height of the images requested to the camera | The cameras has a value cap for the width of the image that can be provided, check the documentation. Zero or negative value not accepted | |
rotation_with_crop | bool | - | false | No | The rotation, if the param is true, is obtained by swapping x with y | The image will have a resolution swapped with respect to what is requested |
Suggested resolutions
The performances reported in the table below are referred to the FRAMOS-IMX415 cameras.
resolution | carrier | fps w/ CUDA | fps w/o CUDA |
---|---|---|---|
640x480 | mjpeg | 75 | 90 |
1920x1080 | mjpeg | 40 | 50 |
3840x2160 | mjpeg | 9 | 12 |
This repository is maintained by:
@Nicogene | @martinaxgloria |