31#ifndef DWFRAMEWORK_DWNODES_EGOMOTION_DWRELATIVEEGOMOTIONIMUNODE_DWRELATIVEEGOMOTIONIMUNODE_HPP_
32#define DWFRAMEWORK_DWNODES_EGOMOTION_DWRELATIVEEGOMOTIONIMUNODE_DWRELATIVEEGOMOTIONIMUNODE_HPP_
34#include <dw/egomotion/Egomotion.h>
35#include <dw/roadcast/base_types/RoadCastPacketTypes.hpp>
74 static constexpr auto get()
76 return describeEnumeratorCollection<dwMotionModel>(
85 static constexpr auto get()
87 return describeEnumeratorCollection<dwEgomotionSpeedMeasurementType>(
97 static constexpr auto get()
99 return describeEnumeratorCollection<dwEgomotionLinearAccelerationFilterMode>(
128 DW_DESCRIBE_PORT(dwVehicleIONonSafetyState,
"VEHICLE_IO_NON_SAFETY_STATE"_sv),
129 DW_DESCRIBE_PORT(dwVehicleIOActuationFeedback,
"VEHICLE_IO_ACTUATION_FEEDBACK"_sv),
148 describePass(
"ADD_VEHICLE_STATE"_sv, DW_PROCESSOR_TYPE_CPU),
149 describePass(
"UPDATE_IMU_EXTRINSICS"_sv, DW_PROCESSOR_TYPE_CPU),
150 describePass(
"UPDATE_WHEEL_RADII"_sv, DW_PROCESSOR_TYPE_CPU),
159 return Exception::guardWithReturn([&]() {
161 if (asyncResetNode !=
nullptr)
167 dw::core::Logger::Verbosity::DEBUG);
172 return Exception::guardWithReturn([&]() {
174 if (asyncResetNode !=
nullptr)
180 dw::core::Logger::Verbosity::DEBUG);
190 return DW_NOT_SUPPORTED;
195 return describeConstructorArguments<dwRelativeEgomotionIMUNodeInitParams, dwContextHandle_t>(
214 "estimateInitialOrientation"_sv,
218 "automaticUpdate"_sv,
222 "enableSuspension"_sv,
229 dwEgomotionSpeedMeasurementType,
230 "speedMeasurementType"_sv,
234 dwEgomotionLinearAccelerationFilterMode,
235 "linearAccelerationFilterMode"_sv,
239 "linearAccelerationFilterTimeConst"_sv,
243 "linearAccelerationFilterProcessNoiseStdevSpeed"_sv,
247 "linearAccelerationFilterProcessNoiseStdevAcceleration"_sv,
251 "linearAccelerationFilterMeasurementNoiseStdevSpeed"_sv,
255 "linearAccelerationFilterMeasurementNoiseStdevAcceleration"_sv,
259 dwContextHandle_t)));
264 const dwContextHandle_t ctx);
#define DW_DESCRIBE_C_ENUMERATOR(NAME)
Syntactic sugar calling describeEnumerator().
#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, args...)
std::unique_ptr< Node > m_impl
virtual dwStatus setAsyncReset()=0
Set the async reset flag.
virtual dwStatus executeAsyncReset()=0
Executes a reset if the async reset flag is set.
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...
dwRelativeEgomotionIMUNode(const dwRelativeEgomotionIMUNodeInitParams ¶ms, const dwContextHandle_t ctx)
dwStatus executeAsyncReset() override
static constexpr auto describeParameters()
static std::unique_ptr< dwRelativeEgomotionIMUNode > create(ParameterProvider &provider)
static constexpr auto describePasses()
dwStatus preShutdown() override
dwStatus setAsyncReset() override
static constexpr auto describeOutputPorts()
static constexpr auto describeInputPorts()
dwEgomotionSpeedMeasurementType speedMeasurementType
dwConstRigHandle_t rigHandle
const char * vehicleSensorName
constexpr auto describePortCollection(Args &&... args)
constexpr std::tuple< dw::core::StringView, dwProcessorType > describePass(dw::core::StringView const &&name, dwProcessorType processorType)
dwMotionModel motionModel
dwEgomotionLinearAccelerationFilterParams linearAccelerationFilterParameters
constexpr auto describeConstructorArgument(const Args &&... args)
const char * imuSensorName
constexpr auto describePassCollection(const Args &&... args)
bool estimateInitialOrientation
static constexpr auto get()
static constexpr auto get()
static constexpr auto get()