Edge.Auto Getting Started Manual
TIER IV
Sep 20, 2024

iContents

1

2

3

1.1
1.2
1.3
1.4
1.5

TIER IV Automotive HDR Camera Getting Started Guide
1
TIER IV Cameras Getting Started Guide for ADLINK ROSCube RQX‑58G . . . . . . . . . 1
TIER IV Cameras Getting Started Guide for ADLINK ROSCube RQX‑59G . . . . . . . . . 13
TIER IV Cameras Getting Started Guide for Nvidia Jetson AGX Orin/Xavier Developer Kit 24
TIER IV Cameras Getting Started Guide for Vecow EAC‑5000 . . . . . . . . . . . . . . . 35
TIER IV Cameras Getting Started Guide for Connect Tech Anvil . . . . . . . . . . . . . . 38

2.1
2.2
2.3
2.4
2.5

Sensor fusion development kit getting started guideHardware setup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Sensor Calibration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Launch applications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Trouble shooting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

41
41
44
47
48
49

GMSL‑10GbE Conversion Module Getting Started Guide
3.1 Preparation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.2 Getting started with Linux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.3 Image output settings via CUI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.4 Image output settings via GUI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.5 Displaying the image . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.6 Camera triggering . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.7 PTP time synchronization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.8 Image quality tuning via web interface . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.9 REST API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.10 Troubleshooting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

50
50
55
61
64
64
68
69
72
74
81

1

1

TIER IV Automotive HDR Camera Getting Started Guide

This page explains how to start using TIER IV cameras with various computing platforms.

1.1 TIER IV Cameras Getting Started Guide for ADLINK ROSCubeRQX‑58G
Attention: This document is for the users of ADLINK RQX‑58G

1.1.1 Preparation
Required items
・ ADLINK ROSCube‑X RQX‑58G・ JetPack4.5 (L4T 32.5.1) or JetPack4.6 (L4T 32.6.1) installed
・ GMSL2 coaxial cable (FAKRA ‑ mini FAKRA, 1:4)
・ TIER IV Automotive HDR Camera C1 or C2
Camera connection
1. Firstly, make sure that the ROSCube‑X is turned oﬀ.
2. Connect cameras to the FAKRA connectors of the cable(single FAKRA connector side). Theninsert the mini FAKRA connectors of the cable to the ROSCube‑X’ s GMSL2 ports.
3. Please make sure the direction of the lock clown on FAKRA connectors and mini FAKRA con‑nectors is correct (Fig.1~3).

Edge.Auto Getting Started ManualFig. 1.1 RosCube

Fig. 1.2 Connector

1.1.2 Power on and check the camera image stream output
Power onPower on the ROSCube‑X and conﬁrm that the power‑on LED is turned on blue.

2

1 TIER IV Automotive HDR Camera Getting Started Guide

Edge.Auto Getting Started ManualFig. 1.3 Fakra cable insertion direction

Login
On the startup window, type the password to log in.
Default settings are shown below.
user
passwordros
adlinkros

Camera driver installation
Note: For C2, camera driver v.1.4.1 (or higher) is needed to set drive mode properly. Please upgrade
the camera driver if needed.
If proper camera driver has already been installed, please skip this section.
Get the camera driver deb package from Github. The latest release has been conﬁrmed to workwith RQX‑58G.
Copy the provided driver package ﬁle (tier4-isx021-gmsl_*.*.*_arm64.deb) to any directory
in ROSCube‑X (e.g. ~/c1_driver). Then follow the command line instructions below:
1. Updating the apt package. It requires an internet connection. Then, install the driver by using
the apt install command. Please make sure *.dtbo ﬁles are generated at /boot.
# Installsudo apt update
sudo apt install make debhelper dkms
sudo apt install ~/c1_driver/tier4-camera-gmsl_1.2.1_arm64.deb# Confirm /boot/tier4-*.dtbo exists
ls /boot/*.dtbo

1.1. TIER IV Cameras Getting Started Guide for ADLINK ROSCube RQX‑58G

3

Edge.Auto Getting Started Manual
2. The command for the device tree overlay diﬀers for the L4T version. To check the L4T version,
execute $ cat /etc/nv_tegra_release and check the result. For example, If it returns #R32 (release), REVISION: 5.1..., the installed L4T version is 32.5.1.
3. Choose appropriate instructions for the installed L4T version. Also, to assign the camera foreach port, please refer to the camera driver’ s README page. The user needs to specify anappropriate overlay command for each user’ s conﬁguration.
L4T 32.5.1# For L4T 32.5.1
sudo /opt/nvidia/jetson-io/config-by-hardware.py -n "TIERIV ISX021 GMSL2␣
˓→Camera Device Tree Overlay"# Confirm /boot/kernel_tegra194-rqx-58g-tier4-isx021-gmsl2-camera-device˓→tree-overlay-roscube-r32_x.dtb has been generated
ls /boot/kernel_tegra194-rqx-58g-tier4-isx021-gmsl2-camera-device-tree˓→overlay*.dtb# Then, shutdown the systemsudo shutdown -h now

L4T 32.6.1 or later# For L4T 32.6.1
sudo /opt/nvidia/jetson-io/config-by-hardware.py -n 2="TIERIV ISX021 GMSL2␣
˓→Camera Device Tree Overlay"# Confirm /boot/kernel_tegra194-rqx-58g-user-custom.dtb has been generated
ls /boot/kernel_tegra194-rqx-58g-user-custom.dtb# Then, shutdown the systemsudo shutdown -h now

You can run /opt/nvidia/jetson-io/config-by-hardware.py -l to check available overlay
options.
$ sudo /opt/nvidia/jetson-io/config-by-hardware.py -l[sudo] password for ros:
Header 1 [default]: Jetson 40pin Header
No hardware configurations found!
Header 2: Jetson AGX Xavier CSI Connector
Available hardware modules:
1. TIERIV IMX490 GMSL2 Camera Device Tree Overlay
2. TIERIV ISX021 GMSL2 Camera Device Tree Overlay
3. TIERIV ISX021 IMX490 GMSL2 Camera Device Tree Overlay

For instance, to assign all GMSL ports to the C2 camera, the overlay command should besudo /opt/nvidia/jetson-io/config-by-hardware.py -n 2="TIERIV IMX490 GMSL2 Camera␣
˓→Device Tree Overlay"

To Assign GMSL ports for both C1 and C2, the overlay command should besudo /opt/nvidia/jetson-io/config-by-hardware.py -n 2="TIERIV ISX021 IMX490 GMSL2␣
˓→Camera Device Tree Overlay"

In this case, ports 1, 2, 5, and 6 will be assigned to C1, and ports 3, 4, 7, and 8 will be assigned to C2.
Please refer to the device driver GitHub repository for the details of the device overlay.
4

1 TIER IV Automotive HDR Camera Getting Started Guide

Edge.Auto Getting Started Manual
Check if the ROSCube‑X recognizes cameras
Open a terminal window and type the following command. If it returns /dev/videoX, cameras arerecognized properly as video devices.
ls /dev/video*/dev/video0/dev/video1.
.
.
/dev/video7 # When 8 cameras are connected

Visualize camera output using GStreamer
Open a terminal window and type the following command. Gstreamer will launch and the camera
image stream will appear on a new window（Fig. 4, Fig.5）
Case 1: 1 C1 camera is connected# If cameras are running in slave mode, execute this i2cset command firsti2cset -f -y 2 0x66 0x04 0xff
# Start streaming
gst-launch-1.0 v4l2src io-mode=0 device=/dev/video0 do-timestamp=true ! 'video/x˓→raw, width=1920, height=1280, framerate=30/1, format=UYVY' ! videoscale !␣
˓→xvimagesink sync=false

Case 2: 8 C1 cameras are connected# If cameras are running in slave mode, execute this i2cset command firsti2cset -f -y 2 0x66 0x04 0xff
# Start streaming
gst-launch-1.0 v4l2src io-mode=0 device=/dev/video0 do-timestamp=true ! \'video/x-raw, width=1920, height=1280, framerate=30/1, format=UYVY' ! \xvimagesink sync=false v4l2src io-mode=0 device=/dev/video1 do-timestamp=true ! \'video/x-raw, width=1920, height=1280, framerate=30/1, format=UYVY' ! xvimagesink␣˓→sync=false \v4l2src io-mode=0 device=/dev/video2 do-timestamp=true ! \'video/x-raw, width=1920, height=1280, framerate=30/1, format=UYVY' ! xvimagesink␣˓→sync=false \v4l2src io-mode=0 device=/dev/video3 do-timestamp=true ! \'video/x-raw, width=1920, height=1280, framerate=30/1, format=UYVY' ! xvimagesink␣˓→sync=false \v4l2src io-mode=0 device=/dev/video4 do-timestamp=true ! \'video/x-raw, width=1920, height=1280, framerate=30/1, format=UYVY' ! xvimagesink␣˓→sync=false \v4l2src io-mode=0 device=/dev/video5 do-timestamp=true ! \'video/x-raw, width=1920, height=1280, framerate=30/1, format=UYVY' ! xvimagesink␣˓→sync=false \v4l2src io-mode=0 device=/dev/video6 do-timestamp=true ! \'video/x-raw, width=1920, height=1280, framerate=30/1, format=UYVY' ! xvimagesink␣˓→sync=false \v4l2src io-mode=0 device=/dev/video7 do-timestamp=true ! \'video/x-raw, width=1920, height=1280, framerate=30/1, format=UYVY' ! xvimagesink␣˓→sync=false \1.1. TIER IV Cameras Getting Started Guide for ADLINK ROSCube RQX‑58G

5

Edge.Auto Getting Started Manual
See also:
If there is a problem concerning unstable camera activation when you connect multiple cameras,
please refer to this page.
Case 3: 1 C2 camera is connected
gst-launch-1.0 v4l2src io-mode=0 device=/dev/video0 do-timestamp=true ! 'video/x˓→raw, width=2880, height=1860, framerate=30/1, format=UYVY' ! videoscale !␣
˓→xvimagesink sync=false

Restriction regarding C2 camera
Currently, with ROSCube L4T 32.6.1, two C2 cameras cannot be connected to single deserializer
board.
For example:
・ Port 1 and 2 … NG・ Port 3 and 4 … NG・ Port 1 and port 3 … OK・ Port 1 and 5 … OK

Fig. 1.4 Visualized camera output

Constraint on camera boot order (For driver version earlier than v1.1.1)
If you are using a driver version earlier than v1.1.1, please follow the speciﬁc instructions for boot‑ing. For driver versions v1.2.1 and later, there are no ordering or constraint requirements

To run multiple cameras, cameras need to be launched at once. For example, to run 2 cameras, thestart‑streaming command has to be a one liner

6

1 TIER IV Automotive HDR Camera Getting Started Guide

Edge.Auto Getting Started ManualFig. 1.5 Visualized camera output (x8 cameras)# This one-liner command works
gst-launch-1.0 v4l2src io-mode=0 device=/dev/video0 do-timestamp=true ! \'video/x-raw, width=1920, height=1280, framerate=30/1, format=UYVY' ! \xvimagesink sync=false v4l2src io-mode=0 device=/dev/video1 do-timestamp=true ! \'video/x-raw, width=1920, height=1280, framerate=30/1, format=UYVY' ! xvimagesink␣˓→sync=false \These separate commands do not work
# These separated commands may not work
# On a terminal
gst-launch-1.0 v4l2src io-mode=0 device=/dev/video0 do-timestamp=true ! \'video/x-raw, width=1920, height=1280, framerate=30/1, format=UYVY' ! \xvimagesink sync=false# On another terminal
gst-launch-1.0 v4l2src io-mode=0 device=/dev/video1 do-timestamp=true ! \'video/x-raw, width=1920, height=1280, framerate=30/1, format=UYVY' ! \xvimagesink sync=false

1.1.3 Record video data as rosbag (ROS format log data)
Install ROS melodic and gscam (ROS camera driver for GStreamer)
Install ROS melodic and gscam by following command line instructions.
Caution: The installation command may change. If the following commands do not work,
please refer to the ROS oﬃcial documentation.
sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" >˓→ /etc/apt/sources.list.d/ros-latest.list'
curl -s https://raw.githubusercontent.com/ros/rosdistro/master/ros.asc | sudo apt(continues on next page)

1.1. TIER IV Cameras Getting Started Guide for ADLINK ROSCube RQX‑58G

7

Edge.Auto Getting Started Manual(continued from previous page)

key add sudo apt update
sudo apt install ros-melodic-desktop
echo "source /opt/ros/melodic/setup.bash" >> ~/.bashrc
sudo apt install -y ros-melodic-gscam˓→Run gscam and visualize the image topic
Run the gscam by following instructions.
1. Open a new terminal and execute the following command to start roscore
roscore2. Open another terminal and execute the following commands
export GSCAM_CONFIG="v4l2src device=/dev/video0 ! video/x-raw,framerate=30/1 !
˓→ videoconvert"
rosrun gscam gscam

3. Now that a topic (ROS format message data) camera/image_raw is published, visualize thetopic by rqt_image_view. To launch rqt_image_view, open another terminal and execute thefollowing command.
rosrun rqt_image_view rqt_image_view

This command opens a window to visualize image topics. Select camera/image_raw by click‑ing the pull‑down menu on the upper left of the window (Fig. 6)

Fig. 1.6 Select a published image topic

To run gscam with multiple cameras, create a text ﬁle with the following XML message and save it
as ~/2cameras.launch. This .launch ﬁle is for streaming with 2 cameras.
8

1 TIER IV Automotive HDR Camera Getting Started Guide

Edge.Auto Getting Started Manual<launch><arg name="frame_rate" default="30"/><node name="gscam_driver_v4l_port_1" pkg="gscam" type="gscam" output="screen" ns=
˓→"port_1"><param name="camera_name" value="port_1"/><param name="frame_id" value="port_1"/><param name="camera_info_url" value="package://gscam/examples/uncalibrated_˓→parameters.ini"/><param name="gscam_config" value="v4l2src device=/dev/video0 ! video/x-raw,
˓→format=UYVY,width=1920,height=1280,framerate=30/1 ! videoconvert"/><param name="sync_sink" value="true"/></node><node name="gscam_driver_v4l_port_2" pkg="gscam" type="gscam" output="screen" ns=
˓→"port_2"><param name="camera_name" value="port_2"/><param name="frame_id" value="port_2"/><param name="camera_info_url" value="package://gscam/examples/uncalibrated_˓→parameters.ini"/><param name="gscam_config" value="v4l2src device=/dev/video1 ! video/x-raw,
˓→format=UYVY,width=1920,height=1280,framerate=30/1 ! videoconvert"/><param name="sync_sink" value="true"/></node></launch>Caution: This is the setting for C1. For C2, please change the width, height and framerate if
necessary.
Assuming that you have created /home/ros/2cameras.launch, execute the following command
to run gscam with multiple cameras.
roslaunch /home/ros/2cameras.launch

Note: For more cameras, add nodes with appropriate node name, namespace(ns), camera_name,frame_id, and gscam_conﬁg.

Record a rosbag
While running gscam, you may record a rosbag (Log ﬁle in ROS format) by
rosbag record -a

Now you may also check the information of rosbag by rosbag info
rosbag info <recorded rosbag file name># example output
path:2022-03-29-17-42-07.bagversion:
2.0
duration:
3.1s
start:
Mar 29 2022 17:42:07.97 (1648543327.97)
end:
Mar 29 2022 17:42:11.07 (1648543331.07)
size:
365.7 MBmessages:
113
compression: none [53/53 chunks]
types:
rosgraph_msgs/Log[acffd30cd6b6de30f120938c17c593fb]
sensor_msgs/CameraInfo [c9a58c1b0b154e0e6da7578cb991d214]
sensor_msgs/Image[060021388200f6f0f447d0fcd9c64743](continues on next page)

