cam_render_object.cpp
Go to the documentation of this file.
1 
26 
27 namespace etsi_its_msgs
28 {
29 namespace displays
30 {
31 
32  CAMRenderObject::CAMRenderObject(etsi_its_cam_msgs::msg::CAM cam, rclcpp::Time receive_time, uint16_t n_leap_seconds) {
33 
34  int zone;
35  bool northp;
36  geometry_msgs::msg::PointStamped p = etsi_its_cam_msgs::access::getUTMPosition(cam, zone, northp);
37  header.frame_id = p.header.frame_id;
38 
39  uint64_t nanosecs = etsi_its_cam_msgs::access::getUnixNanosecondsFromGenerationDeltaTime(etsi_its_cam_msgs::access::getGenerationDeltaTime(cam), receive_time.nanoseconds(), n_leap_seconds);
40  header.stamp = rclcpp::Time(nanosecs);
41 
42  station_id = etsi_its_cam_msgs::access::getStationID(cam);
43  station_type = etsi_its_cam_msgs::access::getStationType(cam);
44 
45  double heading = (90-etsi_its_cam_msgs::access::getHeading(cam))*M_PI/180.0; // 0.0° equals WGS84 North, 90.0° equals WGS84 East, 180.0° equals WGS84 South and 270.0° equals WGS84 West
46  while(heading<0) heading+=2*M_PI;
47  pose.position = p.point;
48  tf2::Quaternion orientation;
49  orientation.setRPY(0.0, 0.0, heading);
50  pose.orientation = tf2::toMsg(orientation);
51 
52  dimensions.x = etsi_its_cam_msgs::access::getVehicleLength(cam);
53  dimensions.y = etsi_its_cam_msgs::access::getVehicleWidth(cam);
54  dimensions.z = 1.6;
55 
56  speed = etsi_its_cam_msgs::access::getSpeed(cam);
57  }
58 
60  bool valid = true;
61  valid = valid && rviz_common::validateFloats(pose);
62  valid = valid && rviz_common::validateFloats(dimensions);
63  valid = valid && rviz_common::validateFloats(speed);
64  return valid;
65  }
66 
67  double CAMRenderObject::getAge(rclcpp::Time now) {
68  return (now-header.stamp).seconds();
69  }
70 
71  std_msgs::msg::Header CAMRenderObject::getHeader() {
72  return header;
73  }
74 
76  return station_id;
77  }
78 
80  return station_type;
81  }
82 
83  geometry_msgs::msg::Pose CAMRenderObject::getPose() {
84  return pose;
85  }
86 
87  geometry_msgs::msg::Vector3 CAMRenderObject::getDimensions() {
88 
89  return dimensions;
90  }
91 
93  return speed;
94  }
95 
96 } // namespace displays
97 } // namespace etsi_its_msgs
etsi_its_msgs::displays::CAMRenderObject::getAge
double getAge(rclcpp::Time now)
Get age of CAM-object.
Definition: cam_render_object.cpp:67
etsi_its_msgs::displays::CAMRenderObject::validateFloats
bool validateFloats()
This function validates all float variables that are part of a CAMRenderObject.
Definition: cam_render_object.cpp:59
etsi_its_msgs::displays::CAMRenderObject::station_id
uint32_t station_id
Definition: cam_render_object.hpp:109
etsi_its_msgs::displays::CAMRenderObject::getHeader
std_msgs::msg::Header getHeader()
Get header of CAM-object.
Definition: cam_render_object.cpp:71
etsi_its_msgs::displays::CAMRenderObject::getStationType
int getStationType()
Get the StationType of CAM-object.
Definition: cam_render_object.cpp:79
etsi_its_msgs::displays::CAMRenderObject::getSpeed
double getSpeed()
Get speed of CAM-object.
Definition: cam_render_object.cpp:92
etsi_its_msgs::displays::CAMRenderObject::getPose
geometry_msgs::msg::Pose getPose()
Get pose of CAM-object.
Definition: cam_render_object.cpp:83
etsi_its_msgs::displays::CAMRenderObject::CAMRenderObject
CAMRenderObject(etsi_its_cam_msgs::msg::CAM cam, rclcpp::Time receive_time, uint16_t n_leap_seconds=etsi_its_msgs::LEAP_SECOND_INSERTIONS_SINCE_2004.rbegin() ->second)
Definition: cam_render_object.cpp:32
etsi_its_msgs::displays::CAMRenderObject::dimensions
geometry_msgs::msg::Vector3 dimensions
Definition: cam_render_object.hpp:112
etsi_its_msgs::displays::CAMRenderObject::station_type
int station_type
Definition: cam_render_object.hpp:110
etsi_its_msgs::displays::CAMRenderObject::getStationID
uint32_t getStationID()
Get the StationID of CAM-object.
Definition: cam_render_object.cpp:75
etsi_its_msgs::displays::CAMRenderObject::speed
double speed
Definition: cam_render_object.hpp:113
etsi_its_msgs::displays::CAMRenderObject::pose
geometry_msgs::msg::Pose pose
Definition: cam_render_object.hpp:111
etsi_its_msgs::displays::CAMRenderObject::header
std_msgs::msg::Header header
Definition: cam_render_object.hpp:108
cam_render_object.hpp
etsi_its_msgs
Definition: cam_display.hpp:51
etsi_its_msgs::displays::CAMRenderObject::getDimensions
geometry_msgs::msg::Vector3 getDimensions()
Get dimensions of CAM-Object.
Definition: cam_render_object.cpp:87


etsi_its_rviz_plugins
Author(s): Jean-Pierre Busch , Guido Küppers , Lennart Reiher
autogenerated on Sun May 18 2025 02:29:25