15#ifndef CARMA_COOPERATIVE_PERCEPTION__MSG_CONVERSION_HPP_
16#define CARMA_COOPERATIVE_PERCEPTION__MSG_CONVERSION_HPP_
20#include <carma_cooperative_perception_interfaces/msg/detection_list.hpp>
21#include <carma_cooperative_perception_interfaces/msg/track.hpp>
22#include <carma_cooperative_perception_interfaces/msg/track_list.hpp>
23#include <carma_perception_msgs/msg/external_object.hpp>
24#include <carma_perception_msgs/msg/external_object_list.hpp>
25#include <carma_v2x_msgs/msg/sensor_data_sharing_message.hpp>
31#include <geometry_msgs/msg/pose_stamped.hpp>
33#include <lanelet2_core/geometry/Lanelet.h>
34#include <lanelet2_extension/projection/local_frame_projector.h>
36#include <tf2/LinearMath/Quaternion.h>
64 os <<
"SdsmToDetectionListConfig{"
74 <<
"\n x_offset: " << config.
x_offset
75 <<
"\n y_offset: " << config.
y_offset
87 const DDateTime & d_date_time,
bool is_simulation) -> builtin_interfaces::msg::Time;
93 -> j2735_v2x_msgs::msg::DDateTime;
96 const builtin_interfaces::msg::Time & external_object_list_time,
97 const builtin_interfaces::msg::Time & external_object_time)
98 -> carma_v2x_msgs::msg::MeasurementTimeOffset;
100auto to_position_msg(
const UtmCoordinate & position_utm) -> geometry_msgs::msg::Point;
102auto heading_to_enu_yaw(
const units::angle::degree_t & heading) -> units::angle::degree_t;
105 const geometry_msgs::msg::PoseStamped & current_pose,
106 const carma_v2x_msgs::msg::PositionOffsetXYZ & detected_object_data)
107 -> carma_v2x_msgs::msg::PositionOffsetXYZ;
110 const geometry_msgs::msg::PoseStamped & source_pose,
111 const std::shared_ptr<lanelet::projection::LocalFrameProjector> & map_projection)
112 -> carma_v2x_msgs::msg::Position3D;
115 const carma_v2x_msgs::msg::SensorDataSharingMessage & sdsm, std::string_view georeference,
116 bool is_simulation,
const std::optional<SdsmToDetectionListConfig>& conversion_adjustment)
117 -> carma_cooperative_perception_interfaces::msg::DetectionList;
122 carma_cooperative_perception_interfaces::msg::Detection::MOTION_MODEL_CTRV};
124 carma_cooperative_perception_interfaces::msg::Detection::MOTION_MODEL_CTRV};
126 carma_cooperative_perception_interfaces::msg::Detection::MOTION_MODEL_CTRV};
128 carma_cooperative_perception_interfaces::msg::Detection::MOTION_MODEL_CTRV};
130 carma_cooperative_perception_interfaces::msg::Detection::MOTION_MODEL_CTRV};
134 const carma_perception_msgs::msg::ExternalObject &
object,
135 const MotionModelMapping & motion_model_mapping)
139 const carma_perception_msgs::msg::ExternalObjectList & object_list,
140 const MotionModelMapping & motion_model_mapping)
141 -> carma_cooperative_perception_interfaces::msg::DetectionList;
144 -> carma_perception_msgs::msg::ExternalObject;
147 const carma_cooperative_perception_interfaces::msg::TrackList & track_list)
148 -> carma_perception_msgs::msg::ExternalObjectList;
151 const carma_perception_msgs::msg::ExternalObjectList & external_object_list,
152 const geometry_msgs::msg::PoseStamped & current_pose,
153 const std::shared_ptr<lanelet::projection::LocalFrameProjector> & map_projection)
154 -> carma_v2x_msgs::msg::SensorDataSharingMessage;
158 const std::shared_ptr<lanelet::projection::LocalFrameProjector> & map_projection)
159 -> carma_v2x_msgs::msg::DetectedObjectData;
162 double yaw,
const lanelet::BasicPoint3d & obj_pose,
163 const std::shared_ptr<lanelet::projection::LocalFrameProjector> & map_projection)
164 -> units::angle::degree_t;
SdsmToDetectionListConfig()=default
double twist_covariance_z
double pose_covariance_yaw
double twist_covariance_yaw
bool overwrite_covariance
friend std::ostream & operator<<(std::ostream &os, const SdsmToDetectionListConfig &config)
double twist_covariance_x
auto enu_orientation_to_true_heading(double yaw, const lanelet::BasicPoint3d &obj_pose, const std::shared_ptr< lanelet::projection::LocalFrameProjector > &map_projection) -> units::angle::degree_t
auto to_external_object_list_msg(const carma_cooperative_perception_interfaces::msg::TrackList &track_list) -> carma_perception_msgs::msg::ExternalObjectList
auto calc_sdsm_time_offset(const builtin_interfaces::msg::Time &external_object_list_time, const builtin_interfaces::msg::Time &external_object_time) -> carma_v2x_msgs::msg::MeasurementTimeOffset
auto to_ddate_time_msg(const builtin_interfaces::msg::Time &builtin_time) -> j2735_v2x_msgs::msg::DDateTime
auto calc_detection_time_stamp(DDateTime d_date_time, const MeasurementTimeOffset &offset) -> DDateTime
std::variant< multiple_object_tracking::CtrvDetection, multiple_object_tracking::CtraDetection > Detection
auto to_detection_msg(const carma_perception_msgs::msg::ExternalObject &object, const MotionModelMapping &motion_model_mapping) -> carma_cooperative_perception_interfaces::msg::Detection
auto to_time_msg(const DDateTime &d_date_time, bool is_simulation) -> builtin_interfaces::msg::Time
auto to_detected_object_data_msg(const carma_perception_msgs::msg::ExternalObject &external_object, const std::shared_ptr< lanelet::projection::LocalFrameProjector > &map_projection) -> carma_v2x_msgs::msg::DetectedObjectData
auto to_external_object_msg(const carma_cooperative_perception_interfaces::msg::Track &track) -> carma_perception_msgs::msg::ExternalObject
auto heading_to_enu_yaw(const units::angle::degree_t &heading) -> units::angle::degree_t
auto calc_relative_position(const geometry_msgs::msg::PoseStamped ¤t_pose, const carma_v2x_msgs::msg::PositionOffsetXYZ &detected_object_data) -> carma_v2x_msgs::msg::PositionOffsetXYZ
auto to_sdsm_msg(const carma_perception_msgs::msg::ExternalObjectList &external_object_list, const geometry_msgs::msg::PoseStamped ¤t_pose, const std::shared_ptr< lanelet::projection::LocalFrameProjector > &map_projection) -> carma_v2x_msgs::msg::SensorDataSharingMessage
auto to_position_msg(const UtmCoordinate &position_utm) -> geometry_msgs::msg::Point
std::variant< multiple_object_tracking::CtrvTrack, multiple_object_tracking::CtraTrack > Track
auto transform_pose_from_map_to_wgs84(const geometry_msgs::msg::PoseStamped &source_pose, const std::shared_ptr< lanelet::projection::LocalFrameProjector > &map_projection) -> carma_v2x_msgs::msg::Position3D
auto to_detection_list_msg(const carma_v2x_msgs::msg::SensorDataSharingMessage &sdsm, std::string_view georeference, bool is_simulation, const std::optional< SdsmToDetectionListConfig > &conversion_adjustment) -> carma_cooperative_perception_interfaces::msg::DetectionList
Converts a carma_v2x_msgs::msg::SensorDataSharingMessage (SDSM) to carma_cooperative_perception_inter...
std::uint8_t large_vehicle_model
std::uint8_t unknown_model
std::uint8_t pedestrian_model
std::uint8_t motorcycle_model
std::uint8_t small_vehicle_model