1.1. TIER IV Cameras Getting Started Guide for ADLINK ROSCube RQX‑58G

9

Edge.Auto Getting Started Manual(continued from previous page)

topics:/port_1/camera/camera_info/port_1/camera/image_raw/port_2/camera/camera_info/port_2/camera/image_raw/rosout
˓→connections)/rosout_agg

26 msgs
26 msgs
26 msgs
26 msgs
8 msgs: sensor_msgs/CameraInfo: sensor_msgs/Image: sensor_msgs/CameraInfo: sensor_msgs/Image: rosgraph_msgs/Log
(3␣

1 msg

: rosgraph_msgs/Log

1.1.4 Conﬁguration
To change driver conﬁguration, edit the conﬁguration ﬁle /etc/modprobe.d/tier4-*.conf.
(See following sections). The conﬁguration ﬁle includes the line by default. (This is the case of
C1)
options tier4_isx021 trigger_mode=0 enable_auto_exposure=1 enable_distortion_
˓→correction=1

To apply the conﬁgurations, reboot ROSCube‑X after editing.
Switch drive mode
Caution: To run the camera in slave mode, you need to input frame synchronization signal from
ROSCube‑X. please check the Shutter triggering over GMSL2 to drive cameras in slave mode
The case of C1
Camera drive mode can be switched from Master mode to Slave mode(and vice versa) by editing
the conﬁguration ﬁle.
・ Master mode: Free running mode at 30fps (Default)
・ Slave mode: Shutter triggering mode, Shutter timing, and the frame rate can be adjusted by
the FSYNC signal frequency (conﬁgurable with ROSCube‑X)
To switch modes, edit trigger_mode in /etc/modprobe.d/tier4-isx021.conf. (See following
cases)
Drive mode
MasterSlave

Frame rate
30fps
Depends on the FSYNC input frequency

trigger_mode=0
1

The case of C2
In the case of C2, the following modes can be selected by editing /etc/modprobe.d/tier4-imx490.conf. The following table shows the available settings.
Drive mode
MasterSlave
MasterSlave
MasterSlave
10

Frame rate
10fps
10fps
20fps
20fps
30fps
30fps

trigger_mode=
0
1
2
3
4
5

1 TIER IV Automotive HDR Camera Getting Started Guide

Edge.Auto Getting Started Manual
Enable/Disable Lens Distortion Correction (LDC)
Note: This setting is common for both C1 and C2.
To enable LDC, set the ﬂag enable_distortion_correction=1 (default). To disable LDC, set the
ﬂag enable_distortion_correction=0.
Enable/Disable auto exposure (AE)
Note: This setting is common for both C1 and C2.
To enable AE, set the ﬂag enable_auto_exposure=1 (default). To disable AE, set the ﬂag enable_auto_exposure=0.
Setting exposure time
The case of C1
In the case of C1, users can specify three types of exposure time via variables named shutter_time_min, shutter_time_mid, and shutter_time_max. The actual exposure time of C1
transits these three (and linearly interpolated values) corresponding to the illuminance. The val‑ues for the variables should be speciﬁed in microseconds. Users who would like to ﬁx exposure
time under arbitral illuminance conditions can set the exact same value for these variables. For
example, the following conﬁguration in /etc/modprobe.d/tier4-isx021.conf ﬁxes exposure
time to 11 ms:
shutter_time_min=11000 shutter_time_mid=11000 shutter_time_max=11000

The case of C2
Likewise C1, C2 also has capability to set two types of exposure time via variables named shutter_time_min and shutter_time_max. The unit of the value for these variables is also microsec‑
onds. For example, the following conﬁguration in /etc/modprobe.d/tier4-imx490.conf ﬁxes
exposure time to 11 ms:
shutter_time_min=11000 shutter_time_max=11000

1.1. TIER IV Cameras Getting Started Guide for ADLINK ROSCube RQX‑58G

11

Edge.Auto Getting Started Manual

1.1.5 Shutter triggering over GMSL2
Camera operation in slave mode requires triggering signals input (FSYNC input) over GMSL2. Pleaserefer to ADLINK’ s documentation for how to conﬁgure the FSYNC parameters and GPIO settings.
Preparation to drive cameras in slave mode
Check the HW version of your ROSCube‑X by executing i2cget -f -y 2 0x66 0x01 on a termi‑
nal and follow the instructions below.
When i2cget ‑f ‑y 2 0x66 0x01 returns 0x23
Execute i2cset -f -y 2 0x66 0x04 0xff before start streaming. The system requires thispreparation only once after its boot.
When i2cget ‑f ‑y 2 0x66 0x01 returns 0x21
No preparation is required.
Input FSYNC frequency for C1
You can input any frequency that is slower than 30fps.
Input FSYNC frequency for C2
For C2, the allowed FSYNC frequency depends on the drive modes. Please refer to the below list.
・ In the case of 30fps mode (trigger_mode=5): 15 < f <= 30 fps
・ In the case of 20fps mode (trigger_mode=3): 10 < f <= 20 fps
・ In the case of 10fps mode (trigger_mode=1): 5 < f <= 10 fps
FPS check
To check the FPS setting with a visualized video, please execute the following commands.
・ The camera is connected to only port 1
gst-launch-1.0 v4l2src io-mode=0 device=/dev/video0 do-timestamp=true !
˓→'video/x-raw, width=1920, height=1280, framerate=30/1, format=UYVY' !␣
˓→fpsdisplaysink video-sink=xvimagesink sync=false

・ Cameras are connected to ports 1 and 2
gst-launch-1.0 v4l2src io-mode=0 device=/dev/video0 do-timestamp=true !
˓→'video/x-raw, width=1920, height=1280, framerate=30/1, format=UYVY' !␣
˓→xvimagesink sync=false v4l2src io-mode=0 device=/dev/video1 do˓→timestamp=true ! 'video/x-raw, width=1920, height=1280, framerate=30/1,␣
˓→format=UYVY' ! fpsdisplaysink video-sink=xvimagesink sync=false

12

1 TIER IV Automotive HDR Camera Getting Started Guide

Edge.Auto Getting Started Manual

1.2 TIER IV Cameras Getting Started Guide for ADLINK ROSCubeRQX‑59G
Attention: This document is for the users of ADLINK RQX‑59G

1.2.1 Preparation
Required items
・ ADLINK ROSCube‑X RQX‑59G・ BSP version 1.4.2
・ JetPack5.1.2 (L4T R35.4.1)installed
・ GMSL2 coaxial cable (FAKRA ‑ mini FAKRA, 1:4)
・ TIER IV Automotive HDR Camera C1 or C2
Camera connection
1. Firstly, make sure that the RQX‑59G is turned oﬀ.
2. Connect cameras to the FAKRA connectors of the cable(single FAKRA connector side). Theninsert the mini FAKRA connectors of the cable to the RQX‑59G’ s GMSL2 ports.
3. Please make sure the direction of the lock clown on FAKRA connectors and mini FAKRA con‑nectors is correct (Fig.1~3).

Fig. 1.7 RosCube RQX‑59G

1.2. TIER IV Cameras Getting Started Guide for ADLINK ROSCube RQX‑59G

13

Edge.Auto Getting Started ManualFig. 1.8 Connector

Fig. 1.9 Fakra cable insertion direction

1.2.2 Power on and check the camera image stream output
Power onPower on the RQX‑59G and conﬁrm that the power‑on LED is turned on blue.

14

1 TIER IV Automotive HDR Camera Getting Started Guide

Edge.Auto Getting Started Manual
Login
On the startup window, type the password to log in.
Default settings are shown below.
user
passwordros
adlinkros

Camera driver installation
Note: As of 2024‑04‑01, to use RQX‑59G with TIER IV cameras, dedicated driver deb package isneeded.
Get the camera driver deb package from Github.
Copy the provided driver package ﬁle (tier4-camera-gmsl_1.4.2_59g_arm64.deb) to any di‑rectory in RQX‑59G (e.g. ~/driver). Then follow the command line instructions below:
1. Updating the apt package. It requires an internet connection. Then, install the driver by using
the apt install command. Please make sure *.dtbo ﬁles are generated at /boot.
# Installsudo apt update
sudo apt install make debhelper dkms
sudo apt install ~/driver/tier4-camera-gmsl_1.2.1_arm64.deb# Confirm /boot/tier4-*.dtbo exists
ls /boot/*.dtbo/boot/tier4-imx490-gmsl-device-tree-overlay-roscube-orin-r354.dtbo/boot/tier4-isx021-gmsl-device-tree-overlay-roscube-orin-r354.dtbo/boot/tier4-isx021-imx490-gmsl-device-tree-overlay-roscube-orin-r354.dtbo

2. To assign the camera for each port, you can use configure-by-hardware.py script. Pleaserefer to the camera driver’ s README page for the details. The user needs to specify an ap‑
propriate overlay command for each user’ s conﬁguration.
# For RQX-59G# Please be noted that you need to specify "1=" (not "2=")sudo /opt/nvidia/jetson-io/config-by-hardware.py -n 1="TIERIV ISX021 GMSL2␣
˓→Camera Device Tree Overlay"# Confirm kernel_tegra234-p3701-0004-rqx590-nosuspend-user-custom.dtb has␣˓→been generated
ls /boot/*.dtb/boot/kernel_tegra234-p3701-0004-rqx590-nosuspend.dtb/boot/kernel_tegra234-p3701-0004-rqx590-nosuspend-user-custom.dtb# Then, shutdown the systemsudo shutdown -h now

You can run /opt/nvidia/jetson-io/config-by-hardware.py -l to check available
overlay options.
sudo /opt/nvidia/jetson-io/config-by-hardware.py -l[sudo] password for ros:
Header 1 [default]: Jetson AGX CSI Connector
Available hardware modules:
1. TIERIV IMX490 GMSL2 Camera Device Tree Overlay(continues on next page)1.2. TIER IV Cameras Getting Started Guide for ADLINK ROSCube RQX‑59G

15

Edge.Auto Getting Started Manual(continued from previous page)

2. TIERIV ISX021 GMSL2 Camera Device Tree Overlay
3. TIERIV ISX021 IMX490 GMSL2 Camera Device Tree Overlay

For instance, to assign all GMSL ports to the C2 camera, the overlay command should besudo /opt/nvidia/jetson-io/config-by-hardware.py -n 1="TIERIV IMX490 GMSL2␣
˓→Camera Device Tree Overlay"

To Assign GMSL ports for both C1 and C2, the overlay command should besudo /opt/nvidia/jetson-io/config-by-hardware.py -n 1="TIERIV ISX021 IMX490␣
˓→GMSL2 Camera Device Tree Overlay"

In this case, ports 1, 2, 5, and 6 will be assigned to C1, and ports 3, 4, 7, and 8 will be assigned
to C2.
Please refer to the device driver GitHub repository for the details of the device overlay.
Check if the RQX‑59G recognizes cameras
Open a terminal window and type the following command. If it returns /dev/videoX, cameras arerecognized properly as video devices.
ls /dev/video*/dev/video0/dev/video1.
.
.
/dev/video7 # When 8 cameras are connected

Visualize camera output using GStreamer
Open a terminal window and type the following command. Gstreamer will launch and the camera
image stream will appear on a new window（Fig. 4, Fig.5）.
Please also refer to GStreamer command examples for various GStreamer examples.
Case 1: 1 C1 camera is connected# If cameras are running in slave mode, execute this i2cset command firsti2cset -f -y 2 0x66 0x04 0xff
# Start streaming
gst-launch-1.0 v4l2src io-mode=0 device=/dev/video0 do-timestamp=true ! 'video/x˓→raw, width=1920, height=1280, framerate=30/1, format=UYVY' ! videoscale !␣
˓→xvimagesink sync=false

16

1 TIER IV Automotive HDR Camera Getting Started Guide

Edge.Auto Getting Started Manual
Case 2: 8 C1 cameras are connected# If cameras are running in slave mode, execute this i2cset command firsti2cset -f -y 2 0x66 0x04 0xff
# Start streaming
gst-launch-1.0 v4l2src io-mode=0 device=/dev/video0 do-timestamp=true ! \'video/x-raw, width=1920, height=1280, framerate=30/1, format=UYVY' ! \xvimagesink sync=false v4l2src io-mode=0 device=/dev/video1 do-timestamp=true ! \'video/x-raw, width=1920, height=1280, framerate=30/1, format=UYVY' ! xvimagesink␣˓→sync=false \v4l2src io-mode=0 device=/dev/video2 do-timestamp=true ! \'video/x-raw, width=1920, height=1280, framerate=30/1, format=UYVY' ! xvimagesink␣˓→sync=false \v4l2src io-mode=0 device=/dev/video3 do-timestamp=true ! \'video/x-raw, width=1920, height=1280, framerate=30/1, format=UYVY' ! xvimagesink␣˓→sync=false \v4l2src io-mode=0 device=/dev/video4 do-timestamp=true ! \'video/x-raw, width=1920, height=1280, framerate=30/1, format=UYVY' ! xvimagesink␣˓→sync=false \v4l2src io-mode=0 device=/dev/video5 do-timestamp=true ! \'video/x-raw, width=1920, height=1280, framerate=30/1, format=UYVY' ! xvimagesink␣˓→sync=false \v4l2src io-mode=0 device=/dev/video6 do-timestamp=true ! \'video/x-raw, width=1920, height=1280, framerate=30/1, format=UYVY' ! xvimagesink␣˓→sync=false \v4l2src io-mode=0 device=/dev/video7 do-timestamp=true ! \'video/x-raw, width=1920, height=1280, framerate=30/1, format=UYVY' ! xvimagesink␣˓→sync=false \See also:
If there is a problem concerning unstable camera activation when you connect multiple cameras,
please refer to this page.
Case 3: 1 C2 camera is connected
gst-launch-1.0 v4l2src io-mode=0 device=/dev/video0 do-timestamp=true ! 'video/x˓→raw, width=2880, height=1860, framerate=30/1, format=UYVY' ! videoscale !␣
˓→xvimagesink sync=false

When you connect multiple C2 cameras
At RQX‑59G, four deserializer are implemented for eight GMSL ports, and two GMSL port shares
single deserializer and its bandwidth.
Even though we’ ve checked that two C2 cameras can work with one deserializer, it’ s best to use
just one camera per deserializer, especially if you’ re connecting up to four cameras.
For example:
・ Port 1 and 2 … Not recommended
・ Port 3 and 4 … Not recommended
・ Port 1 and port 3 … Recommended
・ Port 1 and 5 … Recommended

1.2. TIER IV Cameras Getting Started Guide for ADLINK ROSCube RQX‑59G

17

Edge.Auto Getting Started ManualFig. 1.10 Visualized camera output

Fig. 1.11 Visualized camera output (x8 cameras)

1.2.3 Record video data as rosbag (ROS format log data)
Install ROS melodic and gscam (ROS camera driver for GStreamer)
Install ROS melodic and gscam by following command line instructions.
Caution: The installation command may change. If the following commands do not work,
please refer to the ROS oﬃcial documentation.
sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" >˓→ /etc/apt/sources.list.d/ros-latest.list'
curl -s https://raw.githubusercontent.com/ros/rosdistro/master/ros.asc | sudo apt(continues on next page)18

1 TIER IV Automotive HDR Camera Getting Started Guide

Edge.Auto Getting Started Manual(continued from previous page)

key add sudo apt update
sudo apt install ros-melodic-desktop
echo "source /opt/ros/melodic/setup.bash" >> ~/.bashrc
sudo apt install -y ros-melodic-gscam˓→Run gscam and visualize the image topic
Run the gscam by following instructions.
1. Open a new terminal and execute the following command to start roscore
roscore2. Open another terminal and execute the following commands
export GSCAM_CONFIG="v4l2src device=/dev/video0 ! video/x-raw,framerate=30/1 !
˓→ videoconvert"
rosrun gscam gscam

3. Now that a topic (ROS format message data) camera/image_raw is published, visualize thetopic by rqt_image_view. To launch rqt_image_view, open another terminal and execute thefollowing command.
rosrun rqt_image_view rqt_image_view

This command opens a window to visualize image topics. Select camera/image_raw by click‑ing the pull‑down menu on the upper left of the window (Fig. 6)

Fig. 1.12 Select a published image topic

To run gscam with multiple cameras, create a text ﬁle with the following XML message and save it
as ~/2cameras.launch. This .launch ﬁle is for streaming with 2 cameras.
1.2. TIER IV Cameras Getting Started Guide for ADLINK ROSCube RQX‑59G

19

Edge.Auto Getting Started Manual<launch><arg name="frame_rate" default="30"/><node name="gscam_driver_v4l_port_1" pkg="gscam" type="gscam" output="screen" ns=
˓→"port_1"><param name="camera_name" value="port_1"/><param name="frame_id" value="port_1"/><param name="camera_info_url" value="package://gscam/examples/uncalibrated_˓→parameters.ini"/><param name="gscam_config" value="v4l2src device=/dev/video0 ! video/x-raw,
˓→format=UYVY,width=1920,height=1280,framerate=30/1 ! videoconvert"/><param name="sync_sink" value="true"/></node><node name="gscam_driver_v4l_port_2" pkg="gscam" type="gscam" output="screen" ns=
˓→"port_2"><param name="camera_name" value="port_2"/><param name="frame_id" value="port_2"/><param name="camera_info_url" value="package://gscam/examples/uncalibrated_˓→parameters.ini"/><param name="gscam_config" value="v4l2src device=/dev/video1 ! video/x-raw,
˓→format=UYVY,width=1920,height=1280,framerate=30/1 ! videoconvert"/><param name="sync_sink" value="true"/></node></launch>Caution: This is the setting for C1. For C2, please change the width, height and framerate if
necessary.
Assuming that you have created /home/ros/2cameras.launch, execute the following command
to run gscam with multiple cameras.
roslaunch /home/ros/2cameras.launch

Note: For more cameras, add nodes with appropriate node name, namespace(ns), camera_name,frame_id, and gscam_conﬁg.

Record a rosbag
While running gscam, you may record a rosbag (Log ﬁle in ROS format) by
rosbag record -a

Now you may also check the information of rosbag by rosbag info
rosbag info <recorded rosbag file name># example output
path:2022-03-29-17-42-07.bagversion:
2.0
duration:
3.1s
start:
Mar 29 2022 17:42:07.97 (1648543327.97)
end:
Mar 29 2022 17:42:11.07 (1648543331.07)
size:
365.7 MBmessages:
113
compression: none [53/53 chunks]
types:
rosgraph_msgs/Log[acffd30cd6b6de30f120938c17c593fb]
sensor_msgs/CameraInfo [c9a58c1b0b154e0e6da7578cb991d214]
sensor_msgs/Image[060021388200f6f0f447d0fcd9c64743](continues on next page)20

1 TIER IV Automotive HDR Camera Getting Started Guide

Edge.Auto Getting Started Manual(continued from previous page)

topics:/port_1/camera/camera_info/port_1/camera/image_raw/port_2/camera/camera_info/port_2/camera/image_raw/rosout
˓→connections)/rosout_agg

