31#ifndef DWFRAMEWORK_DWNODES_EGOMOTION_DWRELATIVEEGOMOTIONIMUNODE_DWRELATIVEEGOMOTIONIMUNODE_HPP_
32#define DWFRAMEWORK_DWNODES_EGOMOTION_DWRELATIVEEGOMOTIONIMUNODE_DWRELATIVEEGOMOTIONIMUNODE_HPP_
34#include <dw/egomotion/base/Egomotion.h>
35#include <dw/roadcast/base_types/RoadCastPacketTypes.hpp>
44#include <dwframework/dwnodes/common/channelpackets/DwframeworkTypes.hpp>
45#include <dwframework/dwnodes/common/channelpackets/EgomotionState.hpp>
46#include <dwframework/dwnodes/common/channelpackets/IMU.hpp>
47#include <dwframework/dwnodes/common/channelpackets/SelfCalibrationTypes.hpp>
48#include <dwframework/dwnodes/common/channelpackets/SensorCommonTypes.hpp>
49#include <dwframework/dwnodes/common/channelpackets/VehicleIOValStructures.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>(
131 DW_DESCRIBE_PORT(dwVehicleIONonSafetyState,
"VEHICLE_IO_NON_SAFETY_STATE"_sv),
132 DW_DESCRIBE_PORT(dwVehicleIOActuationFeedback,
"VEHICLE_IO_ACTUATION_FEEDBACK"_sv),
151 describePass(StringView{
"SETUP"}, DW_PROCESSOR_TYPE_CPU),
152 describePass(StringView{
"ADD_IMU"}, DW_PROCESSOR_TYPE_CPU),
153 describePass(StringView{
"ADD_VEHICLE_STATE"}, DW_PROCESSOR_TYPE_CPU),
154 describePass(StringView{
"UPDATE_IMU_EXTRINSICS"}, DW_PROCESSOR_TYPE_CPU),
155 describePass(StringView{
"UPDATE_WHEEL_RADII"}, DW_PROCESSOR_TYPE_CPU),
156 describePass(StringView{
"SEND_STATE"}, DW_PROCESSOR_TYPE_CPU),
157 describePass(StringView{
"TEARDOWN"}, DW_PROCESSOR_TYPE_CPU));
167 if (asyncResetNode !=
nullptr)
173 dw::core::Logger::Verbosity::DEBUG);
181 if (asyncResetNode !=
nullptr)
187 dw::core::Logger::Verbosity::DEBUG);
198 return DW_NOT_SUPPORTED;
206 return describeConstructorArguments<dwRelativeEgomotionIMUNodeInitParams, dwContextHandle_t>(
225 "estimateInitialOrientation"_sv,
229 "automaticUpdate"_sv,
233 "enableSuspension"_sv,
240 dwEgomotionSpeedMeasurementType,
241 "speedMeasurementType"_sv,
245 dwEgomotionLinearAccelerationFilterMode,
246 "linearAccelerationFilterMode"_sv,
250 "linearAccelerationFilterTimeConst"_sv,
254 "linearAccelerationFilterProcessNoiseStdevSpeed"_sv,
258 "linearAccelerationFilterProcessNoiseStdevAcceleration"_sv,
262 "linearAccelerationFilterMeasurementNoiseStdevSpeed"_sv,
266 "linearAccelerationFilterMeasurementNoiseStdevAcceleration"_sv,
270 dwContextHandle_t)));
275 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...)
static dwStatus guardWithReturn(TryBlock const &tryBlock, ::dw::core::Logger::Verbosity verbosity=::dw::core::Logger::Verbosity::ERROR)
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 describeConstructorArgument(const Args &&... args) -> dw::core::Tuple< Args... >
dwMotionModel motionModel
dwEgomotionLinearAccelerationFilterParams linearAccelerationFilterParameters
constexpr auto describePassCollection(const Args &&... args) -> std::tuple< Args... >
constexpr auto describePortCollection(Args &&... args) -> dw::core::Tuple< Args... >
const char * imuSensorName
constexpr PassDescriptorT< 0 > describePass(dw::core::StringView const &&name, dwProcessorType processorType)
bool estimateInitialOrientation
static constexpr auto get()
static constexpr auto get()
static constexpr auto get()