1 # Copyright (c) 2019-2020 NVIDIA CORPORATION. All rights reserved.
3 @page dwx_sensor_enum_sample Sensor Enumeration Sample
6 @note SW Release Applicability: This sample is available in both **NVIDIA DriveWorks** and **NVIDIA DRIVE Software** releases.
8 @section dwx_sensor_enum_sample_description Description
10 The Sensor Enumeration sample is a minimal sample using the sensor abstraction
11 layer to enumerate all available sensors drivers in SDK.
13 @section dwx_sensor_enum_sample_running Running the Sample
15 The command line for the Sensor Enumeration sample, sample_sensors_info, is:
19 @section dwx_sensor_enum_sample_output Output
21 On execution, the sample outputs a list of sensors in the following format:
23 Platform: OS_LINUX - CURRENT:
24 Sensor [0] : time.virtual ? file=/path/to/file.bin[,create_seek]
25 Sensor [1] : can.socket ? device=can0[,fifo-size=1024]
26 Sensor [2] : can.virtual ? file=/path/to/file.can[,create_seek,default_timeout_us,time-offset=0]
27 Sensor [3] : camera.virtual ? video/file=filepath.{h264,raw,lraw}[,timestamp=file.txt][,create_seek][,time-offset=0]
28 Sensor [4] : camera.nvidia-ip ? host=<ip_addr>, port=<TCP port number>
29 Sensor [5] : camera.usb ? device=0[,mode={0,a,b}]
30 Sensor [6] : gps.uart ? device=/dev/ttyXXX[,baud={1200,2400,4800,9600,19200,38400,57600,115200}[,format=nmea0183][,fifo-size=1024]]
31 Sensor [7] : gps.virtual ? file=filepath.bin[xsens-raw-gps=true,create_seek,default_timeout_us,time-smoothing=false,time-offset=0]
32 Sensor [8] : gps.xsens ? device=0[,frequency=100,xsens-raw-gps=true,time-smoothing=false,fifo-size=1024,baudrate=115200,stop-bits=2]
33 Sensor [9] : gps.novatel ? [fifo-size=1024]
34 Sensor [10] : gps.dataspeed ? can-proto=can.socket,can-params=device=canX[,fifo-size=1024]
35 Sensor [11] : imu.uart ? device=/dev/ttyXXX[,baud={1200,2400,4800,9600,19200,38400,57600,115200}[,format=xsens_nmea][,fifo-size=1024]]
36 Sensor [12] : imu.xsens ? device=0[,frequency=100,time-smoothing=true,fifo-size=1024,baudrate=115200,stop-bits=2]
37 Sensor [13] : imu.virtual ? file=filepath.bin[,create_seek,default_timeout_us,time-smoothing=true][,fifo-size=1024][,time-offset=0]
38 Sensor [14] : imu.novatel ? [fifo-size=1024]
39 Sensor [15] : imu.dataspeed ? can-proto=can.socket,can-params=device=canX[,fifo-size=1024]
40 Sensor [16] : imu.bosch ? can-proto=can.socket,can-params=device=canX[,fifo-size=1024]
41 Sensor [17] : imu.continental ? can-proto=can.socket,can-params=device=canX[,fifo-size=1024]
42 Sensor [18] : lidar.virtual ? file=filepath.bin[,create_seek,default_timeout_us,decoder=filepath.so,time-smoothing=false,decoding=true,time-offset=0]
43 Sensor [19] : lidar.socket ? ip=X.X.X.X,port=XXXX,device={QUAN_M81A, IBEO_LUX, IBEO_LUX_8L, VELO_VLP16, VELO_VLP16HR, VELO_HDL32E, VELO_VLP32C, VELO_HDL64E, CUSTOM},scan-frequency=XX.X[,protocol=xxx,multicast-ip=X.X.X.X,decoder=filepath.so,time-smoothing=false]
44 Sensor [20] : radar.virtual ? file=filepath.bin,time-smoothing=true[,decoder=filepath.so,create_seek,default_timeout_us,decoding=true,time-offset=0]
45 Sensor [21] : radar.socket ? ip=X.X.X.X,port=XXXX,device={DELPHI_ESR2_5, CONTINENTAL_ARS430, CONTINENTAL_ARS430_RDI, CUSTOM},multicast-ip=X.X.X.X],time-smoothing=true,isInverted=false,slave=false[,decoder=filepath.so,protocol=xxx]
46 Sensor [22] : radar.can ? can-driver=can.xxx,can-bus=xxx,can-base-id=0x460,device={CONTINENTAL_ARS430_CAN}[,aurix-can-ip=X.X.X.X.X],[aurix-can-aport=XXXX][,aurix-can-bport=XXXX][,virtual-file=filepath.bin][,time-smoothing=false]
48 Platform: OS_DRIVE_V5L:
49 Sensor [0] : time.virtual ? file=/path/to/file.bin[,create_seek]
50 Sensor [1] : can.socket ? device=can0[,fifo-size=1024]
51 Sensor [2] : can.aurix ? ip=10.0.0.1,bus={a,b,c,d}[,aport=50000,bport=60395][config-file=/path/to/EasyCanConfigFile.conf][,fifo-size=1024]
52 Sensor [3] : can.virtual ? file=/path/to/file.can[,create_seek,default_timeout_us,time-offset=0]
53 Sensor [4] : camera.gmsl ? camera-type={ar0231-rccb-bae-sf3324, ar0231-rccb-bae-sf3325, ar0144-cccc-none-gazet1},output-format={yuv+raw+data}[,slave={0,1}][,fifo-size={3..20}][,custom-board=0]camera-group={a,b,c,d},camera-count={1,2,3,4},[,camera-mask={0001|0010|0011|..|1111}][,warn-per-frame={0,1}]
54 Sensor [5] : camera.client ? host=<ip_addr>,port=<tcp_port_num>,siblingIndex=<sibling-num>,mode={fifo,mailbox},output-format={yuv+raw+data},camera-group={a,b,c},fifo-size={3..16}
55 Sensor [6] : camera.virtual ? video/file=filepath.{h264,raw,lraw}[,timestamp=file.txt][,create_seek][,time-offset=0]
56 Sensor [7] : camera.usb ? device=0[,mode={0,a,b}]
57 Sensor [8] : camera.nvidia-ip ? host=[ip_addr], port=[TCP port number]
58 Sensor [9] : gps.uart ? device=/dev/ttyXXX[,baud={1200,2400,4800,9600,19200,38400,57600,115200}[,format=nmea0183]][,fifo-size=1024]
59 Sensor [10] : gps.virtual ? file=filepath.bin[,xsens-raw-gps=true,create_seek,default_timeout_us,time-smoothing=false,time-offset=0]
60 Sensor [11] : gps.xsens ? device=0[,frequency=100,xsens-raw-gps=true,time-smoothing=false,fifo-size=1024,baudrate=115200,stop-bits=2]
61 Sensor [12] : gps.novatel ? [fifo-size=1024]
62 Sensor [13] : gps.dataspeed ? can-proto=can.socket,can-params=device=canX[,fifo-size=1024]
63 Sensor [14] : imu.uart ? device=/dev/ttyXXX[,baud={1200,2400,4800,9600,19200,38400,57600,115200}[,format=xsens_nmea]][,fifo-size=1024]
64 Sensor [15] : imu.xsens ? device=0[,frequency=100,time-smoothing=false,fifo-size=1024,baudrate=115200,stop-bits=2]
65 Sensor [16] : imu.virtual ? file=filepath.bin[,create_seek,default_timeout_us,time-smoothing=false,time-offset=0]
66 Sensor [17] : imu.novatel ? [fifo-size=1024]
67 Sensor [18] : imu.dataspeed ? can-proto=can.socket,can-params=device=canX[,fifo-size=1024]
68 Sensor [19] : imu.bosch ? can-proto=can.socket,can-params=device=canX[,fifo-size=1024]
69 Sensor [20] : imu.continental ? can-proto=can.socket,can-params=device=canX[,fifo-size=1024]
70 Sensor [21] : lidar.virtual ? file=filepath.bin[,create_seek,default_timeout_us,time-smoothing=false,decoding=true,time-offset=0]
71 Sensor [22] : lidar.socket ? ip=X.X.X.X,port=XXXX,device={QUAN_M81A, IBEO_LUX, IBEO_LUX_8L, VELO_VLP16, VELO_VLP16HR, VELO_HDL32E, VELO_VLP32C, VELO_HDL64E, CUSTOM},scan-frequency=XX.X[,protocol=xxx,multicast-ip=X.X.X.X,decoder=filepath.so,time-smoothing=false]
72 Sensor [23] : radar.virtual ? file=filepath.bin,time-smoothing=true[,decoder=filepath.so,create_seek,default_timeout_us,decoding=true,time-offset=0]
73 Sensor [24] : radar.socket ? ip=X.X.X.X,port=XXXX,device={DELPHI_ESR2_5, CONTINENTAL_ARS430, CONTINENTAL_ARS430_RDI, CUSTOM},multicast-ip=X.X.X.X,time-smoothing=true,isInverted=false,slave=false[,decoder=filepath.so,protocol=xxx]
74 Sensor [25] : radar.can ? can-driver=can.xxx,can-bus=xxx,can-base-id=0x460,device={CONTINENTAL_ARS430_CAN}[,aurix-can-ip=X.X.X.X.X],[aurix-can-aport=XXXX][,aurix-can-bport=XXXX][,virtual-file=filepath.bin]
77 Sensor [0] : time.virtual ? file=/path/to/file.bin[,create_seek]
78 Sensor [1] : can.socket ? device=can0
79 Sensor [2] : can.aurix ? ip=10.0.0.1,bus={a,b,c,d}[,aport=50000,bport=60395][config-file=/path/to/EasyCanConfigFile.conf][,fifo-size=1024]
80 Sensor [3] : can.virtual ? file=/path/to/file.can[,create_seek][,time-offset=0]
81 Sensor [4] : camera.gmsl ? camera-group={a,b,c,d},camera-count={1,2,3,4},camera-type={ar0231-rccb-bae-sf3324, ar0231-rccb-bae-sf3325},output-format={yuv+raw+data}[,slave={0,1}][,fifo-size={3..20}][,custom-board=0][,camera-mask={0001|0010|0011|..|1111}][,warn-per-frame={0,1}]
82 Sensor [5] : camera.virtual ? video/file=filepath.{h264,raw}[,timestamp=file.txt][,create_seek][,time-offset=0]
83 Sensor [6] : gps.uart ? device=/dev/ttyXXX[,baud={1200,2400,4800,9600,19200,38400,57600,115200}[,format=nmea0183]][,fifo-size=1024]
84 Sensor [7] : gps.virtual ? file=filepath.bin[,xsens-raw-gps=true,create_seek,default_timeout_us,time-smoothing=false,time-offset=0]
85 Sensor [8] : gps.xsens ? device=0[,frequency=100,xsens-raw-gps=true,time-smoothing=false,fifo-size=1024,baudrate=115200,stop-bits=2]
86 Sensor [9] : gps.dataspeed ? can-proto=can.socket/aurix,can-params=device=canX[,fifo-size=1024]
87 Sensor [10] : imu.uart ? device=/dev/ttyXXX[,baud={1200,2400,4800,9600,19200,38400,57600,115200}[,format=xsens_nmea]][,fifo-size=1024]
88 Sensor [11] : imu.virtual ? file=filepath.bin[,create_seek,default_timeout_us,time-smoothing=false,time-offset=0]
89 Sensor [12] : imu.xsens ? device=0[,frequency=100,time-smoothing=false,fifo-size=1024,baudrate=115200,stop-bits=2]
90 Sensor [13] : imu.dataspeed ? can-proto=can.socket/aurix,can-params=device=canX[,fifo-size=1024]
91 Sensor [14] : imu.bosch ? can-proto=can.socket/aurix,can-params=device=canX[,fifo-size=1024]
92 Sensor [15] : imu.continental ? can-proto=can.socket/aurix,can-params=device=canX[,fifo-size=1024]
93 Sensor [16] : lidar.virtual ? file=filepath.bin[,create_seek,default_timeout_us,time-smoothing=false,time-offset=0]
94 Sensor [17] : lidar.socket ? ip=X.X.X.X,port=XXXX,device={QUAN_M81A, IBEO_LUX, IBEO_LUX_8L, VELO_VLP16, VELO_VLP16HR, VELO_HDL32E, VELO_VLP32C, VELO_HDL64E, CUSTOM},scan-frequency=XX.X[,protocol=xxx,multicast-ip=X.X.X.X,decoder=filepath.so,time-smoothing=false]
95 Sensor [18] : radar.virtual ? file=filepath.bin,time-smoothing=true[,decoder=filepath.so,create_seek,default_timeout_us,decoding=false,time-offset=0]
96 Sensor [19] : radar.socket ? ip=X.X.X.X,port=XXXX,device={DELPHI_ESR2_5, CONTINENTAL_ARS430, CONTINENTAL_ARS430_RDI, CUSTOM},multicast-ip=X.X.X.X],time-smoothing=true,isInverted=false[,decoder=filepath.so,protocol=xxx]
97 Sensor [20] : radar.can ? can-driver=can.xxx,can-bus=xxx,can-base-id=0x460,device={CONTINENTAL_ARS430_CAN}[,aurix-can-ip=X.X.X.X.X],[aurix-can-aport=XXXX][,aurix-can-bport=XXXX][,virtual-file=filepath.bin]
99 The list of available sensors is grouped by the underlying platform
100 (Linux or NVIDIA DRIVE<sup>™</sup> AGX) and on the sensor drivers currently
101 available/implemented in NVIDIA<sup>®</sup> DriveWorks. A list indicates the name of
102 the sensor and the underlying protocol, as well as a set of string-based key-value
103 pairs that you can pass to a sensor as additional arguments.
105 In the example above, there is a sensor `camera.gmsl` available that expects as
106 a parameter the camera-group, which can be any value from the set {a,b,c,d}, a
107 number of cameras available at this port (i.e., 1, 2, 3 or 4), and the camera
108 type (i.e., `ar0231-rccb-bae-sf3324` or `ar0231-rccb-bae-sf3325`).
110 @section dwx_sensor_enum_sample_more Additional Information
112 For more details on using custom sensors, see @ref sensorplugins_mainsection.<br/>
113 For more details, see @ref sensors_usecase2.