DriveWorks SDK Reference
4.0.0 Release
For Test and Development only

tools/preFlightChecker/docs/pfc_using.md
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2018, NVIDIA CORPORATION. All rights reserved.
3  *
4  * NVIDIA Corporation and its licensors retain all intellectual property
5  * and proprietary rights in and to this software, related documentation
6  * and any modifications thereto. Any use, reproduction, disclosure or
7  * distribution of this software and related documentation without an express
8  * license agreement from NVIDIA Corporation is strictly prohibited.
9  */
10 
11 
12 @page pfc_using Using Pre-Flight Checker
13 @tableofcontents
14 
15 The Pre-Flight Checker (PFC) tool ensures proper operation of all connected
16 sensors and checks prerequisites required for the car to be safely driven in
17 autonomous mode. It is a shell script that consumes JSON files that define the
18 sensors it should check.
19 
20 During installation, PFC is initialized for the current configuration.
21 
22 @section pfc_prereq Prerequisites
23 PFC runs on these hardware platforms:
24 - NVIDIA DRIVE<sup>&trade;</sup> AGX Platform:
25  Bench setup with all sensors connected.
26 - NVIDIA DRIVE AGX Platform: In-Car
27 
28 For the following information, see the _NVIDIA DRIVE AV Release Notes_:
29 - Specifications on the supported NVIDIA DRIVE AGX Platform
30 - Software versions that PFC and NVIDIA DRIVE AV use
31 
32 PFC must be installed with NVIDIA DRIVE<sup>&trade;</sup> AV.
33 
34 @subsection pfc_prereq_bench_validation Bench Validation
35 Below are the prerequisites to ensure correct PFC results during bench mode
36 validation. In bench mode, sensor data usually comes from recordings, but it
37 can also come from sensors.
38 
39 @note Currently, PFC bench validation supports only data from sensors.
40 It does not support recorded data.
41 
42 - GPS sensor must have clear sky.
43  If PFC is executed in a garage or closed environment, GPS data-validity may
44  indicate failure.
45 - All camera and Radar sensors must be exposed to a valid environment.
46  Specifically, cameras must:
47  - Have a valid, unobstructed view.
48  Cameras must not face a static view, such as a wall.
49  Cameras must not be obstructed by barriers, such as trees, cloth, or mud.
50  - Be exposed to appropriate lights.
51 
52  Radar sensor must be separated from objects by at least 1-meter; otherwise,
53  Radar data-validity fails.
54 
55 @subsection pfc_prereq_ic_validation In-Car Validation
56 Below are the prerequisite to ensure correct PFC results during in-car validation.
57 
58 - Prerequisites specified for @ref pfc_prereq_bench_validation.
59 - CAR engine must be ON, the transmission must be in Park, and the steering
60  must be unlocked; otherwise, CAN sanity fails.
61 
62 @section pfc_running_autonomous Running in Autonomous Driving Mode
63 
64 1. On the platform, navigate to:
65 
66  /usr/local/driveworks/tools/preFlightChecker/config
67 
68 2. Enter:
69 
70  $ sudo ./pfc_run.sh --rig <rig_file_path> --car agx-rel [--no-gui]
71  Where
72  - `<rig_file_path>` is the path of the rig.json file that specifies each
73  sensors to validate, based on the setup configuration.
74  - `<car_no>` identifies the car. For the NVIDIA AGX Platform, set this
75  parameter to `agx-rel`.
76  \n By default: `bench`.
77  - `--no-gui` (optional) disables the PFC GUI and instead displays the result only on the console.
78 
79  For example:
80 
81  $ sudo ./pfc_run.sh --rig hyperion-7-1-release.json --car agx-rel --no-gui
82 
83  For NVIDIA Hyperion 7.1, the config rig file is available at:
84 
85  /usr/local/driveworks/tools/preFlightChecker/config/hyperion7-1-release.json
86 
87 3. PFC updates the log output as specified in `hyperion7-1-release.json`.
88  It also displays the current sensor status in a sequence of four images:
89  - Summary: The first window shows a summary of sensor status (screen shot follows).
90  - Detail: Use the RIGHT-ARROW key to navigate to the detail windows, which
91  includes multiple pages. Use the RIGHT- and LEFT-ARROW keys to navigate
92  between pages.
93  \n An example of the detailed information follows.
94 
95 ![](pfc_summary.png)
96 \n \n
97 ![](pfc_detail_table.png)
98 
99 @section pfc_running_bench Running in Bench Mode
100 
101 When you use PFC in bench mode, it performs the same checks as in autonomous
102 mode. However, in bench mode, CAN devices are unavailable. Those devices include
103 brake, throttle, gear & steering. As a result, validation of those devices
104 always fails.
105 
106 1. On the platform, navigate to:
107 
108  /usr/local/driveworks/tools/preFlightChecker/config
109 
110 2. Enter:
111 
112  $ sudo ./pfc_run.sh --rig <rig_file_path>
113  Where
114  - `<rig_file_path>` is the path of the rig.json file that specifies each
115  sensors to validate, based on the setup configuration.
116 
117  For example:
118 
119  $ sudo ./pfc_run.sh --rig hyperion7-1-release.json
120 
121  For NVIDIA Hyperion 7.1, the config rig file is available at:
122 
123  /usr/local/driveworks/tools/preFlightChecker/config/hyperion7-1-release.json
124 
125 @section pfc_hyperion8 Running on Hyperion 8 Platform
126 
127 1. On the platform, navigate to:
128 
129  /usr/local/driveworks/tools/preFlightChecker/config
130 
131 2. Enter:
132 
133  python3 hyp8_pfc_run.py --rig <rig_file_path>
134  Where
135  - `<rig_file_path>` is the path of the rig.json file that specifies each
136  sensors to validate, based on the setup configuration.
137 
138 Hyperion8 rigs for various configurations are located in the recording directory:
139 
140  /usr/local/driveworks/tools/capture/configs
141 
142 @section pfc_log Generating a Data Log
143 
144 By default, PFC generates a log.
145 
146 @note If debug logs are enabled, there is a possibility of CAN Sanity and IMU/GPS
147 data-validity failure. This failure is from the logging latency.
148 
149 The following is an example of the log output.
150 
151 ![](pfc_log.png)
152 
153 The log provides the following information:
154 - SENSOR NAME: Sensor name and type, as specified in rig file. For example,
155  camera, Lidar, or Radar. When available, this field also shows the
156  sensor position.
157 - INIT: Status of sensor initialization.
158 - DATA-RATE (mega-pixels/second): Rate at which the sensor feeds the data to PFC.
159  Applies to cameras only.
160 - FREQUENCY (Hertz): Number of frames available per second.
161 - DATA-VALIDATE: Status of the data validity check performed on sensors.
162  Supported values are:
163  - VALID: Sensor is providing valid data.
164  - NOT_IMPL: Support for the specified sensor is not yet implemented.
165  - -NA-: Indicates the attribute, such as DATA-RATE, does not apply to the sensor.
166 
167  For information on how PFC determines data validity, see @ref pfc_features.
168 
169 @section pfc_trouble Interpreting the Log
170 
171 This section explains how to interpret information in the log.
172 
173 @subsection pfc_trouble_freq Sensor Frequency Is Zero
174 The `FREQUENCY` field for a sensor show a value of zero when data is not available.
175 This can happen even though the sensor is connected properly. These symptoms
176 can be due to:
177 - For GPS, the signal strength is weak.
178 - For Lidar or Radar, the sensor is blocked.
179 
180 @subsection pfc_trouble_invalid Sensor Has INVALID Status
181 
182 The `DATA-VALIDATE` field for a camera shows `INVALID` when there are issues with
183 the sensor position.
184 
185 #### To fix in bench mode
186 - Re-align camera sensor
187 
188 #### To fix in autonomous vehicle mode
189 - Move the car to a different location.