DriveWorks SDK Reference
5.16.65 Release
For Test and Development only
EgomotionExtra.h
Go to the documentation of this file.
1
2
// This code contains NVIDIA Confidential Information and is disclosed
3
// under the Mutual Non-Disclosure Agreement.
4
//
5
// Notice
6
// ALL NVIDIA DESIGN SPECIFICATIONS AND CODE ("MATERIALS") ARE PROVIDED "AS IS"
7
// NVIDIA MAKES NO REPRESENTATIONS, WARRANTIES, EXPRESSED, IMPLIED, STATUTORY,
8
// OR OTHERWISE WITH RESPECT TO THE MATERIALS, AND EXPRESSLY DISCLAIMS ANY
9
// IMPLIED WARRANTIES OF NONINFRINGEMENT, MERCHANTABILITY, OR FITNESS FOR A
10
// PARTICULAR PURPOSE.
11
//
12
// NVIDIA Corporation assumes no responsibility for the consequences of use of
13
// such information or for any infringement of patents or other rights of third
14
// parties that may result from its use. No license is granted by implication or
15
// otherwise under any patent or patent rights of NVIDIA Corporation. No third
16
// party distribution is allowed unless expressly authorized by NVIDIA. Details
17
// are subject to change without notice. This code supersedes and replaces all
18
// information previously supplied. NVIDIA Corporation products are not
19
// authorized for use as critical components in life support devices or systems
20
// without express written approval of NVIDIA Corporation.
21
//
22
// Copyright (c) 2022-2023 NVIDIA Corporation. All rights reserved.
23
//
24
// NVIDIA Corporation and its licensors retain all intellectual property and
25
// proprietary rights in and to this software and related documentation and any
26
// modifications thereto. Any use, reproduction, disclosure or distribution of
27
// this software and related documentation without an express license agreement
28
// from NVIDIA Corporation is strictly prohibited.
29
//
31
#ifndef DW_EGOMOTION_BASE_EGOMOTIONEXTRA_H_
32
#define DW_EGOMOTION_BASE_EGOMOTIONEXTRA_H_
33
// Generated by dwProto from egomotion_extra.proto DO NOT EDIT BY HAND!
34
// See //3rdparty/shared/dwproto/README.md for more information
35
36
//WARNING!!!
37
// Please don't use any type definition in this file.
38
// All of data types in this file are going to be modified and will not
39
// follow Nvidia deprecation policy.
40
58
#include <
dw/core/base/Types.h
>
59
60
#include <
dw/egomotion/base/EgomotionTypes.h
>
61
#include <
dw/core/base/TypesExtra.h
>
62
#include <
dw/rig/Vehicle.h
>
63
64
#ifdef __cplusplus
65
extern
"C"
{
66
#endif
67
69
#define DW_EGOMOTION_MANEUVER_MAX_ARRAY_SIZE 3
70
72
typedef
enum
dwEgomotionDirectionTypes
{
73
DW_EGOMOTION_DIRECTION_UNKNOWN
= 0,
74
DW_EGOMOTION_DIRECTION_FORWARD
= 1,
75
DW_EGOMOTION_DIRECTION_BACKWARD
= 2,
76
DW_EGOMOTION_DIRECTION_STOP
= 3,
77
}
dwEgomotionDirectionTypes
;
78
80
typedef
enum
dwEgomotionCalibrationState
{
82
DW_EGOMOTION_CALIBRATION_STATE_NOT_ACCEPTED
= 0,
83
85
DW_EGOMOTION_CALIBRATION_STATE_ACCEPTED
= 1,
86
88
DW_EGOMOTION_CALIBRATION_STATE_FAILED
= 2,
89
91
DW_EGOMOTION_CALIBRATION_STATE_INVALID
= 3,
92
}
dwEgomotionCalibrationState
;
93
95
typedef
enum
dwEgomotionManeuverMotionType
{
96
DW_EGOMOTION_MANEUVER_MOTIONTYPE_UNSPECIFIED
= 0,
97
DW_EGOMOTION_MANEUVER_MOTIONTYPE_FORWARD
= 1,
98
DW_EGOMOTION_MANEUVER_MOTIONTYPE_ANY_TURN
= 2,
99
DW_EGOMOTION_MANEUVER_MOTIONTYPE_STOP
= 3,
100
DW_EGOMOTION_MANEUVER_MOTIONTYPE_FORWARD_AFTER_STOP
= 4,
101
DW_EGOMOTION_MANEUVER_MOTIONTYPE_FORCE32
= 0x7fffffff,
102
}
dwEgomotionManeuverMotionType
;
103
104
// This amounts to max(EgomotionManeuverMotionType) + 1, i.e. the required size of
105
// an array if these enum values are interpreted as array offsets.
106
#define DW_EGOMOTION_MANEUVER_MOTIONTYPE_COUNT 5
107
109
typedef
enum
dwEgomotionCalibrationPropertiesVariantType
{
110
DW_EGOMOTION_CALIBRATION_PROPERTY_VARIANT_UNKNOWN
= 0,
111
DW_EGOMOTION_CALIBRATION_PROPERTY_VARIANT_REGULAR
= 1,
112
DW_EGOMOTION_CALIBRATION_PROPERTY_VARIANT_FAST_ACCEPTANCE
= 2,
113
DW_EGOMOTION_CALIBRATION_PROPERTY_VARIANT_BOOTSTRAPPED
= 3,
114
DW_EGOMOTION_CALIBRATION_PROPERTY_VARIANT_FORCE32
= 0x7fffffff,
115
}
dwEgomotionCalibrationPropertiesVariantType
;
116
118
typedef
enum
dwEgomotionCalibrationPropertiesInitializationType
{
119
DW_EGOMOTION_CALIBRATION_PROPERTY_INITIALIZATION_UNKNOWN
= 0,
120
DW_EGOMOTION_CALIBRATION_PROPERTY_INITIALIZATION_PREVIOUSLY_ACCEPTED
= 1,
121
DW_EGOMOTION_CALIBRATION_PROPERTY_INITIALIZATION_FORCE32
= 0x7fffffff,
122
}
dwEgomotionCalibrationPropertiesInitializationType
;
123
124
typedef
struct
dwEgomotionVehicleIOState
125
{
126
float32_t
wheelSpeed
[
DW_VEHICLE_NUM_WHEELS
];
127
}
dwEgomotionVehicleIOState
;
128
130
typedef
struct
dwEgomotionPose
131
{
132
dwEgomotionResult
pose
;
133
dwEgomotionUncertainty
uncertainty
;
134
dwVector3d
positionLocalFrame
;
135
dwQuaternionf
rotationLocalFrame
;
136
dwEgomotionVehicleIOState
ioState
;
137
dwTransformation3f
rigToChassis
;
138
dwTransformation3f
rigToRoadPlane
;
139
dwTransformation3f
rigToTrailer
;
140
int64_t
extraFlags
;
141
dwVector3f
rawLinearVelocity
;
142
dwVector3f
gyroscopeBias
;
143
dwEgomotionDirectionTypes
vehicleRollingDirection
;
144
dwVector3f
accelerometerBias
;
145
146
// Timestamp of *computation*, not timestamp of validity. Warning!
147
dwTime_t
computationTimestamp
;
148
149
// Sequence ID
150
uint32_t
sequenceId
;
151
}
dwEgomotionPose
;
152
154
typedef
struct
dwEgomotionCalibrationStatus
155
{
157
bool
started
;
158
160
dwEgomotionCalibrationState
state
;
161
163
float32_t
percentageComplete
;
164
}
dwEgomotionCalibrationStatus
;
165
167
typedef
struct
dwEgomotionManeuverMotion
168
{
169
dwEgomotionManeuverMotionType
type
;
170
dwOptionalf
targetDurationSec
;
171
dwOptionalf
targetSpeedMeterPerSec
;
172
dwOptionalf
targetAccelerationMeterPerSecSquared
;
173
}
dwEgomotionManeuverMotion
;
174
176
typedef
struct
dwEgomotionManeuverStatus
177
{
178
bool
fulfilled
;
179
}
dwEgomotionManeuverStatus
;
180
182
typedef
struct
dwEgomotionCalibrationProperties
183
{
184
dwEgomotionCalibrationPropertiesVariantType
variant
;
185
dwEgomotionCalibrationPropertiesInitializationType
initialization
;
186
}
dwEgomotionCalibrationProperties
;
187
189
typedef
struct
dwEgomotionManeuver
190
{
191
dwEgomotionManeuverMotion
motion
;
192
dwEgomotionManeuverStatus
status
;
193
}
dwEgomotionManeuver
;
194
196
typedef
struct
dwEgomotionCalibrationManeuverArray
197
{
198
dwEgomotionManeuver
maneuvers
[
DW_EGOMOTION_MANEUVER_MAX_ARRAY_SIZE
];
199
size_t
size
;
200
}
dwEgomotionCalibrationManeuverArray
;
201
203
typedef
struct
dwEgomotionCalibratedWheelRadii
204
{
206
float32_t
currentWheelRadius
[
DW_VEHICLE_NUM_WHEELS
];
207
209
dwEgomotionCalibrationState
calibrationState
;
210
212
dwTime_t
timestamp
;
213
215
dwValidityStatus
validity
;
216
}
dwEgomotionCalibratedWheelRadii
;
217
219
typedef
struct
dwEgomotionCalibratedExtrinsics
220
{
222
dwTransformation3f
transformation
;
223
225
dwEgomotionCalibrationState
calibrationState
;
226
228
dwTime_t
timestamp
;
229
231
dwValidityStatus
validity
;
232
}
dwEgomotionCalibratedExtrinsics
;
233
234
#ifdef __cplusplus
235
}
236
#endif
237
241
#endif
// DW_EGOMOTION_BASE_EGOMOTIONEXTRA_H_
EgomotionTypes.h
dwEgomotionResult
Instantaneous state estimate.
Definition:
EgomotionTypes.h:421
dwEgomotionUncertainty
Instantaneous state uncertainty estimates.
Definition:
EgomotionTypes.h:455
dwVector3d
Defines a three-element double-precision floating point vector.
Definition:
MatrixTypes.h:84
dwVector3f
Defines a three-element floating-point vector.
Definition:
MatrixTypes.h:76
TypesExtra.h
NVIDIA DriveWorks API: (Extra) Core Types
Types.h
NVIDIA DriveWorks API: Core Types
Vehicle.h
NVIDIA DriveWorks API: Vehicle Parameters
float32_t
float float32_t
Specifies POD types.
Definition:
BasicTypes.h:59
dwTime_t
int64_t dwTime_t
Specifies a timestamp unit, in microseconds.
Definition:
BasicTypes.h:65
dwOptionalf
Optional values that are only defined if the 'valid' flag is true, and undefined otherwise.
Definition:
TypesExtra.h:195
dwValidityStatus
A light weighted 16 Btyes status to be carried over along with each DW C struct instance that can ind...
Definition:
TypesExtra.h:226
dwEgomotionVehicleIOState::wheelSpeed
float32_t wheelSpeed[DW_VEHICLE_NUM_WHEELS]
Definition:
EgomotionExtra.h:126
dwEgomotionPose::rigToRoadPlane
dwTransformation3f rigToRoadPlane
Definition:
EgomotionExtra.h:138
dwEgomotionCalibratedExtrinsics::timestamp
dwTime_t timestamp
Timestamp of the latest input data contributing to the calibration result.
Definition:
EgomotionExtra.h:228
dwEgomotionCalibratedWheelRadii::validity
dwValidityStatus validity
Validity of the message.
Definition:
EgomotionExtra.h:215
dwEgomotionCalibratedWheelRadii::currentWheelRadius
float32_t currentWheelRadius[DW_VEHICLE_NUM_WHEELS]
Current calibrated wheel radii values.
Definition:
EgomotionExtra.h:206
dwEgomotionCalibratedWheelRadii::calibrationState
dwEgomotionCalibrationState calibrationState
Calibration procedure state.
Definition:
EgomotionExtra.h:209
dwEgomotionCalibrationStatus::started
bool started
Flag indicating whether a calibration routine is running.
Definition:
EgomotionExtra.h:157
dwEgomotionCalibratedExtrinsics::transformation
dwTransformation3f transformation
Current calibrated extrinsic transformation.
Definition:
EgomotionExtra.h:222
dwEgomotionManeuverStatus::fulfilled
bool fulfilled
if false, the associated maneuver's motion is still required for a routine to complete its estimation
Definition:
EgomotionExtra.h:178
dwEgomotionPose::rigToChassis
dwTransformation3f rigToChassis
Definition:
EgomotionExtra.h:137
dwEgomotionPose::rotationLocalFrame
dwQuaternionf rotationLocalFrame
Definition:
EgomotionExtra.h:135
dwEgomotionManeuverMotion::targetDurationSec
dwOptionalf targetDurationSec
if valid, represents the expected maneuver duration (in seconds)
Definition:
EgomotionExtra.h:170
dwEgomotionCalibrationProperties::initialization
dwEgomotionCalibrationPropertiesInitializationType initialization
Definition:
EgomotionExtra.h:185
dwEgomotionPose::positionLocalFrame
dwVector3d positionLocalFrame
Definition:
EgomotionExtra.h:134
dwEgomotionCalibrationProperties::variant
dwEgomotionCalibrationPropertiesVariantType variant
Definition:
EgomotionExtra.h:184
dwEgomotionManeuver::motion
dwEgomotionManeuverMotion motion
the motion of the maneuver
Definition:
EgomotionExtra.h:191
dwEgomotionCalibratedWheelRadii::timestamp
dwTime_t timestamp
Timestamp of the latest input data contributing to the calibration result.
Definition:
EgomotionExtra.h:212
dwEgomotionPose::computationTimestamp
dwTime_t computationTimestamp
Definition:
EgomotionExtra.h:147
dwEgomotionManeuverMotion::targetAccelerationMeterPerSecSquared
dwOptionalf targetAccelerationMeterPerSecSquared
if valid, represents the expected motion acceleration (meters per second^2)
Definition:
EgomotionExtra.h:172
dwEgomotionManeuver::status
dwEgomotionManeuverStatus status
the status of the maneuver
Definition:
EgomotionExtra.h:192
dwEgomotionPose::rawLinearVelocity
dwVector3f rawLinearVelocity
Definition:
EgomotionExtra.h:141
dwEgomotionPose::gyroscopeBias
dwVector3f gyroscopeBias
Definition:
EgomotionExtra.h:142
dwEgomotionPose::extraFlags
int64_t extraFlags
Definition:
EgomotionExtra.h:140
dwEgomotionCalibrationStatus::percentageComplete
float32_t percentageComplete
The current calibration percentage complete status. Valid percentages are in the range [0,...
Definition:
EgomotionExtra.h:163
dwEgomotionPose::uncertainty
dwEgomotionUncertainty uncertainty
Definition:
EgomotionExtra.h:133
dwEgomotionManeuverMotion::targetSpeedMeterPerSec
dwOptionalf targetSpeedMeterPerSec
if valid, represents the expected motion speed (meters per second)
Definition:
EgomotionExtra.h:171
dwEgomotionPose::sequenceId
uint32_t sequenceId
Definition:
EgomotionExtra.h:150
dwEgomotionCalibrationManeuverArray::size
size_t size
Definition:
EgomotionExtra.h:199
dwEgomotionPose::vehicleRollingDirection
dwEgomotionDirectionTypes vehicleRollingDirection
Definition:
EgomotionExtra.h:143
dwEgomotionCalibratedExtrinsics::validity
dwValidityStatus validity
Validity of the message.
Definition:
EgomotionExtra.h:231
dwEgomotionCalibratedExtrinsics::calibrationState
dwEgomotionCalibrationState calibrationState
Calibration procedure state.
Definition:
EgomotionExtra.h:225
dwEgomotionCalibrationManeuverArray::maneuvers
dwEgomotionManeuver maneuvers[DW_EGOMOTION_MANEUVER_MAX_ARRAY_SIZE]
the different maneuvers of the collection
Definition:
EgomotionExtra.h:198
dwEgomotionCalibrationStatus::state
dwEgomotionCalibrationState state
The current state of a calibration routine.
Definition:
EgomotionExtra.h:160
dwEgomotionPose::pose
dwEgomotionResult pose
Definition:
EgomotionExtra.h:132
dwEgomotionPose::ioState
dwEgomotionVehicleIOState ioState
Definition:
EgomotionExtra.h:136
dwEgomotionPose::rigToTrailer
dwTransformation3f rigToTrailer
Definition:
EgomotionExtra.h:139
dwEgomotionManeuverMotion::type
dwEgomotionManeuverMotionType type
represents the expected motion type of the maneuver
Definition:
EgomotionExtra.h:169
dwEgomotionPose::accelerometerBias
dwVector3f accelerometerBias
Definition:
EgomotionExtra.h:144
DW_EGOMOTION_MANEUVER_MAX_ARRAY_SIZE
#define DW_EGOMOTION_MANEUVER_MAX_ARRAY_SIZE
Represents a collection of calibration maneuvers.
Definition:
EgomotionExtra.h:69
dwEgomotionManeuverMotionType
dwEgomotionManeuverMotionType
Enumeration of different motion types of an egomotion calibration maneuver.
Definition:
EgomotionExtra.h:95
dwEgomotionDirectionTypes
dwEgomotionDirectionTypes
Defines the direction types of vehicle rolling / moving direction.
Definition:
EgomotionExtra.h:72
dwEgomotionCalibrationState
dwEgomotionCalibrationState
Defines the current state of an individual calibration.
Definition:
EgomotionExtra.h:80
dwEgomotionCalibrationPropertiesVariantType
dwEgomotionCalibrationPropertiesVariantType
Enumeration of different variant types of a calibration property.
Definition:
EgomotionExtra.h:109
dwEgomotionCalibrationPropertiesInitializationType
dwEgomotionCalibrationPropertiesInitializationType
Enumeration of different initialization types of a calibration property.
Definition:
EgomotionExtra.h:118
DW_EGOMOTION_MANEUVER_MOTIONTYPE_ANY_TURN
@ DW_EGOMOTION_MANEUVER_MOTIONTYPE_ANY_TURN
Definition:
EgomotionExtra.h:98
DW_EGOMOTION_MANEUVER_MOTIONTYPE_STOP
@ DW_EGOMOTION_MANEUVER_MOTIONTYPE_STOP
Definition:
EgomotionExtra.h:99
DW_EGOMOTION_MANEUVER_MOTIONTYPE_FORWARD
@ DW_EGOMOTION_MANEUVER_MOTIONTYPE_FORWARD
Definition:
EgomotionExtra.h:97
DW_EGOMOTION_MANEUVER_MOTIONTYPE_UNSPECIFIED
@ DW_EGOMOTION_MANEUVER_MOTIONTYPE_UNSPECIFIED
Definition:
EgomotionExtra.h:96
DW_EGOMOTION_MANEUVER_MOTIONTYPE_FORWARD_AFTER_STOP
@ DW_EGOMOTION_MANEUVER_MOTIONTYPE_FORWARD_AFTER_STOP
Definition:
EgomotionExtra.h:100
DW_EGOMOTION_MANEUVER_MOTIONTYPE_FORCE32
@ DW_EGOMOTION_MANEUVER_MOTIONTYPE_FORCE32
Definition:
EgomotionExtra.h:101
DW_EGOMOTION_DIRECTION_FORWARD
@ DW_EGOMOTION_DIRECTION_FORWARD
Definition:
EgomotionExtra.h:74
DW_EGOMOTION_DIRECTION_UNKNOWN
@ DW_EGOMOTION_DIRECTION_UNKNOWN
Definition:
EgomotionExtra.h:73
DW_EGOMOTION_DIRECTION_BACKWARD
@ DW_EGOMOTION_DIRECTION_BACKWARD
Definition:
EgomotionExtra.h:75
DW_EGOMOTION_DIRECTION_STOP
@ DW_EGOMOTION_DIRECTION_STOP
Definition:
EgomotionExtra.h:76
DW_EGOMOTION_CALIBRATION_STATE_FAILED
@ DW_EGOMOTION_CALIBRATION_STATE_FAILED
The routine has failed calibration.
Definition:
EgomotionExtra.h:88
DW_EGOMOTION_CALIBRATION_STATE_INVALID
@ DW_EGOMOTION_CALIBRATION_STATE_INVALID
The calibration state is invalid (e.g. when a door with a sensor is open or a mirror is moving)
Definition:
EgomotionExtra.h:91
DW_EGOMOTION_CALIBRATION_STATE_NOT_ACCEPTED
@ DW_EGOMOTION_CALIBRATION_STATE_NOT_ACCEPTED
The routine hasn't accepted an estimate.
Definition:
EgomotionExtra.h:82
DW_EGOMOTION_CALIBRATION_STATE_ACCEPTED
@ DW_EGOMOTION_CALIBRATION_STATE_ACCEPTED
The routine has accepted an estimate and calibration continues.
Definition:
EgomotionExtra.h:85
DW_EGOMOTION_CALIBRATION_PROPERTY_VARIANT_FORCE32
@ DW_EGOMOTION_CALIBRATION_PROPERTY_VARIANT_FORCE32
Definition:
EgomotionExtra.h:114
DW_EGOMOTION_CALIBRATION_PROPERTY_VARIANT_REGULAR
@ DW_EGOMOTION_CALIBRATION_PROPERTY_VARIANT_REGULAR
no special self-calibration condition applies
Definition:
EgomotionExtra.h:111
DW_EGOMOTION_CALIBRATION_PROPERTY_VARIANT_UNKNOWN
@ DW_EGOMOTION_CALIBRATION_PROPERTY_VARIANT_UNKNOWN
Definition:
EgomotionExtra.h:110
DW_EGOMOTION_CALIBRATION_PROPERTY_VARIANT_BOOTSTRAPPED
@ DW_EGOMOTION_CALIBRATION_PROPERTY_VARIANT_BOOTSTRAPPED
calibration values are initialized with previously-accepted value, but self-calibration is not runnin...
Definition:
EgomotionExtra.h:113
DW_EGOMOTION_CALIBRATION_PROPERTY_VARIANT_FAST_ACCEPTANCE
@ DW_EGOMOTION_CALIBRATION_PROPERTY_VARIANT_FAST_ACCEPTANCE
self-calibration was initialized with previously-accepted value and is running in "fast-acceptance" m...
Definition:
EgomotionExtra.h:112
DW_EGOMOTION_CALIBRATION_PROPERTY_INITIALIZATION_FORCE32
@ DW_EGOMOTION_CALIBRATION_PROPERTY_INITIALIZATION_FORCE32
Definition:
EgomotionExtra.h:121
DW_EGOMOTION_CALIBRATION_PROPERTY_INITIALIZATION_PREVIOUSLY_ACCEPTED
@ DW_EGOMOTION_CALIBRATION_PROPERTY_INITIALIZATION_PREVIOUSLY_ACCEPTED
calibration was initialized with previously-accepted values
Definition:
EgomotionExtra.h:120
DW_EGOMOTION_CALIBRATION_PROPERTY_INITIALIZATION_UNKNOWN
@ DW_EGOMOTION_CALIBRATION_PROPERTY_INITIALIZATION_UNKNOWN
Definition:
EgomotionExtra.h:119
dwEgomotionCalibratedExtrinsics
Struct representing extrinsics calibration with validity.
Definition:
EgomotionExtra.h:220
dwEgomotionCalibratedWheelRadii
Struct representing wheel radius calibration.
Definition:
EgomotionExtra.h:204
dwEgomotionCalibrationManeuverArray
Struct to represent a collection of calibration maneuvers.
Definition:
EgomotionExtra.h:197
dwEgomotionCalibrationProperties
Definition of static calibration properties.
Definition:
EgomotionExtra.h:183
dwEgomotionCalibrationStatus
Defines the current status of an individual calibration.
Definition:
EgomotionExtra.h:155
dwEgomotionManeuver
Aggregation struct of a calibration maneuver motion description together with its current runtime sta...
Definition:
EgomotionExtra.h:190
dwEgomotionManeuverMotion
Definition of a single maneuver's expected motion and optional motion properties.
Definition:
EgomotionExtra.h:168
dwEgomotionManeuverStatus
Struct to collect all status information associated with a maneuver.
Definition:
EgomotionExtra.h:177
dwEgomotionPose
Holds values required for reconstruction of Egomotion history.
Definition:
EgomotionExtra.h:131
dwEgomotionVehicleIOState
Definition:
EgomotionExtra.h:125
DW_VEHICLE_NUM_WHEELS
@ DW_VEHICLE_NUM_WHEELS
Number of wheels describing the vehicle.
Definition:
Vehicle.h:77
dwQuaternionf
Defines a single-precision quaternion.
Definition:
GeometricTypes.h:125
dwTransformation3f
Specifies a 3D rigid transformation.
Definition:
MatrixTypes.h:182
Advance Information | Subject to Change | Prepared and Provided under NDA | Generated by NVIDIA | PR-08397-V5.0