18 #ifndef STATE_ESTIMATION_NODES__MEASUREMENT_CONVERSION_HPP_ 19 #define STATE_ESTIMATION_NODES__MEASUREMENT_CONVERSION_HPP_ 21 #include <geometry_msgs/msg/pose_with_covariance_stamped.hpp> 22 #include <geometry_msgs/msg/twist_with_covariance_stamped.hpp> 24 #include <nav_msgs/msg/odometry.hpp> 25 #include <rclcpp/time.hpp> 28 #include <Eigen/Geometry> 57 template<
typename MeasurementT,
typename MessageT>
59 const MessageT &,
const Eigen::Isometry3f &)
62 sizeof(MessageT) == -1,
63 "You have to have a specialization for message_to_measurement() function!");
65 throw std::runtime_error(
"You have to have a specialization for message_to_measurement()!");
78 template<std::
int32_t kStateDimentionality,
typename FloatT>
81 const Eigen::Transform<FloatT, 3, Eigen::TransformTraits::Isometry> & isometry)
83 static_assert(kStateDimentionality <= 3,
"We only handle scaling the isometry down.");
85 FloatT, kStateDimentionality, Eigen::TransformTraits::Isometry>;
86 Isometry result{Isometry::Identity()};
87 result.linear() = isometry.rotation()
88 .template block<kStateDimentionality, kStateDimentionality>(0, 0);
89 result.translation() = isometry.translation().topRows(kStateDimentionality);
104 const Eigen::Isometry3f & tf_world_message);
116 const geometry_msgs::msg::TwistWithCovarianceStamped & msg,
117 const Eigen::Isometry3f & tf_world_message);
129 const geometry_msgs::msg::PoseWithCovarianceStamped & msg,
130 const Eigen::Isometry3f & tf_world_message);
136 #endif // STATE_ESTIMATION_NODES__MEASUREMENT_CONVERSION_HPP_ static constexpr Eigen::Transform< FloatT, kStateDimentionality, Eigen::TransformTraits::Isometry > downscale_isometry(const Eigen::Transform< FloatT, 3, Eigen::TransformTraits::Isometry > &isometry)
Downscale the isometry to a lower dimention if needed.
Definition: measurement_conversion.hpp:80
float float32_t
Definition: types.hpp:36
Measurement< common::types::float32_t, motion::motion_model::ConstantAcceleration::States::POSE_X, motion::motion_model::ConstantAcceleration::States::POSE_Y > MeasurementPose
Definition: measurement_conversion.hpp:37
This file defines the constant velocity motion model.
static const index_t POSE_X
index of x position
Definition: constant_acceleration.hpp:49
MeasurementT message_to_measurement(const MessageT &, const Eigen::Isometry3f &)
Interface for converting a message into a measurement.
Definition: measurement_conversion.hpp:58
static const index_t VELOCITY_Y
index of y velocity
Definition: constant_acceleration.hpp:52
geometry_msgs::msg::TransformStamped Transform
Definition: recordreplay_planner_node.hpp:56
static const index_t POSE_Y
index of y position
Definition: constant_acceleration.hpp:50
static const index_t VELOCITY_X
index of x velocity
Definition: constant_acceleration.hpp:51
Definition: measurement.hpp:46
autoware_auto_msgs::msg::VehicleOdometry Odometry
Definition: safety_state_machine.hpp:43
This file defines the lanelet2_map_provider_node class.
Definition: quick_sort.hpp:24