26 msgs
26 msgs
26 msgs
26 msgs
8 msgs: sensor_msgs/CameraInfo: sensor_msgs/Image: sensor_msgs/CameraInfo: sensor_msgs/Image: rosgraph_msgs/Log
(3␣

1 msg

: rosgraph_msgs/Log

1.2.4 Conﬁguration
To change driver conﬁguration, edit the conﬁguration ﬁle /etc/modprobe.d/tier4-*.conf.
(See following sections). The conﬁguration ﬁle includes the line by default. (This is the case of
C1)
options tier4_isx021 trigger_mode=0 enable_auto_exposure=1 enable_distortion_
˓→correction=1

To apply the conﬁgurations, reboot RQX‑59G after editing.
Switch drive mode
Caution: To run the camera in slave mode, you need to input frame synchronization signal from
RQX‑59G. please check the Shutter triggering over GMSL2 to drive cameras in slave mode.
Please refer to the ADLINK’ s documentation regarding trigger input how to generate the trigger
signal from RQX‑59G.
The case of C1
Camera drive mode can be switched from Master mode to Slave mode(and vice versa) by editing
the conﬁguration ﬁle.
・ Master mode: Free running mode at 30fps (Default)
・ Slave mode: Shutter triggering mode, Shutter timing, and the frame rate can be adjusted by
the FSYNC signal frequency (conﬁgurable with RQX‑59G)
To switch modes, edit trigger_mode in /etc/modprobe.d/tier4-isx021.conf. (See following
cases)
Drive mode
MasterSlave

Frame rate
30fps
Depends on the FSYNC input frequency

trigger_mode=0
1

The case of C2
In the case of C2, the following modes can be selected by editing /etc/modprobe.d/tier4-imx490.conf. The following table shows the available settings.

1.2. TIER IV Cameras Getting Started Guide for ADLINK ROSCube RQX‑59G

21

Edge.Auto Getting Started Manual

Drive mode
MasterSlave
MasterSlave
MasterSlave

Frame rate
10fps
10fps
20fps
20fps
30fps
30fps

trigger_mode=
0
1
2
3
4
5

Enable/Disable Lens Distortion Correction (LDC)
Note: This setting is common for both C1 and C2.
To enable LDC, set the ﬂag enable_distortion_correction=1 (default). To disable LDC, set the
ﬂag enable_distortion_correction=0.
Enable/Disable auto exposure (AE)
Note: This setting is common for both C1 and C2.
To enable AE, set the ﬂag enable_auto_exposure=1 (default). To disable AE, set the ﬂag enable_auto_exposure=0.
Setting exposure time
The case of C1
In the case of C1, users can specify three types of exposure time via variables named shutter_time_min, shutter_time_mid, and shutter_time_max. The actual exposure time of C1
transits these three (and linearly interpolated values) corresponding to the illuminance. The val‑ues for the variables should be speciﬁed in microseconds. Users who would like to ﬁx exposure
time under arbitral illuminance conditions can set the exact same value for these variables. For
example, the following conﬁguration in /etc/modprobe.d/tier4-isx021.conf ﬁxes exposure
time to 11 ms:
shutter_time_min=11000 shutter_time_mid=11000 shutter_time_max=11000

The case of C2
Likewise C1, C2 also has capability to set two types of exposure time via variables named shutter_time_min and shutter_time_max. The unit of the value for these variables is also microsec‑
onds. For example, the following conﬁguration in /etc/modprobe.d/tier4-imx490.conf ﬁxes
exposure time to 11 ms:
shutter_time_min=11000 shutter_time_max=11000

22

1 TIER IV Automotive HDR Camera Getting Started Guide

Edge.Auto Getting Started Manual

1.2.5 Shutter triggering over GMSL2
Camera operation in slave mode requires triggering signals input (FSYNC input) over GMSL2. Pleaserefer to ADLINK’ s documentation for how to conﬁgure the FSYNC parameters and GPIO settings.
Preparation to drive cameras in slave mode
Check the HW version of your RQX‑59G by executing i2cget -f -y 2 0x66 0x01 on a terminal
and follow the instructions below.
Please conﬁrm that returned value is at least 0x24.
i2cget -f -y 2 0x66 0x01
0x24

Input FSYNC frequency for C1
You can input any frequency that is slower than 30fps.
Input FSYNC frequency for C2
For C2, the allowed FSYNC frequency depends on the drive modes. Please refer to the below list.
・ In the case of 30fps mode (trigger_mode=5): 15 < f <= 30 fps
・ In the case of 20fps mode (trigger_mode=3): 10 < f <= 20 fps
・ In the case of 10fps mode (trigger_mode=1): 5 < f <= 10 fps
FPS check
To check the FPS setting with a visualized video, please execute the following commands.
・ The camera is connected to only port 1
gst-launch-1.0 v4l2src io-mode=0 device=/dev/video0 do-timestamp=true !
˓→'video/x-raw, width=1920, height=1280, framerate=30/1, format=UYVY' !␣
˓→fpsdisplaysink video-sink=xvimagesink sync=false

・ Cameras are connected to ports 1 and 2
gst-launch-1.0 v4l2src io-mode=0 device=/dev/video0 do-timestamp=true !
˓→'video/x-raw, width=1920, height=1280, framerate=30/1, format=UYVY' !␣
˓→xvimagesink sync=false v4l2src io-mode=0 device=/dev/video1 do˓→timestamp=true ! 'video/x-raw, width=1920, height=1280, framerate=30/1,␣
˓→format=UYVY' ! fpsdisplaysink video-sink=xvimagesink sync=false

1.2.6 Reference
・ ADLINK’ s documentation

1.2. TIER IV Cameras Getting Started Guide for ADLINK ROSCube RQX‑59G

23

Edge.Auto Getting Started Manual

1.3 TIER IV Cameras Getting Started Guide for Nvidia Jetson AGX
Orin/Xavier Developer Kit
Attention: This document is for the users of NVIDIA Jetson devkit Xavier/Orin

1.3.1 List of Required Equipment
・ Nvidia Jetson AGX Orin Developer Kit or Nvidia Jetson AGX Xavier Developer Kit x 1
・ Deserializer kit– LI‑JXAV‑MIPI‑ADPT‑4CAM x 1– LI‑GMSL2‑IPX‑DESER x 1~4 (1 per 2cameras)– FAW‑1233‑03 x 1~4 (1 per 2cameras)
・ GMSL2 Cable(FAKRA C‑FAKRA C) x 1~8 (1 per 1 cameras)
・ TIER IV AUTOMOTIVE HDR CAMERA C1 x 1~6 or C2

1.3.2 Hardware connection
Make sure the power of the Jetson AGX Orin Developer Kit (hereinafter referred to as Devkit) is
turned oﬀ. After conﬁrming, attach the Deserializer Kit and cameras as shown below. Refer to thefollowing steps and connect each component accordingly.
C1 Camera <== GMSL2 cable(FAKRA Connector) ==> LI-GMSL2-IPX-DESER <== FAW-1233-03␣˓→==> MIPI-ADPT-4CAM <=> Jetson
AGX Orin Developer Kit

Connection of Deserializer Kit and Camera
Connect the LI‑JXAV‑MIPI‑ADPT‑4CAM to the connector on the rear side of the Devkit.
Note: The LI‑JXAV‑MIPI‑ADPT‑4CAM is designed for the Jetson AGX Xavier Developer Kit, so there
may be slight interference with the enclosure when connecting it to the Jetson AGX Orin Developer
Kit. Please use it with caution, or consider using the adapter mentioned in the link to prevent any
issuesNext, insert the FAW‑1233‑03 cable into CH1 of the LI‑MAX9296‑IPX‑DESER.
Insert the other end of the previously connected cable into Port A of the LI‑MAX9296‑IPX‑DESER.
For single‑camera evaluation, insert the FAKRA connector of the GMSL2 cable into Port A of the
LI‑MAX9296‑IPX‑DESER. For connecting two cameras, connect the FAKRA connector to Port A andPort B.
Attention: Please be noticed that you need to supply 12V for deserializer from external AC
adapter, separately.
Connect the camera to the other FAKRA connector of the GMSL2 cable. Ensure that the side withthe silver label is facing upwards.

24

1 TIER IV Automotive HDR Camera Getting Started Guide

Edge.Auto Getting Started ManualFig. 1.13 Connection Examples for Each Component (Orin Devkit, 1 Camera)

Fig. 1.14 Connection Examples for Each Component (Xavier Devkit, 1 Camera)

1.3. TIER IV Cameras Getting Started Guide for Nvidia Jetson AGX Orin/Xavier Developer Kit
25

Edge.Auto Getting Started ManualFig. 1.15 Example of the cable connection (4 cameras)

Fig. 1.16 LI‑JXAV‑MIPI‑ADPT‑4CAM connector

26

1 TIER IV Automotive HDR Camera Getting Started Guide

Edge.Auto Getting Started ManualFig. 1.17 Example of FAW‑1233‑03 Cable Connection

Fig. 1.18 Example of LI‑MAX9296‑IPX‑DESER Cable Connection

1.3. TIER IV Cameras Getting Started Guide for Nvidia Jetson AGX Orin/Xavier Developer Kit
27

Edge.Auto Getting Started ManualFig. 1.19 Camera Orientation and Cable Insertion Direction (Silver Label Side Up)

Other Hardware Connections
If necessary, connect a mouse, keyboard, HDMI cable, etc., to the Devkit.

1.3.3 Software Setup
Software Requirements
Please verify if your Devkit meets the software requirements for the following drivers:
SoftwareVersionDownload Link

JetPack
tier4‑gmsl‑camera

5.1.1 or 5.1.2
1.2.1 or higher

Nvidia Jetson quickstart guide
TIER IV Camera driver repository

New in version v1.4.1: Camera driver 1.4.1 supports C2 camera
New in version v1.4.5: Camera driver 1.4.5 supports Jetpack 5.1.2 for Nvidia AGX Orin Development
Kit
If your target Devkit does not meet the software requirements, please proceed with the installationof JetPack. There are two methods available for JetPack installation:
1. Manual Installation: Download the JetPack data from the provided link and perform the in‑stallation manually.
2. Nvidia SDK Manager: Use the Nvidia SDK Manager for installation.
28

1 TIER IV Automotive HDR Camera Getting Started Guide

Edge.Auto Getting Started Manual
We recommend using the SDK Manager (method 2) for installation to ensure a smoother installation
process and avoid potential installation problems.
Caution: Nvidia SDK Manager cannot be used to install JetPack if you have Ubuntu 22.04.

Driver Package Installation
This step should be performed on the Devkit.
Copy the driver package ﬁle (obtain the latest version from the provided link) to any directory of
your choice. After the copy is complete, enter the following command: ※ Replace x.x.x with thedriver version. Specify the version of the downloaded driver.
cd <Directory of your choice>sudo apt install ./tier4-camera-gmsl_x.x.x_arm64.deb

After installing the driver, you need to generate a custom dtb ﬁle to deﬁne the assignment of cam‑eras for each GMSL port. Please refer camera driver installation for the details. You also can refer tothe getting started guide for ADLINK ROSCube for some examples of overlay the commands.
# This is the case that all GMSL ports are assigned as C1
sudo /opt/nvidia/jetson-io/config-by-hardware.py -n 2="TIERIV ISX021 GMSL2 Camera␣
˓→Device Tree Overlay"
sudo shutdown -h now # Power off

After completing the process, please restart the Devkit.
After installing the drivers, you may encounter error messages related to i2c write errors or similar
issues in the kernel messages (syslog or dmesg command output). These errors are typically related
to ports where cameras are not connected, and you can proceed with camera image acquisition
without any problems.
Example error message:Jun 29 17:13:53 jetson-desktop kernel: [11.114217] tier4_max9295 30-0062:␣
˓→[tier4_max9295_write_reg] : Max9295 I2C write failed.
Reg Address = 0x0000 ␣
˓→Data= 0xC0.
Jun 29 17:13:53 jetson-desktop kernel: [11.115551] tier4_max9295 30-0060:␣
˓→[tier4_max9295_write_reg] : Max9295 I2C write failed.
Reg Address = 0x0010 ␣
˓→Data= 0x22.
Jun 29 17:13:53 jetson-desktop kernel: [11.116391] tier4_max9295 30-0060:␣
˓→[tier4_max9295_setup_control]: Ser device not foundJun 29 17:13:53 jetson-desktop kernel: [11.116617] tier4_isx021 30-001c: [tier4_
˓→isx021_gmsl_serdes_setup] : Failed to setup GMSL serializer.
Jun 29 17:13:53 jetson-desktop kernel: [11.116873] tier4_isx021 30-001c: [tier4_
˓→isx021_probe] : Failed GMSL Serdes setup.
Jun 29 17:13:53 jetson-desktop kernel: [11.117134] tier4_isx021: probe of 30˓→001c failed with error -121
Jun 29 17:13:53 jetson-desktop kernel: [11.117340] tier4_isx021 30-001b: [tier4_
˓→isx021_probe] : Probing V4L2 Sensor.
Jun 29 17:13:53 jetson-desktop kernel: [11.117666] debugfs: Directory 'isx021_a
˓→' with parent '/' already present!
Jun 29 17:13:53 jetson-desktop kernel: [11.117871] tier4_isx021 30-001b:␣
˓→tegracam sensor driver:isx021_v2.0.6
Jun 29 17:13:53 jetson-desktop kernel: [11.226016] tier4_max9295 30-0062:␣
˓→[tier4_max9295_write_reg] : Max9295 I2C write failed.
Reg Address = 0x0000 ␣
˓→Data= 0x84.
Jun 29 17:13:53 jetson-desktop kernel: [11.227182] tier4_max9295 30-0042:␣
˓→[tier4_max9295_write_reg] : Max9295 I2C write failed.
Reg Address = 0x0010 ␣
˓→Data= 0x21.
(continues on next page)

1.3. TIER IV Cameras Getting Started Guide for Nvidia Jetson AGX Orin/Xavier Developer Kit
29

Edge.Auto Getting Started Manual(continued from previous page)Jun 29 17:13:53 jetson-desktop kernel: [11.228005] tier4_max9295 30-0042:␣
˓→[tier4_max9295_setup_control]: Ser device not foundJun 29 17:13:53 jetson-desktop kernel: [11.228218] tier4_isx021 30-001b: [tier4_
˓→isx021_gmsl_serdes_setup] : Failed to setup GMSL serializer.
Jun 29 17:13:53 jetson-desktop kernel: [11.228465] tier4_isx021 30-001b: [tier4_
˓→isx021_probe] : Failed GMSL Serdes setup.
Jun 29 17:13:53 jetson-desktop kernel: [11.228717] tier4_isx021: probe of 30˓→001b failed with error -121

When using NVMe storage (M.2 SSD)
Please be aware that if you have installed the operating system on the NVMe storage, the system
may be reading the conﬁguration from the onboard storage. If the camera devices are not visible
even after restarting, in addition to the setup instructions provided earlier, you may need to mountthe onboard storage and copy the following ﬁles to the /boot directory on the onboard storage:- /boot/extlinux/extlinux.conf- /boot/kernel_tegra234-p3701-0000-p3737-0000-user-custom.dtb

1.3.4 Camera Image Acquisition
Conﬁrm the Camera Devices
Open a terminal and run the following command to verify if the cameras are recognized as v4l2
devices. If the number of video devices matches the number of connected cameras, the camera
recognition check is complete.
ls /dev/video*/dev/video0/dev/video1.
.

Camera Image Data Acquisition
Open a terminal and execute the following command to start image acquisition using Gstreamer. A
new window will open, displaying the camera image.
Example 1: Evaluation with a C1 camera
gst-launch-1.0 v4l2src io-mode=0 device=/dev/video0 do-timestamp=true ! 'video/x˓→raw, width=1920, height=1280, framerate=30/1, format=UYVY' ! videoscale !␣
˓→xvimagesink sync=false

30

1 TIER IV Automotive HDR Camera Getting Started Guide

Edge.Auto Getting Started ManualFig. 1.20 Example of Camera Image Data Acquisition

Example 2: Evaluation with four C1 cameras
gst-launch-1.0 v4l2src io-mode=0 device=/dev/video0 do-timestamp=true ! \'video/x-raw, width=1920, height=1280, framerate=30/1, format=UYVY' ! \xvimagesink sync=false v4l2src io-mode=0 device=/dev/video1 do-timestamp=true ! \'video/x-raw, width=1920, height=1280, framerate=30/1, format=UYVY' ! xvimagesink␣˓→sync=false \v4l2src io-mode=0 device=/dev/video2 do-timestamp=true ! \'video/x-raw, width=1920, height=1280, framerate=30/1, format=UYVY' ! xvimagesink␣˓→sync=false \v4l2src io-mode=0 device=/dev/video3 do-timestamp=true ! \'video/x-raw, width=1920, height=1280, framerate=30/1, format=UYVY' ! xvimagesink␣˓→sync=false

Example 3: Evaluation with a C2 camera
gst-launch-1.0 v4l2src io-mode=0 device=/dev/video0 do-timestamp=true ! 'video/x˓→raw, width=2880, height=1860, framerate=30/1, format=UYVY' ! videoscale !␣
˓→xvimagesink sync=false

Note: You can also utilize the gstreamer launch script.

Note: If you encounter the error message ‘no element “v4l2src”’ , please delete the directory~/.cache/gstreamer‑1.0 and try the command again.

Constraint on camera boot order (For driver version earlier than v1.1.1)
If you are using a driver version earlier than v1.1.1, please follow the speciﬁc instructions for boot‑1.3. TIER IV Cameras Getting Started Guide for Nvidia Jetson AGX Orin/Xavier Developer Kit
31

Edge.Auto Getting Started ManualFig. 1.21 Example of Camera Image Data Acquisition (Four Cameras)

ing. For driver versions v1.2.1 and later, there are no ordering or constraint requirements
When using multiple cameras, all the cameras need to be started simultaneously.
For example, if you are using two cameras, you need to start image acquisition with the following
one‑liner command:```# This one-liner command works
tier4@jetson:~$ gst-launch-1.0 v4l2src io-mode=0 device=/dev/video0 do˓→timestamp=true ! \'video/x-raw, width=1920, height=1280, framerate=30/1, format=UYVY' ! \xvimagesink sync=false v4l2src io-mode=0 device=/dev/video1 do-timestamp=true ! \'video/x-raw, width=1920, height=1280, framerate=30/1, format=UYVY' ! xvimagesink␣˓→sync=false \```These separated commands may not work:```# These separated commands may not work
# On a terminal
tier4@jetson:~$ gst-launch-1.0 v4l2src io-mode=0 device=/dev/video0 do˓→timestamp=true ! \'video/x-raw, width=1920, height=1280, framerate=30/1, format=UYVY' ! \xvimagesink sync=false# On another terminal
tier4@jetson:~$ gst-launch-1.0 v4l2src io-mode=0 device=/dev/video1 do˓→timestamp=true ! \'video/x-raw, width=1920, height=1280, framerate=30/1, format=UYVY' ! \xvimagesink sync=false(continues on next page)

32

1 TIER IV Automotive HDR Camera Getting Started Guide

Edge.Auto Getting Started Manual(continued from previous page)```

1.3.5 Recording Image Data
You can use Gstreamer to record the image data while encoding it in H.265. Please modify the bi‑
trate, ﬁle name, and other parameters according to your needs.
Example 1: Recording with a C1 camera
gst-launch-1.0 -e v4l2src io-mode=0 device=/dev/video0 do-timestamp=true ! 'video/
˓→x-raw, width=1920, height=1280, framerate=30/1, format=UYVY' ! nvvidconv !␣
˓→nvv4l2h265enc bitrate=3000000 ! h265parse ! qtmux ! filesink location=out.mp4

Example 2: Recording with two C2 cameras
gst-launch-1.0 -e v4l2src io-mode=0 device=/dev/video0 do-timestamp=true ! 'video/
˓→x-raw, width=1920, height=1280, framerate=30/1, format=UYVY' ! tee name=camera1␣
˓→v4l2src io-mode=0 device=/dev/video1 do-timestamp=true ! 'video/x-raw,␣
˓→width=1920, height=1280, framerate=30/1, format=UYVY' ! tee name=camera2 camera1.
˓→ ! nvvidconv ! nvv4l2h265enc bitrate=3000000 ! h265parse !
qtmux ! filesink␣˓→location=out_1.mp4 camera2. ! nvvidconv ! nvv4l2h265enc bitrate=3000000 !␣
˓→h265parse !
qtmux ! filesink location=out_2.mp4

In the case of the C2 camera, please change the width, height, and framerate settings appropri‑
ately. width=2880 and height=1860.

1.3.6 Using Camera Image Data with ROS2
ROS2 Installation
The latest distribution provided by Jetpack is Ubuntu 20.04. The ROS2 distribution compatible with
Ubuntu 20.04 is Galactic. However, Galactic has reached its end of life (EOL), so please install Hum‑ble either by building from the source or using Docker. Please refer to the below links for the details
of installation.
・ In the case of building Humble from the source
・ In the case of using Docker (recommended)
We recommend using Docker because building ROS2 Humble from source on Jetson Orin (Ubuntu
20.04) may fail due to OS incompatibility.
Node Installation (if not installed yet)
We recommend using the v4l2_camera node. Please refer to the Github repository for installation
instructions.

1.3. TIER IV Cameras Getting Started Guide for Nvidia Jetson AGX Orin/Xavier Developer Kit
33

Edge.Auto Getting Started ManualStart v4l2_camera Node and Visualize Image Data Topics
Open a terminal and start the v4l2_camera node with the following command:ros2 run v4l2_camera v4l2_camera_node --ros-args \-p video_device:=/dev/video0 \-p pixel_format:=UYVY \-p image_size:=[1920,1280]

Note: In the case of C2, please change the conﬁguration of image_size to [2880,1860].
The image topic (in ROS format) /image_raw will be published. Use rqt_image_view to visualize it.
Open a new terminal and execute the following command to launch rqt_image_view:ros2 run rqt_image_view rqt_image_view

Recording rosbag
While the v4l2_camera node is running, you can record rosbag (ROS format log ﬁles) using the fol‑lowing command:ros2 bag record -a

1.3.7 Conﬁguration
To modify camera driver settings, edit the /etc/modprobe.d/tier4‑*.conf ﬁle. The conﬁguration ﬁlecontains the following lines (the case of tier4‑isx021.conf):# /etc/modprobe.d/tier4-isx021.conf
options tier4_isx021 trigger_mode=0 enable_auto_exposure=1 enable_distortion_
˓→correction=1

After editing these ﬂags, restart the system for the changes to take eﬀect.
Switching Drive Modes (Freerun/Trigger)
Warning: Please note that drive mode switching is not supported on Jetson Orin/Xavier Devel‑
opment Kit. as there is no FSYNC input function on Jetson Orin/Xavier devkit. Changing fromthe default settings may cause unintended behavior, so please refrain from doing so.
The case of C1
Drive mode is ﬁxed to 30fps freerun mode. Other drive mode is not supported.

34

1 TIER IV Automotive HDR Camera Getting Started Guide

Edge.Auto Getting Started Manual
The case of C2

Drive mode
MasterMasterMasterFrame rate
10fps
20fps
30fps

trigger_mode=0
2
4

Enabling/Disabling Lens Distortion Correction (LDC) Feature
You can enable or disable the Lens Distortion Correction (LDC) feature by modifying the value of theenable_distortion_correction ﬂag.
To enable Lens Distortion Correction, set enable_distortion_correction=1. To disable Lens Distor‑
tion Correction, set enable_distortion_correction=0.
Setting exposure time
The case of C1
In the case of C1, users can specify three types of exposure time via variables named shutter_time_min, shutter_time_mid, and shutter_time_max. The actual exposure time of C1
transits these three (and linearly interpolated values) corresponding to the illuminance. The val‑ues for the variables should be speciﬁed in microseconds. Users who would like to ﬁx exposure
time under arbitral illuminance conditions can set the exact same value for these variables. For
example, the following conﬁguration in /etc/modprobe.d/tier4-isx021.conf ﬁxes exposure
time to 11 ms:
shutter_time_min=11000 shutter_time_mid=11000 shutter_time_max=11000

The case of C2
Likewise C1, C2 also has capability to set two types of exposure time via variables named shutter_time_min and shutter_time_max. The unit of the value for these variables is also microsec‑
onds. For example, the following conﬁguration in /etc/modprobe.d/tier4-imx490.conf ﬁxes
exposure time to 11 ms:
shutter_time_min=11000 shutter_time_max=11000

For other parameter adjustments
Please refer to the T4cam‑ctrl user manual

1.4 TIER IV Cameras Getting Started Guide for Vecow EAC‑5000
Attention: This document is for the users of Vecow EAC‑5000

1.4.1 Preparation
Required items
・ Vecow EAC‑5000
1.4. TIER IV Cameras Getting Started Guide for Vecow EAC‑5000

35

Edge.Auto Getting Started Manual– Jetpack 5.1.1 (Linux for Tegra 35.3.1) installed
・ GMSL2 coaxial cable
・ TIER IV Automotive HDR Camera C1 or C2
Camera connection
1. Firstly, make sure that the EAC‑5000 is turned oﬀ.
2. Connect cameras to EAC‑5000 using the FAKRA cables.

1.4.2 Power on and log inPower onPower on the EAC‑5000 and conﬁrm that the power‑on LED is turned on blue.
Login
On the startup window, type the password to log in.
Default settings are shown below.
user
password

ubuntuubuntu1.4.3 Camera driver installation
Note: Installation process is diﬀerent from the other ECUs
Currently, EAC‑5000 has issues with building and loading the out‑of‑tree modules.
We provide the pre‑built drivers and the installation script to avoid dealing with the complicatedkernel stuﬀ.
Please download the pre‑build driver from our GitHub release page
1. Extract the tarball and run ./install.sh to install the camera drivers.
tar -xzvf tier4-drivers-for-eac-5000.tar.gz
cd tier4-drivers-for-eac-5000/./install.sh

2. The installation script does the following steps for you:・ Install the camera drivers’ conﬁguration ﬁles・ Install the pre‑built camera drivers
・ Install the pre‑built device‑tree blob
・ Create a new boot entry in the /boot/extlinux/extlinux.conf
3. After running the installation script, you can run /opt/nvidia/jetson-io/
configure-by-hardware.py. The following prompt should appear.
[*] Now you can run config-by-hardware.py

36

1 TIER IV Automotive HDR Camera Getting Started Guide

Edge.Auto Getting Started Manual
4. Select the GMSL port assignment by using configure-by-hardware.py. For the details,
please refer to GitHub README.
sudo /opt/nvidia/jetson-io/config-by-hardware.py -lThis command will output the following:
Header 1 [default]: Jetson 40pin Header
Available hardware modules:
1. Adafruit SPH0645LM4H
2. Adafruit UDA1334A
3. FE-PI Audio V1 and Z V2
4. ReSpeaker 4 Mic Array
5. ReSpeaker 4 Mic Linear Array
Header 2: Jetson AGX CSI Connector
Available hardware modules:
1. Jetson Camera Dual-IMX274
2. Jetson Camera E3331 module
3. Jetson Camera E3333 module
4. Jetson Camera Hawk-Owl p3762 module
5. Jetson Camera IMX185
6. Jetson Camera IMX390
7. Jetson Camera e3653-dual-Hawk module
8. TIERIV IMX490 GMSL2 Camera Device Tree Overlay
9. TIERIV ISX021 GMSL2 Camera Device Tree Overlay
10. TIERIV ISX021 IMX490 GMSL2 Camera Device Tree Overlay
Header 3: Jetson M.2 Key E Slot
No hardware configurations found!

Then please select the GMSL port assignment.
sudo /opt/nvidia/jetson-io/config-by-hardware.py -n 2='TIERIV ISX021 GMSL2␣
˓→Camera Device Tree Overlay'

The command above assigns the C1 camera for all GMSL ports. Please modify after 2= ac‑cording to your preference.
5. Rebootsudo reboot now

6. Make sure that the camera device ﬁle (/dev/video*) is createdls -al /dev/video*

You need to make sure extlinux.conf is well‑formed and valid after the installation script is ﬁn‑ished. This step may require your manual editing.

1.4.4 Visualize the camera output using GStreamer
The procedure to output the image using Gstreamer is identical to the other ECUs. Please refer tothe manual.
Please also refer to the GStreamer command examples.

1.4. TIER IV Cameras Getting Started Guide for Vecow EAC‑5000

37

Edge.Auto Getting Started Manual

1.4.5 Restrictions
Caution: EAC‑5000 does not supports Camera trigger (FSYNC) function as a default conﬁgura‑tion. TIER IV camera’ s frame synchronization function is not supported with combination with
EAC‑5000.

1.5 TIER IV Cameras Getting Started Guide for Connect Tech Anvil
Attention: This document is for the users of Connect Tech Anvil

1.5.1 Preparation
Required items
・ Connect Tech Anvil– BSP: AGX Orin L4T r35.4.1
・ Fakra coaxial cable
・ TIER IV Automotive HDR Camera C1 or C2
Camera connection
1. Firstly, make sure that the Anvil is turned oﬀ.
2. Connect cameras to Anvil using the FAKRA cables.

1.5.2 Power on and log inPower onPower on the Anvil.
Login
On the startup window, type the password to log in.
Default settings are shown below.
user
password

38

nvidianvidia

1 TIER IV Automotive HDR Camera Getting Started Guide

Edge.Auto Getting Started Manual

1.5.3 Camera driver installation
Note: Installation process is diﬀerent from the other ECUs
Currently, Anvil has issues with building and loading the out‑of‑tree modules.
We provide the pre‑built drivers and the installation script to avoid dealing with the complicatedkernel stuﬀ.
Please download the pre‑build driver from our GitHub release page
1. Extract the tarball and run ./install.sh to install the camera drivers.
tar -xzvf tier4-camera-drivers-for-anvil.tar.gz
cd tier4-camera-drivers-for-anvil
sudo ./install.sh

2. The installation script does the following steps for you:・ Install the camera drivers’ conﬁguration ﬁles・ Install the pre‑built camera drivers
・ Install the pre‑built device‑tree blob
・ Create a new boot entry in the /boot/extlinux/extlinux.conf
3. After running the installation script, you can run /opt/nvidia/jetson-io/
configure-by-hardware.py. The following prompt should appear.
[*] Installing configuration files...
[*] Enabling the C1 firmware...
Adding firmware to initrd...
42009 blocks
42009 blocks
INITRD Updated with Tier4 firmware.
[*] Installing the camera drivers...
[*] Renaming the existing base devicetree blobs: /boot/dtb/tegra234-orin-agx˓→cti-AGX201-JCB002-base.dtb[*] Copying the new devicetree blob[*] Copying the new kernel image with VI patches applied[*] Adding an entry to /boot/extlinux/extlinux.conf[*] Making the entry the default one[*] You can run config-by-hardware.sh to enable TIER IV cameras after␣
˓→rebooting[!] Please make sure extlinux.conf is well-formed and valid before rebooting.

4. Select the GMSL port assignment by using configure-by-hardware.py. For the details,
please refer to GitHub README.
sudo /opt/nvidia/jetson-io/config-by-hardware.py -lThis command will output the following:
Header 1 [default]: Jetson AGX CSI Connector
Available hardware modules:
1. TIERIV GMSL2 Camera Device Tree Overlay: C1x4 C2x4
2. TIERIV GMSL2 Camera Device Tree Overlay: C1x8
3. TIERIV GMSL2 Camera Device Tree Overlay: C2x8

Then please select the GMSL port assignment. For instance, if you assign all GMSL ports to
the C1, you set:
1.5. TIER IV Cameras Getting Started Guide for Connect Tech Anvil

39

Edge.Auto Getting Started Manual
sudo /opt/nvidia/jetson-io/config-by-hardware.py -n 1='TIERIV GMSL2 Camera␣
˓→Device Tree Overlay: C1x8'

The command above assigns the C1 camera for all GMSL ports. Please modify after
1= according to your preference. The following output should appear in case configure-by-hardware.py ﬁnishes successfully.
Configuration saved to /boot/tegra234-orin-agx-cti-AGX201-JCB002-base-user˓→custom.dtb.
Reboot system to reconfigure.

5. Rebootsudo reboot now

6. Make sure that the camera device ﬁle (/dev/video*) is createdls -al /dev/video*

You need to make sure extlinux.conf is well‑formed and valid after the installation script is ﬁn‑ished. This step may require your manual editing.

1.5.4 Visualize the camera output using GStreamer
The procedure to output the image using GStreamer is identical to the other ECUs. Please refer tothe manual.
Please also refer to the GStreamer command examples.

1.5.5 Restrictions
Caution: Camera synchronization function will be supported in case of the combination withAnvil.

1.5.6 Reference document
・ Anvil user guide・ Anvil release note40

1 TIER IV Automotive HDR Camera Getting Started Guide41

2

Sensor fusion development kit getting started guide2.1 Hardware setup
As a ﬁrst step, prepare your hardware including Sensor and ECU.

2.1.1 Sample hardware conﬁguration
This following hardware conﬁguration is used throughout this tutorial.
・ ECU setup– x86‑based ECU: ADLINK AVA‑3510– Jetson‑based ECU: ADLINK RQX‑58G・ Sensor setup– Sample conﬁguration 1* Camera: TIER IV Automotive HDR Camera C1 (x2)
* LiDAR: HESAI AT128 (x1)

– Sample conﬁguration 2* Camera: TIER IV Automotive HDR Camera C1 (x2)
* LiDAR: HESAI Pandar XT32 (x1)

Edge.Auto Getting Started Manual
Connection diagram
The ﬁgure below depicts the connection diagram between sensors and ECUs for this tutorial. This
network conﬁguration, including applying the IP addresses to the speciﬁc interface, will be auto‑
matically done during the steps in Installation page.
Internet connection is required for Installation step.
The next Installation step requires the internet connection for git clone and ML model download.
Please connect an Ethernet cable to the port indicated in the ﬁgure below for the internet connec‑tion.

Note: Try another display port if nothing is shown on the display.

Fig. 2.1 connection diagram of the sample system

Sensor driver
Edge.Auto supports a variety of sensor types. The following repositories are used to make thosesensors available in your ROS2 environment. Please refer to the each repositories for more details.
・ Camera driver– tier4/tier4_automotive_hdr_camera: Kernel driver for using TIER IV cameras with
Video4Linux2 interface.
– tier4/ros2_v4l2_camera: ROS2 package for camera driver using Video4Linux2.
・ LIDAR driver42– tier4/nebula: ROS2 package for uniﬁed ethernet‑based LiDAR driver.
2 Sensor fusion development kit getting started guideEdge.Auto Getting Started ManualFig. 2.2 hardware setup of sample system

・ Sensor synchronization– tier4/sensor_trigger: ROS2 package for generating sensor trigger signals.
Sensor/ECU synchronization
In this sample system, clock synchronization and timing synchronization between sensors andECUs are realized to achieve highly accurate sensor fusion. The ﬁgure below depicts the synchro‑nization design between sensors and ECUs in this sample system.
For more details, please refer to the tier4/sensor_trigger repository.

2.1.2 x86‑based ECU
Before proceeding with 2.Installation step, install Ubuntu 22.04 to your x86‑based ECU.

2.1.3 Jetson‑based ECU
Before proceeding with 2.Installation step, install NVIDIA L4T R32.6.1 (including Ubuntu 18.04) toyour Jetson‑based ECU.
BSP installation for ADLINK RQX‑58G
RQX‑58G needs to be properly conﬁgured according to the oﬃcial quick start guide from ADLINKTechnology, Inc. Please see the oﬃcial document in detail.
To download the BSP image, please visit the ADLINK oﬃcial page. (If you are accessing the site forthe ﬁrst time, you will be prompted to create an account.)
While the TIER IV camera driver (tier4/tier4_automotive_hdr_camera) is included in the RQX‑58G
BSP oﬃcial image, you can also update it during the following setup process.

2.1. Hardware setup

43

Edge.Auto Getting Started ManualFig. 2.3 Synchronization design of sample system

2.2 Installation
Setup for both x86‑based and Jetson‑based ECUs.
Note: Internet connection is required in this step.

44

2 Sensor fusion development kit getting started guideEdge.Auto Getting Started Manual

2.2.1 x86‑based ECU
Warning: Network settings are automatically updated.
During this procedure, IP addresses are assigned to some network interfaces (refer to the connec‑
tion diagram on Hardware setup for more detail) using netplan. This behavior may cause unex‑
pected disconnection, in case you are accessing the ECU remotely via those interfaces.
If you would like to change network interfaces or IP addresses to be assigned, edit edge-auto/
ansible/playbooks/vars/edge_auto.yaml before running setup-dev-env.sh
Download the repository and setup your environment
As a ﬁrst step, clone tier4/edge-auto and move to the directory.
git clone https://github.com/tier4/edge-auto.git
cd edge-auto

You can install the dependencies using the provided ansible script.
./setup-dev-env.sh

Finally, please reboot the system to make the installed dependencies and permission settings ef‑
fective.
sudo reboot

Build edge‑auto
Create your ROS workspace and clone repositories using vcstool.
cd edge-auto
mkdir src
vcs import src < autoware.repos

Install ros package dependencies and build your ROS workspace.
rosdep install -y -r --from-paths src --ignore-src --rosdistro $ROS_DISTRO
colcon build \--symlink-install --cmake-args -DCMAKE_BUILD_TYPE=Release \--packages-up-to edge_auto_launch

2.2.2 Jetson‑based ECUThis following steps can be performed from your x86‑based ECU via ssh

2.2. Installation

45

Edge.Auto Getting Started Manual
Download the repository and setup the environment
As a ﬁrst step, clone tier4/edge-auto-jetson and move to the directory.
git clone https://github.com/tier4/edge-auto-jetson.git
cd edge-auto-jetson

You can install the dependencies using the provided ansible script. During the installation process,you will be asked if you want to install the TIER IV camera driver. If you already have the driver
installed and want to skip this step, please type N to continue.
Caution: setup-dev-env.sh script may take several hours.
./setup-dev-env.sh[Warning] Do you want to install/update the TIER IV camera driver? [y/N]:

Finally, please reboot the system to make the installed dependencies and permission settings ef‑
fective.
sudo reboot

Build edge‑auto‑jetson workspace
Create your ROS workspace and clone repositories using vcstool.
cd edge-auto-jetson
mkdir src
vcs import src < autoware.repos

Build your ROS workspace.
colcon build \--symlink-install --cmake-args -DCMAKE_BUILD_TYPE=Release \-DPython3_EXECUTABLE=$(which python3.6) -DCMAKE_CUDA_STANDARD=14 \--packages-up-to edge_auto_jetson_launch

2.2.3 Update your workspace
If you want to update cloned repositories, use the following command.
vcs import src < autoware.repos
vcs pull src

2.2.4 Modify camera exposure timing
Note: On the sample system introduced in Hardware setup step, this does not need to be changed.
If you want to change the exposure time of cameras for sensor synchronization, please modify thefollowing ﬁles.
edge-auto-jetson/src/individual_params/individual_params/config/└── default(continues on next page)46

2 Sensor fusion development kit getting started guideEdge.Auto Getting Started Manual(continued from previous page)├── camera0│├── trigger.param.yaml├── camera1│├── trigger.param.yaml

For more details, please refer to the tier4/sensor_trigger repository.

2.3 Sensor Calibration
Estimate your intrinsic/extrinsic parameters on your sensor system using tier4/calibration_tools.
Note: Perform the following tasks on the x86‑based ECU.

2.3.1 Calculate intrinsic parameters for cameras
First, launch calibration_intrinsic to estimate the intrinsic parameters of your cameras. See
this document for detailed operation on the tool.
cd edge-auto
source install/setup.bash
ros2 launch edge_auto_launch calibration_intrinsic_sample.launch.xml

Intrinsic parameters for all cameras consisting of your system (e.g., camera0 and camera1 in thistutorial) should be stored on individual_params. After acquiring the ﬁles, put them in the ap‑
propriate folder on your Jetson‑based ECU so that they are loaded and published as camera_info
topics:edge-auto-jetson/src/individual_params/individual_params/config/└── default # <- this will be an identifier, which refered to as the value of␣˓→`VEHICLE_ID` environment variable, of your system├── camera0│├── camera_info.yaml # <- replace this file with your calculated results│├── trigger.param.yaml│└── v4l2_camera.param.yaml├── camera1│├── camera_info.yaml # <- replace this file with your calculated results│├── trigger.param.yaml│└── v4l2_camera.param.yaml

2.3.2 (HESAI AT128 only) Get a correction ﬁle from LiDARHESAI AT128 have the capability to access their own correction ﬁle stored inside them. To get better
results, you are encouraged to download the correction ﬁle from individual LiDAR, and store it in
the appropriate folder on the x86‑based ECU:
edge-auto/src/individual_params/individual_params/config/└── default└── lidar└── at128_default.dat # <- replace this file with your downloaded dat file

2.3. Sensor Calibration

47

Edge.Auto Getting Started Manual

2.3.3 Calculate extrinsic parameters between LiDAR and cameras
Finally, launch calibration_extrinsic that matches your LiDAR setup to estimate your extrinsic
parameters between your lidar and cameras. See this document for detailed operation on the tool.
cd edge-auto
source install/setup.bash
ros2 launch edge_auto_launch calibration_extrinsic_at128_sample.launch.xml## orros2 launch edge_auto_launch calibration_extrinsic_xt32_sample.launch.xml

To perform sensor fusion, pose relationships (i.e., extrinsic parameters) between all fused sensors
need to be registered in TF, which is the ROS‑fashion to represent the relationships.
Note: In these samples, there is the assumption that all sensors are ﬁxed and their relative posi‑tions do not change.
After calculating extrinsic parameters, put the result in the appropriate ﬁles on the x86‑based ECU:
edge-auto/src/individual_params/individual_params/config/└── default├── at128_to_camera0.json # <- replace this file with your calculated results└── at128_to_camera1.json # <- replace this file with your calculated results

2.4 Launch applications
Launch the perception application implemented in autoware.universe.

2.4.1 Jetson‑based ECU
Note: This following steps can be performed from your x86‑based ECU via ssh.
The following sample launches image‑based object detection performed on two cameras individ‑
ually.
cd edge-auto-jetson
source install/setup.bash
ros2 launch edge_auto_jetson_launch edge_auto_jetson.launch.xml

Note: It may take about 15 minutes before turning the results available at the ﬁrst execution, whichis caused by converting the ONNX model into a TensorRT engine. From the second launch, theresults should be available immediately since conversion results are cached on the disk.
This sample utilizes tensorrt_yolox and bytetrack packages implemented in autoware.universe.
See the READMEs of these packages for more detail.

48

2 Sensor fusion development kit getting started guideEdge.Auto Getting Started Manual

2.4.2 x86‑based ECU
The following sample launches LiDAR‑based object detection and bounding‑box‑level fusion (i.e.
late fusion) between 2D and 3D object detection. Launch the launch ﬁle that matches your LiDAR
setup.
cd edge-auto
source install/setup.bash
ros2 launch edge_auto_launch perception_at128_sample.launch.xml## orros2 launch edge_auto_launch perception_xt32_sample.launch.xml

This sample mainly leverages pointcloud_preprocessor, centerpoint, and image_projec‑
tion_based_fusion packages in autoware.universe. See the READMEs of these packages formore detail.
In addition to the perception stack, this sample also launches viewers so that users can check per‑ception results visually.

2.5 Trouble shooting

2.5. Trouble shooting

49

50

3

GMSL‑10GbE Conversion Module Getting Started Guide

This section guides you on how to get started with TIER IV’ s GMSL‑10GbE conversion module.
Danger: This section is published only for TIER IV internal review. Descriptions available here
may be neither COMPLETE nor ACCURATE.

3.1 Preparation
3.1.1 Prerequisites
Prepare the following hardware.
・ 1 x GMSL2‑10GbE conversion module
・ 1 x Micro SD Card (> 16GB)
・ TIER IV Automotive HDR Camera C1 or C2– Up to 8 C1 cameras can be connected– Up to 4 C2 cameras can be connected
・ 1 x Computer with 10G ethernet card
– Linux (Ubuntu)– Internet connection required
See also:
How much host performance is needed to receive the image from GMSL2‑10GbE conversion
module?
・ 1 x SFP+ Ethernet cable or SFP+ to RJ‑45 converter・ AC Adapter

Edge.Auto Getting Started Manual

Caution: Make sure the Host computer you use has 10Gb ethernet card/port. Otherwise, con‑sider using an adapter, such as a Thunderbolt‑10Gb Ethernet adapter.
This system may work with the other host operating system, such as Windows environment, but
not supported by TIER IV yet.

3.1.2 Preparing the SD card image (with Linux environment)
Firstly, you need to download the image ﬁle.
To download the v7 image, please follow the below instruction.
1. Download the image by using
wget https://swdownloads.analog.com/cse/gmsl/10G/v2_24/gmsl-10g-v7.tar.xz.gpg`

2. Decrypt the gpg ﬁle by using gpg command.
3. The system will ask the passphrase. Please contact to TIER IV for the passphrase.
4. after decrypting the gpg ﬁle, please proceed to the next step.
Extract the image ﬁletar Jxvf ./gmsl-10g-v7.tar.xz

Connect the SD card to the computer. Then identify the SD card using lsblk command. The result
will look like the below.
NAME
MAJ:MIN RM
SIZE RO TYPE MOUNTPOINT
loop0
7:0
0
16M 1 loopsda
8:0
1 57.7G 0 disk
├─sda1
8:1
1
256M 0 part /media/ubuntu/bootfs└─sda2
8:2
1
4.9G 0 part /media/ubuntu/rootfs
mmcblk0
179:0
0 59.3G 0 disk
├─mmcblk0p1 179:1
0 57.8G 0 part /├─mmcblk0p2 179:2
0128M 0 part├─mmcblk0p3 179:3
0768K 0 part├─mmcblk0p4 179:4
0 31.6M 0 part├─mmcblk0p5 179:5
0128M 0 part├─mmcblk0p6 179:6
0768K 0 part├─mmcblk0p7 179:7
0 31.6M 0 part├─mmcblk0p8 179:80
80M 0 part├─mmcblk0p9 179:9
0512K 0 part├─mmcblk0p10 179:10
0
64M 0 part├─mmcblk0p11 179:110
80M 0 part├─mmcblk0p12 179:12
0512K 0 part├─mmcblk0p13 179:130
64M 0 part└─mmcblk0p14 179:14
0 879.5M 0 part
zram0
251:0
0
2.6G 0 disk [SWAP]
zram1
251:1
0
2.6G 0 disk [SWAP]
zram2
251:2
0
2.6G 0 disk [SWAP]
zram3
251:3
0
2.6G 0 disk [SWAP]
zram4
251:4
0
2.6G 0 disk [SWAP]
zram5
251:5
0
2.6G 0 disk [SWAP]
zram6
251:6
0
2.6G 0 disk [SWAP]
zram7
251:7
0
2.6G 0 disk [SWAP]
zram8
251:8
0
2.6G 0 disk [SWAP]
zram9
251:9
0
2.6G 0 disk [SWAP]
zram10251:100
2.6G 0 disk [SWAP]
zram11
251:110
2.6G 0 disk [SWAP]

3.1. Preparation

51

Edge.Auto Getting Started Manual
In this case, the SD card is /dev/sda.
Then burn the image ﬁle to the SD card (Please change the name-of-the-image.img and /dev/
xxx upon your environment). This process may take several minutes.
sudo dd if=name-of-the-image.img of=/dev/xxx bs=4M status=progress
sync

After burning the image ﬁle, please proceed to the next step.

3.1.3 Preparing the SD card image (with Windows environment)
Download the image and extract it
1. Download the image from https://swdownloads.analog.com/cse/gmsl/10G/v2_24/
gmsl-10g-v7.tar.xz.gpg.
2. decrypt the ﬁle by using gpg. Please contact to TIER IV for the passphrase.
3. Extract the image, for instance, by using Zip Extractor
Burning the image
You can use various software, such as Etcher or Raspberry pi Imager to burn the image ﬁle to the
SD card. Please download & install your preferred SW.
In this document, we take Raspberry pi Imager as a example.
1. Open Raspberry pi Imager
2. Select CHOOSE OS ‑> Use custom

3. Select Extracted image ﬁle (***.img).
4. Select Target SD card by selecting CHOOSE STORAGE
52

3 GMSL‑10GbE Conversion Module Getting Started Guide

Edge.Auto Getting Started Manual

5. Click NEXT then start the burning.
(Optional) Using the C2 cameras
Caution:・ This setting is only required in case you connect with the C2 cameras.
・ This procedure needs to be done when the SD card is mounted on the host PC.
By default, the image ﬁle is set to work with C1 cameras. To use the C2 cameras, you need to switch
the device‑tree ﬁle (dtb) ﬁle.
In order to do so, please copy the dtb ﬁle for C2 cameras to the root directory of bootfs, i.e.,
cp /media/ubuntu/bootfs/boot_files_v7/imx490/system.dtb/media/ubuntu/bootfs/(Assuming that the SD card is mounted at /media/ubuntu)
Then, please follow the following steps.

3.1.4 Hardware connection and setup
1. Connect the Fakra cable to the GMSL port. You need to use mini‑Fakra jack cable.
・ In case you connect 4 x C1 cameras, you can connect either P1 or P2 port.
・ In case you connect 4 x C2 cameras, please connect the Fakra cable to the P1 port.
・ In case you connect 8 x C1 cameras, please connect the Fakra cable to both P1 and P2
ports.
2. Connect the Cameras to the Fakra cable.
3. Connect the ethernet cable to the ethernet port.
3.1. Preparation

53

Edge.Auto Getting Started ManualFig. 3.1 Front side of the board

Fig. 3.2 Back side of the board

54

3 GMSL‑10GbE Conversion Module Getting Started Guide

Edge.Auto Getting Started Manual

Caution: You need to use SFP+ ethernet cable or SFP to RJ45 converter.
4. (Optional) Connect mini‑USB cable to the serial port.
5. Insert the SD card into the SD card slot.
6. Power on the board by inserting the power plug.

3.2 Getting started with Linux3.2.1 Connect the Ethernet cable to the host computer’ s 10G Ethernet port
Please make sure you connect the ethernet cable to the port that has 10Gb compatibility. In thismanual, we use eth1 port.

3.2.2 Conﬁgure the network
Check the link statususe ethtools command to check the link status.
ethtools eth1

The output should look like the following.
ubuntu@EAC-5000:~$ ethtool eth1
Settings for eth1:
Supported ports: [ TP ]Supported link modes:
100baseT/Full
1000baseT/Full
10000baseT/Full
2500baseT/Full
5000baseT/FullSupported pause frame use: Symmetric Receive-only
Supports auto-negotiation: Yes
Supported FEC modes: Not reported
Advertised link modes: 100baseT/Full
1000baseT/Full
10000baseT/Full
2500baseT/Full
5000baseT/FullAdvertised pause frame use: No
Advertised auto-negotiation: Yes
Advertised FEC modes: Not reported
Speed: 10000Mb/s
Duplex: Full
Port: Twisted Pair
PHYAD: 0
Transceiver: internal
Auto-negotiation: on
MDI-X: Unknown
Cannot get wake-on-lan settings: Operation not permitted
Current message level: 0x00000005 (5)drv link
Link detected: yes

Make sure that Speed: 10000Mb/s is displayed.
3.2. Getting started with Linux

55

Edge.Auto Getting Started Manual
Set MTU 9000
Set the MTU to 9000 to achieve the intended network bandwidth. To do that, please use the follow‑
ing commands.
sudo ifconfig eth1 down
sudo ifconfig eth1 mtu 9000
sudo ifconfig eth1 up

After that, please conﬁrm the mtu setting.
ifconfig

The output should look like the following.
ubuntu@EAC-5000:~$ ifconfig...
eth1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 9000
inet 10.42.0.1 netmask 255.255.255.0 broadcast 10.42.0.255...

The setting is successful if mtu 9000 is displayed.
Setting IP address to the board
You can set the IP address on the board in three ways.
・ Manually
・ Systemd network ﬁle・ DHCPTo set the IP address manually or via a systemd network ﬁle, you ﬁrst need to log in to the board via
the serial console.
Setting it via a network ﬁle enables persistence across reboots.
Setting IP address via DHCP
To assign the IP address for the ethernet port of the GMSL board, we conﬁgure network settings byusing GUI.
1. Open network settings (Settings ‑> Network).
2. Select the Ethernet adopter that has 10Gb speed (Aquantia Ethernet is the one in this ex‑
ample)
3. Go to the detailed setting (Gear icon), select IPv4, and select “Shared to other computers” .
With the default, 10.42.0.1 will be set to this interface.
Manually set IP address on the board
Use ifconﬁg to set eth0 to 10.42.0.3
sudo ifconfig eth0 10.42.0.3

After this, please conﬁrm the IP address assigned. The result should be like below.
analog@kria-gmsl :~ $ ip a
1: lo: <LOOPBACK, UP, LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN groupdefault qlen 1000
(continues on next page)

56

3 GMSL‑10GbE Conversion Module Getting Started Guide

Edge.Auto Getting Started ManualFig. 3.3 Network setting window(continued from previous page)link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft foreverinet6 :: 1/128 scope hostvalid_lft forever preferred_lft forever
2: sit0@NONE: <NOARP> mtu 1480 qdisc noop state DOWN group default qlen 1000
link/sit 0.0.0.0 brd 0.0.0.0
3: eth0: <BROADCAST, MULTICAST, UP, LOWER_UP> mtu 9000 qdisc mq state UP groupdefault qlen 1000
link/ether a2:c2:aa:da:45:73 brd ff : ff: ff:ff:ff:ff
inet 10.42.0.3/8 brd 10.255.255.255 scope global eth0
valid_lft forever preferred_lft foreverinet6 fe80 :: a0c2:aaff:feda:4573/64 scope link
valid_lft forever preferred_1ft forever

You can conﬁrm that IP address is assigned as intended by checking inet 10.42.0.3.

3.2. Getting started with Linux

57

Edge.Auto Getting Started ManualFig. 3.4 Front Network sharing setting

Set a systemd network ﬁleWrite the following ﬁle to /etc/systemd/network/10-static.network[Match]Name=eth0[Network]
DHCP=noAddress=10.42.0.3[Link]
MTUBytes=9000

This also ﬁxes the eth0 IP address to 10.42.0.3.

58

3 GMSL‑10GbE Conversion Module Getting Started Guide

Edge.Auto Getting Started Manual

3.2.3 Image output conﬁguration
To conﬁgure the GMSL board via CUI, you need to log in to the board. To do that, two methods areavailable.
・ Via SSH
・ Via serial Console
Login via SSH
Two IP addresses are assigned to the GMSL board’ s ethernet port.
・ IP address for image data output (ﬁxed as 10.42.0.2 by default)
・ IP address for login (assigned randomly by default)
Here, we will log in to the GMSL board by using the IP address for login.
1. In the case you assign the IP address via DHCP, the IP address will be assigned randomly. We
will scan the available IP address by using arp command.
arp

will return a similar result as the following.
ubuntu@EAC-5000:~$ arp
Address
˓→Iface10.42.0.63
˓→eth1

HWtypeHWaddress

Flags Mask

␣

ether

66:4d:9a:96:5a:68

C␣

10.42.0.63 is the IP address assigned this time.
2. Log in to the GMSL board by using SSH to conﬁgure image output settings, using the followinguser name and password.
・ Username: analog
・ Password: analog
ssh analog@<assigned ip address>

3. If successful, the output will be similar to the following:
ubuntu@EAC-5000:~$ ssh analog@10.42.0.63
analog@10.42.0.63's password:(Put <analog> here)
Welcome to Ubuntu 22.04.3 LTS (GNU/Linux 6.1.5-g19e31fe4c1ae-dirty aarch64)* Documentation:* Management:* Support:

https://help.ubuntu.com
https://landscape.canonical.com
https://ubuntu.com/advantage

This system has been minimized by removing packages and content that are
not required on a system that users do not log into.
...

See also:
You can log‑in to the board by using the hostname based on the mDNS. To do so, please login withthe kria-gmsl.local. For instance, the command below should works.
ssh analog@kria-gmsl.local

3.2. Getting started with Linux

59

Edge.Auto Getting Started Manual
Login via serial console
In case you need to log in via the serial console, please follow this procedure:
1. Connect the USB cable that is connected to the serial console to the HOST PC.
2. Conﬁrm if the serial port is recognized by PC. ls -al /dev/ttyUSB* should return ttyUSB
device.
ubuntu@EAC-5000:~$ ls -al /dev/ttyUSB*
crw-rw---- 1 root dialout 188, 0 Aug 8 04:07 /dev/ttyUSB0

3. add read/write permission by using sudo chmod 666 /dev/ttyUSB0.
4. There are some options to use the serial console. In this document, we use gtkterm for it.
To install gtkterm, please follow the following.
sudo apt update
sudo apt install gtkterm

5. Open the gtkterm (by typing gtkterm in the terminal). Then select configuration. Select/dev/ttyUSB0 in the Port setting. Also, make sure the Baud Rate is set to 115200.

Fig. 3.5 Front Serial console setting (in the case of gtkterm)

6. Click OK.
7. A login message should appear (if not, press ENTER).
8. Enter analog as a login user and enter analog as a password.
60

3 GMSL‑10GbE Conversion Module Getting Started Guide

Edge.Auto Getting Started ManualFig. 3.6 Output in case of successful connection

3.2.4 Next Step
Please proceed Image output settings via CUI or Image output settings via GUI to conﬁgure theboard to display the image from the cameras.

3.3 Image output settings via CUI
In this section, we conﬁgure the GMSL board by using the command line.
Attention: This setting must be done at the GMSL2‑10GbE conversion module side.

3.3. Image output settings via CUI

61

Edge.Auto Getting Started Manual

3.3.1 Image output conﬁguration
The conﬁguration ﬁles are stored in the Workspace/config_streaming_v2 directory.
cd Workspace/config_streaming_v2

Then conﬁgure the board depending on the connected camera.
Caution: Up to v7 image, all GMSL ports will be assigned to either C1 or C2 camera. Combina‑
tion of the C1 camera and C2 camera is not allowed.
C1 camera./media_cfg_des12_v2_isx021.sh./set_num_lines./set_num_px_p_line

C2 camera./media_cfg_des12_v2_imx490.sh./set_num_lines_imx490./set_num_px_p_line_imx490

In the case of C1 camera conﬁguration, the following output will appear after you run
media_cfg_des12_v2_isx021.sh. In the case you connect less than 8 cameras, some error mes‑sage will appear but conﬁguration itself will be done without any problem.
./media_cfg_des12_v2_isx021.sh[sudo] password for analog:
No XFCP interface available: No module named 'xfcp'[2024-08-06 09:34:09,523] npap_enum.board (discover_structure) INFO:Found base wrapper: erd_info_block[2024-08-06 09:34:09,564] npap_enum.board (discover_structure) INFO:Found block: tcp_udp_netperf_npap_support_wrapper[2024-08-06 09:34:09,568] npap_enum.board (initialise) INFO:Found 1 NPAP instances[2024-08-06 09:34:09,603] npap_enum.board (discover_structure) INFO:Found base wrapper: tcp_udp_netperf_npap_support_wrapper[2024-08-06 09:34:09,639] npap_enum.board (discover_structure) INFO:Found block: npap_support_wrapper[2024-08-06 09:34:09,644] npap_enum.board (discover_structure) INFO:Found block: tcp_udp_support_wrapper[2024-08-06 09:34:09,672] npap_enum.board (discover_structure) INFO:Found block: tcp_gen_support_wrapper[2024-08-06 09:34:09,677] npap_enum.board (discover_structure) INFO:Found block: udp_gen_support_wrapper_0[2024-08-06 09:34:09,706] npap_enum.board (discover_structure) INFO:Found block: udp_support_wrapper_0[2024-08-06 09:34:09,711] npap_enum.board (discover_structure) INFO:Found block: udp_support_wrapper_1[2024-08-06 09:34:09,716] npap_enum.board (discover_structure) INFO:Found block: udp_support_wrapper_2[2024-08-06 09:34:09,721] npap_enum.board (discover_structure) INFO:Found block: udp_support_wrapper_3[2024-08-06 09:34:09,726] npap_enum.board (discover_structure) INFO:Found block: udp_support_wrapper_4[2024-08-06 09:34:09,731] npap_enum.board (discover_structure) INFO:Found block: udp_support_wrapper_5(continues on next page)62

3 GMSL‑10GbE Conversion Module Getting Started Guide

Edge.Auto Getting Started Manual(continued from previous page)[2024-08-06 09:34:09,736] npap_enum.board (discover_structure) INFO:Found block: udp_support_wrapper_6[2024-08-06 09:34:09,741] npap_enum.board (discover_structure) INFO:Found block: udp_support_wrapper_7[2024-08-06 09:34:09,831] npap_enum.board (discover_structure) INFO:Found block: udp_demo_application_7[2024-08-06 09:34:09,920] npap_enum.board (discover_structure) INFO:Found block: udp_demo_application_6[2024-08-06 09:34:10,008] npap_enum.board (discover_structure) INFO:Found block: udp_demo_application_5[2024-08-06 09:34:10,097] npap_enum.board (discover_structure) INFO:Found block: udp_demo_application_4[2024-08-06 09:34:10,186] npap_enum.board (discover_structure) INFO:Found block: udp_demo_application_3[2024-08-06 09:34:10,275] npap_enum.board (discover_structure) INFO:Found block: udp_demo_application_2[2024-08-06 09:34:10,364] npap_enum.board (discover_structure) INFO:Found block: udp_demo_application_1[2024-08-06 09:34:10,452] npap_enum.board (discover_structure) INFO:Found block: udp_demo_application_0[2024-08-06 09:34:10,553] npap_enum.board (discover_structure) INFO:Found block: npap_configuration_block[2024-08-06 09:34:10,582] npap_enum.board (discover_structure) INFO:Found block: priority_manager_configuration_block
Configure MAC for packet direction infrastructrure.
Read MAC address 0X20A35088080, default: 0X20A35088080
Read MAC address 0XAABBCCDDEE12, default: 0X20A35088080
Successfully set MAC address for packet steering
NPAP subsystem build date: 2024-05-23 14:59:52
NPAP subsystem git hash: 43390C65
Now exiting...

3.3.2 Outputting the image
Finally, the image is output by using the following commands.
C1 camera・ To output the image data from P2 port (UDP port 5008‑5011)
v4l2-ctl -d /dev/video0 --set-fmt-video=width=1920,height=1280,pixelformat=UYVY -˓→stream-mmap

・ To output the image data from P1 port (UDP port 5004‑5007)
v4l2-ctl -d /dev/video1 --set-fmt-video=width=1920,height=1280,pixelformat=UYVY -˓→stream-mmap

・ To output the image data from both P1 and P2 port
v4l2-ctl -d /dev/video0 --set-fmt-video=width=1920,height=1280,pixelformat=UYVY -˓→stream-mmap &v4l2-ctl -d /dev/video1 --set-fmt-video=width=1920,height=1280,pixelformat=UYVY -˓→stream-mmap &3.3. Image output settings via CUI

63

Edge.Auto Getting Started Manual
C2 camera・ To output the image data from P1 port (UDP port 5004‑5007)
v4l2-ctl -d /dev/video0 --set-fmt-video=width=2880,height=1860,pixelformat=UYVY -˓→stream-mmap &Warning: Up to v7 image, the conﬁguration that outputs the images from P1 port is supported.
Outputting the images from P2 port is not supported.

3.3.3 Stopping the image stream
To stop the image stream, press Ctrl-C in case you start streaming without &. In the case you
start the image stream with &, the process runs in the background. In this case, you can ﬁnd thecorresponding process by using the pidof command, then you can kill that process by using thekill command.
pidof v4l2-ctl
sudo kill <displayed numbers>

3.4 Image output settings via GUI
In this section, we use web GUI for image output conﬁguration.

3.4.1 Image output conﬁguration
With the host PC, open the browser and access to http://<GMSL board ip address>:3000 or
http://kria-gmsl.local:3000. The web‑based GUI should appear so you can set various set‑tings.
In this tab, TierIV Cam 1 indicates the C1 camera and TierIV Cam 2 indicates the C2 camera.
Setup RTP related settings has the equivalent meaning with the conﬁgurations decribed in
the previous section, Image output conﬁguration.
To activate the image stream from the cameras, go to Streaming Settings.
You can set the equivalent settings with the CUI.

3.5 Displaying the image
Attention: This setting must be done at the receiver (host computer) side.
In this document, we use GStreamer to output the image. However, you should be able to use any
application that can receive RTP packets (RFC 4175).

64

3 GMSL‑10GbE Conversion Module Getting Started Guide

Edge.Auto Getting Started ManualFig. 3.7 Web GUI

3.5.1 Preparation
Please install GStreamer if it is not installed yet. To install the GStreamer, please follow GStreamer’s oﬃcial instructions.
Note:
By default, the cameras (C1/C2) will work with free‑run mode.
frame‑synchronization mode, please refer to Camera triggering.

3.5. Displaying the image

To switch the65Edge.Auto Getting Started ManualFig. 3.8 Streaming settings

See also:
Please refer to the C1’ s frame‑synchronization mode and C2’ s frame‑synchronization mode forthe details.

3.5.2 Displaying 1 camera
To display the image from the C1 camera that is assigned to port 5008, please use the GStreamer
command below.
gst-launch-1.0 udpsrc caps='application/x-rtp, sampling=YCbCr-4:2:2,␣˓→depth=(string)8, width=(string)1920, height=(string)1280' port=5008 !␣
˓→rtpvrawdepay ! videoconvert ! queue ! fpsdisplaysink video-sink=autovideosink␣˓→text-overlay=true sync=false

To display the image from the C2 camera that is assigned to port 5004, please use the GStreamer
command below.
gst-launch-1.0 udpsrc caps='application/x-rtp, sampling=YCbCr-4:2:2,␣˓→depth=(string)8, width=(string)2880, height=(string)1860' port=5004 !␣
˓→rtpvrawdepay ! videoconvert ! queue ! fpsdisplaysink video-sink=autovideosink␣˓→text-overlay=true sync=false

3.5.3 Displaying 4 cameras
To display the image from the four cameras, please use the GStreamer command below.
・ C1 camera, port 5004 ‑ 5007
gst-launch-1.0 \udpsrc caps='application/x-rtp, sampling=YCbCr-4:2:2, depth=(string)8,␣˓→width=(string)1920, height=(string)1280' port=5004 ! rtpvrawdepay ! videoconvert␣
˓→! queue ! fpsdisplaysink video-sink=autovideosink text-overlay=true sync=false \
udpsrc caps='application/x-rtp, sampling=YCbCr-4:2:2, depth=(string)8,␣
(continues on next page)66

3 GMSL‑10GbE Conversion Module Getting Started Guide

Edge.Auto Getting Started Manual(continued from previous page)

width=(string)1920, height=(string)1280' port=5005 ! rtpvrawdepay ! videoconvert␣
˓→! queue ! fpsdisplaysink video-sink=autovideosink text-overlay=true sync=false \
udpsrc caps='application/x-rtp, sampling=YCbCr-4:2:2, depth=(string)8,␣˓→width=(string)1920, height=(string)1280' port=5006 ! rtpvrawdepay ! videoconvert␣
˓→! queue ! fpsdisplaysink video-sink=autovideosink text-overlay=true sync=false \
udpsrc caps='application/x-rtp, sampling=YCbCr-4:2:2, depth=(string)8,␣˓→width=(string)1920, height=(string)1280' port=5007 ! rtpvrawdepay ! videoconvert␣
˓→! queue ! fpsdisplaysink video-sink=autovideosink text-overlay=true sync=false˓→・ C1 camera, port 5008 ‑ 5011
gst-launch-1.0 \udpsrc caps='application/x-rtp, sampling=YCbCr-4:2:2, depth=(string)8,␣˓→width=(string)1920, height=(string)1280' port=5008 ! rtpvrawdepay ! videoconvert␣
˓→! queue ! fpsdisplaysink video-sink=autovideosink text-overlay=true sync=false \
udpsrc caps='application/x-rtp, sampling=YCbCr-4:2:2, depth=(string)8,␣˓→width=(string)1920, height=(string)1280' port=5009 ! rtpvrawdepay ! videoconvert␣
˓→! queue ! fpsdisplaysink video-sink=autovideosink text-overlay=true sync=false \
udpsrc caps='application/x-rtp, sampling=YCbCr-4:2:2, depth=(string)8,␣˓→width=(string)1920, height=(string)1280' port=5010 ! rtpvrawdepay ! videoconvert␣
˓→! queue ! fpsdisplaysink video-sink=autovideosink text-overlay=true sync=false \
udpsrc caps='application/x-rtp, sampling=YCbCr-4:2:2, depth=(string)8,␣˓→width=(string)1920, height=(string)1280' port=5011 ! rtpvrawdepay ! videoconvert␣
˓→! queue ! fpsdisplaysink video-sink=autovideosink text-overlay=true sync=false

・ C2 camera port 5004 ‑ 5007
gst-launch-1.0 \udpsrc caps='application/x-rtp, sampling=YCbCr-4:2:2, depth=(string)8,␣˓→width=(string)2880, height=(string)1860' port=5004 ! rtpvrawdepay ! videoconvert␣
˓→! queue ! fpsdisplaysink video-sink=autovideosink text-overlay=true sync=false \
udpsrc caps='application/x-rtp, sampling=YCbCr-4:2:2, depth=(string)8,␣˓→width=(string)2880, height=(string)1860' port=5005 ! rtpvrawdepay ! videoconvert␣
˓→! queue ! fpsdisplaysink video-sink=autovideosink text-overlay=true sync=false \
udpsrc caps='application/x-rtp, sampling=YCbCr-4:2:2, depth=(string)8,␣˓→width=(string)2880, height=(string)1860' port=5006 ! rtpvrawdepay ! videoconvert␣
˓→! queue ! fpsdisplaysink video-sink=autovideosink text-overlay=true sync=false \
udpsrc caps='application/x-rtp, sampling=YCbCr-4:2:2, depth=(string)8,␣˓→width=(string)2880, height=(string)1860' port=5007 ! rtpvrawdepay ! videoconvert␣
˓→! queue ! fpsdisplaysink video-sink=autovideosink text-overlay=true

Note: Up to v7 image, only 10fps mode is supported for C2 camera. Other frame rate is not sup‑ported yet.

3.5.4 Displaying 8 cameras
To display the camera from eight cameras, please use the GStreamer command below.
Note: Driving x8 C1 cameras with free‑run mode (e.g., 30fps) may cause image corruption. To
display the image from x8 C1 cameras, please set the cameras to the frame‑synchronization mode
(refer to Camera triggering for the details) and set the lower frame sync frequency. Refer to thecaution in the camera triggering section for the details
gst-launch-1.0 \udpsrc caps='application/x-rtp, sampling=YCbCr-4:2:2, depth=(string)8,␣
(continues on next page)

3.5. Displaying the image

67

Edge.Auto Getting Started Manual(continued from previous page)

width=(string)1920, height=(string)1280' port=5004 ! rtpvrawdepay ! videoconvert␣
˓→! queue ! fpsdisplaysink video-sink=autovideosink text-overlay=true sync=false \
udpsrc caps='application/x-rtp, sampling=YCbCr-4:2:2, depth=(string)8,␣˓→width=(string)1920, height=(string)1280' port=5005 ! rtpvrawdepay ! videoconvert␣
˓→! queue ! fpsdisplaysink video-sink=autovideosink text-overlay=true sync=false \
udpsrc caps='application/x-rtp, sampling=YCbCr-4:2:2, depth=(string)8,␣˓→width=(string)1920, height=(string)1280' port=5006 ! rtpvrawdepay ! videoconvert␣
˓→! queue ! fpsdisplaysink video-sink=autovideosink text-overlay=true sync=false \
udpsrc caps='application/x-rtp, sampling=YCbCr-4:2:2, depth=(string)8,␣˓→width=(string)1920, height=(string)1280' port=5007 ! rtpvrawdepay ! videoconvert␣
˓→! queue ! fpsdisplaysink video-sink=autovideosink text-overlay=true sync=false \
udpsrc caps='application/x-rtp, sampling=YCbCr-4:2:2, depth=(string)8,␣˓→width=(string)1920, height=(string)1280' port=5008 ! rtpvrawdepay ! videoconvert␣
˓→! queue ! fpsdisplaysink video-sink=autovideosink text-overlay=true sync=false \
udpsrc caps='application/x-rtp, sampling=YCbCr-4:2:2, depth=(string)8,␣˓→width=(string)1920, height=(string)1280' port=5009 ! rtpvrawdepay ! videoconvert␣
˓→! queue ! fpsdisplaysink video-sink=autovideosink text-overlay=true sync=false \
udpsrc caps='application/x-rtp, sampling=YCbCr-4:2:2, depth=(string)8,␣˓→width=(string)1920, height=(string)1280' port=5010 ! rtpvrawdepay ! videoconvert␣
˓→! queue ! fpsdisplaysink video-sink=autovideosink text-overlay=true sync=false \
udpsrc caps='application/x-rtp, sampling=YCbCr-4:2:2, depth=(string)8,␣˓→width=(string)1920, height=(string)1280' port=5011 ! rtpvrawdepay ! videoconvert␣
˓→! queue ! fpsdisplaysink video-sink=autovideosink text-overlay=true sync=false˓→

3.6 Camera triggering
Warning: Up to v7 image, this setting cannot be applied to the C2 camera
You can input the camera‑triggering pulse from the GMSL2‑10GbE conversion module using the
Trigger Settings tab
See also:
・ Frame synchronization speciﬁcation of C1
・ Frame synchronization speciﬁcation of C2
Using the web interface, you can set the following parameters
・ Trigger Mode・ Frequency
・ Duty Cycle
・ Oﬀset68

3 GMSL‑10GbE Conversion Module Getting Started Guide

Edge.Auto Getting Started Manual

Caution: When you stream 8 cameras, it is important to set the oﬀsets for P2, otherwise thesignals interfere with one‑another and serialization fails.
It is conﬁrmed that 8 x C1 camera run stably up to 20Hz, by setting the oﬀset parameters as
below.
CameraP2 / Port 1
P2 / Port 2
P2 / Port 3
P2 / Port 4

Oﬀset
15000000 (15msec)
20000000 (20msec)
25000000 (25msec)
30000000 (30msec)

Do not forget to press Apply All at the end.

3.7 PTP time synchronization
3.7.1 PTP setting via web UI
The Web UI has a tab called PTP Settings. Opening it reveals ﬁve buttons. The description below
describes each button’ s functionality.

3.7. PTP time synchronization

69

Edge.Auto Getting Started ManualFig. 3.9 Web GUI for PTP settings

Update System Time
Retrieves the local time via an HTTP request and updates the system time.
Equivalent command is shown as below.
sudo date -s "$(wget -qs0- --max-redirect=0 google.com 2>&1 | grep Date: | cut -d'
˓→' -f5-8)Z" && sudo phc_ctl /dev/ptp0 set

Start PTP‑based Synchronization
Starts the ptp4l slave (client) program on eth0.
Equivalent command is shown as below.
sudo ptp41 -i eth0 -s

Sync System Clock to PHC
Starts a program that updates the system clock based on the PHC time.
Equivalent command is shown as below.
sudo phc2sys -a -r

Stop PTP‑based Synchronization
Stops the ptp4l slave program.
Equivalent command is shown as below.
sudo pkill -x "ptp41"

70

3 GMSL‑10GbE Conversion Module Getting Started Guide

Edge.Auto Getting Started Manual
Stop PHC to System
Stops the PHC‑based system
Equivalent command is shown as below.
sudo pkill -x "phc2sys"

3.7.2 Testing PTP
In order to use PTP, the host PC must be running ptp4l on master mode (‑m ﬂag), while the device
must be in slave mode. The device can start the appropriate PTP programs through the web GUI,
as shown in the table above. The following steps to start PTP and test it have been shown to work.
Start the PTP master on the host
You can start the PTP master by issuing the following command on the host:sudo ptp41 -i enp2s0f1 -m -S -A # replace enp2s0f1 with the proper interface

Start the PTP slave on the device
Click on “Start PTP‑based Synchronization” on the PTP tab of the web GUI. It is the second buttonin the image above.
Verify that PTP‑based streaming works
In the “RTP Control” tab of the web GUI, enable Custom Timestamp and Start of Frame Then,
start streaming according to the section on streaming. Afterwards, in the host PC, verify that thepackets contain appropriate RTP information by issuing the following command:sudo tcpdump -i enp2s0f1 -T rtp -x | grep "0x0020" | awk '{print "0x"$3$4}'

This should print out the current epoch seconds in HEX format. You can verify this by comparingside‑by‑side with the website epoch converter.
For instance, if you get 0x66bb12ac, the timestamp embedded in the data is 2024-8-13 Tuesday
08:00:44 (GMT)
Note: The custom timestamp is constructed as follows: 96 bits possible in total:
・ 48b ‑ MSBs from [95:48] for seconds representation
・ 32b ‑ [47:16] for nanoseconds representation
・ 16b ‑ [15:0] for fractions of nanoseconds representation
Thus the RTP header will contain the following set of data when used with custom_timestamp:
・ RTP header’ s timestamp ‑ 32b all for the 32b of MSBs from the seconds‑related portion of
the timestamp array
・ RTP header’ s SSRC_ID ‑ 32b ‑ 16b ‑ MSBs [31:16] for low part of the seconds on 16b, and therest for the high part of the nanoseconds representation
・ Additional RTP header’ s CSRC_ID (only one in this case by using a CSRC count == 1 and a ﬁrst
CSRC ﬁeld with 32b added to the packet ‑ resulting a larger packet dimension) ‑ 16b for the
low part of the nanoseconds and 16b for the fractions of nanoseconds representation

3.7. PTP time synchronization

71

Edge.Auto Getting Started Manual
Verify that the system clock synchronizes via PTP
Pressing the “Sync System Clock to PHC” button synchronizes the system clock. You can verify thatthe two clocks are in sync by comparing the output given by the following command on the twomachines:
watch -n 0.1 date +%s. %N

You can simulate a wrong clock by issuing the following command on the board:sudo date +%T -s "15:00:00"

You can conﬁrm that “With synchronization” result, the system clock is matching between the hostand the board. On the other hand, in the case of “Without synchronization” , the system clock diﬀers
between the host and the board.

3.8 Image quality tuning via web interface
Warning: Up to v7 image, this setting cannot be applied to the C2 camera
with Cameras Settings tab, you can set the following parameters to the cameras.
・ Exposure value [usec]
・ Auto exposure Enable / Disable
・ Distortion correction Enable / Disable

72

3 GMSL‑10GbE Conversion Module Getting Started Guide

Edge.Auto Getting Started ManualFig. 3.10 Image quality settings

3.8. Image quality tuning via web interface

73

Edge.Auto Getting Started Manual

3.9 REST API
The GMSL2‑10GbE conversion module has REST API interface. The available API are described inthis section.

3.9.1 Overview
The connection destination is described in the below.
・ protocol: http・ hostname: assigned-ip-address or kria-gmsl.local
・ Port: 3000
Therefore, the URI for the REST API is http://kria-gmsl.local:3000/<URI-path>.
In case the parameter is needed, it must be JSON format. it must be included in content‑typeheader.

3.9.2 Available endpoints
Setting up the C1 camera
Description
Setting up the image output conﬁgurations for the C1 camera
RequestPOST /setup-cam1
Parameters
N/A
examplecurl -X POST http://kria-gmsl.local:3000/setup-cam1
Setting up the C2 camera
Description
Setting up the image output conﬁgurations for the C2 camera
RequestPOST /setup-cam2
Parameters
N/A
examplecurl -X POST http://kria-gmsl.local:3000/setup-cam2

74

3 GMSL‑10GbE Conversion Module Getting Started Guide

Edge.Auto Getting Started Manual
Applying timestamp
Description
Conﬁgure the timestamp
RequestPOST /apply-timestamp
Parameters
・ timestamp: Apply a custom timestamp or not.
– 0: Not apply– 1: Apply・ frame: Position of the timestamp.
– 0: End of the frame– 1: Start of the frame
examplecurl -d '{"timestamp":"1","frame":"1"}' -H "Content-Type:application/json" -X POST http://kria-gmsl.local:3000/
apply-timestamp
Conﬁgure the frame synchronization settings (all cameras)
Description
Conﬁgure the frame synchronization pulse settings (frequency, duty cycle and oﬀset).
This is applied for all cameras.
RequestPOST /command
Parameters
・ frequency: Output frequency of the pulse.
・ duty_cycle: Duty cycle of the pulse.
・ offset: Oﬀset
The example of the parameter is shown in the below.
{"data":{"trigger_mode":"triggered","deserializers":{"p1":[{"frequency":"20","duty_cycle":"20","offset":"0"},{"frequency":"20","duty_cycle":"20","offset":"0"},{"frequency":"20","duty_cycle":"20","offset":"0"},(continues on next page)

3.9. REST API

75

Edge.Auto Getting Started Manual(continued from previous page){"frequency":"20","duty_cycle":"20","offset":"0"
}

}
}

}

],
"p2":[{"frequency":"20","duty_cycle":"20","offset":"10000000"},{"frequency":"20","duty_cycle":"20","offset":"20000000"},{"frequency":"20","duty_cycle":"20","offset":"25000000"},{"frequency":"20","duty_cycle":"20","offset":"30000000"}]

To set the cameras for free‑run mode, set the following parameters.
{"data":{"trigger_mode":"free-running","deserializers":{"p1":[{"frequency":"0","duty_cycle":"20","offset":"0"},{"frequency":"0","duty_cycle":"20","offset":"0"},{"frequency":"0","duty_cycle":"20","offset":"0"},{"frequency":"0","duty_cycle":"20","offset":"0"}],"p2":[

76(continues on next page)

3 GMSL‑10GbE Conversion Module Getting Started Guide

Edge.Auto Getting Started Manual(continued from previous page)

}
}

}

]

{
"frequency":"0","duty_cycle":"20","offset":"0"},{"frequency":"0","duty_cycle":"20","offset":"0"},{"frequency":"0","duty_cycle":"20","offset":"0"},{"frequency":"0","duty_cycle":"20","offset":"0"}

Examplecurl -H "Content-Type: application/json" -X POST http://kria-gmsl.
local:3000/command -d @trigger.json
Assuming that the json above is stored as trigger.json
Conﬁgure the frame synchronization pulse for a single camera
Description
Conﬁgure the frame synchronization pulse settings (frequency, duty cycle and oﬀset) fora single camera.
RequestPOST /save-single
Parameters{index, frequency, duty_cycle, oﬀset, fsync_source}
ExampleStart streaming the C1 from P1
Description
Start image streaming of C1 camera from P1 port of the board.
RequestPOST /streaming-cam1-des1
Parameters
N/A
Examplecurl -X POST http://kria-gmsl.local:3000/streaming-cam1-des1

3.9. REST API

77

Edge.Auto Getting Started ManualStart streaming the C1 from P2
Description
Start image streaming of C1 camera from P2 port of the board.
RequestPOST /streaming-cam1-des2
Parameters
N/A
Examplecurl -X POST http://kria-gmsl.local:3000/streaming-cam1-des2
Start streaming the C1 from both deserializer prot
Description
Start image streaming of C1 camera from both P1 and P2 port of the board.
RequestPOST /streaming-cam1-des12
Parameters
N/A
Examplecurl -X POST http://kria-gmsl.local:3000/streaming-cam1-des12Start streaming the C2 from P1
Description
Start image streaming of C2 camera from P1 port of the board.
RequestPOST /streaming-cam1-des2
Parameters
N/A
Examplecurl -X POST http://kria-gmsl.local:3000/streaming-cam2-des1
Stop streaming
Description
Stop streaming the camera stream from all ports
RequestPOST /stop-streaming
Parameters
N/A
Examplecurl -X POST http://kria-gmsl.local:3000/stop-streaming

78

3 GMSL‑10GbE Conversion Module Getting Started Guide

Edge.Auto Getting Started Manual
Update System Time
Description
Retrieves the local time via an HTTP request and updates the system time.
This is equivalent to corresponding GUI control
RequestPOST /update-timeParameters
N/A
Examplecurl -X POST http://kria-gmsl.local:3000/update-timeStart PTP‑based synchronization
Description
Starts the ptp4l slave (client) program on eth0.
This is equivalent to corresponding GUI control
RequestPOST /sync-ptp
Parameters
N/A
Examplecurl -X POST http://kria-gmsl.local:3000/sync-ptp
Sync System Clock to PHC
Description
Starts a program that updates the system clock based on the PHC time.
This is equivalent to corresponding GUI control
RequestPOST /sync-phc
Parameters
N/A
Examplecurl -X POST http://kria-gmsl.local:3000/sync-phc
Stop PTP‑based Synchronization
Description
Stops the ptp4l slave program.
This is equivalent to corresponding GUI control
RequestPOST /stop-ptp4l
Parameters
N/A
Examplecurl -X POST http://kria-gmsl.local:3000/stop-ptp4l

3.9. REST API

79

Edge.Auto Getting Started Manual
Stop PHC to System
Description
Stops the PHC‑based system.
This is equivalent to corresponding GUI control
RequestPOST /stop-phc2sys
Parameters
N/A
Examplecurl -X POST http://kria-gmsl.local:3000/stop-phc2sys
Applying exposure settings for cameras
Description
Applying exposure time settings for each camera.
This is equivalent to corresponding GUI control
RequestPOST /apply-exposure-cam<X>
can be from 0 to 7.
Parameters
expCam<X>: 0 ‑ 33000, [usec]
Examplecurl -d '{"expCam0":11000}' -H "Content-Type: application/json" -X
POST http://kria-gmsl.local:3000/apply-exposure-cam0
This sets camera 0 exposure time to 10msec.
Enabling / Disabling auto exposure
Description
Enabling / Disabling auto exposure settings for each camera.
This is equivalent to corresponding GUI control
RequestPOST /apply-auto-exposure-cam<X>
can be from 0 to 7.
Parameters
autoExpCam<X>:
・ 0: Disable
・ 1: Enable
Examplecurl -d '{"autoExpCam0":1}' -H "Content-Type: application/json" -X
POST http://kria-gmsl.local:3000/apply-auto-exposure-cam0
This enables auto exposure for camera 080

3 GMSL‑10GbE Conversion Module Getting Started Guide

Edge.Auto Getting Started Manual
Enabling / Disabling distortion correction
Description
Enabling / Disabling distortion correction settings for each camera.
This is equivalent to corresponding GUI control
RequestPOST /apply-dist-corr-cam<X>
can be from 0 to 7.
Parameters
distCorrCam<X>:
・ 0: Disable
・ 1: Enable
Examplecurl -d '{"distCorrCam0":1}' -H "Content-Type: application/json" -X
POST http://kria-gmsl.local:3000/apply-dist-corr-cam0
This enables distortion correction for camera 0

3.10 Troubleshooting
3.10.1 I started the GStreamer on the host computer, but the image is notshown.
・ Please make sure that you set the correct port value in your GStreamer settings.
・ You may use wireshark or tcpdump to check if the UDP packet is transmitted to the host com‑puter.
To check if the image packet reaches to the host computer, please use the command below.
sudo tcpdump -i eth0 dst port 5004

The command above dumps the packets that reaches to the port 5004 of eth0.
・ You may check if the image output process is working by using the command below in the
GMSL2‑10GbE conversion module.
pidof v4l2-ctl

There should be the process ID output depends on the number of working deserializer.

3.10.2 There is an image artifact when I connect multiple cameras with thesame deserializer port
In case you see images similar to the reference site, please try to set the kernel parameter as follows
on the host PC.
sudo sysctl -w net.core.rmem_default=33554432
sudo sysctl -w net.core.rmem_max=33554432

See also:
・ UDP‑Raw Stream Issue On Nvidia Jetson Devices
・ Raw data video not stable by gstreamer rtpvrawpay
3.10. Troubleshooting81Edge.Auto Getting Started Manual
See also:
GMSL2‑10GbE Conversion Module Hardware Reference Manual82

3 GMSL‑10GbE Conversion Module Getting Started Guide