diff --git a/osi_hostvehicledata.proto b/osi_hostvehicledata.proto index 47a898e72..0b57ceb08 100644 --- a/osi_hostvehicledata.proto +++ b/osi_hostvehicledata.proto @@ -8,8 +8,7 @@ import "osi_common.proto"; package osi3; // \brief Host vehicle data is about the perception of the vehicle about it's own, internal states. -// It describes data that the host vehicle knows about itself, -// e.g. from location sensors, internal sensors, board net etc. +// It describes data that the host vehicle knows about itself, e.g. from location sensors, board net etc. // A dynamic model can serve as input provider. // Sensors, mockups or other modules can make usage of the host vehicle data. // It consists of different messages categorizing the vehicle in: @@ -17,9 +16,6 @@ package osi3; // // \image html OSI_HostVehicle.svg // -// All coordinates and orientations are relative to the global ground truth coordinate system. -// Otherwise it is mentioned explicitly. -// message HostVehicleData { // The interface version used by the sender. @@ -36,16 +32,27 @@ message HostVehicleData // optional Timestamp timestamp = 11; - // Deprecated: Will be removed in next major release. Moved to VehiclePositionAndKinematics. - // Current estimated location based on GPS- and related navigation sensors. + // Geodetic origin of the ENU (east-north-up) cartesian coordinate system regarding WGS84. + // + optional GeodeticPosition enu_origin = 12; + + // The host vehicle location and kinematics at \c HostVehicleData::timestamp. + // + // \note If \c HostVehicleData::enu_origin is specified, then the \c BaseMoving parent frame used by + // \c HostVehicleData::location is the ENU frame according to ISO8855 with the geodetic origin of + // \c HostVehicleData::enu_origin. Otherwise \c BaseMoving parent frame is an arbitrary cartesian coordinate system + // with its axis conventions following ISO8855. // // \note Note that dimension and base_polygon need not be set. // optional BaseMoving location = 1; - // Deprecated: Will be removed in next major release. Moved to VehiclePositionAndKinematics. - // Current estimated location error based on GPS- and related navigation - // sensors. + // The host vehicle location and kinematics root-mean-square errors at \c HostVehicleData::timestamp. + // + // \note If \c HostVehicleData::enu_origin is specified, then the \c BaseMoving parent frame used by + // \c HostVehicleData::location is the ENU frame according to ISO8855 with the geodetic origin of + // \c HostVehicleData::enu_origin. Otherwise \c BaseMoving parent frame is an arbitrary cartesian coordinate system + // with its axis conventions following ISO8855. // // \note Note that dimension and base_polygon need not be set. // @@ -71,16 +78,12 @@ message HostVehicleData // optional VehicleWheels vehicle_wheels = 7; - // Interface regarding the navigation. - // - optional VehiclePositionAndKinematics vehicle_position_and_kinematics = 8; - // // \brief The absolute base parameters of the vehicle. // message VehicleBasics { - // The total mass of the vehicle (curb weight). + // The total mass of the vehicle (curb weight). // // Unit: kg // @@ -98,7 +101,7 @@ message HostVehicleData // To be discussed. // } - + // // \brief State description of the powertrain. // @@ -124,7 +127,7 @@ message HostVehicleData // reverse mode gears) // optional int32 gear_transmission = 3; - + // Information about the motor(s). // repeated Motor motor = 4; @@ -149,7 +152,7 @@ message HostVehicleData // optional double pedal_position_clutch = 3; } - + // // \brief A description for the positions of the pedals. // @@ -158,7 +161,7 @@ message HostVehicleData // The type of the motor. // optional Type type = 1; - + // Rounds per minute of the engine. RPM can be from E-Motor/ Engine. // // Unit: 1/min @@ -170,7 +173,7 @@ message HostVehicleData // Unit: N*m // optional double torque = 3; - + // Definition which type of motor is used. // enum Type @@ -186,11 +189,11 @@ message HostVehicleData // A motor working after the principle of Nicolaus Otto. // TYPE_OTTO = 2; - + // A motor working after the principle of Rudolf Diesel. // TYPE_DIESEL = 3; - + // A motor working electric. // TYPE_ELECTRIC = 4; @@ -204,7 +207,7 @@ message HostVehicleData // message VehicleSteeringWheel { - // Angle of the steering wheel. + // Angle of the steering wheel. // 0=Central (Straight); Left>0; 0>Right. // // Unit: rad @@ -254,7 +257,7 @@ message HostVehicleData // optional uint32 index = 2; - // Dry friction is a force that opposes the relative lateral motion of two solid surfaces + // Dry friction is a force that opposes the relative lateral motion of two solid surfaces // in contact. It is subdivided into static friction between non-moving surfaces and kinetic // friction between moving surfaces. // Ued here is the dry friction coefficient of the paired materials (see reference). @@ -291,72 +294,29 @@ message HostVehicleData } } + // \brief Geodetic position. // - // \brief This message contains all the information the vehicle knows about its positioning and kinematics. - // - message VehiclePositionAndKinematics + message GeodeticPosition { + // Longitude in decimal degrees regarding WGS84. // - // \brief Current calculated and estimated kinematic data. + // Unit: Degree + // Range: [-180; 180] // - message CartesianInformation - { - // Current calculated and estimated kinematic data. - // - // \note Note that dimension and base_polygon need not be set. - // - optional BaseMoving cartesian_data = 1; - - // Current calculated and estimated kinematic data error. - // - // \note Note that dimension and base_polygon need not be set. - // - optional BaseMoving cartesian_data_rmse = 2; - } + optional double longitude = 1; + // Latitude in decimal degrees regarding WGS84. // - // \brief Current calculated and estimated geodetic location. + // Unit: Degree + // Range: [-90; 90] // - message GeoreferencedInformation - { - // Longitude in decimal degrees regarding WGS84. - // - // Unit: Degree - // Range: [-180; 180] - // - optional double longitude = 1; - - // Latitude in decimal degrees regarding WGS84. - // - // Unit: Degree - // Range: [-90; 90] - // - optional double latitude = 2; - - // Height above sea level regarding EGM96. - // - // Unit: m - // Range: [-300; 10000] - // - optional double altitude = 3; - - // To be discussed as it is in CartesianInformation. - // Heading in decimal degrees. - // - // Unit: Degree - // Range: [0; 360] - // - // optional double heading = 4; - - // Accuracy of localization measurement in percentage of the units. - // - // Unit: % - // - // optional double localization_accuracy = 5; + optional double latitude = 2; - // Number of satellites. - // - // optional int32 number_of_satellites = 6; - } - } + // Height above sea level regarding EGM96. + // + // Unit: m + // Range: [-300; 10000] + // + optional double altitude = 3; + } }