DriveWorks SDK Reference
3.5.78 Release
For Test and Development only

/dvs/git/dirty/gitlab-master_av/dw/sdk/tools/ingestion/apps/timesync_framedata/README-timesync_framedata.md
Go to the documentation of this file.
1 # Copyright (c) 2020, NVIDIA CORPORATION. All rights reserved.
2 
3 @page dwx_timesync_framedata_tool Frame Data Time Synchronization Ingestion Tool
4 
5 ### Description
6 
7 This tool is available on the x86 Host System.
8 
9 This is an executable which takes a framedata ION/JSON file as input and synchronizes the timestamps, outputting a ION/JSON file containing synchronized timestamps in the Host time domain.
10 
11 The tool currently supports Camera, CAN, GPS, IMU and Lidar framedata time synchronization. The tool synchronizes the timestamps of CAN signals, GPS frames, IMU frames, Camera frames and Lidar packets.
12 
13 ### Input
14 The input file must be a ION/JSON file outputted by @ref dwx_framedata_ingestion_tool.
15 The supported output format types are "ion-text", "ion-binary" and "json".
16 If a time sensor binary file is given, the time conversion is done based on the time sensor. Otherwise, the tool will just output each frame's host timestamp as the synchronized timestamp.
17 
18 ### Output
19 The output ION/JSON file is filled with the serialized data of each sensor frame in the input file. The output format for each parsed frame is described below.
20 
21 ### Usage
22  cd install/tools/ingestion
23  ./timesync_framedata --input=[path to input ION/JSON file]
24  --format=[ion-text|ion-binary|json]
25  --output=[path to output ION/JSON file]
26  [--time=[path to input binary time sensor file]]
27 
28 ### Output Format
29 
30 ##### CAN
31 - **timestamp_us** : the synchronized host timestamp in microseconds
32 - **payload** : CAN signal data
33  + **message_index** : *uint32_t*, index of the CAN message
34  + **signal_index** : *uint32_t*, index of the signal within the message
35  + **signal_type** : *string*, type of the signal, e.g. "bool", "float32"
36  + **signal_name** : *string*
37  + **value** : *float64_t*, raw value of the signal as a real number
38  + **unit** : unit of the value, e.g. "m/s"
39 
40 ##### GPS
41 - **timestamp_us** : the synchronized host timestamp in microseconds
42 - **payload** : GPS frame data
43  + **latitude** : *float64_t*
44  + **longitude** : *float64_t*
45  + **altitude** : *float64_t*
46  + **course** : *float64_t*
47  + **speed** : *float64_t*
48  + **climb** : *float64_t*
49  + **hdop** : *float64_t*, horizontal dilution of precision
50  + **vdop** : *float64_t*, vertical dilution of precision
51 
52 ##### IMU
53 - **timestamp_us** : the synchronized host timestamp in microseconds
54 - **payload** : IMU frame data
55  + **orientation_\[x\]** : *float64_t*, roll, pitch and yaw angle of the orientation in degrees
56  + **orientation_quaternion_\[x\]** : *float64_t*, quaternion representation of the orientation
57  + **turn_rate_\[x\]** : *float64_t*, roll, pitch and yaw angle turn rate in rad/s
58  + **acceleration_\[x\]** : *float64_t*, acceleration in x, y and z directions in m/s^2
59  + **magnetometer_\[x\]** : *float64_t*, measurement of the magnetometer unit in x, y and z directions in microteslas
60  + **heading** : *float64_t*, heading of the IMU in respect to the ENU system in degrees
61 
62 ##### Video
63 - **timestamp** : the synchronized host timestamp in microseconds
64 - **payload** : Camera frame data
65  + **frame_num** : *uint32_t*, index of the frame
66 
67 ##### Lidar
68 - **packetTimestamp_us** : the packet's synchronized host timestamp in microseconds
69 - **spinTimestamp_us** : the synchronized host timestamp of the first packet in the current spin in microseconds
70 - **payload** : Lidar packet data
71  + **packet_index** : *uint32_t*, index of the packet within the spin
72  + **frame_index** : *uint32_t*, index of the Lidar spin
73  + **azimuths_rad** : *float64_t[]*, the list azimuths of the current packet in radians