DriveWorks SDK Reference
3.5.78 Release
For Test and Development only

/dvs/git/dirty/gitlab-master_av/dw/sdk/doc/tutorials/recording/dwx_BasicRecording.md
Go to the documentation of this file.
1 # Copyright (c) 2018-2020 NVIDIA CORPORATION. All rights reserved.
2 
3 @page dwx_recording_devguide_basic_recording Basic Recording
4 @tableofcontents
5 
6 @note SW Release Applicability: This tutorial is applicable to modules in both **NVIDIA DriveWorks** and **NVIDIA DRIVE Software** releases.
7 
8 This section provides guidance on recording a limited number of sensors on
9 a single NVIDIA<sup>&reg;</sup> Xavier<sup>&reg;</sup> processor.
10 
11 @section dwx_recording_devguide_basic_basic_steps Basic Steps
12 
13 The following are the steps to log data in the device.
14 - @ref dwx_recording_devguide_basic_verify
15 - @ref dwx_recording_devguide_basic_configure_to_acquire
16 - @ref dwx_recording_devguide_basic_start_app
17 
18 <a name="prerequisites">
19 ### Prerequisites
20 
21 Before you can use the NVIDIA<sup>&reg;</sup> DriveWorks recording tools or DriveWorks sample sensor
22 applications, you must ensure that:
23 - NVIDIA DRIVE platform is flashed with an operating system.
24 - DriveWorks SDK is installed on the device. For more information, see
25  @ref dwx_devguide_getting_started.
26 - Only supported sensors are used.
27 - An ext4-formmated eSATA/USB3.0 SSD is mounted on the target
28 
29 @subsection dwx_recording_devguide_basic_verify Step 1: Verify the Sensors Are Collecting Data
30 
31 In this step, you will connect the sensor to the device and then verify that the
32 sensor is collecting data.
33 
34 @warning Turn off the device before connecting or disconnecting a sensor.
35 
36 You can determine whether the sensor is correctly connected and collecting data by starting the appropriate sample application.
37 The following table lists some of the samples.
38 
39 | Sensor | Sample Application|
40 |--------|-------------------|
41 | Camera | sample_camera_gmsl_custom |
42 | GPS | sample_gps_logger |
43 | Lidar | sample_lidar_replay |
44 | Radar | sample_radar_replay |
45 | IMU | sample_imu_logger |
46 | CAN | sample_canbus_logger |
47 
48 For a complete list of samples, see @ref dwx_samples_section.
49 
50 @subsection dwx_recording_devguide_basic_configure_to_acquire Step 2: Configure the Device to Acquire Data
51 
52 After verifying that the sensors are functional, you can create a DriveWorks Rig Configuration file
53 to specify sensors for recording. For more information on creating a rig file for recording,
54 see the recording @ref dwx_config_ref or the [Examples](#examples) section in this chapter.
55 
56 @subsection dwx_recording_devguide_basic_start_app Step 3: Start the Recording Application and Acquire the Data
57 
58 After you modify the configuration file to collect and store the data, you can
59 begin logging the data from the sensors. You can use the basic, TextUI, or GUI
60 tool:
61 - tools/capture/recorder
62 - tools/capture/recorder-tui
63 - tools/capture/recorder-qtgui
64 
65 All tools collect the data from the sensors, synchronize the data by adding
66 time stamps, and save the data to the storage device.
67 
68 @subsubsection dwx_recording_devguide_basic_can Recording SocketCAN Data
69 
70 If you are using the @ref dwx_recorder_tool, and recording data from SocketCAN on Linux,
71 you must start the recording tool with root privileges. For example:
72 
73  # sudo tools/capture/recorder
74 
75 The sensor driver uses an IOCTL command to enable HW timestamping for the
76 TegraCAN interface.
77 
78 The sudo preface is not required for the @ref dwx_recorder_textui_tool or the @ref dwx_gui_recording2_tool,
79 as it is handled internally.
80 
81 @section dwx_recording_devguide_basic_examples Examples
82 
83 This section shows how to log data from the connected sensors. The applications
84 can check that the sensors can collect data and saves the data to the Xavier
85 System on Chip (SOC).
86 
87 @subsection dwx_recording_devguide_basic_camera_sensor_data_acquisition Cameras
88 
89 This section explains how to use the DriveWorks recorder to acquire data from
90 one or more cameras.
91 
92 @subsubsection dwx_recording_devguide_basic_single_cam Recording from a Single Camera
93 
94 This procedure shows how to record data from a single (AR0231) camera.
95 
96 ![Recording from a Single Sensor](Data_Acq_Camera_Sensors_single.png)
97 
98 #### To record data from a single camera
99 
100 1. With the device powered off, connect the camera to port A0 of a camera group.
101  @warning Turn off the device before connecting or disconnecting a sensor.
102 2. Turn on the device and open a terminal window.
103 3. On the target, navigate to:
104 
105  /usr/local/driveworks/bin/
106 4. Run the following command to verify that your camera is correctly connected to the device:
107 
108  If the camera type is c-ov10649-b1 and the CSI port is the default ab, execute:
109 
110  ./sample_camera_gmsl
111  Otherwise, execute:
112 
113  ./sample_camera_gmsl --camera-type=<camera_type>
114  Where &lt;camera_type&gt; is the camera.
115 
116  For example, if your camera is an AR0231-RCCB sensor with a SF3324 module and you want to run in BAE exposure mode, run the following command:
117 
118  ./sample_camera_gmsl --camera-type=ar0231-rccb-bae-sf3324
119  A window appears with video if the camera is correctly connected to the
120  device and the drivers are running.
121 
122  Close the window to stop the camera application.
123 
124 5. On the target, navigate to:
125 
126  /usr/local/driveworks/tools/capture/
127 
128 6. Copy the default configuration file in `configs/hyperion7_1/release.json`, and include the following
129  sensor block for camera. All the other sensor blocks can be removed.
130 ```
131  {
132  "name": "camera:front:center:120fov",
133  "nominalSensor2Rig": {
134  "quaternion": [
135  -0.502444,
136  0.507493,
137  -0.497444,
138  0.492494
139  ],
140  "t": [
141  1.749,
142  -0.1,
143  1.47
144  ]
145  },
146  "parameter": "camera-type=ar0231-rccb-bae-sf3324,camera-group=a,camera-count=1,format=h264,output-format=yuv",
147  "properties": {
148  "Model": "ftheta",
149  "bw-poly": "0.0 0.000545421498827636 -1.6216719633103e-10 -4.64720492990289e-12 2.85224527762934e-16",
150  "cx": "960",
151  "cy": "604",
152  "height": "1208",
153  "width": "1920"
154  },
155  "protocol": "camera.gmsl",
156  "sensor2Rig": {
157  "quaternion": [
158  -0.502444,
159  0.507493,
160  -0.497444,
161  0.492494
162  ],
163  "t": [
164  1.749,
165  -0.1,
166  1.47
167  ]
168  }
169  }
170 ```
171 
172 7. Save the modified configuration file.
173 
174 8. Run the following command to log the data from the camera:
175 
176  # ./recorder-tui <modified_file.json>
177  A TextUI interface appears on the console as below:
178 
179  Recorder @ release: Ready to start
180  4.672 GB 135.591 MB/s camera:front:center:120fov
181  4.672 GB 135.591 MB/s TOTAL
182  Last output: [19-8-2018 0:48:58] SensorManager: started
183  Press s<Enter> to start/stop. Press q<Enter> to quit.
184 
185  Enter `s` to start recording data from the camera.
186 
187  After a few seconds, enter `s` to stop recording data.
188 
189  @warning Stop recording data and then quite the application. If you quit the app
190  before you stop recording data, you will corrupt the acquired data.
191 
192  The sensor data will be available on the ext4-formmated eSATA/USB SSD.
193 
194 @subsubsection dwx_recording_devguide_basic_3_cameras Recording from Three Cameras
195 
196 This procedure demonstrates how to record data from three AR0231 camera.
197 The cameras connected to the following ports:
198 
199 | Camera Group | Port Name | Camera Type | Ports |
200 |--------------|-----------|-------------|-------|
201 | A | a | ar0231-rccb-bae-sf3324 | Port 0 <br> Port 1|
202 | B | c | ar0231-rccb-bae-sf3324 | Port 0 |
203 
204 
205 ![Two cameras connect to ab and one to cd](Data_Acq_Camera_Sensors_Multiple.png)
206 
207 @warning Turn off the device before connecting or disconnecting a sensor.
208 
209 #### To acquire data from three cameras
210 
211 1. Turn on the device and open a terminal window.
212 2. On the target, navigate to:
213 
214  /usr/local/driveworks/bin/
215 3. Run sample_camera_multiple_gmsl to verify that your camera is
216  correctly connected to the device. The following command is for cameras
217  connected at 0 and 1 on port-a and 0 on port-c:
218 
219  ./sample_camera_multiple_gmsl --type-a=ar0231-rccb-bae-sf3324 --type-c=ar0231-rccb-bae-sf3324 \
220  --selector-mask=00110001
221  @warning Cameras must be connected to the port in ascending order (0, 1, 2, 3).
222 
223  A window appears with video if the camera is correctly connected to the device.
224  Close the window to stop the camera application.
225 
226 4. On the target, navigate to:
227 
228  /usr/local/driveworks/tools/capture/
229 
230 5. Copy the default configuration file in `configs/hyperion7_1/release.json`, and include the following
231  sensor block for camera. All the other sensor blocks can be removed.
232 ```
233  {
234  "name": "camera:front:center:120fov",
235  "nominalSensor2Rig": {
236  "quaternion": [
237  -0.502444,
238  0.507493,
239  -0.497444,
240  0.492494
241  ],
242  "t": [
243  1.749,
244  -0.1,
245  1.47
246  ]
247  },
248  "parameter": "camera-type=ar0231-rccb-bae-sf3324,camera-group=a,camera-count=2,siblingIndex=0,format=h264,output-format=yuv",
249  "properties": {
250  "Model": "ftheta",
251  "bw-poly": "0.0 0.000545421498827636 -1.6216719633103e-10 -4.64720492990289e-12 2.85224527762934e-16",
252  "cx": "960",
253  "cy": "604",
254  "height": "1208",
255  "width": "1920"
256  },
257  "protocol": "camera.gmsl",
258  "sensor2Rig": {
259  "quaternion": [
260  -0.502444,
261  0.507493,
262  -0.497444,
263  0.492494
264  ],
265  "t": [
266  1.749,
267  -0.1,
268  1.47
269  ]
270  }
271  },
272  {
273  "name": "camera:front:right:120fov",
274  "nominalSensor2Rig": {
275  "quaternion": [
276  -0.502444,
277  0.507493,
278  -0.497444,
279  0.492494
280  ],
281  "t": [
282  1.749,
283  -0.1,
284  1.47
285  ]
286  },
287  "parameter": "camera-type=ar0231-rccb-bae-sf3324,camera-group=a,camera-count=2,siblingIndex=1,format=h264,output-format=yuv",
288  "properties": {
289  "Model": "ftheta",
290  "bw-poly": "0.0 0.000545421498827636 -1.6216719633103e-10 -4.64720492990289e-12 2.85224527762934e-16",
291  "cx": "960",
292  "cy": "604",
293  "height": "1208",
294  "width": "1920"
295  },
296  "protocol": "camera.gmsl",
297  "sensor2Rig": {
298  "quaternion": [
299  -0.502444,
300  0.507493,
301  -0.497444,
302  0.492494
303  ],
304  "t": [
305  1.749,
306  -0.1,
307  1.47
308  ]
309  }
310  },
311  {
312  "name": "camera:rear:center:120fov",
313  "nominalSensor2Rig": {
314  "quaternion": [
315  -0.502444,
316  0.507493,
317  -0.497444,
318  0.492494
319  ],
320  "t": [
321  1.749,
322  -0.1,
323  1.47
324  ]
325  },
326  "parameter": "camera-type=ar0231-rccb-bae-sf3324,camera-group=c,camera-count=1,format=h264,output-format=yuv",
327  "properties": {
328  "Model": "ftheta",
329  "bw-poly": "0.0 0.000545421498827636 -1.6216719633103e-10 -4.64720492990289e-12 2.85224527762934e-16",
330  "cx": "960",
331  "cy": "604",
332  "height": "1208",
333  "width": "1920"
334  },
335  "protocol": "camera.gmsl",
336  "sensor2Rig": {
337  "quaternion": [
338  -0.502444,
339  0.507493,
340  -0.497444,
341  0.492494
342  ],
343  "t": [
344  1.749,
345  -0.1,
346  1.47
347  ]
348  }
349  }
350 
351 ```
352 
353 6. Save the modified configuration file.
354 
355 7. Run the following command to log the data from the camera:
356 
357  # ./recorder-tui <modified_file.json>
358  A TextUI interface appears on the console as below:
359 
360  Recorder @ release: Ready to start
361  4.672 GB 1.591 MB/s camera:front:center:120fov
362  4.700 GB 1.585 MB/s camera:front:right:120fov
363  4.987 GB 2.035 MB/s camera:rear:center:120fov
364  14.359 GB 5.211 MB/s TOTAL
365  Last output: [19-8-2018 0:48:58] SensorManager: started
366  Press s<Enter> to start/stop. Press q<Enter> to quit.
367 
368  After a few seconds, enter `s` to stop recording data.
369 
370  @warning Stop recording data and then quite the application. If you quit the app
371  before you stop recording data, you will corrupt the acquired data.
372 
373  The sensor data will be available on the ext4-formmated eSATA/USB SSD.
374 
375 @subsection dwx_recording_devguide_basic_gps GPS
376 
377 This section shows how to acquire data from a GPS sensor.
378 
379 ![Recording data from a GPS sensor](Data_Acq_GPS_Sensor.png)
380 
381 #### To determine GPS settings for the rig file
382 
383 1. With the device powered off, connect the GPS sensor to the device per vendor
384  documentation. For example, Garmin connection instructions are on page 8 at:<br>
385  http://static.garmin.com/pumac/GPS_18x_Tech_Specs.pdf
386 2. Determine on which serial port the device is enumerated:
387 
388  dmesg | grep ttyUSB
389 3. Determine the baud rate at which the GPS device transmits data. This
390  information can be obtained from vendor documentation. For example, Garmin LVC
391  GPS 18x uses 4800 baud.
392 4. Set the baud rate to the serial port. For example:
393 
394  stty -F /dev/ttyUSB0 4800
395 5. Verify that GPS data is being received:
396 
397  cat /dev/ttyUSB0 4800
398 6. Update the GPS settings in the rig file with the serial port and baud rate.
399 
400 #### To acquire data from a GPS sensor
401 
402 1. With the device powered off, connect the GPS sensor to the device.
403  @warning Turn off the device before connecting or disconnecting a sensor.
404 2. Turn on the device and open a terminal window.
405 3. On the target, navigate to:
406 
407  /driveworks/bin/
408 4. Run the following command to verify that your GPS sensor is correctly connected to the device:
409 
410  ./sample_gps_logger --driver=gps.uart --params=device=/dev/ttyUSB0,baud=4800
411  Console prints will display the data acquired if the GPS sensor is correctly
412  connected to the device and the drivers are running.
413 
414 5. On the target, navigate to:
415 
416  /usr/local/driveworks/tools/capture/
417 
418 6. Copy the default configuration file in `configs/hyperion7_1/release.json`, and include the following
419  sensor block for gps. All the other sensor blocks can be removed.
420 ```
421  {
422  "name": "gps:garmin",
423  "nominalSensor2Rig": {
424  "quaternion": [
425  -0.502444,
426  0.507493,
427  -0.497444,
428  0.492494
429  ],
430  "t": [
431  1.749,
432  -0.1,
433  1.47
434  ]
435  },
436  "parameter": "device=/dev/ttyUSB0,baud=115200",
437  "protocol": "gps.uart",
438  "sensor2Rig": {
439  "quaternion": [
440  -0.502444,
441  0.507493,
442  -0.497444,
443  0.492494
444  ],
445  "t": [
446  1.749,
447  -0.1,
448  1.47
449  ]
450  }
451  }
452 ```
453 
454 8. Run the following command to log the data from the camera:
455 
456  # ./recorder-tui <modified_file.json>
457  A TextUI interface appears on the console as below:
458 
459  Recorder @ release: Ready to start
460  1.057 MB 25.591 KB/s gps:garmin
461  1.057 MB 25.591 KB/s TOTAL
462  Last output: [19-8-2018 0:48:58] SensorManager: started
463  Press s<Enter> to start/stop. Press q<Enter> to quit.
464 
465  After a few seconds, enter `s` to stop recording data.
466 
467  @warning Stop recording data and then quite the application. If you quit the app
468  before you stop recording data, you will corrupt the acquired data.
469 
470  The sensor data will be available on the ext4-formmated eSATA/USB SSD.
471 
472 @subsection dwx_recording_devguide_basic_lidar Lidar
473 
474 This section shows how to acquire data from a Lidar sensor.
475 
476 ![Recording Data from Lidar](Data_Acq_Lidar_Sensor.png)
477 
478 #### Determining the Lidar IP Address and Port
479 
480 ##### To determine the IP address and port for a Quanergy LIDAR
481 
482 1. Connect the Lidar Ethernet port to eth0 port of Xavier A.
483 2. Connect the Quanergy to a router switch and connect this router to Xavier A
484  eth0. The IP of router will be in range 192.168.x.x.
485 3. Find the IP address by running:
486 
487  # nmap -sn 192.168.1.0/25
488  If Quanergy is detected, you will see an IP address associated with Quanergy system.
489 4. To obtain the port number, consult the Quanergy technical specification.
490  The following is an example of rig sensor block for a Quanergy LIDAR.
491 ```
492  {
493  "name": "lidar:quanergy",
494  "nominalSensor2Rig": {
495  "quaternion": [
496  -0.502444,
497  0.507493,
498  -0.497444,
499  0.492494
500  ],
501  "t": [
502  1.749,
503  -0.1,
504  1.47
505  ]
506  },
507  "parameter": "device=QUAN_M81A,ip=192.168.1.8,port=4141,scan-frequency=10",
508  "protocol": "lidar.socket",
509  "sensor2Rig": {
510  "quaternion": [
511  -0.502444,
512  0.507493,
513  -0.497444,
514  0.492494
515  ],
516  "t": [
517  1.749,
518  -0.1,
519  1.47
520  ]
521  }
522  }
523 ```
524 
525 ##### To determine the IP address for a Velodyne LIDAR
526 
527 1. Connect the LIDAR to the eth0 port of Xavier A.
528 2. Obtain the default IP address and port number from the Velodyne technical specification.
529 3. Set up the IP of eth0 with:
530 
531  # ifconfig eth0 <lidar_address>
532  By default, the Lidar IP address is 192.168.1.201.
533  Ensure this IP does not conflict with the AURIX, Xavier A, or Xavier B IPs.
534  The following is an example of recorder-config.json with a Velodyne 32 LIDAR.
535 ```
536  {
537  "name": "lidar:velodyne",
538  "nominalSensor2Rig": {
539  "quaternion": [
540  -0.502444,
541  0.507493,
542  -0.497444,
543  0.492494
544  ],
545  "t": [
546  1.749,
547  -0.1,
548  1.47
549  ]
550  },
551  "parameter": "device=VELO_HDL32E,ip=192.168.1.201,port=2368,scan-frequency=10",
552  "protocol": "lidar.socket",
553  "sensor2Rig": {
554  "quaternion": [
555  -0.502444,
556  0.507493,
557  -0.497444,
558  0.492494
559  ],
560  "t": [
561  1.749,
562  -0.1,
563  1.47
564  ]
565  }
566  }
567 ```
568  The value for params above is:
569 
570  "device=VELO_HDL32E,ip=192.168.1.201,port=2368,scan-frequency=10"
571  For Velodyne 16, the device name is VELO_VLP16.
572  For Velodyne 64, the device is VELO_HDL64E.
573 
574 #### Recording Data from a Lidar Sensor
575 
576 After you obtain the Lidar IP address and port, you can obtain Lidar data.
577 
578 ##### To acquire data from a Lidar sensor
579 1. With the device powered off, connect the LIDAR sensor to the device.
580 @warning Turn off the device before connecting or disconnecting a sensor.
581 2. Turn on the device and open a terminal window.
582 3. On the target, navigate to:
583 
584  /driveworks/bin/
585 4. Run the following command to verify that your LIDAR sensor is correctly
586  connected to the device. For example:
587 
588  ./sample_lidar_replay --device=VELO_HDL32E --ip=192.168.1.201 --port=2368 \
589  --scan-frequency=10
590  A window appears that displays a point cloud if the LIDAR sensor is correctly
591  connected to the device and the drivers are running.
592  Close the window to stop the lidar replay application.
593 
594 5. Go to the following location in the DriveWorks folder:
595 
596  /usr/local/driveworks/tools/capture/
597 
598 6. Copy the default configuration file in `configs/hyperion7_1/release.json`, and include the following
599  sensor block for lidar:
600 ```
601  {
602  "name": "lidar:side",
603  "nominalSensor2Rig": {
604  "quaternion": [
605  -0.502444,
606  0.507493,
607  -0.497444,
608  0.492494
609  ],
610  "t": [
611  1.749,
612  -0.1,
613  1.47
614  ]
615  },
616  "parameter": "ip=<ip_address>,port=<port>,device=<device_name>,frequency=10",
617  "protocol": "lidar.socket",
618  "sensor2Rig": {
619  "quaternion": [
620  -0.502444,
621  0.507493,
622  -0.497444,
623  0.492494
624  ],
625  "t": [
626  1.749,
627  -0.1,
628  1.47
629  ]
630  }
631  }
632 ```
633  Where:
634  - `<ip_address>` is the IP address of the LIDAR sensor.
635  - `<port>` is the port for the Lidar sensor.
636 
637 8. Run the following command to log the data from the camera:
638 
639  # ./recorder-tui <modified_file.json>
640  A TextUI interface appears on the console as below:
641 
642  Recorder @ release: Ready to start
643  50.057 MB 400.591 KB/s lidar:side
644  50.057 MB 400.591 KB/s TOTAL
645  Last output: [19-8-2018 0:48:58] SensorManager: started
646  Press s<Enter> to start/stop. Press q<Enter> to quit.
647 
648  After a few seconds, enter `s`to stop recording data.
649 
650  @warning Stop recording data and then quite the application. If you quit the app
651  before you stop recording data, you will corrupt the acquired data.
652 
653  The sensor data will be available on the ext4-formmated eSATA/USB SSD.
654 
655 @subsection dwx_recording_devguide_basic_multi Multiple Sensor Types
656 
657 This section shows you how to acquire data from multiple sensors connected to
658 the device. This section assumes that you know how to verify that each sensor is
659 working and that you have a rig configuration file.
660 
661 ![Two cameras connect to a and one to c, one GPS to USB, and the LIDAR to Ethernet](Data_Acq_Multi_Sensors.png)
662 
663 #### To acquire data from multiple cameras, an HDL-32 LIDAR, and a GPS Sensors
664 
665 This procedure shows you how to log the data from the following sensors:
666 - Three AR0231 cameras
667 - One HDL-32 LIDAR sensor
668 - One GPS Sensor
669 
670 The cameras are connected to the following ports:
671 
672 |Camera Group | Port Name | Camera Type | Ports|
673 |-------------|-----------|-------------|------|
674 |A | a | ar0231-rccb-bae-sf3324 | Port 0<br>Port 1 |
675 |B | c | ar0231-rccb-bae-sf3324 | Port 0|
676 
677 @warning Turn off the device before connecting or disconnecting a sensor.
678 
679 1. Change the following sections in the configuration file to log the data from the sensors:
680 ```
681  {
682  "name": "camera:front:center:120fov",
683  "nominalSensor2Rig": {
684  "quaternion": [
685  -0.502444,
686  0.507493,
687  -0.497444,
688  0.492494
689  ],
690  "t": [
691  1.749,
692  -0.1,
693  1.47
694  ]
695  },
696  "parameter": "camera-type=ar0231-rccb-bae-sf3324,camera-group=a,camera-count=2,siblingIndex=0,format=h264,output-format=yuv",
697  "properties": {
698  "Model": "ftheta",
699  "bw-poly": "0.0 0.000545421498827636 -1.6216719633103e-10 -4.64720492990289e-12 2.85224527762934e-16",
700  "cx": "960",
701  "cy": "604",
702  "height": "1208",
703  "width": "1920"
704  },
705  "protocol": "camera.gmsl",
706  "sensor2Rig": {
707  "quaternion": [
708  -0.502444,
709  0.507493,
710  -0.497444,
711  0.492494
712  ],
713  "t": [
714  1.749,
715  -0.1,
716  1.47
717  ]
718  }
719  },
720  {
721  "name": "camera:front:right:120fov",
722  "nominalSensor2Rig": {
723  "quaternion": [
724  -0.502444,
725  0.507493,
726  -0.497444,
727  0.492494
728  ],
729  "t": [
730  1.749,
731  -0.1,
732  1.47
733  ]
734  },
735  "parameter": "camera-type=ar0231-rccb-bae-sf3324,camera-group=a,camera-count=2,siblingIndex=1,format=h264,output-format=yuv",
736  "properties": {
737  "Model": "ftheta",
738  "bw-poly": "0.0 0.000545421498827636 -1.6216719633103e-10 -4.64720492990289e-12 2.85224527762934e-16",
739  "cx": "960",
740  "cy": "604",
741  "height": "1208",
742  "width": "1920"
743  },
744  "protocol": "camera.gmsl",
745  "sensor2Rig": {
746  "quaternion": [
747  -0.502444,
748  0.507493,
749  -0.497444,
750  0.492494
751  ],
752  "t": [
753  1.749,
754  -0.1,
755  1.47
756  ]
757  }
758  },
759  {
760  "name": "camera:rear:center:120fov",
761  "nominalSensor2Rig": {
762  "quaternion": [
763  -0.502444,
764  0.507493,
765  -0.497444,
766  0.492494
767  ],
768  "t": [
769  1.749,
770  -0.1,
771  1.47
772  ]
773  },
774  "parameter": "camera-type=ar0231-rccb-bae-sf3324,camera-group=c,camera-count=1,format=h264,output-format=yuv",
775  "properties": {
776  "Model": "ftheta",
777  "bw-poly": "0.0 0.000545421498827636 -1.6216719633103e-10 -4.64720492990289e-12 2.85224527762934e-16",
778  "cx": "960",
779  "cy": "604",
780  "height": "1208",
781  "width": "1920"
782  },
783  "protocol": "camera.gmsl",
784  "sensor2Rig": {
785  "quaternion": [
786  -0.502444,
787  0.507493,
788  -0.497444,
789  0.492494
790  ],
791  "t": [
792  1.749,
793  -0.1,
794  1.47
795  ]
796  }
797  },
798  {
799  "name": "gps:garmin",
800  "nominalSensor2Rig": {
801  "quaternion": [
802  -0.502444,
803  0.507493,
804  -0.497444,
805  0.492494
806  ],
807  "t": [
808  1.749,
809  -0.1,
810  1.47
811  ]
812  },
813  "parameter": "device=/dev/ttyUSB0,baud=115200",
814  "protocol": "gps.uart",
815  "sensor2Rig": {
816  "quaternion": [
817  -0.502444,
818  0.507493,
819  -0.497444,
820  0.492494
821  ],
822  "t": [
823  1.749,
824  -0.1,
825  1.47
826  ]
827  }
828  },
829  {
830  "name": "lidar:side",
831  "nominalSensor2Rig": {
832  "quaternion": [
833  -0.502444,
834  0.507493,
835  -0.497444,
836  0.492494
837  ],
838  "t": [
839  1.749,
840  -0.1,
841  1.47
842  ]
843  },
844  "parameter": "ip=<ip_address>,port=<port>,device=<device_name>,frequency=10",
845  "protocol": "lidar.socket",
846  "sensor2Rig": {
847  "quaternion": [
848  -0.502444,
849  0.507493,
850  -0.497444,
851  0.492494
852  ],
853  "t": [
854  1.749,
855  -0.1,
856  1.47
857  ]
858  }
859  }
860 ```
861  Where:
862  - `<ip_address>` is the IP address of the LIDAR sensor.
863  - `<port>` is the port for the LIDAR sensor.
864 
865  Save the modified configuration file.
866 
867 2. Run the following command to log the data from the sensors:
868 
869  # ./recorder-tui <modified_file.json>
870  A TextUI interface appears on the console as below:
871 
872  Recorder @ release: Ready to start
873  4.672 GB 1.591 MB/s camera:front:center:120fov
874  4.700 GB 1.585 MB/s camera:front:right:120fov
875  4.987 GB 2.035 MB/s camera:rear:center:120fov
876  1.057 MB 25.591 KB/s gps:garmin
877  50.057 MB 400.591 KB/s lidar:front
878  14.410 MB 6.137 MB/s TOTAL
879  Last output: [19-8-2018 0:48:58] SensorManager: started
880  Press s<Enter> to start/stop. Press q<Enter> to quit.
881 
882  After a few seconds, enter `s`to stop recording data.
883 
884  @warning Stop recording data and then quite the application. If you quit the app
885  before you stop recording data, you will corrupt the acquired data.
886 
887  The sensor data will be available on the ext4-formmated eSATA/USB SSD.
888 
889 @section dwx_recording_devguide_basic_sensor_data_quality Sensor Data Quality
890 
891 #### To sanity-check the Lidar and Camera data
892 1. Use the recorder tool to capture Lidar and camera data on someone walking past.
893 2. Use the replayer tool on the captured data to verify that:
894  - Data from the different sensors are roughly in sync and
895  - Lidar data makes sense (i.e. the shape of the person walking past).
896 
897 #### To sanity-check the Lidar data
898 - For Lidar, compare the Lidar plot coming from the PDK with the reference plots
899  obtained from any other Linux x86 machine, at the same location.
900 
901 #### To sanity-check GPS data
902 - If you are testing in a Lab, ensure the GPS produces the same coordinates over
903  time. It should be roughly the same because it is not moving.
904 
905 #### To determine if a sensor is broken
906 - Feed each offline file to the corresponding DriveWork sensor sample. If one of
907  the files fails, you know there is a problem with the sensor.
908 - Read the documentation provided by the sensor manufacturer.