Compute Graph Framework SDK Reference  5.16
dwRelativeEgomotionNode.hpp
Go to the documentation of this file.
1
2//
3// Notice
4// ALL NVIDIA DESIGN SPECIFICATIONS AND CODE ("MATERIALS") ARE PROVIDED "AS IS" NVIDIA MAKES
5// NO REPRESENTATIONS, WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO
6// THE MATERIALS, AND EXPRESSLY DISCLAIMS ANY IMPLIED WARRANTIES OF NONINFRINGEMENT,
7// MERCHANTABILITY, OR FITNESS FOR A PARTICULAR PURPOSE.
8//
9// NVIDIA CORPORATION & AFFILIATES assumes no responsibility for the consequences of use of such
10// information or for any infringement of patents or other rights of third parties that may
11// result from its use. No license is granted by implication or otherwise under any patent
12// or patent rights of NVIDIA CORPORATION & AFFILIATES. No third party distribution is allowed unless
13// expressly authorized by NVIDIA. Details are subject to change without notice.
14// This code supersedes and replaces all information previously supplied.
15// NVIDIA CORPORATION & AFFILIATES products are not authorized for use as critical
16// components in life support devices or systems without express written approval of
17// NVIDIA CORPORATION & AFFILIATES.
18//
19// SPDX-FileCopyrightText: Copyright (c) 2022-2023 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
20// SPDX-License-Identifier: LicenseRef-NvidiaProprietary
21//
22// NVIDIA CORPORATION, its affiliates and licensors retain all intellectual
23// property and proprietary rights in and to this material, related
24// documentation and any modifications thereto. Any use, reproduction,
25// disclosure or distribution of this material and related documentation
26// without an express license agreement from NVIDIA CORPORATION or
27// its affiliates is strictly prohibited.
28//
30
31#ifndef DWFRAMEWORK_DWNODES_EGOMOTION_DWRELATIVEEGOMOTIONNODE_DWRELATIVEEGOMOTIONNODE_HPP_
32#define DWFRAMEWORK_DWNODES_EGOMOTION_DWRELATIVEEGOMOTIONNODE_DWRELATIVEEGOMOTIONNODE_HPP_
33
34#include <dw/core/logger/Logger.h>
35#include <dw/egomotion/base/Egomotion.h>
36#include <dw/egomotion/2.0/Egomotion2.h>
37#include <dw/egomotion/2.0/Egomotion2Extra.h>
38#include <dw/roadcast/base_types/RoadCastPacketTypes.hpp>
40#include <dwcgf/node/Node.hpp>
43#include <dwcgf/pass/Pass.hpp>
45#include <dwcgf/port/Port.hpp>
47#include <dw/egomotion/errorhandling/ErrorHandlingParameters.h>
48#include <dw/egomotion/errorhandling/Types.hpp>
49#include <dwframework/dwnodes/common/channelpackets/DwframeworkTypes.hpp>
50#include <dwframework/dwnodes/common/channelpackets/EgomotionState.hpp>
51#include <dwframework/dwnodes/common/channelpackets/IMU.hpp>
52#include <dwframework/dwnodes/common/channelpackets/SelfCalibrationTypes.hpp>
53#include <dwframework/dwnodes/common/channelpackets/SensorCommonTypes.hpp>
54#include <dwframework/dwnodes/common/channelpackets/VehicleIOValStructures.hpp>
55
56namespace dw
57{
58namespace framework
59{
60
61static constexpr uint32_t DW_EGOMOTION_DISABLED_ERROR_IDS_ARRAY_SIZE = 32;
62static constexpr uint32_t DW_EGOMOTION_MAX_DISABLED_ERROR_IDS = 512;
63static_assert(DW_EGOMOTION_ERROR_ID_COUNT > sizeof(uint32_t) * DW_EGOMOTION_DISABLED_ERROR_IDS_ARRAY_SIZE, "Error ID count exceeds capacity of disabled error IDs bitfield (static param).");
64static_assert(DW_EGOMOTION_ERROR_ID_COUNT >= DW_EGOMOTION_MAX_DISABLED_ERROR_IDS, "Max disabled error ids must be less than or equal to error id count");
65
67{
68 // Unnamed parameters, automatically set by CGF framework based on their type
69 dwConstRigHandle_t rigHandle;
70 const char* imuSensorName;
71
72 // Named parameters, defined in Egomotion.graphlet.json. Please keep them in the same order.
73 // Make sure to explictly set non-zero defaults to the same value as in graphlet.
74 // GRAPHLET DEFAULT VALUES FOR BELOW PARAMETERS WILL OVERRIDE EGOMOTION'S INTERNAL AUTO-SELECTED DEFAULTS AND MUST
75 // THEREFORE APPLY TO ALL CARS, BE SET TO THE SAME VALUE AS INTERNAL DEFAULT OR BE SET TO A RESERVED OR INVALID VALUE.
76 uint32_t historySize;
77 uint32_t groundSpeedType{5};
111 dwTime_t cycleTimeIMU;
113 float32_t suspensionCenterHeight[2]{-1.F, -1.F};
121 uint32_t wheelObserverPositionFuzzyLow{UINT32_MAX};
122 uint32_t wheelObserverPositionFuzzyHigh{UINT32_MAX};
134 float32_t vehicleMotionObserverReferencePoint[3]{-1.F, -1.F, -1.F};
135 uint32_t drivenWheels{UINT32_MAX};
160 dwLoggerVerbosity errorHandlingLogLevel{DW_LOG_SILENT};
163 bool notifySEH{true};
167};
168
169static_assert(DW_EGOMOTION_MAX_DISABLED_ERROR_IDS <= static_cast<size_t>(dw::egomotion::errorhandling::ErrorId::COUNT), "Max disabled error ids must be less than or equal to error id count");
170
184{
185public:
186 // coverity[autosar_cpp14_a7_1_5_violation] RFD Accepted: TID-1984
187 static constexpr auto describeInputPorts()
188 {
189 // TODO(csketch): RFD -- user defined literal being interpreted as c style cast.
190 // coverity[autosar_cpp14_a5_2_2_violation] RFD Pending: TID-1983
192 DW_DESCRIBE_PORT(dwIMUFrame, "IMU_FRAME"_sv),
193 DW_DESCRIBE_PORT(dwVehicleIOSafetyState, "VEHICLE_IO_SAFETY_STATE"_sv),
194 DW_DESCRIBE_PORT(dwVehicleIONonSafetyState, "VEHICLE_IO_NON_SAFETY_STATE"_sv),
195 DW_DESCRIBE_PORT(dwVehicleIOActuationFeedback, "VEHICLE_IO_ACTUATION_FEEDBACK"_sv),
196 DW_DESCRIBE_PORT(dwSensorNodeProperties, "IMU_EXTRINSICS"_sv),
197 DW_DESCRIBE_PORT(dwCalibratedWheelRadii, "WHEEL_RADII"_sv));
198 };
199 // coverity[autosar_cpp14_a7_1_5_violation] RFD Accepted: TID-1984
200 static constexpr auto describeOutputPorts()
201 {
202 // TODO(csketch): RFD -- user defined literal being interpreted as c style cast.
203 // coverity[autosar_cpp14_a5_2_2_violation] RFD Pending: TID-1983
205 DW_DESCRIBE_PORT(dwEgomotionStateHandle_t, "EGOMOTION_STATE"_sv),
206 DW_DESCRIBE_PORT(void*, "MODULE_HANDLE"_sv),
207 DW_DESCRIBE_PORT(dwEgomotionPosePayload, "EGOMOTION_POSE_PAYLOAD"_sv),
208 DW_DESCRIBE_PORT(dwCalibratedIMUIntrinsics, "IMU_INTRINSICS"_sv));
209 };
210 // coverity[autosar_cpp14_a7_1_5_violation] RFD Accepted: TID-1984
211 static constexpr auto describePasses()
212 {
214 describePass(StringView{"SETUP"}, DW_PROCESSOR_TYPE_CPU),
215 describePass(StringView{"ADD_IMU"}, DW_PROCESSOR_TYPE_CPU),
216 describePass(StringView{"ADD_VEHICLE_STATE"}, DW_PROCESSOR_TYPE_CPU),
217 describePass(StringView{"UPDATE_IMU_EXTRINSICS"}, DW_PROCESSOR_TYPE_CPU),
218 describePass(StringView{"UPDATE_WHEEL_RADII"}, DW_PROCESSOR_TYPE_CPU),
219 describePass(StringView{"PROCESS"}, DW_PROCESSOR_TYPE_CPU),
220 describePass(StringView{"SEND_STATE"}, DW_PROCESSOR_TYPE_CPU),
221 describePass(StringView{"TEARDOWN"}, DW_PROCESSOR_TYPE_CPU));
222 };
223
224 static std::unique_ptr<dwRelativeEgomotionNode> create(ParameterProvider& provider);
225
226 dwStatus getEgomotionParameters(dwEgomotionParameters2& params);
227
228 dwStatus preShutdown() override
229 {
230 // coverity[autosar_cpp14_a8_5_2_violation] FP: nvbugs/3904083
231 auto* preShutdownNode = dynamic_cast<IContainsPreShutdownAction*>(m_impl.get());
232 if (preShutdownNode)
233 {
234 return preShutdownNode->preShutdown();
235 }
236 return DW_NOT_SUPPORTED;
237 }
238
239 // coverity[autosar_cpp14_a7_1_5_violation] RFD Accepted: TID-1984
240 static constexpr auto describeParameters()
241 {
242 // TODO(csketch): RFD -- user defined literal being interpreted as c style cast.
243 // coverity[autosar_cpp14_a5_2_2_violation] RFD Pending: TID-1983
245 describeConstructorArgument<dwRelativeEgomotionNodeInitParams>(
247 dwConstRigHandle_t,
250 const char*,
254 uint32_t, "historySize"_sv,
257 uint32_t,
258 "groundSpeedType"_sv,
261 bool,
262 "sigPresenceRearWheelAngle"_sv,
265 bool,
266 "sigPresenceRearWheelAngleQuality"_sv,
269 bool,
270 "sigPresenceRearWheelAngleTimestamp"_sv,
273 bool,
274 "sigPresenceRearWheelAngleTimestampQuality"_sv,
277 bool,
278 "sigPresenceSuspensionLevel"_sv, 4,
281 bool,
282 "sigPresenceSuspensionLevelQuality"_sv,
285 bool,
286 "sigPresenceSuspensionLevelTimestamp"_sv,
289 bool,
290 "sigPresenceSuspensionLevelTimestampQuality"_sv,
293 bool,
294 "sigPresenceSuspensionLevelCalibrationState"_sv,
297 bool,
298 "sigPresenceWheelSpeedRedundant"_sv,
301 bool,
302 "sigPresenceWheelSpeedQualityRedundant"_sv,
305 bool,
306 "sigPresenceWheelTicksRedundant"_sv,
309 bool,
310 "sigPresenceWheelTicksDirectionRedundant"_sv,
313 bool,
314 "sigPresenceWheelTicksTimestampRedundant"_sv,
317 bool,
318 "sigPresenceWheelTicksTimestampQualityRedundant"_sv,
321 bool,
322 "sigPresenceFrontSteeringAngleHigh"_sv,
325 bool,
326 "sigPresenceFrontSteeringAngleControlQualityHigh"_sv,
329 bool,
330 "sigPresenceFrontSteeringTimestampHigh"_sv,
333 bool,
334 "sigPresenceIMUTimestampQuality"_sv,
337 bool,
338 "sigPresenceIMUAccelerometerOffsetZ"_sv,
341 bool,
342 "sigPresenceBrakeTorqueWheelsQuality"_sv,
345 bool,
346 "sigPresenceIMUStatus"_sv,
349 bool,
350 "sigPresenceIMUSequenceCounter"_sv,
353 bool,
354 "sigPresenceIMUTurnrateOffsetQualityStatus"_sv,
357 dwTime_t,
358 "timeOffsetSteering"_sv,
361 dwTime_t,
362 "timeOffsetSuspension"_sv,
365 dwTime_t,
366 "timeOffsetAngularAcceleration"_sv,
369 dwTime_t,
370 "timeOffsetProperAcceleration"_sv,
373 dwTime_t,
374 "timeOffsetAngularVelocity"_sv,
377 dwTime_t,
378 "timeOffsetWheelTicks"_sv,
381 dwTime_t,
382 "timeOffsetWheelSpeeds"_sv,
385 dwTime_t,
386 "cycleTimeSteering"_sv,
389 dwTime_t,
390 "cycleTimeSuspension"_sv,
393 dwTime_t,
394 "cycleTimeIMU"_sv,
397 dwTime_t,
398 "cycleTimeWheelEncoder"_sv,
401 float32_t,
402 "suspensionCenterHeight"_sv, 2,
405 dwTime_t,
406 "wheelObserverFixedStepSize"_sv,
409 bool,
410 "wheelObserverEnableFixedStep"_sv,
413 float32_t,
414 "wheelObserverProcessCovariance"_sv, 3,
417 float32_t,
418 "wheelObserverPositionVarianceLow"_sv,
421 float32_t,
422 "wheelObserverPositionVarianceHigh"_sv,
425 float32_t,
426 "wheelObserverSpeedVarianceLow"_sv,
429 float32_t,
430 "wheelObserverSpeedVarianceHigh"_sv,
433 uint32_t,
434 "wheelObserverPositionFuzzyLow"_sv,
437 uint32_t,
438 "wheelObserverPositionFuzzyHigh"_sv,
441 float32_t,
442 "wheelObserverSpeedFuzzyLow"_sv,
445 float32_t,
446 "wheelObserverSpeedFuzzyHigh"_sv,
449 float32_t,
450 "wheelObserverSpeedMax"_sv,
453 float32_t,
454 "wheelObserverAccelerationMax"_sv,
457 float32_t,
458 "wheelObserverAccelerationMin"_sv,
461 dwTime_t,
462 "directionDetectorDurationNoWheelTick"_sv,
465 dwTime_t,
466 "vehicleMotionObserverFixedStepSize"_sv,
469 bool,
470 "vehicleMotionObserverEnableFixedStep"_sv,
473 float32_t,
474 "vehicleMotionObserverProcessCovariance"_sv, 5,
477 float32_t,
478 "vehicleMotionObserverInitialProcessCovariance"_sv, 5,
481 float32_t,
482 "vehicleMotionObserverGroundSpeedCovariance"_sv, 3,
485 float32_t,
486 "vehicleMotionObserverReferencePoint"_sv, 3,
489 uint32_t,
490 "drivenWheels"_sv,
493 float32_t,
494 "errorHandlingVIOWheelSpeedRange"_sv, 2,
497 float32_t,
498 "errorHandlingVIOFrontSteeringAngleRange"_sv, 2,
501 float32_t,
502 "errorHandlingVIORearWheelAngleRange"_sv, 2,
505 float32_t,
506 "errorHandlingVIOFrontSteeringAngleOffsetRange"_sv, 2,
509 float32_t,
510 "errorHandlingVIOWheelTorqueRange"_sv, 2,
513 float32_t,
514 "errorHandlingVIOSpeedMinRange"_sv, 2,
517 float32_t,
518 "errorHandlingVIOSpeedMaxRange"_sv, 2,
521 float32_t,
522 "errorHandlingVIOBrakeTorqueWheelsRange"_sv, 2,
525 float32_t,
526 "errorHandlingVIOSuspensionLevelRange"_sv, 2,
529 float32_t,
530 "errorHandlingIMUSequenceCounterRangeDeprecated"_sv, 2,
533 uint32_t,
534 "errorHandlingIMUSequenceCounterRange"_sv, 2,
537 float32_t,
538 "errorHandlingIMUTurnrateRange"_sv, 2,
541 float32_t,
542 "errorHandlingIMUTurnrateOffsetRange"_sv, 2,
545 uint32_t,
546 "errorHandlingIMUTurnrateOffsetQualityRange"_sv, 2,
549 float32_t,
550 "errorHandlingIMUTurnrateAccelRange"_sv, 2,
553 float32_t,
554 "errorHandlingIMUAccelerationRange"_sv, 2,
557 float32_t,
558 "errorHandlingIMUAccelerationOffsetRange"_sv, 2,
561 float32_t,
562 "errorHandlingIMUTemperatureRange"_sv, 2,
565 float32_t,
566 "errorHandlingInternalAccelerationOffsetRange"_sv, 2,
569 float32_t,
570 "errorHandlingInternalAccelerationOffsetDriftSpeed"_sv, 2,
573 float32_t,
574 "errorHandlingInternalAccelerationOffsetShortTermSpan"_sv, 2,
577 float32_t,
578 "errorHandlingInternalGyroscopeOffsetDriftSpeed"_sv, 2,
581 float32_t,
582 "errorHandlingInternalGyroscopeOffsetShortTermSpan"_sv, 2,
585 dwLoggerVerbosity,
586 "errorHandlingLogLevel"_sv,
589 uint32_t,
590 "errorHandlingCyclesBetweenLogs"_sv,
593 bool,
594 "strictVIOMapping"_sv,
597 bool,
598 "notifySEH"_sv,
601 bool,
602 "enableDegradations"_sv,
605 uint32_t,
606 "disabledErrorIdsBitfield"_sv, DW_EGOMOTION_DISABLED_ERROR_IDS_ARRAY_SIZE,
609 dw::core::FixedString<128>,
610 "disabledErrorIds"_sv, DW_EGOMOTION_MAX_DISABLED_ERROR_IDS,
612 describeConstructorArgument<dwContextHandle_t>(
614 dwContextHandle_t)));
615 }
616
619 const dwContextHandle_t ctx);
620};
621} // namespace framework
622} // namespace dw
623
624#endif // DWFRAMEWORK_DWNODES_EGOMOTION_DWRELATIVEEGOMOTIONNODE_DWRELATIVEEGOMOTIONNODE_HPP_
#define DW_DESCRIBE_ARRAY_PARAMETER(TYPE_NAME, PARAM_NAME, ARRAY_SIZE, args...)
#define DW_DESCRIBE_UNNAMED_PARAMETER_WITH_SEMANTIC(TYPE_NAME, SEMANTIC_TYPE_NAME, args...)
#define DW_DESCRIBE_UNNAMED_PARAMETER(TYPE_NAME, args...)
#define DW_DESCRIBE_PARAMETER(TYPE_NAME, args...)
#define DW_DESCRIBE_PORT(TYPE_NAME, NAME, args...)
virtual dwStatus preShutdown()=0
actions to be taken before node shutdown
The interface to access parameter values identified by name and/or (semantic) type.
This node computes the vehicle state and relative motion over time using signals from IMU and wheelsp...
static std::unique_ptr< dwRelativeEgomotionNode > create(ParameterProvider &provider)
dwStatus getEgomotionParameters(dwEgomotionParameters2 &params)
dwRelativeEgomotionNode(const dwRelativeEgomotionNodeInitParams &params, const dwContextHandle_t ctx)
float32_t errorHandlingIMUTurnrateOffsetRange[2]
Bounds on valid IMU Turnrate, in rad/s. Order: Low Bound, Upper Bound.
dwTime_t timeOffsetSteering
Signals if the IMU sturnrate offset quality status signal is provided.
dwTime_t timeOffsetWheelSpeeds
Time offset of wheel tick measurements. This value is subtracted from signal timestamp.
bool sigPresenceWheelTicksRedundant
Signals if the VIO interface signal wheelSpeedQualityRedundant expected to be provided by the partner...
bool sigPresenceFrontSteeringAngleControlQualityHigh
Signals if the VIO interface signal frontSteeringAngleHigh is expected to be provided by the partner ...
float32_t wheelObserverSpeedMax
Region above which wheel speeds have high trust (variance adaptation), in rad/s.
bool sigPresenceSuspensionLevelCalibrationState
Signals if the VIO interface signal suspensionLevelTimestampQuality is expected to be provided by the...
float32_t errorHandlingVIOSuspensionLevelRange[2]
Bounds on valid VIO Brake Torque Wheels Measurements, in Nm. Order: Low Bound, Upper Bound.
float32_t errorHandlingIMUAccelerationOffsetRange[2]
Bounds on valid IMU Acceleration, in m/s^2. Order: Low Bound, Upper Bound.
float32_t errorHandlingVIOFrontSteeringAngleRange[2]
Bounds on valid VIO Wheel Speed Measurements, in rad/s. Order: Low Bound, Upper Bound.
float32_t errorHandlingIMUSequenceCounterRangeDeprecated[2]
Bounds on valid VIO Suspension Level Measurements, in m. Order: Low Bound, Upper Bound.
float32_t wheelObserverSpeedVarianceLow
Position (tick) count variance when speed between positionFuzzyLow and positionFuzzyHigh....
float32_t wheelObserverSpeedVarianceHigh
Speed variance when speed below speedFuzzyLow. Indicates region of low trust in wheel speed,...
bool sigPresenceFrontSteeringTimestampHigh
Signals if the VIO interface signal frontSteeringAngleControlQualityHigh is expected to be provided b...
bool sigPresenceWheelSpeedRedundant
Signals if the VIO interface signal suspensionLevelCalibrationState is expected to be provided by the...
float32_t errorHandlingIMUTemperatureRange[2]
Bounds on valid IMU Acceleration Offset, in m/s^2. Order: Low Bound, Upper Bound.
static constexpr uint32_t DW_EGOMOTION_DISABLED_ERROR_IDS_ARRAY_SIZE
bool sigPresenceIMUSequenceCounter
Signals if the IMU Status signal is provided.
dwTime_t directionDetectorDurationNoWheelTick
Minimum wheel acceleration, in rad/s^2, to which the state will be constrained (treated as error if e...
float32_t errorHandlingVIORearWheelAngleRange[2]
Bounds on valid VIO Front Steering Angle Measurements, in rad. Order: Low Bound, Upper Bound.
bool sigPresenceRearWheelAngleTimestamp
Signals if the VIO interface signal rearWheelAngleQuality is expected to be provided by the partner V...
constexpr std::tuple describeConstructorArguments()
float32_t errorHandlingIMUTurnrateAccelRange[2]
Bounds on valid IMU Turnrate Offset Quality, unitless. Order: Low Bound, Upper Bound.
float32_t errorHandlingInternalAccelerationOffsetRange[2]
Bounds on valid IMU Temperature, in deg C. Order: Low Bound, Upper Bound.
float32_t vehicleMotionObserverInitialProcessCovariance[5]
Process covariance parameters (continuous time, coefficients on diagonal). Elements correspond (appro...
bool sigPresenceSuspensionLevel[4]
Signals if the VIO interface signal rearWheelAngleTimestampQuality is expected to be provided by the ...
bool sigPresenceWheelTicksDirectionRedundant
Signals if the VIO interface signal wheelTicksRedundant expected to be provided by the partner VAL cl...
float32_t errorHandlingInternalGyroscopeOffsetRange[2]
Bounds on valid accelerometer offset short term span for egomotion internal estimator,...
float32_t errorHandlingVIOSpeedMaxRange[2]
Bounds on valid VIO Speed Min Measurements, in m/s. Order: Low Bound, Upper Bound.
dwTime_t cycleTimeIMU
Indicates the interval in microseconds between two suspension level updates.
float32_t wheelObserverSpeedFuzzyLow
Region above which wheel position (tick) counters have high trust (variance adaptation),...
float32_t errorHandlingVIOSpeedMinRange[2]
Bounds on valid VIO Wheel Torque Measurements, in Nm. Order: Low Bound, Upper Bound.
uint32_t drivenWheels
Reference point used internally for computation, expressed in body coordinate frame....
bool notifySEH
If true, signals are read only from the sources agreed upon in technical safety concept....
float32_t errorHandlingVIOFrontSteeringAngleOffsetRange[2]
Bounds on valid VIO Rear Wheel Angle Measurements, in rad. Order: Low Bound, Upper Bound.
dwTime_t cycleTimeWheelEncoder
Indicates the interval in microseconds between two IMU updates.
uint32_t errorHandlingIMUSequenceCounterRange[2]
Bounds on valid IMU Sequence Counter, unitless. Order: Low Bound, Upper Bound. (deprecated)
uint32_t wheelObserverPositionFuzzyHigh
Region below which wheel position (tick) counters have low trust (variance adaptation),...
bool sigPresenceWheelTicksTimestampRedundant
Signals if the VIO interface signal wheelTicksDirectionRedundant expected to be provided by the partn...
bool sigPresenceBrakeTorqueWheelsQuality
Signals if the IMU Accelerometer offset for Z axis is provided.
float32_t wheelObserverProcessCovariance[3]
When true, enables Wheel Observer fixed step mode.
bool vehicleMotionObserverEnableFixedStep
Defines the step size when running the Vehicle Motion Observer in fixed step mode.
float32_t vehicleMotionObserverReferencePoint[3]
Ground speed measurement covariance parameters (continuous time, coefficients on diagonal)....
bool sigPresenceSuspensionLevelTimestamp
Signals if the VIO interface signal suspensionLevelQuality is expected to be provided by the partner ...
dwTime_t timeOffsetProperAcceleration
Time offset of angular acceleration measurements. This value is subtracted from signal timestamp.
float32_t wheelObserverSpeedFuzzyHigh
Region below which wheel speeds have low trust (variance adaptation), in rad/s.
bool sigPresenceIMUAccelerometerOffsetZ
Signals if the IMU Timestamp Quality signal is provided.
bool sigPresenceRearWheelAngleQuality
Signals if the VIO interface signal rearWheelAngle is expected to be provided by the partner VAL clie...
constexpr PassDescriptorT< 0 > describePass(dw::core::StringView &&name, dwProcessorType processorType)
dwTime_t cycleTimeSteering
Time offset of wheel speed measurements. This value is subtracted from signal timestamp.
bool sigPresenceSuspensionLevelTimestampQuality
Signals if the VIO interface signal suspensionLevelTimestamp is expected to be provided by the partne...
uint32_t disabledErrorIdsBitfield[DW_EGOMOTION_DISABLED_ERROR_IDS_ARRAY_SIZE]
Whether errors shall lead egomotion to degrade or invalidate its outputs.
dwTime_t timeOffsetWheelTicks
Time offset of angular velocity measurements. This value is subtracted from signal timestamp.
bool sigPresenceWheelTicksTimestampQualityRedundant
Signals if the VIO interface signal wheelTicksTimestampRedundant expected to be provided by the partn...
dwTime_t wheelObserverFixedStepSize
Indicates the suspension center height approximation used by egomotion, in meters,...
uint32_t groundSpeedType
Egomotion state history size, default 1000 if left 0.
float32_t vehicleMotionObserverGroundSpeedCovariance[3]
Initial process covariance parameters (continuous time, coefficients on diagonal)....
uint32_t errorHandlingIMUTurnrateOffsetQualityRange[2]
Bounds on valid IMU Turnrate Offset, in rad/s. Order: Low Bound, Upper Bound.
dwLoggerVerbosity errorHandlingLogLevel
Bounds on valid gyroscope offset short term span for egomotion internal estimator,...
float32_t errorHandlingInternalAccelerationOffsetShortTermSpan[2]
Bounds on valid accelerometer drift speed for egomotion internal estimator, in m/s^3....
dw::core::FixedString< 128 > disabledErrorIds[DW_EGOMOTION_MAX_DISABLED_ERROR_IDS]
When a bit is set to true, the corresponding monitor is set as not applicable (disabled)....
constexpr auto describePassCollection(const Args &&... args) -> std::tuple< Args... >
constexpr auto describePortCollection(Args &&... args) -> dw::core::Tuple< Args... >
float32_t wheelObserverPositionVarianceLow
Process covariance parameters (continuous time, coefficients on diagonal). Elements correspond to [po...
bool sigPresenceWheelSpeedQualityRedundant
Signals if the VIO interface signal wheelSpeedRedundant expected to be provided by the partner VAL cl...
dwTime_t timeOffsetSuspension
Time offset of steering angle measurements. This value is subtracted from signal timestamp.
float32_t wheelObserverPositionVarianceHigh
Position (tick) count variance when speed below positionFuzzyLow or above positionFuzzyHigh....
bool sigPresenceRearWheelAngle
Ground Speed Type (debug setting for AugResim only).
float32_t errorHandlingInternalAccelerationOffsetDriftSpeed[2]
Bounds on valid accelerometer offset for egomotion internal estimator, in m/s^2. Order: Low Bound,...
float32_t errorHandlingIMUAccelerationRange[2]
Bounds on valid IMU Turnrate Acceleration, in rad/s^2. Order: Low Bound, Upper Bound.
float32_t wheelObserverAccelerationMax
Maximum wheel speed, in rad/s, to which the state will be constrained (treated as error if error hand...
dwTime_t timeOffsetAngularAcceleration
Time offset of suspension measurements. This value is subtracted from signal timestamp.
dwTime_t cycleTimeSuspension
Indicates the interval in microseconds between two steering angle updates.
dwTime_t timeOffsetAngularVelocity
Time offset of linear acceleration measurements. This value is subtracted from signal timestamp.
bool sigPresenceIMUTurnrateOffsetQualityStatus
Signals if the IMU sequence counter signal is provided.
float32_t errorHandlingInternalGyroscopeOffsetShortTermSpan[2]
Bounds on valid gyroscope drift speed for egomotion internal estimator, in rad/s^2....
bool sigPresenceSuspensionLevelQuality
Signals if the VIO interface signal suspensionLevel is expected to be provided by the partner VAL cli...
float32_t wheelObserverAccelerationMin
Maximum wheel acceleration, in rad/s^2, to which the state will be constrained (treated as error if e...
bool sigPresenceIMUStatus
Signals if the wheel brake torques quality signal is provided.
bool wheelObserverEnableFixedStep
Defines the step size when running the Wheel Observer in fixed step mode.
bool sigPresenceFrontSteeringAngleHigh
Signals if the VIO interface signal wheelTicksTimestampQualityRedundant expected to be provided by th...
float32_t errorHandlingVIOWheelTorqueRange[2]
Bounds on valid VIO Front Steering Angle Offset Measurements, in rad. Order: Low Bound,...
dwTime_t vehicleMotionObserverFixedStepSize
Threshold of no wheel ticks duration to determine whether the vehicle rolling direction is void or st...
float32_t suspensionCenterHeight[2]
Indicates the interval in microseconds between two wheel encoder updates (wheel speeds,...
bool sigPresenceRearWheelAngleTimestampQuality
Signals if the VIO interface signal rearWheelAngleTimestamp is expected to be provided by the partner...
float32_t errorHandlingIMUTurnrateRange[2]
Bounds on valid IMU Sequence Counter, unitless. Order: Low Bound, Upper Bound.
uint32_t wheelObserverPositionFuzzyLow
Speed variance when speed above speedFuzzyHigh. Indicates region of high trust in wheel speed,...
float32_t vehicleMotionObserverProcessCovariance[5]
When true, enables Vehicle Motion Observer fixed step mode.
static constexpr uint32_t DW_EGOMOTION_MAX_DISABLED_ERROR_IDS
float32_t errorHandlingInternalGyroscopeOffsetDriftSpeed[2]
Bounds on valid gyroscope offset for egomotion internal estimator, in rad/s. Order: Low Bound,...
bool sigPresenceIMUTimestampQuality
Signals if the VIO interface signal frontSteeringTimestampHigh is expected to be provided by the part...
float32_t errorHandlingVIOBrakeTorqueWheelsRange[2]
Bounds on valid VIO Speed Max Measurements, in m/s. Order: Low Bound, Upper Bound.
float32_t errorHandlingVIOWheelSpeedRange[2]
Indicates which traction configuration is used on this vehicle. 0=AWD, 1=FWD, 2=RWD.
Definition: Buffer.hpp:40