2 * Copyright (c) 2017-2020, NVIDIA CORPORATION. All rights reserved.
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.
11 @page dwx_postrecord_checker Post-record Checker
13 This tool is available on the x86 Host System and NVIDIA DRIVE<sup>™</sup> OS Linux.
15 The DriveWorks Post-record Checker verifies data integrity for each recording session.
17 @note SW Release Applicability: This tool is available in both <b>NVIDIA DriveWorks</b> and <b>NVIDIA DRIVE Software</b> releases.
21 The tool is found in the `tools/capture` folder. Run it by executing:
23 ./postrecord-checker --recording_session=<comma-separated list of paths>
24 --output=</path/to/output/report>
25 --sensor=<camera,radar,lidar,imu,gps,can,all>
26 --smoothing=<true/false>
27 --disable_decode=<true/false>
29 The postrecorder-checker does the following:
30 - Checks recording session metadata to verify that all requried files exist and
31 follow the naming convention.
32 - Analyzes sensor timestamps.
34 The postrecorder-checker outputs a sensor timestamp delta that is calculated as
35 timestamps difference from consecutive sensor frames. Those deltas are then used
36 to produce a delta histogram. There are 22 bins in the histogram, each of which
37 has a step size that is 10% of the expected timestamp delta. The first and last
38 bin corresponds to delta values that are less than 0 or larger than 2 times of
41 By default postrecorder-checker sets `--sensor=all`, which means that it parses
42 all the available sensor data. But you can also direct it to parse a subset of
43 the sensors. For example, setting `--sensor=camera,radar,lidar` causes the
44 checker to process the results for only camera, radar, and lidar sensors.
46 By default, postrecorder-checker sets `--smoothing=true`, which enables smoothing
47 for the timestamps due to the host system time jittering.
49 By default, postrecorder-checker sets `--disable_decode=false`, which allows the tool
50 to decode sensor frames/packets in order to extract the timestamps.
52 By default, postrecorder-checker will store the results within each session directory.
53 Setting `--output=</path/to/output/report>` collates the results under the specified directory.
55 You can find python script batch_run.py in `tools/capture/scripts` folder to process multiple recording sessions under a parent folder
57 python ./batch_run.py -b <location of postrecord-checker binary> -i <input parent folder> -o <output folder to store the analysis results>
59 The output includes sensor timestamp files, i.e. `radar.bin.ts` and metadata report in `report.json`. To visualize timestamp delta histograms,
60 user can use python script plot_data.py in `tools` folder
62 python ./plot_data.py -p <output folder contains the analysis results>
64 If user provides a single folder which contains the result produced by postrecord-checker, it plots the delta histogram inside the single folder.
65 If user provides a parent folder which contains multiple result folders produced by batch_run script, it traverses all the folders and
66 plots average delta histogram inside the parent folder.