From fbac8c384bb952c4515505812b12a987f5d2c33d Mon Sep 17 00:00:00 2001 From: Nader Thomas Date: Wed, 30 Jun 2021 17:51:23 +0200 Subject: [PATCH 1/8] New Branch and update of the necessary changes from PR "Extension of the hostVehicleData #441" (before it broke down). Signed-off-by: Nader Thomas --- osi_common.proto | 54 ++++++++ osi_hostvehicledata.proto | 262 +++++++++++++++++++++++++++++++++++++- 2 files changed, 310 insertions(+), 6 deletions(-) diff --git a/osi_common.proto b/osi_common.proto index 01fb932f2..bef02da8e 100644 --- a/osi_common.proto +++ b/osi_common.proto @@ -804,3 +804,57 @@ message ColorCMYK // optional double key = 4; } + +// +// \brief A description for the positions of the pedals. +// +message Pedalry +{ + // Position of the acceleration-pedal. + // Range: 0-1 (Unpressed - fully pressed) + // + optional double pedal_position_acceleration = 1; + + // Position of the brake-pedal. + // Range: 0-1 (Unpressed - fully pressed) + // + optional double pedal_position_brake = 2; + + // Position of the clutch-pedal. + // Range: 0-1 (Unpressed - fully pressed) + // + optional double pedal_position_clutch = 3; +} + +// +// A description of the steering wheel. +// +message VehicleSteeringWheel +{ + // Angle of the steering wheel. + // Zero means the steering wheel is in its center position, a positive value + // means the steering wheel is turned to the left and a negative value + // means the steering wheel is turned to the right of the center position. + // + // Unit: rad + // + optional double angle = 1; + + // Angular speed of the steering wheel. + // Zero means the steering wheel stays in its position, a positive value + // means the steering wheel is turned to the left and a negative value + // means the steering wheel is turned to the right. + // + // Unit: rad/s + // + optional double angular_speed = 2; + + // Torque of the steering wheel to the hand. + // Zero means there is no force from the steering wheel to the driver`s hands. + // A positive value means the steering wheel would turn to the left without driver`s forces + // and a negative value means the steering wheel would turn to the right without driver`s forces. + // + // Unit: N*m + // + optional double torque = 3; +} diff --git a/osi_hostvehicledata.proto b/osi_hostvehicledata.proto index 711f7fcc6..65ea40bf6 100644 --- a/osi_hostvehicledata.proto +++ b/osi_hostvehicledata.proto @@ -2,31 +2,281 @@ syntax = "proto2"; option optimize_for = SPEED; +import "osi_version.proto"; import "osi_common.proto"; package osi3; +// \brief Host vehicle data is about the perception of the vehicle about it's own, internal states. +// It can be understood as an interface container for restbussimulation signals. +// If there is a duplication with values from the rest of SensorView or SensorData, than these shall be taken. // -// \brief Interface for host vehicle data that is available to sensors and -// other functions due to host vehicle's internal communication. +// It consists of different messages categorizing the vehicle in: +// Vehicle-Basics, Vehicle-Powertrain, Vehicle-SteeringWheel, Vehicle-Wheels, Vehicle-Localization. // // \image html OSI_HostVehicle.svg // -// All coordinates and orientations are relative to the global ground truth -// coordinate system. -// message HostVehicleData { + // The interface version used by the sender. + // + optional InterfaceVersion version = 10; + + // The timestamp of the host vehicle data. Zero time is arbitrary but must be + // identical for all messages. Zero time does not need to coincide with + // the unix epoch. Recommended is the starting time point of the + // simulation or measurement. + // + // \note This is the point in time that the host vehicle data message becomes + // available as snapshot from the board net information. + // + 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. // // \note Note that dimension and base_polygon need not be set. // optional BaseMoving location = 1; - // Current estimated location error based on GPS- and related navigation + // Deprecated: Will be removed in next major release. Moved to VehiclePositionAndKinematics. + // Current estimated location error based on GPS- and related navigation // sensors. // // \note Note that dimension and base_polygon need not be set. // optional BaseMoving location_rmse = 2; + + // The basic parameters of the vehicle. + // + optional VehicleBasics vehicle_basics = 3; + + // Interface regarding the powertrain. + // + optional VehiclePowertrain vehicle_powertrain = 4; + + // Interface regarding the steering wheel. + // + optional VehicleSteeringWheel vehicle_steering_wheel = 5; + + // Interface regarding the wheels. + // + optional VehicleWheels vehicle_wheels = 6; + + // Interface regarding the localization. + // + optional VehiclePositionAndKinematics vehicle_position_and_kinematics = 7; + + // + // \brief The absolute base parameters of the vehicle. + // + message VehicleBasics + { + // The total mass of the vehicle (curb weight). + // + // Unit: kg + // + // \par Reference: + // Paragraph 42 of the German Road Traffic Admission Regulations (StVZO). + // + optional double curb_weight = 1; + } + + // + // \brief State description of the powertrain. + // + message VehiclePowertrain + { + // The positions of the pedals. + // + optional Pedalry pedalry = 1; + + // The actual gear of the transmission. + // E.g. a gear lever can be in "D" and transmission in "4", but not the + // other way around. + // + // The sign of this field is linked to the gear's mode as following: + // - zero: neutral position + // - positive: driving forward mode + // - negative: reverse mode (generally -1, but few vehicles have several + // reverse mode gears) + // + optional int32 gear_transmission = 2; + + // Information about the motor(s). + // + repeated Motor motor = 3; + + // + // \brief A description for the positions of the pedals. + // + message Motor + { + // 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 + // + optional double rpm = 2; + + // Torque in Nm. It can either be from Engine/E-Motor or combined Torque values. + // + // Unit: N*m + // + optional double torque = 3; + + // Definition which type of motor is used. + // + enum Type + { + // The powertrain mode is unknown. + // + TYPE_UNKNOWN = 0; + + // It is another powertrain mode. + // + TYPE_OTHER = 1; + + // 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; + } + } + } + + // + // \brief The focus here is on the description of the wheels. + // + message VehicleWheels + { + // Description of each wheel. + // + // \note OSI uses singular instead of plural for repeated field names. + // + repeated WheelData wheel_data = 1; + + // + // \brief The focus here is on the description of a wheel. + // + message WheelData + { + // The axle which contains this wheel. A value of 0 represents the + // front-most axle of the vehicle with higher numbers incrementing + // towards the rear-most axle. + // + optional uint32 axle = 1; + + // The index of the wheel on the axle, counting in the direction + // of positive-y, that is, right-to-left. + // + // For example, on a standard 2-axle, 4-wheel car, the rear-right + // wheel would be (axle=1, index=0). + // This concept works also for twin tires. + // + optional uint32 index = 2; + + // Rotation rate of the wheel based on the processed output of the hall sensor measurements at the wheel. + // The rotation rate around the y-axis with respect to the wheel's coordinate system. + // + // Unit: rad/s. + // + // The sign convention is defined using the right-hand rule. + // It is applied on the y-axis of the vehicle's reference system (center of bounding box). + // Counterclockwise is positive and clockwise is negative. + // + // \image html OSI_RotationRate.svg + // \note The vehicle's reference coordinate system is only used to determine the sign convention of the rotation rate. + // + optional double rotation_rate = 3; + + // Contains the longitudinal, measured slip of the tire. + // \par References: + // - https://www.kfz-tech.de/Biblio/Formelsammlung/Schlupf.htm + // + // Unit: % + // + // The sign convention is defined using the right-hand rule. + // It is applied on the y-axis of the vehicle's reference system (center of bounding box). + // Counterclockwise is positive and clockwise is negative. + // + optional double slip = 4; + } + } + + // + // \brief Current calculated and estimated location that can be based on GNSS- and related navigation sensors, + // but this message does not contain the single sensor values of the sensorics. + // + // This message contains the most accurate information the vehicle knows about its positioning and kinematics + // available on the board net. + // Because of this the values can differ from the "true" values calculated out of + // GroundTruth::proj_string, GroundTruth::MovingObject::BaseMoving::position, GroundTruth::host_vehicle_id. + // + message VehiclePositionAndKinematics + { + // Geodetic origin of the ENU (east-north-up) cartesian coordinate system regarding WGS84. + // + optional GeodeticPosition enu_origin = 1; + + // 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 base = 2; + + // 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. + // + optional BaseMoving base_rmse = 3; + + // + // \brief The geodetic position of the vehicle. + // In which context it is used has to be specified in the concrete field. + // + message GeodeticPosition + { + // 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; + } + } } From 5cc7f94502d24084f97324414dbb6c6a340579cd Mon Sep 17 00:00:00 2001 From: Nader Thomas Date: Wed, 30 Jun 2021 18:15:59 +0200 Subject: [PATCH 2/8] Updated motor descriptions. Signed-off-by: Nader Thomas --- osi_common.proto | 82 +++++++++++++++++++-------------------- osi_hostvehicledata.proto | 10 ++--- 2 files changed, 46 insertions(+), 46 deletions(-) diff --git a/osi_common.proto b/osi_common.proto index bef02da8e..88978fc47 100644 --- a/osi_common.proto +++ b/osi_common.proto @@ -810,51 +810,51 @@ message ColorCMYK // message Pedalry { - // Position of the acceleration-pedal. - // Range: 0-1 (Unpressed - fully pressed) - // - optional double pedal_position_acceleration = 1; - - // Position of the brake-pedal. - // Range: 0-1 (Unpressed - fully pressed) - // - optional double pedal_position_brake = 2; - - // Position of the clutch-pedal. - // Range: 0-1 (Unpressed - fully pressed) - // - optional double pedal_position_clutch = 3; + // Position of the acceleration-pedal. + // Range: 0-1 (Unpressed - fully pressed) + // + optional double pedal_position_acceleration = 1; + + // Position of the brake-pedal. + // Range: 0-1 (Unpressed - fully pressed) + // + optional double pedal_position_brake = 2; + + // Position of the clutch-pedal. + // Range: 0-1 (Unpressed - fully pressed) + // + optional double pedal_position_clutch = 3; } // -// A description of the steering wheel. +// \brief A description of the steering wheel. // message VehicleSteeringWheel { - // Angle of the steering wheel. - // Zero means the steering wheel is in its center position, a positive value - // means the steering wheel is turned to the left and a negative value - // means the steering wheel is turned to the right of the center position. - // - // Unit: rad - // - optional double angle = 1; - - // Angular speed of the steering wheel. - // Zero means the steering wheel stays in its position, a positive value - // means the steering wheel is turned to the left and a negative value - // means the steering wheel is turned to the right. - // - // Unit: rad/s - // - optional double angular_speed = 2; - - // Torque of the steering wheel to the hand. - // Zero means there is no force from the steering wheel to the driver`s hands. - // A positive value means the steering wheel would turn to the left without driver`s forces - // and a negative value means the steering wheel would turn to the right without driver`s forces. - // - // Unit: N*m - // - optional double torque = 3; + // Angle of the steering wheel. + // Zero means the steering wheel is in its center position, a positive value + // means the steering wheel is turned to the left and a negative value + // means the steering wheel is turned to the right of the center position. + // + // Unit: rad + // + optional double angle = 1; + + // Angular speed of the steering wheel. + // Zero means the steering wheel stays in its position, a positive value + // means the steering wheel is turned to the left and a negative value + // means the steering wheel is turned to the right. + // + // Unit: rad/s + // + optional double angular_speed = 2; + + // Torque of the steering wheel to the hand. + // Zero means there is no force from the steering wheel to the driver`s hands. + // A positive value means the steering wheel would turn to the left without driver`s forces + // and a negative value means the steering wheel would turn to the right without driver`s forces. + // + // Unit: N*m + // + optional double torque = 3; } diff --git a/osi_hostvehicledata.proto b/osi_hostvehicledata.proto index 65ea40bf6..1673276c5 100644 --- a/osi_hostvehicledata.proto +++ b/osi_hostvehicledata.proto @@ -108,7 +108,7 @@ message HostVehicleData repeated Motor motor = 3; // - // \brief A description for the positions of the pedals. + // \brief A description of the motor states. // message Motor { @@ -116,13 +116,13 @@ message HostVehicleData // optional Type type = 1; - // Rounds per minute of the engine. RPM can be from E-Motor/ Engine. + // Rounds per minute of the motor. // // Unit: 1/min // optional double rpm = 2; - // Torque in Nm. It can either be from Engine/E-Motor or combined Torque values. + // Torque from the motor. // // Unit: N*m // @@ -132,11 +132,11 @@ message HostVehicleData // enum Type { - // The powertrain mode is unknown. + // The motor type is unknown. // TYPE_UNKNOWN = 0; - // It is another powertrain mode. + // It is another motor type. // TYPE_OTHER = 1; From 0d3bd02c9901998463c3011e350291582c16d55c Mon Sep 17 00:00:00 2001 From: Thomas Nader Date: Wed, 21 Jul 2021 12:59:38 +0200 Subject: [PATCH 3/8] Updated VehicleLocalization after CCB Signed-off-by: spider Signed-off-by: Thomas Nader --- osi_hostvehicledata.proto | 65 ++++++++------------------------------- 1 file changed, 13 insertions(+), 52 deletions(-) diff --git a/osi_hostvehicledata.proto b/osi_hostvehicledata.proto index 1673276c5..2c3dcadd2 100644 --- a/osi_hostvehicledata.proto +++ b/osi_hostvehicledata.proto @@ -65,7 +65,7 @@ message HostVehicleData // Interface regarding the localization. // - optional VehiclePositionAndKinematics vehicle_position_and_kinematics = 7; + optional VehicleLocalization vehicle_localization = 7; // // \brief The absolute base parameters of the vehicle. @@ -218,65 +218,26 @@ message HostVehicleData // \brief Current calculated and estimated location that can be based on GNSS- and related navigation sensors, // but this message does not contain the single sensor values of the sensorics. // - // This message contains the most accurate information the vehicle knows about its positioning and kinematics + // This message contains the most accurate information the vehicle knows about its positioning // available on the board net. // Because of this the values can differ from the "true" values calculated out of // GroundTruth::proj_string, GroundTruth::MovingObject::BaseMoving::position, GroundTruth::host_vehicle_id. // - message VehiclePositionAndKinematics + message VehicleLocalization { - // Geodetic origin of the ENU (east-north-up) cartesian coordinate system regarding WGS84. + // Most accurate position information of the vehicle available on the board net. + // The reference point for position, i.e. the center (x,y,z) of the bounding box + // in context to the global coordinate system. // - optional GeodeticPosition enu_origin = 1; + optional Vector3d position = 1; - // The host vehicle location and kinematics at \c HostVehicleData::timestamp. + // Most accurate orientation information of the vehicle available on the board net + // in context to the global coordinate system. // - // \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. + optional Orientation3d orientation = 2; + + // Most accurate geodetic information of the vehicle available on the board net. // - // \note Note that dimension and base_polygon need not be set. - // - optional BaseMoving base = 2; - - // 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. - // - optional BaseMoving base_rmse = 3; - - // - // \brief The geodetic position of the vehicle. - // In which context it is used has to be specified in the concrete field. - // - message GeodeticPosition - { - // 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; - } + optional GeodeticPosition geodetic_position = 3; } } From 9553e7e84a8419bd4d6d56db2447434b8fcb69ee Mon Sep 17 00:00:00 2001 From: Thomas Nader Date: Wed, 21 Jul 2021 13:02:34 +0200 Subject: [PATCH 4/8] Added geodetic position Signed-off-by: spider Signed-off-by: Thomas Nader --- osi_common.proto | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/osi_common.proto b/osi_common.proto index 88978fc47..adab8a6f6 100644 --- a/osi_common.proto +++ b/osi_common.proto @@ -858,3 +858,30 @@ message VehicleSteeringWheel // optional double torque = 3; } + +// +// \brief The geodetic position of an object, i.e. center of the bounding box. +// +message GeodeticPosition +{ + // 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; +} From 32f6bf9940790b0c7809f3b417af5576adcdbbcf Mon Sep 17 00:00:00 2001 From: Fabian Klopfer Date: Thu, 16 Sep 2021 16:27:15 +0200 Subject: [PATCH 5/8] Linguistic review Signed-off-by: Pierre R. Mai --- osi_common.proto | 32 ++++++++++++++--------------- osi_hostvehicledata.proto | 42 +++++++++++++++++++-------------------- 2 files changed, 37 insertions(+), 37 deletions(-) diff --git a/osi_common.proto b/osi_common.proto index adab8a6f6..58685962c 100644 --- a/osi_common.proto +++ b/osi_common.proto @@ -15,19 +15,19 @@ package osi3; // message Vector3d { - // The x coordinate. + // The x-coordinate. // // Unit: m, m/s, or m/s^2 // optional double x = 1; - // The y coordinate. + // The y-coordinate. // // Unit: m, m/s, or m/s^2 // optional double y = 2; - // The z coordinate. + // The z-coordinate. // // Unit: m, m/s, or m/s^2 // @@ -43,13 +43,13 @@ message Vector3d // message Vector2d { - // The x coordinate. + // The x-coordinate. // // Unit: m, m/s, or m/s^2 // optional double x = 1; - // The y coordinate. + // The y-coordinate. // // Unit: m, m/s, or m/s^2 // @@ -810,17 +810,17 @@ message ColorCMYK // message Pedalry { - // Position of the acceleration-pedal. + // Position of the acceleration pedal. // Range: 0-1 (Unpressed - fully pressed) // optional double pedal_position_acceleration = 1; - // Position of the brake-pedal. + // Position of the brake pedal. // Range: 0-1 (Unpressed - fully pressed) // optional double pedal_position_brake = 2; - // Position of the clutch-pedal. + // Position of the clutch pedal. // Range: 0-1 (Unpressed - fully pressed) // optional double pedal_position_clutch = 3; @@ -832,8 +832,8 @@ message Pedalry message VehicleSteeringWheel { // Angle of the steering wheel. - // Zero means the steering wheel is in its center position, a positive value - // means the steering wheel is turned to the left and a negative value + // Zero means the steering wheel is in its center position. A positive value + // means the steering wheel is turned to the left. A negative value // means the steering wheel is turned to the right of the center position. // // Unit: rad @@ -841,8 +841,8 @@ message VehicleSteeringWheel optional double angle = 1; // Angular speed of the steering wheel. - // Zero means the steering wheel stays in its position, a positive value - // means the steering wheel is turned to the left and a negative value + // Zero means the steering wheel stays in its position. A positive value + // means the steering wheel is turned to the left. A negative value // means the steering wheel is turned to the right. // // Unit: rad/s @@ -850,9 +850,9 @@ message VehicleSteeringWheel optional double angular_speed = 2; // Torque of the steering wheel to the hand. - // Zero means there is no force from the steering wheel to the driver`s hands. - // A positive value means the steering wheel would turn to the left without driver`s forces - // and a negative value means the steering wheel would turn to the right without driver`s forces. + // Zero means there is no force from the steering wheel to the hand of the driver. + // A positive value means that the steering wheel would turn to the left without driver intervention. + // A negative value means that the steering wheel would turn to the right without driver intervention. // // Unit: N*m // @@ -860,7 +860,7 @@ message VehicleSteeringWheel } // -// \brief The geodetic position of an object, i.e. center of the bounding box. +// \brief The geodetic position of an object, that is, the center of the 3D bounding box. // message GeodeticPosition { diff --git a/osi_hostvehicledata.proto b/osi_hostvehicledata.proto index 2c3dcadd2..f1fee329e 100644 --- a/osi_hostvehicledata.proto +++ b/osi_hostvehicledata.proto @@ -7,7 +7,7 @@ import "osi_common.proto"; package osi3; -// \brief Host vehicle data is about the perception of the vehicle about it's own, internal states. +// \brief Host vehicle data is about the perception of the vehicle about its own internal states. // It can be understood as an interface container for restbussimulation signals. // If there is a duplication with values from the rest of SensorView or SensorData, than these shall be taken. // @@ -40,7 +40,7 @@ message HostVehicleData 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 + // Current estimated location error based on GPS and related navigation // sensors. // // \note Note that dimension and base_polygon need not be set. @@ -92,13 +92,13 @@ message HostVehicleData optional Pedalry pedalry = 1; // The actual gear of the transmission. - // E.g. a gear lever can be in "D" and transmission in "4", but not the + // For example, a gear lever can be on "D" and the transmission on "4", but not the // other way around. // // The sign of this field is linked to the gear's mode as following: // - zero: neutral position // - positive: driving forward mode - // - negative: reverse mode (generally -1, but few vehicles have several + // - negative: reverse mode (generally -1, but few vehicles have more than 1 // reverse mode gears) // optional int32 gear_transmission = 2; @@ -116,13 +116,13 @@ message HostVehicleData // optional Type type = 1; - // Rounds per minute of the motor. + // Revolutions per minute of the motor. // // Unit: 1/min // optional double rpm = 2; - // Torque from the motor. + // Torque of the motor. // // Unit: N*m // @@ -172,17 +172,17 @@ message HostVehicleData message WheelData { // The axle which contains this wheel. A value of 0 represents the - // front-most axle of the vehicle with higher numbers incrementing - // towards the rear-most axle. + // foremost axle of the vehicle, with higher numbers ascending + // towards the rearmost axle. // optional uint32 axle = 1; - // The index of the wheel on the axle, counting in the direction - // of positive-y, that is, right-to-left. + // The index of the wheel on the axle, counted in positive y- direction, + // that is, right-to-left. // // For example, on a standard 2-axle, 4-wheel car, the rear-right // wheel would be (axle=1, index=0). - // This concept works also for twin tires. + // This concept also works for twin tires. // optional uint32 index = 2; @@ -192,7 +192,7 @@ message HostVehicleData // Unit: rad/s. // // The sign convention is defined using the right-hand rule. - // It is applied on the y-axis of the vehicle's reference system (center of bounding box). + // It is applied on the y-axis of the vehicle's reference system, that is, the center of bounding box. // Counterclockwise is positive and clockwise is negative. // // \image html OSI_RotationRate.svg @@ -207,7 +207,7 @@ message HostVehicleData // Unit: % // // The sign convention is defined using the right-hand rule. - // It is applied on the y-axis of the vehicle's reference system (center of bounding box). + // It is applied on the y-axis of the vehicle's reference system, that is, the center of bounding box. // Counterclockwise is positive and clockwise is negative. // optional double slip = 4; @@ -215,28 +215,28 @@ message HostVehicleData } // - // \brief Current calculated and estimated location that can be based on GNSS- and related navigation sensors, - // but this message does not contain the single sensor values of the sensorics. + // \brief Current calculated and estimated location that can be based on GNSS and related navigation sensors. + // This message does not contain the individual sensor values of the sensor technology. // - // This message contains the most accurate information the vehicle knows about its positioning - // available on the board net. + // This message contains the most accurate information the vehicle knows about its position + // available in the on-board network. // Because of this the values can differ from the "true" values calculated out of // GroundTruth::proj_string, GroundTruth::MovingObject::BaseMoving::position, GroundTruth::host_vehicle_id. // message VehicleLocalization { - // Most accurate position information of the vehicle available on the board net. - // The reference point for position, i.e. the center (x,y,z) of the bounding box + // Most accurate position information of the vehicle available in the on-board network. + // The reference point for position, that is, the center (x,y,z) of the bounding box // in context to the global coordinate system. // optional Vector3d position = 1; - // Most accurate orientation information of the vehicle available on the board net + // Most accurate orientation information of the vehicle available in the on-board network // in context to the global coordinate system. // optional Orientation3d orientation = 2; - // Most accurate geodetic information of the vehicle available on the board net. + // Most accurate geodetic information of the vehicle available in the on-board network. // optional GeodeticPosition geodetic_position = 3; } From feaf8f8737125d65db57590b2756836eaf2bf616 Mon Sep 17 00:00:00 2001 From: spider Date: Mon, 11 Oct 2021 13:26:36 +0200 Subject: [PATCH 6/8] Added VehicleBrakeSystem and changed to VehicleSteering Changes done to be open for SetLevel4to5 Requirements. Signed-off-by: spider --- osi_hostvehicledata.proto | 47 ++++++++++++++++++++++++++++++++------- 1 file changed, 39 insertions(+), 8 deletions(-) diff --git a/osi_hostvehicledata.proto b/osi_hostvehicledata.proto index f1fee329e..c629e45b9 100644 --- a/osi_hostvehicledata.proto +++ b/osi_hostvehicledata.proto @@ -55,17 +55,21 @@ message HostVehicleData // optional VehiclePowertrain vehicle_powertrain = 4; - // Interface regarding the steering wheel. + // Interface regarding the brake system // - optional VehicleSteeringWheel vehicle_steering_wheel = 5; + optional VehicleBrakeSystem vehicle_brake_system = 5; + + // Interface regarding the steering. + // + optional VehicleSteering vehicle_steering = 6; // Interface regarding the wheels. // - optional VehicleWheels vehicle_wheels = 6; + optional VehicleWheels vehicle_wheels = 7; // Interface regarding the localization. // - optional VehicleLocalization vehicle_localization = 7; + optional VehicleLocalization vehicle_localization = 8; // // \brief The absolute base parameters of the vehicle. @@ -87,9 +91,15 @@ message HostVehicleData // message VehiclePowertrain { - // The positions of the pedals. + // Position of the acceleration pedal. + // Range: 0-1 (Unpressed - fully pressed) + // + optional double pedal_position_acceleration = 1; + + // Position of the clutch pedal. + // Range: 0-1 (Unpressed - fully pressed) // - optional Pedalry pedalry = 1; + optional double pedal_position_clutch = 2; // The actual gear of the transmission. // For example, a gear lever can be on "D" and the transmission on "4", but not the @@ -101,11 +111,11 @@ message HostVehicleData // - negative: reverse mode (generally -1, but few vehicles have more than 1 // reverse mode gears) // - optional int32 gear_transmission = 2; + optional int32 gear_transmission = 3; // Information about the motor(s). // - repeated Motor motor = 3; + repeated Motor motor = 4; // // \brief A description of the motor states. @@ -155,6 +165,27 @@ message HostVehicleData } } + // + // \brief The focus here is on the description of the brake system. + // + message VehicleBrakeSystem + { + // Position of the brake pedal. + // Range: 0-1 (Unpressed - fully pressed) + // + optional double pedal_position_brake = 1; + } + + // + // \brief The focus here is on the description of the steering train. + // + message VehicleSteering + { + // Description of the steering wheel. + // + optional VehicleSteeringWheel vehicle_steering_wheel = 1; + } + // // \brief The focus here is on the description of the wheels. // From 9457f119fd7c40f12f5e66ea4e794802aba07874 Mon Sep 17 00:00:00 2001 From: Thomas Nader Date: Mon, 18 Oct 2021 08:33:07 +0200 Subject: [PATCH 7/8] Added host vehicle id and minor description modifications. Signed-off-by: Thomas Nader --- osi_hostvehicledata.proto | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/osi_hostvehicledata.proto b/osi_hostvehicledata.proto index c629e45b9..40436d5ac 100644 --- a/osi_hostvehicledata.proto +++ b/osi_hostvehicledata.proto @@ -12,7 +12,7 @@ package osi3; // If there is a duplication with values from the rest of SensorView or SensorData, than these shall be taken. // // It consists of different messages categorizing the vehicle in: -// Vehicle-Basics, Vehicle-Powertrain, Vehicle-SteeringWheel, Vehicle-Wheels, Vehicle-Localization. +// Basics, powertrain, brake system, vehicle steering, vehicle wheels, vehicle localization. // // \image html OSI_HostVehicle.svg // @@ -20,7 +20,7 @@ message HostVehicleData { // The interface version used by the sender. // - optional InterfaceVersion version = 10; + optional InterfaceVersion version = 9; // The timestamp of the host vehicle data. Zero time is arbitrary but must be // identical for all messages. Zero time does not need to coincide with @@ -30,7 +30,11 @@ message HostVehicleData // \note This is the point in time that the host vehicle data message becomes // available as snapshot from the board net information. // - optional Timestamp timestamp = 11; + optional Timestamp timestamp = 10; + + // The ID of the host vehicle in any associated GroundTruth data. + // + optional Identifier host_vehicle_id = 11; // Deprecated: Will be removed in next major release. Moved to VehiclePositionAndKinematics. // Current estimated location based on GPS- and related navigation sensors. @@ -63,7 +67,7 @@ message HostVehicleData // optional VehicleSteering vehicle_steering = 6; - // Interface regarding the wheels. + // Interface regarding the internal wheel states. // optional VehicleWheels vehicle_wheels = 7; @@ -187,7 +191,7 @@ message HostVehicleData } // - // \brief The focus here is on the description of the wheels. + // \brief The focus here is on the description of internal wheel states. // message VehicleWheels { @@ -198,7 +202,7 @@ message HostVehicleData repeated WheelData wheel_data = 1; // - // \brief The focus here is on the description of a wheel. + // \brief The focus here is on the description of internal wheel states. // message WheelData { From 41946d43870cde30c1b1e70608d64453898f8be5 Mon Sep 17 00:00:00 2001 From: "Pierre R. Mai" Date: Tue, 19 Oct 2021 11:46:38 +0200 Subject: [PATCH 8/8] Minor clarifications and language corrections Signed-off-by: Pierre R. Mai --- osi_hostvehicledata.proto | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/osi_hostvehicledata.proto b/osi_hostvehicledata.proto index 40436d5ac..a40f0e6dc 100644 --- a/osi_hostvehicledata.proto +++ b/osi_hostvehicledata.proto @@ -8,8 +8,8 @@ import "osi_common.proto"; package osi3; // \brief Host vehicle data is about the perception of the vehicle about its own internal states. -// It can be understood as an interface container for restbussimulation signals. -// If there is a duplication with values from the rest of SensorView or SensorData, than these shall be taken. +// It captures the knowledge the vehicle has internally, which can differ from the actual or global truth for various reasons. +// This message can also be understood as an interface container for the signals of a rest bus simulation. // // It consists of different messages categorizing the vehicle in: // Basics, powertrain, brake system, vehicle steering, vehicle wheels, vehicle localization.