36 geometry_msgs::msg::PointStamped p = etsi_its_cam_msgs::access::getUTMPosition(cam, zone, northp);
37 header.frame_id = p.header.frame_id;
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);
42 station_id = etsi_its_cam_msgs::access::getStationID(cam);
43 station_type = etsi_its_cam_msgs::access::getStationType(cam);
45 double heading = (90-etsi_its_cam_msgs::access::getHeading(cam))*M_PI/180.0;
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);
52 dimensions.x = etsi_its_cam_msgs::access::getVehicleLength(cam);
53 dimensions.y = etsi_its_cam_msgs::access::getVehicleWidth(cam);
56 speed = etsi_its_cam_msgs::access::getSpeed(cam);
61 valid = valid && rviz_common::validateFloats(
pose);
62 valid = valid && rviz_common::validateFloats(
dimensions);
63 valid = valid && rviz_common::validateFloats(
speed);
68 return (now-
header.stamp).seconds();