DriveWorks SDK Reference
5.14.77 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
}
dwEgomotionPose
;
146
148
typedef
struct
dwEgomotionCalibrationStatus
149
{
151
bool
started
;
152
154
dwEgomotionCalibrationState
state
;
155
157
float32_t
percentageComplete
;
158
}
dwEgomotionCalibrationStatus
;
159
161
typedef
struct
dwEgomotionManeuverMotion
162
{
163
dwEgomotionManeuverMotionType
type
;
164
dwOptionalf
targetDurationSec
;
165
dwOptionalf
targetSpeedMeterPerSec
;
166
dwOptionalf
targetAccelerationMeterPerSecSquared
;
167
}
dwEgomotionManeuverMotion
;
168
170
typedef
struct
dwEgomotionManeuverStatus
171
{
172
bool
fulfilled
;
173
}
dwEgomotionManeuverStatus
;
174
176
typedef
struct
dwEgomotionCalibrationProperties
177
{
178
dwEgomotionCalibrationPropertiesVariantType
variant
;
179
dwEgomotionCalibrationPropertiesInitializationType
initialization
;
180
}
dwEgomotionCalibrationProperties
;
181
183
typedef
struct
dwEgomotionManeuver
184
{
185
dwEgomotionManeuverMotion
motion
;
186
dwEgomotionManeuverStatus
status
;
187
}
dwEgomotionManeuver
;
188
190
typedef
struct
dwEgomotionCalibrationManeuverArray
191
{
192
dwEgomotionManeuver
maneuvers
[
DW_EGOMOTION_MANEUVER_MAX_ARRAY_SIZE
];
193
size_t
size
;
194
}
dwEgomotionCalibrationManeuverArray
;
195
197
typedef
struct
dwEgomotionCalibratedWheelRadii
198
{
200
float32_t
currentWheelRadius
[
DW_VEHICLE_NUM_WHEELS
];
201
203
dwEgomotionCalibrationState
calibrationState
;
204
206
dwTime_t
timestamp
;
207
209
dwValidityStatus
validity
;
210
}
dwEgomotionCalibratedWheelRadii
;
211
212
#ifdef __cplusplus
213
}
214
#endif
215
219
#endif
// DW_EGOMOTION_BASE_EGOMOTIONEXTRA_H_
EgomotionTypes.h
dwEgomotionResult
Holds egomotion state estimate.
Definition:
EgomotionTypes.h:372
dwEgomotionUncertainty
Holds egomotion uncertainty estimates.
Definition:
EgomotionTypes.h:394
dwVector3d
Defines a three-element double-precision floating point vector.
Definition:
MatrixTypes.h:88
dwVector3f
Defines a three-element floating-point vector.
Definition:
MatrixTypes.h:79
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:193
dwValidityStatus
A light weighted 16 Btyes status to be carried over along with each DW C struct instance that can ind...
Definition:
TypesExtra.h:224
dwEgomotionVehicleIOState::wheelSpeed
float32_t wheelSpeed[DW_VEHICLE_NUM_WHEELS]
Definition:
EgomotionExtra.h:126
dwEgomotionPose::rigToRoadPlane
dwTransformation3f rigToRoadPlane
Definition:
EgomotionExtra.h:138
dwEgomotionCalibratedWheelRadii::validity
dwValidityStatus validity
Validity of the message.
Definition:
EgomotionExtra.h:209
dwEgomotionCalibratedWheelRadii::currentWheelRadius
float32_t currentWheelRadius[DW_VEHICLE_NUM_WHEELS]
Current calibrated wheel radii values.
Definition:
EgomotionExtra.h:200
dwEgomotionCalibratedWheelRadii::calibrationState
dwEgomotionCalibrationState calibrationState
Calibration procedure state.
Definition:
EgomotionExtra.h:203
dwEgomotionCalibrationStatus::started
bool started
Flag indicating whether a calibration routine is running.
Definition:
EgomotionExtra.h:151
dwEgomotionManeuverStatus::fulfilled
bool fulfilled
if false, the associated maneuver's motion is still required for a routine to complete its estimation
Definition:
EgomotionExtra.h:172
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:164
dwEgomotionCalibrationProperties::initialization
dwEgomotionCalibrationPropertiesInitializationType initialization
Definition:
EgomotionExtra.h:179
dwEgomotionPose::positionLocalFrame
dwVector3d positionLocalFrame
Definition:
EgomotionExtra.h:134
dwEgomotionCalibrationProperties::variant
dwEgomotionCalibrationPropertiesVariantType variant
Definition:
EgomotionExtra.h:178
dwEgomotionManeuver::motion
dwEgomotionManeuverMotion motion
the motion of the maneuver
Definition:
EgomotionExtra.h:185
dwEgomotionCalibratedWheelRadii::timestamp
dwTime_t timestamp
Timestamp of the latest input data contributing to the calibration result.
Definition:
EgomotionExtra.h:206
dwEgomotionManeuverMotion::targetAccelerationMeterPerSecSquared
dwOptionalf targetAccelerationMeterPerSecSquared
if valid, represents the expected motion acceleration (meters per second^2)
Definition:
EgomotionExtra.h:166
dwEgomotionManeuver::status
dwEgomotionManeuverStatus status
the status of the maneuver
Definition:
EgomotionExtra.h:186
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:157
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:165
dwEgomotionCalibrationManeuverArray::size
size_t size
Definition:
EgomotionExtra.h:193
dwEgomotionPose::vehicleRollingDirection
dwEgomotionDirectionTypes vehicleRollingDirection
Definition:
EgomotionExtra.h:143
dwEgomotionCalibrationManeuverArray::maneuvers
dwEgomotionManeuver maneuvers[DW_EGOMOTION_MANEUVER_MAX_ARRAY_SIZE]
the different maneuvers of the collection
Definition:
EgomotionExtra.h:192
dwEgomotionCalibrationStatus::state
dwEgomotionCalibrationState state
The current state of a calibration routine.
Definition:
EgomotionExtra.h:154
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:163
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
dwEgomotionCalibratedWheelRadii
Struct representing wheel radius calibration.
Definition:
EgomotionExtra.h:198
dwEgomotionCalibrationManeuverArray
Struct to represent a collection of calibration maneuvers.
Definition:
EgomotionExtra.h:191
dwEgomotionCalibrationProperties
Definition of static calibration properties.
Definition:
EgomotionExtra.h:177
dwEgomotionCalibrationStatus
Defines the current status of an individual calibration.
Definition:
EgomotionExtra.h:149
dwEgomotionManeuver
Aggregation struct of a calibration maneuver motion description together with its current runtime sta...
Definition:
EgomotionExtra.h:184
dwEgomotionManeuverMotion
Definition of a single maneuver's expected motion and optional motion properties.
Definition:
EgomotionExtra.h:162
dwEgomotionManeuverStatus
Struct to collect all status information associated with a maneuver.
Definition:
EgomotionExtra.h:171
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:127
dwTransformation3f
Specifies a 3D rigid transformation.
Definition:
MatrixTypes.h:186
Advance Information | Subject to Change | Prepared and Provided under NDA | Generated by NVIDIA | PR-08397-V5.0