test_cpm_ts_access.cpp
Go to the documentation of this file.
1 #include <gtest/gtest.h>
2 #include <cmath>
3 
5 
6 TEST(etsi_its_cpm_ts_msgs, test_set_get_cpm) {
7  cpm_ts_msgs::CollectivePerceptionMessage cpm;
8 
9  int station_id = randomInt(cpm_ts_msgs::StationId::MIN, cpm_ts_msgs::StationId::MAX);
10  int protocol_version = randomInt(cpm_ts_msgs::OrdinalNumber1B::MIN, cpm_ts_msgs::OrdinalNumber1B::MAX);
11  cpm_ts_access::setItsPduHeader(cpm, station_id, protocol_version);
12  EXPECT_EQ(cpm_ts_msgs::MessageId::CPM, cpm.header.message_id.value);
13  EXPECT_EQ(protocol_version, cpm.header.protocol_version.value);
14  EXPECT_EQ(station_id, cpm_ts_access::getStationID(cpm));
15 
16  // https://www.etsi.org/deliver/etsi_ts/102800_102899/10289402/01.02.01_60/ts_10289402v010201p.pdf
17  // DE_TimestampITS
18  // The value for TimestampIts for 2007-01-01T00:00:00.000Z is
19  // 94694401000 milliseconds, which includes one leap second insertion
20  // since 2004-01-01T00:00:00.000Z.
21 
22  uint64_t t_2007 = ((uint64_t)1167609600) * 1e9;
23  cpm_ts_msgs::TimestampIts t_its;
24  EXPECT_EQ(1, etsi_its_msgs::getLeapSecondInsertionsSince2004(t_2007 * 1e-9));
26  EXPECT_EQ(94694401000, t_its.value);
28  EXPECT_EQ(94694401000, cpm_ts_access::getReferenceTimeValue(cpm));
30 
31  double latitude = randomDouble(-90.0, 90.0);
32  double longitude = randomDouble(-180.0, 180.0);
33  cpm_ts_access::setReferencePosition(cpm, latitude, longitude);
34  EXPECT_NEAR(latitude, cpm_ts_access::getLatitude(cpm), 1e-7);
35  EXPECT_NEAR(longitude, cpm_ts_access::getLongitude(cpm), 1e-7);
36  latitude = randomDouble(-90.0, 90.0);
37  longitude = randomDouble(-180.0, 180.0);
38  double altitude = randomDouble(-1000.0, 8000.0);
39  cpm_ts_access::setReferencePosition(cpm, latitude, longitude, altitude);
40  EXPECT_NEAR(latitude, cpm_ts_access::getLatitude(cpm), 1e-7);
41  EXPECT_NEAR(longitude, cpm_ts_access::getLongitude(cpm), 1e-7);
42  EXPECT_NEAR(altitude, cpm_ts_access::getAltitude(cpm), 1e-2);
43 
44  // Set WGS84 confidence ellipse
45  std::array<double, 4> covariance_matrix = {randomDouble(1.0, 100.0), 0.0,
46  0.0, randomDouble(1.0, 100.0)};
47  double phi = randomDouble(0.0, M_PI_2);
48  std::array<double, 4> covariance_matrix_rotated = {
49  covariance_matrix[0] * std::cos(phi) * std::cos(phi) +
50  covariance_matrix[3] * std::sin(phi) * std::sin(phi),
51  (covariance_matrix[0] - covariance_matrix[3]) * std::cos(phi) * std::sin(phi),
52  (covariance_matrix[0] - covariance_matrix[3]) * std::cos(phi) * std::sin(phi),
53  covariance_matrix[0] * std::sin(phi) * std::sin(phi) +
54  covariance_matrix[3] * std::cos(phi) * std::cos(phi)
55  };
56  cpm_ts_access::setWGSRefPosConfidence(cpm, covariance_matrix_rotated);
57  std::array<double, 4> cov_get_rotated = cpm_ts_access::getWGSRefPosConfidence(cpm);
58  EXPECT_NEAR(covariance_matrix_rotated[0], cov_get_rotated[0], 1e-1);
59  EXPECT_NEAR(covariance_matrix_rotated[1], cov_get_rotated[1], 1e-1);
60  EXPECT_NEAR(covariance_matrix_rotated[2], cov_get_rotated[2], 1e-1);
61  EXPECT_NEAR(covariance_matrix_rotated[3], cov_get_rotated[3], 1e-1);
62 
63  // Set specific position to test utm projection
64  latitude = 50.787467;
65  longitude = 6.046498;
66  altitude = 209.0;
67  cpm_ts_access::setReferencePosition(cpm, latitude, longitude, altitude);
68  int zone;
69  bool northp;
70  gm::PointStamped utm = cpm_ts_access::getUTMPosition(cpm, zone, northp);
71  EXPECT_NEAR(291827.02, utm.point.x, 1e-1);
72  EXPECT_NEAR(5630349.72, utm.point.y, 1e-1);
73  EXPECT_EQ(altitude, utm.point.z);
74  EXPECT_EQ(32, zone);
75  EXPECT_EQ(true, northp);
76  cpm_ts_access::setFromUTMPosition(cpm, utm, zone, northp);
77  EXPECT_NEAR(latitude, cpm_ts_access::getLatitude(cpm), 1e-7);
78  EXPECT_NEAR(longitude, cpm_ts_access::getLongitude(cpm), 1e-7);
79  EXPECT_NEAR(altitude, cpm_ts_access::getAltitude(cpm), 1e-2);
80 
81  // Test perceived object
82  // Position
83  cpm_ts_msgs::PerceivedObject object;
84  double dx = randomDouble(-10.0, 10.0);
85  double dy = randomDouble(-10.0, 10.0);
86  double dz = randomDouble(-10.0, 10.0);
87  utm.point.x += dx;
88  utm.point.y += dy;
89  utm.point.z += dz;
90  double var_x = randomDouble(0.1, 20.48);
91  double var_y = randomDouble(0.1, 20.48);
92  double var_z = randomDouble(0.1, 20.48);
93  cpm_ts_access::setUTMPositionOfPerceivedObject(cpm, object, utm, var_x, var_y, var_z);
94  gm::PointStamped point = cpm_ts_access::getUTMPositionOfPerceivedObject(cpm, object);
95  EXPECT_NEAR(utm.point.x, point.point.x, 1e-1);
96  EXPECT_NEAR(utm.point.y, point.point.y, 1e-1);
97  EXPECT_NEAR(utm.point.z, point.point.z, 1e-1);
98  gm::Point dpoint = cpm_ts_access::getPositionOfPerceivedObject(object);
99  EXPECT_NEAR(dx, dpoint.x, 1e-1);
100  EXPECT_NEAR(dy, dpoint.y, 1e-1);
101  EXPECT_NEAR(dz, dpoint.z, 1e-1);
102  auto [var_x_get, var_y_get, var_z_get] = cpm_ts_access::getPositionConfidenceOfPerceivedObject(object);
103  EXPECT_NEAR(var_x, var_x_get, 1e-2);
104  EXPECT_NEAR(var_y, var_y_get, 1e-2);
105  EXPECT_NEAR(var_z, var_z_get, 1e-2);
106 
107  // Dimensions
108  gm::Vector3 dimensions;
109  dimensions.x = randomDouble(0.1, 25.6);
110  dimensions.y = randomDouble(0.1, 25.6);
111  dimensions.z = randomDouble(0.1, 25.6);
112  var_x = randomDouble(0.1, 1.5);
113  var_y = randomDouble(0.1, 1.5);
114  var_z = randomDouble(0.1, 1.5);
115  cpm_ts_access::setDimensionsOfPerceivedObject(object, dimensions, var_x, var_y, var_z);
116  EXPECT_NEAR(dimensions.x, cpm_ts_access::getDimensionsOfPerceivedObject(object).x, 1e-1);
117  EXPECT_NEAR(dimensions.y, cpm_ts_access::getDimensionsOfPerceivedObject(object).y, 1e-1);
118  EXPECT_NEAR(dimensions.z, cpm_ts_access::getDimensionsOfPerceivedObject(object).z, 1e-1);
119  std::tie(var_x_get, var_y_get, var_z_get) = cpm_ts_access::getDimensionsConfidenceOfPerceivedObject(object);
120  EXPECT_NEAR(var_x, var_x_get, 1e-1);
121  EXPECT_NEAR(var_y, var_y_get, 1e-1);
122  EXPECT_NEAR(var_z, var_z_get, 1e-1);
123 
124  // Yaw
125  double yaw = randomDouble(-M_PI, M_PI);
126  double yaw_std = randomDouble(0.0001, 0.109);
127  cpm_ts_access::setYawOfPerceivedObject(object, yaw, yaw_std);
128  EXPECT_NEAR(yaw, cpm_ts_access::getYawOfPerceivedObject(object), 1e-1 * M_PI / 180.0);
129  EXPECT_NEAR(yaw_std, cpm_ts_access::getYawConfidenceOfPerceivedObject(object), 1e-1 * M_PI / 180.0);
130 
131  // Yaw rate
132  double yaw_rate = randomDouble(-4.45, 4.45);
133  double yaw_rate_std = randomDouble(0.0001, 0.436);
134  cpm_ts_access::setYawRateOfPerceivedObject(object, yaw_rate, yaw_rate_std);
135  EXPECT_NEAR(yaw_rate, cpm_ts_access::getYawRateOfPerceivedObject(object), 1e0 * M_PI / 180.0);
136  std::array<double, 6> yaw_std_possible_values{1.0, 2.0, 5.0, 10.0, 20.0, 50.0};
137  std::for_each(yaw_std_possible_values.begin(), yaw_std_possible_values.end(),
138  [](double& val) { val *= 0.5 * M_PI / 180.0; });
139  double expected_yaw_rate = *std::lower_bound(yaw_std_possible_values.begin(), yaw_std_possible_values.end(), yaw_rate_std);
140  EXPECT_NEAR(expected_yaw_rate, cpm_ts_access::getYawRateConfidenceOfPerceivedObject(object), 1e0 * M_PI / 180.0);
141 
142  // Velocity
143  gm::Vector3 velocity;
144  velocity.x = randomDouble(-163.83, 163.83);
145  velocity.y = randomDouble(-163.83, 163.83);
146  velocity.z = randomDouble(-163.83, 163.83);
147  double velocity_x_std = randomDouble(0.01, 0.625);
148  double velocity_y_std = randomDouble(0.01, 0.625);
149  double velocity_z_std = randomDouble(0.01, 0.625);
150  cpm_ts_access::setVelocityOfPerceivedObject(object, velocity, velocity_x_std, velocity_y_std, velocity_z_std);
151  EXPECT_NEAR(velocity.x, cpm_ts_access::getCartesianVelocityOfPerceivedObject(object).x, 1e-2);
152  EXPECT_NEAR(velocity.y, cpm_ts_access::getCartesianVelocityOfPerceivedObject(object).y, 1e-2);
153  EXPECT_NEAR(velocity.z, cpm_ts_access::getCartesianVelocityOfPerceivedObject(object).z, 1e-2);
154  auto [vel_x_std_get, vel_y_std_get, vel_z_std_get] = cpm_ts_access::getCartesianVelocityConfidenceOfPerceivedObject(object);
155  EXPECT_NEAR(velocity_x_std, vel_x_std_get, 1e-2);
156  EXPECT_NEAR(velocity_y_std, vel_y_std_get, 1e-2);
157  EXPECT_NEAR(velocity_z_std, vel_z_std_get, 1e-2);
158 
159  // Acceleration
160  gm::Vector3 acceleration;
161  acceleration.x = randomDouble(-16.0, 16.0);
162  acceleration.y = randomDouble(-16.0, 16.0);
163  acceleration.z = randomDouble(-16.0, 16.0);
164  double acceleration_x_std = randomDouble(0.1, 5.0);
165  double acceleration_y_std = randomDouble(0.1, 5.0);
166  double acceleration_z_std = randomDouble(0.1, 5.0);
167  cpm_ts_access::setAccelerationOfPerceivedObject(object, acceleration, acceleration_x_std, acceleration_y_std, acceleration_z_std);
168  EXPECT_NEAR(acceleration.x, cpm_ts_access::getCartesianAccelerationOfPerceivedObject(object).x, 1e-1);
169  EXPECT_NEAR(acceleration.y, cpm_ts_access::getCartesianAccelerationOfPerceivedObject(object).y, 1e-1);
170  EXPECT_NEAR(acceleration.z, cpm_ts_access::getCartesianAccelerationOfPerceivedObject(object).z, 1e-1);
171  auto [acc_x_std_get, acc_y_std_get, acc_z_std_get] = cpm_ts_access::getCartesianAccelerationConfidenceOfPerceivedObject(object);
172  EXPECT_NEAR(acceleration_x_std, acc_x_std_get, 1e-1);
173  EXPECT_NEAR(acceleration_y_std, acc_y_std_get, 1e-1);
174  EXPECT_NEAR(acceleration_z_std, acc_z_std_get, 1e-1);
175 
176  // SensorInformation
177  cpm_ts_msgs::WrappedCpmContainer sensor_information_container;
178  cpm_ts_access::initSensorInformationContainer(sensor_information_container);
179  int sensor_id = randomInt(cpm_ts_msgs::Identifier1B::MIN, cpm_ts_msgs::Identifier1B::MAX);
180  int sensor_type = randomInt(cpm_ts_msgs::SensorType::MIN, cpm_ts_msgs::SensorType::MAX);
181  cpm_ts_msgs::SensorInformation sensor_information;
182  cpm_ts_access::setSensorID(sensor_information, sensor_id);
183  cpm_ts_access::setSensorType(sensor_information, sensor_type);
184  cpm_ts_access::addSensorInformationToContainer(sensor_information_container, sensor_information);
185  EXPECT_EQ(sensor_id, cpm_ts_access::getSensorID(sensor_information));
186  EXPECT_EQ(sensor_type, cpm_ts_access::getSensorType(sensor_information));
187 }
etsi_its_cpm_ts_msgs::access::getDimensionsOfPerceivedObject
gm::Vector3 getDimensionsOfPerceivedObject(const PerceivedObject &object)
Retrieves the dimensions of a perceived object.
Definition: cpm_ts_getters.h:620
etsi_its_cpm_ts_msgs::access::getSensorID
uint8_t getSensorID(const SensorInformation &sensor_information)
Get the sensorId of a SensorInformation object.
Definition: cpm_ts_getters.h:684
getLatitude
double getLatitude(const CAM &cam)
Get the Latitude value of CAM.
Definition: cam_getters_common.h:75
etsi_its_cpm_ts_msgs::access::getCartesianVelocityOfPerceivedObject
gm::Vector3 getCartesianVelocityOfPerceivedObject(const PerceivedObject &object)
Get the Cartesian velocity of the PerceivedObject.
Definition: cpm_ts_getters.h:430
getLongitude
double getLongitude(const CAM &cam)
Get the Longitude value of CAM.
Definition: cam_getters_common.h:85
etsi_its_cpm_ts_msgs::access::getYawRateConfidenceOfPerceivedObject
double getYawRateConfidenceOfPerceivedObject(const PerceivedObject &object)
Get the Yaw Rate Confidence Of Perceived Object.
Definition: cpm_ts_getters.h:389
getStationID
uint32_t getStationID(const CAM &cam)
Get the Station ID object.
Definition: cam_getters_common.h:43
TEST
TEST(etsi_its_cpm_ts_msgs, test_set_get_cpm)
Definition: test_cpm_ts_access.cpp:6
setReferencePosition
void setReferencePosition(CAM &cam, const double latitude, const double longitude, const double altitude=AltitudeValue::UNAVAILABLE)
Set the ReferencePosition for a CAM.
Definition: cam_setters_common.h:197
etsi_its_cpm_ts_msgs::access::getPositionConfidenceOfPerceivedObject
std::tuple< double, double, double > getPositionConfidenceOfPerceivedObject(const PerceivedObject &object)
Get the Position Confidences Of Perceived Object.
Definition: cpm_ts_getters.h:271
randomInt
int randomInt(int min, int max)
Definition: test_access.cpp:28
etsi_its_cpm_ts_msgs::access::setSensorType
void setSensorType(SensorInformation &sensor_information, const uint8_t sensor_type=SensorType::UNDEFINED)
Sets the sensorType of a SensorInformation object.
Definition: cpm_ts_setters.h:678
etsi_its_cpm_ts_msgs::access::getDimensionsConfidenceOfPerceivedObject
std::tuple< double, double, double > getDimensionsConfidenceOfPerceivedObject(const PerceivedObject &object)
Get the Dimensions Confidence Of Perceived Object.
Definition: cpm_ts_getters.h:634
etsi_its_cpm_ts_msgs::access::setUTMPositionOfPerceivedObject
void setUTMPositionOfPerceivedObject(CollectivePerceptionMessage &cpm, PerceivedObject &object, const gm::PointStamped &utm_position, const double x_std=std::numeric_limits< double >::infinity(), const double y_std=std::numeric_limits< double >::infinity(), const double z_std=std::numeric_limits< double >::infinity())
Sets the position of a perceived object based on a UTM position.
Definition: cpm_ts_setters.h:212
etsi_its_cpm_ts_msgs::access::setDimensionsOfPerceivedObject
void setDimensionsOfPerceivedObject(PerceivedObject &object, const gm::Vector3 &dimensions, const double x_std=std::numeric_limits< double >::infinity(), const double y_std=std::numeric_limits< double >::infinity(), const double z_std=std::numeric_limits< double >::infinity())
Sets all dimensions of a perceived object.
Definition: cpm_ts_setters.h:528
etsi_its_cpm_ts_msgs::access::getPositionOfPerceivedObject
gm::Point getPositionOfPerceivedObject(const PerceivedObject &object)
Definition: cpm_ts_getters.h:254
getAltitude
double getAltitude(const CAM &cam)
Get the Altitude value of CAM.
Definition: cam_getters_common.h:95
etsi_its_cpm_ts_msgs::access::getYawOfPerceivedObject
double getYawOfPerceivedObject(const PerceivedObject &object)
Get the yaw of the PerceivedObject.
Definition: cpm_ts_getters.h:333
etsi_its_cpm_ts_msgs::access::getSensorType
uint8_t getSensorType(const SensorInformation &sensor_information)
Get the sensorType of a SensorInformation object.
Definition: cpm_ts_getters.h:694
etsi_its_cpm_ts_msgs::access::getYawRateOfPerceivedObject
double getYawRateOfPerceivedObject(const PerceivedObject &object)
Get the yaw rate of the PerceivedObject.
Definition: cpm_ts_getters.h:375
getUnixNanosecondsFromReferenceTime
uint64_t getUnixNanosecondsFromReferenceTime(const TimestampIts &reference_time)
Get the Unix-Nanoseconds from a given ReferenceTime object.
Definition: cpm_ts_utils.h:41
etsi_its_cpm_ts_msgs
Definition: cpm_ts_access.h:43
getUTMPosition
gm::PointStamped getUTMPosition(const CAM &cam, int &zone, bool &northp)
Get the UTM Position defined within the BasicContainer of the CAM.
Definition: cam_getters_common.h:248
etsi_its_cpm_ts_msgs::access::getReferenceTimeValue
uint64_t getReferenceTimeValue(const CollectivePerceptionMessage &cpm)
Get the ReferenceTime-Value.
Definition: cpm_ts_getters.h:66
etsi_its_cpm_ts_msgs::access::setYawOfPerceivedObject
void setYawOfPerceivedObject(PerceivedObject &object, const double yaw, double yaw_std=std::numeric_limits< double >::infinity())
Sets the yaw angle of a perceived object.
Definition: cpm_ts_setters.h:363
etsi_its_cpm_ts_msgs::access::addSensorInformationToContainer
void addSensorInformationToContainer(WrappedCpmContainer &container, const SensorInformation &sensor_information)
Adds a SensorInformation to the SensorInformationContainer / WrappedCpmContainer.
Definition: cpm_ts_setters.h:701
etsi_its_msgs::getLeapSecondInsertionsSince2004
uint16_t getLeapSecondInsertionsSince2004(const uint64_t unix_seconds)
Get the leap second insertions since 2004 for given unix seconds.
Definition: constants.h:60
etsi_its_cpm_ts_msgs::access::initSensorInformationContainer
void initSensorInformationContainer(WrappedCpmContainer &container)
Initializes a WrappedCpmContainer as a SensorInformationContainer.
Definition: cpm_ts_setters.h:648
etsi_its_cam_msgs::access::setWGSRefPosConfidence
void setWGSRefPosConfidence(CAM &cam, const std::array< double, 4 > &covariance_matrix)
Set the confidence of the reference position.
Definition: cam_setters.h:148
etsi_its_cpm_ts_msgs::access::getUTMPositionOfPerceivedObject
gm::PointStamped getUTMPositionOfPerceivedObject(const CollectivePerceptionMessage &cpm, const PerceivedObject &object)
Calculates the UTM position of a perceived object based on the CPMs referencep position.
Definition: cpm_ts_getters.h:651
etsi_its_cpm_ts_msgs::access::setReferenceTime
void setReferenceTime(CollectivePerceptionMessage &cpm, const uint64_t unix_nanosecs, const uint16_t n_leap_seconds=etsi_its_msgs::LEAP_SECOND_INSERTIONS_SINCE_2004.rbegin() ->second)
Sets the reference time in a CPM.
Definition: cpm_ts_setters.h:66
etsi_its_cpm_ts_msgs::access::setYawRateOfPerceivedObject
void setYawRateOfPerceivedObject(PerceivedObject &object, const double yaw_rate, double yaw_rate_std=std::numeric_limits< double >::infinity())
Sets the yaw rate of a perceived object.
Definition: cpm_ts_setters.h:397
setFromUTMPosition
void setFromUTMPosition(CAM &cam, const gm::PointStamped &utm_position, const int &zone, const bool &northp)
Set the ReferencePosition of a CAM from a given UTM-Position.
Definition: cam_setters_common.h:214
etsi_its_cpm_ts_msgs::access::getCartesianAccelerationConfidenceOfPerceivedObject
std::tuple< double, double, double > getCartesianAccelerationConfidenceOfPerceivedObject(const PerceivedObject &object)
Get the Cartesian Acceleration Confidence Of Perceived Object.
Definition: cpm_ts_getters.h:514
randomDouble
double randomDouble(double min, double max)
Definition: test_access.cpp:24
etsi_its_cpm_ts_msgs::access::setVelocityOfPerceivedObject
void setVelocityOfPerceivedObject(PerceivedObject &object, const gm::Vector3 &cartesian_velocity, const double x_std=std::numeric_limits< double >::infinity(), const double y_std=std::numeric_limits< double >::infinity(), const double z_std=std::numeric_limits< double >::infinity())
Definition: cpm_ts_setters.h:278
etsi_its_cpm_ts_msgs::access::getCartesianAccelerationOfPerceivedObject
gm::Vector3 getCartesianAccelerationOfPerceivedObject(const PerceivedObject &object)
Get the Cartesian acceleration of the PerceivedObject.
Definition: cpm_ts_getters.h:492
etsi_its_cpm_ts_msgs::access::setSensorID
void setSensorID(SensorInformation &sensor_information, const uint8_t sensor_id=0)
Sets the sensorId of a SensorInformation object.
Definition: cpm_ts_setters.h:663
etsi_its_cam_msgs::access::getWGSRefPosConfidence
const std::array< double, 4 > getWGSRefPosConfidence(const CAM &cam)
Get the confidence ellipse of the reference position as Covariance matrix.
Definition: cam_getters.h:102
setTimestampITS
void setTimestampITS(TimestampIts &timestamp_its, const uint64_t unix_nanosecs, const uint16_t n_leap_seconds=etsi_its_msgs::LEAP_SECOND_INSERTIONS_SINCE_2004.rbegin() ->second)
Set the TimestampITS object.
Definition: cdd_setters_common.h:52
etsi_its_cpm_ts_msgs::access::setAccelerationOfPerceivedObject
void setAccelerationOfPerceivedObject(PerceivedObject &object, const gm::Vector3 &cartesian_acceleration, const double x_std=std::numeric_limits< double >::infinity(), const double y_std=std::numeric_limits< double >::infinity(), const double z_std=std::numeric_limits< double >::infinity())
Sets the acceleration of a perceived object.
Definition: cpm_ts_setters.h:336
etsi_its_cpm_ts_msgs::access::getYawConfidenceOfPerceivedObject
double getYawConfidenceOfPerceivedObject(const PerceivedObject &object)
Get the Yaw Confidence Of Perceived Object object.
Definition: cpm_ts_getters.h:348
etsi_its_cpm_ts_msgs::access::getReferenceTime
TimestampIts getReferenceTime(const CollectivePerceptionMessage &cpm)
Get the Reference Time object.
Definition: cpm_ts_getters.h:56
etsi_its_cpm_ts_msgs::access
Definition: impl/cpm/cpm_ts_access.h:52
etsi_its_cam_msgs::access::setItsPduHeader
void setItsPduHeader(CAM &cam, const uint32_t station_id, const uint8_t protocol_version=0)
Set the ItsPduHeader-object for a CAM.
Definition: cam_setters.h:45
etsi_its_cpm_ts_msgs::access::getCartesianVelocityConfidenceOfPerceivedObject
std::tuple< double, double, double > getCartesianVelocityConfidenceOfPerceivedObject(const PerceivedObject &object)
Get the Cartesian Velocity Confidence Of Perceived Object object.
Definition: cpm_ts_getters.h:452


etsi_its_msgs_utils
Author(s): Jean-Pierre Busch , Guido Küppers , Lennart Reiher
autogenerated on Sun May 18 2025 02:32:12