Record camera data from 8 cameras using recorder-tui

Hi,

I have 8 cameras (6x ar0231-rccb-bae-sf3324 and 2x ar0231-rccb-bae-sf3325) connected to port a and b on Tegra A.

When I run
./sample_camera_multiple_gmsl --selector-mask=11111111
All 8 cameras turn on.

Next, I try to record data using recorder-tui. For this, I use my rig fille generated during sensor calibration with changes:

  • I delate all other sensors leaving only 8 cameras
  • I add to each camera parameters

If I run only one camera recording goes fine. If I try to run more then two cameras or I try to run the camera with parameter siblingIndex=3 it crashes, but there is nothing in a log file in /tmp/recorder-tui-****

For 8 cameras I use the following parameters:

  1. “parameter”: “camera-type=ar0231-rccb-bae-sf3324,camera-group=a,camera-count=4,siblingIndex=0,format=h265,output-format=raw+yuv,fifo-size=29,file-buffer-size=4194304”,
  2. “parameter”: “camera-type=ar0231-rccb-bae-sf3324,camera-group=a,camera-count=4,siblingIndex=1,format=h265,output-format=raw+yuv,fifo-size=29,file-buffer-size=4194304”,
  3. “parameter”: “camera-type=ar0231-rccb-bae-sf3324,camera-group=a,camera-count=4,siblingIndex=2,format=h265,output-format=raw+yuv,fifo-size=29,file-buffer-size=4194304”,
  4. “parameter”: “camera-type=ar0231-rccb-bae-sf3324,camera-group=a,camera-count=4,siblingIndex=3,format=h265,output-format=raw+yuv,fifo-size=29,file-buffer-size=4194304”,
  5. “parameter”: “camera-type=ar0231-rccb-bae-sf3324,camera-group=b,camera-count=4,siblingIndex=0,format=h265,output-format=raw+yuv,fifo-size=29,file-buffer-size=4194304”,
  6. “parameter”: “camera-type=ar0231-rccb-bae-sf3324,camera-group=b,camera-count=4,siblingIndex=1,format=h265,output-format=raw+yuv,fifo-size=29,file-buffer-size=4194304”,
  7. “parameter”: “camera-type=ar0231-rccb-bae-sf3325,camera-group=b,camera-count=4,siblingIndex=2,format=h265,output-format=raw+yuv,fifo-size=29,file-buffer-size=4194304”,
  8. “parameter”: “camera-type=ar0231-rccb-bae-sf3325,camera-group=b,camera-count=4,siblingIndex=3,format=h265,output-format=raw+yuv,fifo-size=29,file-buffer-size=4194304”,

What am I doing wrong? Is it possible to have 8 cameras connected and record data only from a few? Could you, for example, tell me what parameters there should be for only cameras: 4,6,7,8.

Software Version
DRIVE OS Linux 5.2.0 and DriveWorks 3.5

Target Operating System
Linux

Hardware Platform
NVIDIA DRIVE™ AGX Xavier DevKit (E3550)

SDK Manager Version
1.4.0.7363

Host Machine Version
native Ubuntu 18.04

Best

Hi @zyczkowski ,

On DRIVE OS 5.2.0 and DriveWorks 3.5, the default camera protocol (“camera.gmsl”) is based on top of the NvSIPL library (not NvMedia Image Processing Pipeline (IPP) anymore). So you better check /usr/local/driveworks-3.5/data/samples/sensors/camera/camera/rig_imx390_ar0820.json (on host system) and DriveWorks SDK Reference: Camera Sample, and then port your rig file accordingly.

Below are some other document pages for your reference:

Thanks.

It says here in camera sample that “When multiple cameras are used, only the camera with index 0 is recordable.” Does it mean that I can record data only from 1 camera at a time? Is there somehow a possibility to record data from multiple cameras?
Thanks

I pointed out the rig file (used by the sample application) as a reference for display on the screen.
For recording, please use Recording Tools. Thanks.

Unfortunately, I made a mistake while checking our OS and DriveWorks version. It is OS Linux 4.14 and Driveworks 2.2. Is here also used NvSIPL library or IPP?

I tried to use parameters from JSON found in samples/sensors/camera but with no success.

This JSON looks like this(I will present only name, parameters and protocol fields for clarity):

            "name": "camera:master",
            "parameter": "config-type=devBlock,configuration={MODE:master|INTERFACE:csi-a|CAMERA_NAME:SF3324|NUM:4},output-format=processed",
            "protocol": "camera.gmsl.master"

            "name": "camera:sample0",
            "parameter": "output-format=processed,camera-id=0",
           "protocol": "camera.gmsl.client"

            "name": "camera:sample1",
            "parameter": "output-format=processed,camera-id=1",
           "protocol": "camera.gmsl.client"

            "name": "camera:sample2",
            "parameter": "output-format=processed,camera-id=2",
           "protocol": "camera.gmsl.client"

            "name": "camera:sample3",
            "parameter": "output-format=processed,camera-id=3",
           "protocol": "camera.gmsl.client"

Is this a correct approach?

Thanks

If possible, due to IPP is deprecated in the release after DRIVE OS 5.1.6.1 (part of DRIVE Software 10.0), I would suggest you to move to “DRIVE OS 5.2.0 and DriveWorks 3.5” and follow my previous posts to make your use case work. Thanks.

Hi, thanks for a quick response. I will try to update my OS and DrivWorks. But what we should do if for some reason I couldn’t update it? Can I somehow run it on OS Linux 4.14 and Driveworks 2.2?
Thanks

Below are the options on developer site for you. If possible, always use the newer one. Thanks.

  • DRIVE OS 5.2.0 and DriveWorks 3.5
  • DRIVE Software 10 (DRIVE OS 5.1.6.1, DriveWorks 2.2, etc.)

Sorry, maybe I was not precise enough. Can I run 8 camera recording at the same time on OS Linux 4.14 and Driveworks 2.2?
Thanks

Did you mean you have no problem on DriveWorks 2.2 though you created this topic for DriveWorks 3.5? Thanks.

I have a problem running this on drivworks 2.2. Also, I would like not to update OS and drivworks. Can I still record data from all 8 cameras on my driveworks 2.2?

I guess you are asking about using Ubuntu 14.04 to install DRIVE Software 10 (DriveWorks 2.2 is part of it).
if that’s the case, it’s not supported (see below from DRIVE Software 10.0 Release Notes).
Sorry for any inconvenience.

image

OK, let’s assume I have DRIVE Software 10 with DriveWorks 2.2. How can I record data from all 8 cameras?

You can refer to /usr/local/driveworks/tools/preFlightChecker/config/hyperion7-1-full.json in your host/target system with DriveWorks 2.2 installed. Thanks.

Thanks, I will look at it tomorrow and see if it works. :)

Hi,

This json file has parameters that I already tried to use. However, I finally managed to solve the problem. Previously I used recorder-tui and saved recordings on Pendrive (Couldn’t save more than 2-3 movies). Today I used “recorder” and saved data on Nvidia which works correctly. Could you explain what parameters fifo-size and serializer bitrate are used for? How can you set the serializer bitrate? Thanks

Good to hear that you fixed your problem. recorder is a good substitute for debugging whenever the other recording tools don’t work.

For fifo-size parameter, you can check the two document pages for DriveWorks 2.2 and 3.5 respectively.

For serializer bitrate, could you let me know where you saw it? Thanks.