From 7f2f7089bfacff927c11666411c28cf72689f2ff Mon Sep 17 00:00:00 2001 From: Radhakrishna Kothamasu <45497122+Krishna626@users.noreply.github.com> Date: Mon, 17 Aug 2020 11:36:23 +0200 Subject: [PATCH 01/12] Update osi_hostvehicledata.proto - suggestion for protobuf description - replaced engine with motor to avoid explicitly defining engine for interfaces - reorganised wheel arragement--> anti clockwise starting from front left wheel - Naming suggestion for VehicleLocalization--> renamed as Vehicle GEOPosition --- osi_hostvehicledata.proto | 31 ++++++++++++++++--------------- 1 file changed, 16 insertions(+), 15 deletions(-) diff --git a/osi_hostvehicledata.proto b/osi_hostvehicledata.proto index b607bc6c1..288bb7f30 100644 --- a/osi_hostvehicledata.proto +++ b/osi_hostvehicledata.proto @@ -7,10 +7,10 @@ import "osi_common.proto"; package osi3; // -// \brief Interface for host vehicle data that is available to sensors and -// other functions due to host vehicle's internal communication. -// A usage regarding the vehicle model is also possible. -// +// \brief Interface for updating internal states of host vehicle data to simulation environment. +// Sensors, mockups and other functions can access the host vehicle data. +// A Usecase like simulation of vehicle model is also possible by extending the OSI with host vehicle data. + // \image html OSI_HostVehicle.svg // // All coordinates and orientations are relative to the global ground truth @@ -72,7 +72,7 @@ message HostVehicleDataClass // Interface regarding the navigation. // - optional VehicleLocalization vehicle_localization = 6; + optional VehicleGEOPosition Vehicle_geo_Position = 6; // // \brief The absolute base parameters of the vehicle. @@ -106,17 +106,17 @@ message HostVehicleDataClass // optional Pedalry pedalry = 1; - // Rounds per minute of the engine. + // Rounds per minute of the engine. RPM can be from E-Motor/ Engine. // // Unit: [1/min] // - optional double engine_rpm = 2; + optional double motor_rpm = 2; - // Torque in Nm. + // Torque in Nm. It can either be from Engine/E-Motor or combined Torque values. // // Unit: [N*m] // - optional double engine_torque = 3; + optional double motor_torque = 3; // The actual gear of the gear lever. // @@ -297,20 +297,21 @@ message HostVehicleDataClass // ARRANGEMENT_OTHER = 1; + // Arragement of the wheels in counter clock-wise direction starting from front-left wheel. // The description is about the front-left wheel. // ARRANGEMENT_FRONT_LEFT = 2; - // The description is about the front-right wheel. - // - ARRANGEMENT_FRONT_RIGHT = 3; - // The description is about the rear-left wheel. // - ARRANGEMENT_REAR_LEFT = 4; + ARRANGEMENT_REAR_LEFT = 3; // The description is about the rear-right wheel. // + ARRANGEMENT_FRONT_RIGHT = 4; + + // The description is about the front-right wheel. + // ARRANGEMENT_REAR_RIGHT = 5; } } @@ -319,7 +320,7 @@ message HostVehicleDataClass // // \brief This message contains all the necessary information of the localization solution. // - message VehicleLocalization + message VehicleGEOPosition { // Longitude in decimal degrees. // From fadcacd13f8fd848703df58b25f6567f3bb7d481 Mon Sep 17 00:00:00 2001 From: Thomas Nader Date: Tue, 18 Aug 2020 12:10:48 +0200 Subject: [PATCH 02/12] Update osi_hostvehicledata.proto Made some adaptions, so it can be build. Also some simplifications, so it is not to much at the beginning. --- osi_hostvehicledata.proto | 43 +++++---------------------------------- 1 file changed, 5 insertions(+), 38 deletions(-) diff --git a/osi_hostvehicledata.proto b/osi_hostvehicledata.proto index 288bb7f30..f62ed56db 100644 --- a/osi_hostvehicledata.proto +++ b/osi_hostvehicledata.proto @@ -72,7 +72,7 @@ message HostVehicleDataClass // Interface regarding the navigation. // - optional VehicleGEOPosition Vehicle_geo_Position = 6; + optional VehicleGEOPosition vehicle_geo_position = 6; // // \brief The absolute base parameters of the vehicle. @@ -119,8 +119,9 @@ message HostVehicleDataClass optional double motor_torque = 3; // The actual gear of the gear lever. + // May come up later. For now just to be mentioned. // - optional GearLeverState gear_lever_state = 4; + // optional GearLeverState gear_lever_state = 4; // The actual gear of the transmission. // E.g. gear_lever can be in "D" and transmission in "4", but not the @@ -134,40 +135,6 @@ message HostVehicleDataClass // optional int32 gear_transmission = 5; - // Describe the possible mode of an automatic transmission. - // - enum AutomaticTransmissionMode - { - // The gear transmission mode is unknown (must not be - // used in ground truth). - // - AUTOMATIC_TRANSMISSION_MODE_UNKNOWN = 0; - - // Other (unspecified but known) transmisson mode. - // - AUTOMATIC_TRANSMISSION_MODE_OTHER = 1; - - // The gear lever is in automatic parking mode. - // - AUTOMATIC_TRANSMISSION_MODE_PARK = 2; - - // The gear lever is in reverse motion mode. - // - AUTOMATIC_TRANSMISSION_MODE_REVERSE = 3; - - // The gear lever is in automatic neutral mode. - // - AUTOMATIC_TRANSMISSION_MODE_NEUTRAL = 4; - - // The gear lever is in automatic driving mode. - // - AUTOMATIC_TRANSMISSION_MODE_DRIVE = 5; - - // The gear lever is in a manual override mode. - // - AUTOMATIC_TRANSMISSION_MODE_MANUAL_OVERRIDE = 6; - } - // // \brief A description for the positions of the pedals. // @@ -268,7 +235,7 @@ message HostVehicleDataClass // // Unit: [rad] // - optional double steeringangle = 5; + optional double steering_angle = 5; // Contains the relativ position of the center of the wheel to the center of the bounding-box. // Possibility to get the spring deflection and the camber (https://en.wikipedia.org/wiki/Camber_angle). @@ -283,7 +250,7 @@ message HostVehicleDataClass // // Unit: [%] // - optional double slip = 8; + optional double slip = 7; // Information about how the wheel is arranged. // From 63dc2dd5a4a3f73eec5ef0f6a53e996dcb8152c2 Mon Sep 17 00:00:00 2001 From: Thomas Nader Date: Tue, 18 Aug 2020 18:39:20 +0200 Subject: [PATCH 03/12] Update osi_hostvehicledata.proto --- osi_hostvehicledata.proto | 1 + 1 file changed, 1 insertion(+) diff --git a/osi_hostvehicledata.proto b/osi_hostvehicledata.proto index f62ed56db..63775d7ba 100644 --- a/osi_hostvehicledata.proto +++ b/osi_hostvehicledata.proto @@ -3,6 +3,7 @@ syntax = "proto2"; option optimize_for = SPEED; import "osi_common.proto"; +import "osi_object.proto"; package osi3; From 0cf99e4fc4f9c6c0e25675da02a19611b08b21da Mon Sep 17 00:00:00 2001 From: Thomas Nader Date: Thu, 20 Aug 2020 17:31:54 +0200 Subject: [PATCH 04/12] Update osi_hostvehicledata.proto --- osi_hostvehicledata.proto | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/osi_hostvehicledata.proto b/osi_hostvehicledata.proto index 63775d7ba..6b9f6e3e8 100644 --- a/osi_hostvehicledata.proto +++ b/osi_hostvehicledata.proto @@ -33,16 +33,16 @@ message HostVehicleData // \note Note that dimension and base_polygon need not be set. // optional BaseMoving location_rmse = 2; - + // Contains all the perceivable information. // optional MovingObject moving_object = 3; - + // Contains all the non-perceivable information. // optional HostVehicleDataClass host_vehicle_data = 4; } - + // // \brief The vehicle-class is a deeper description of a vehicle about the non-perceivable information. // It consists of different messages categorizing the vehicle in: @@ -54,11 +54,11 @@ message HostVehicleDataClass // The basic parameters of the vehicle. // optional VehicleBasics vehicle_basics = 1; - + // Interface regarding the powermanagement. // optional VehiclePowermanagement vehicle_powermanagement = 2; - + // Interface regarding the powertrain. // optional VehiclePowertrain vehicle_powertrain = 3; @@ -74,7 +74,7 @@ message HostVehicleDataClass // Interface regarding the navigation. // optional VehicleGEOPosition vehicle_geo_position = 6; - + // // \brief The absolute base parameters of the vehicle. // @@ -85,11 +85,11 @@ message HostVehicleDataClass // Unit: [kg] // // \par Reference: - // §42 der StVZO (german Straßenverkehrs-Zulassungs-Ordnung; engl. Road Traffic Regulations) + // Paragraph 42 of the StVZO (ger. Straßenverkehrs-Zulassungs-Ordnung; engl. Road Traffic Regulations) // optional double curb_weight = 1; } - + // // \brief State description of the powertrain. // @@ -123,7 +123,7 @@ message HostVehicleDataClass // May come up later. For now just to be mentioned. // // optional GearLeverState gear_lever_state = 4; - + // The actual gear of the transmission. // E.g. gear_lever can be in "D" and transmission in "4", but not the // other way around. @@ -135,7 +135,7 @@ message HostVehicleDataClass // reverse mode gears) // optional int32 gear_transmission = 5; - + // // \brief A description for the positions of the pedals. // @@ -186,7 +186,7 @@ message HostVehicleDataClass // optional double torque = 3; } - + // // \brief The focus here is on the description of the wheels. // @@ -204,7 +204,7 @@ message HostVehicleDataClass // Information about how the wheel is arranged. // optional Arrangement arrangement = 1; - + // 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. @@ -230,14 +230,14 @@ message HostVehicleDataClass // Unit: [rad/s] // optional double rotational_speed = 4; - + // Contains the steering angle of each wheel. // Right < 0; 0 = straight; 0 < left. // // Unit: [rad] // optional double steering_angle = 5; - + // Contains the relativ position of the center of the wheel to the center of the bounding-box. // Possibility to get the spring deflection and the camber (https://en.wikipedia.org/wiki/Camber_angle). // @@ -252,7 +252,7 @@ message HostVehicleDataClass // Unit: [%] // optional double slip = 7; - + // Information about how the wheel is arranged. // enum Arrangement From 9d78a7834d598a9d3c097b238c00bf3b361519c6 Mon Sep 17 00:00:00 2001 From: Thomas Nader Date: Mon, 31 Aug 2020 18:15:09 +0200 Subject: [PATCH 05/12] Update osi_hostvehicledata.proto --- osi_hostvehicledata.proto | 103 +++++++++++++++++++++----------------- 1 file changed, 58 insertions(+), 45 deletions(-) diff --git a/osi_hostvehicledata.proto b/osi_hostvehicledata.proto index 6b9f6e3e8..03b5f81da 100644 --- a/osi_hostvehicledata.proto +++ b/osi_hostvehicledata.proto @@ -14,8 +14,7 @@ package osi3; // \image html OSI_HostVehicle.svg // -// All coordinates and orientations are relative to the global ground truth -// coordinate system. +// All coordinates and orientations are relative to the global ground truth coordinate system. // message HostVehicleData { @@ -73,7 +72,7 @@ message HostVehicleDataClass // Interface regarding the navigation. // - optional VehicleGEOPosition vehicle_geo_position = 6; + optional VehicleLocalization vehicle_localization = 6; // // \brief The absolute base parameters of the vehicle. @@ -82,10 +81,10 @@ message HostVehicleDataClass { // The total mass of the vehicle (curb weight). // - // Unit: [kg] + // Unit: kg // // \par Reference: - // Paragraph 42 of the StVZO (ger. Straßenverkehrs-Zulassungs-Ordnung; engl. Road Traffic Regulations) + // Paragraph 42 of the German Road Traffic Admission Regulations (StVZO). // optional double curb_weight = 1; } @@ -109,13 +108,13 @@ message HostVehicleDataClass // Rounds per minute of the engine. RPM can be from E-Motor/ Engine. // - // Unit: [1/min] + // Unit: 1/min // optional double motor_rpm = 2; // Torque in Nm. It can either be from Engine/E-Motor or combined Torque values. // - // Unit: [N*m] + // Unit: N*m // optional double motor_torque = 3; @@ -139,21 +138,20 @@ message HostVehicleDataClass // // \brief A description for the positions of the pedals. // - // message Pedalry { // Position of the acceleration-pedal. - // Unit: [0-1] (Unpressed - fully pressed) + // Range: 0-1 (Unpressed - fully pressed) // optional double pedal_position_acceleration = 1; // Position of the brake-pedal. - // Unit: [0-1] (Unpressed - fully pressed) + // Range: 0-1 (Unpressed - fully pressed) // optional double pedal_position_brake = 2; // Position of the clutch-pedal. - // Unit: [0-1] (Unpressed - fully pressed) + // Range: 0-1 (Unpressed - fully pressed) // optional double pedal_position_clutch = 3; } @@ -168,21 +166,21 @@ message HostVehicleDataClass // Angle of the steering wheel. // 0=Central (Straight); Left>0; 0>Right. // - // Unit: [rad] + // Unit: rad // optional double angle = 1; // Angle-speed of the steering wheel. // 0=Central (Straight); Left>0; 0>Right. // - // Unit: [rad/s] + // Unit: rad/s // optional double angular_speed = 2; // Torque of the steering wheel to the hand. // 0=Central (Straight); Left>0; 0>Right. // - // Unit: [N*m] + // Unit: N*m // optional double torque = 3; } @@ -211,7 +209,7 @@ message HostVehicleDataClass // Ued here is the dry friction coefficient of the paired materials (see reference). // Dimensionless. // - // Unit: [] + // Unit: - // // \par References: // - http://adaptivemap.ma.psu.edu/websites/6_friction/dry_friction/dryfriction.html @@ -221,27 +219,27 @@ message HostVehicleDataClass // Contact point of the mid of the tire tread with the world. // Absolute coordinates (x, y, z). // - // Unit: [m] + // Unit: m // optional Vector3d contact_point = 3; // Contains the rotational speed of each wheel per second. // - // Unit: [rad/s] + // Unit: rad/s // optional double rotational_speed = 4; // Contains the steering angle of each wheel. // Right < 0; 0 = straight; 0 < left. // - // Unit: [rad] + // Unit: rad // optional double steering_angle = 5; // Contains the relativ position of the center of the wheel to the center of the bounding-box. // Possibility to get the spring deflection and the camber (https://en.wikipedia.org/wiki/Camber_angle). // - // Unit: [m] + // Unit: m // optional MountingPosition position = 6; @@ -249,7 +247,7 @@ message HostVehicleDataClass // \par References: // - https://www.kfz-tech.de/Biblio/Formelsammlung/Schlupf.htm // - // Unit: [%] + // Unit: % // optional double slip = 7; @@ -288,40 +286,55 @@ message HostVehicleDataClass // // \brief This message contains all the necessary information of the localization solution. // - message VehicleGEOPosition + message VehicleLocalization { - // Longitude in decimal degrees. // - // Unit: [degree] + // \brief This message contains information about the vehicle's knowledge about its own cartesian position. // - optional double longitude = 1; + message CartesianPosition + { + // To be discussed. + } - // Latitude in decimal degrees. // - // Unit: [degree] + // \brief This message contains information about the vehicle's georeferenced positioning solution component. // - optional double latitude = 2; + message GeoreferencedPosition + { + // Longitude in decimal degrees regarding WGS84. + // + // Unit: Degree + // + optional double longitude = 1; - // Altitude in meters. - // - // Unit: [m] - // - optional double altitude = 3; + // Latitude in decimal degrees regarding WGS84. + // + // Unit: Degree + // + optional double latitude = 2; - // Heading in degrees. - // - // Unit: [degree] - // - optional double heading = 4; + // Height above sea level regarding EGM96. + // + // Unit: m + // + optional double altitude = 3; - // Accuracy of localization measurement measured in percentage of the units - // - // Unit: [%] - // - optional double localization_accuracy = 5; + // To be discussed: + // Heading in decimal degrees. + // + // Unit: Degree + // + // optional double heading = 4; - // Number of satellites - // - optional int32 number_of_satellites = 6; + // Accuracy of localization measurement in percentage of the units. + // + // Unit: % + // + // optional double localization_accuracy = 5; + + // Number of satellites. + // + // optional int32 number_of_satellites = 6; + } } } From 959517ef2b77866004f83cb1495ebe1318024809 Mon Sep 17 00:00:00 2001 From: Thomas Nader Date: Tue, 1 Sep 2020 14:50:40 +0200 Subject: [PATCH 06/12] Update osi_hostvehicledata.proto --- osi_hostvehicledata.proto | 2 ++ 1 file changed, 2 insertions(+) diff --git a/osi_hostvehicledata.proto b/osi_hostvehicledata.proto index 03b5f81da..734df0543 100644 --- a/osi_hostvehicledata.proto +++ b/osi_hostvehicledata.proto @@ -95,6 +95,7 @@ message HostVehicleDataClass message VehiclePowermanagement { // To be discussed. + // } // @@ -294,6 +295,7 @@ message HostVehicleDataClass message CartesianPosition { // To be discussed. + // } // From bb74fa62db7f9053fbde0508c8df8455a4c8567f Mon Sep 17 00:00:00 2001 From: Thomas Nader Date: Tue, 8 Sep 2020 19:39:38 +0200 Subject: [PATCH 07/12] Update osi_hostvehicledata.proto Some improvements regarding architectural issues and out of definition reasons. --- osi_hostvehicledata.proto | 190 ++++++++++++++++++++++---------------- 1 file changed, 112 insertions(+), 78 deletions(-) diff --git a/osi_hostvehicledata.proto b/osi_hostvehicledata.proto index 734df0543..774f2efbc 100644 --- a/osi_hostvehicledata.proto +++ b/osi_hostvehicledata.proto @@ -2,6 +2,7 @@ syntax = "proto2"; option optimize_for = SPEED; +import "osi_version.proto"; import "osi_common.proto"; import "osi_object.proto"; @@ -32,47 +33,75 @@ message HostVehicleData // \note Note that dimension and base_polygon need not be set. // optional BaseMoving location_rmse = 2; + + // The interface version used by the sender (i.e. the simulation + // environment). + // + optional InterfaceVersion version = 3; + + // The data timestamp of the simulation environment. The zero time point is + // arbitrary but must be identical for all messages. + // Recommendation: Zero time point for start point of the simulation. + // + // \note Zero time point does not need to coincide with the UNIX epoch. + // + // \note For ground truth data this timestamp coincides both with the + // notional simulation time the data applies to and the time it was sent + // (there is no inherent latency for ground truth data, as opposed to + // sensor data). + // + optional Timestamp timestamp = 4; // Contains all the perceivable information. // - optional MovingObject moving_object = 3; + optional MovingObject moving_object = 5; - // Contains all the non-perceivable information. + // Contains all the non-perceivable information, that is measured or + // calculated and transported by the board net. // - optional HostVehicleDataClass host_vehicle_data = 4; + optional HostVehicleDataClass host_vehicle_data = 6; } // -// \brief The vehicle-class is a deeper description of a vehicle about the non-perceivable information. +// \brief The vehicle-class is about the non-perceivable information, that is measured or +// calculated and transported by the board net. // It consists of different messages categorizing the vehicle in: // Vehicle-Basics, Vehicle-Powermanagement, Vehicle-Powertrain, Vehicle-SteeringWheel, Vehicle-Wheels, Vehicle-Localization. // As it is an description of the whole vehicle (focus on cars) it can be used as interface for various reasons. // message HostVehicleDataClass { + // The ID of the object. + // + // \rules + // is_globally_unique + // \endrules + // + optional Identifier id = 1; + // The basic parameters of the vehicle. // - optional VehicleBasics vehicle_basics = 1; + optional VehicleBasics vehicle_basics = 2; // Interface regarding the powermanagement. // - optional VehiclePowermanagement vehicle_powermanagement = 2; + optional VehiclePowermanagement vehicle_powermanagement = 3; // Interface regarding the powertrain. // - optional VehiclePowertrain vehicle_powertrain = 3; + optional VehiclePowertrain vehicle_powertrain = 4; // Interface regarding the steering wheel. // - optional VehicleSteeringWheel vehicle_steering_wheel = 4; + optional VehicleSteeringWheel vehicle_steering_wheel = 5; // Interface regarding the wheels. // - optional VehicleWheels vehicle_wheels = 5; + optional VehicleWheels vehicle_wheels = 6; // Interface regarding the navigation. // - optional VehicleLocalization vehicle_localization = 6; + optional VehicleLocalization vehicle_localization = 7; // // \brief The absolute base parameters of the vehicle. @@ -107,22 +136,10 @@ message HostVehicleDataClass // optional Pedalry pedalry = 1; - // Rounds per minute of the engine. RPM can be from E-Motor/ Engine. - // - // Unit: 1/min - // - optional double motor_rpm = 2; - - // Torque in Nm. It can either be from Engine/E-Motor or combined Torque values. - // - // Unit: N*m - // - optional double motor_torque = 3; - // The actual gear of the gear lever. // May come up later. For now just to be mentioned. // - // optional GearLeverState gear_lever_state = 4; + // optional GearLeverState gear_lever_state = 2; // The actual gear of the transmission. // E.g. gear_lever can be in "D" and transmission in "4", but not the @@ -134,7 +151,11 @@ message HostVehicleDataClass // - negative: reverse mode (generally -1, but few vehicles have several // reverse mode gears) // - optional int32 gear_transmission = 5; + optional int32 gear_transmission = 3; + + // Information about the motor(s). + // + repeated Motor motor = 4; // // \brief A description for the positions of the pedals. @@ -156,6 +177,52 @@ message HostVehicleDataClass // optional double pedal_position_clutch = 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_ELEKTRIC = 4; + } } // @@ -200,9 +267,19 @@ message HostVehicleDataClass // message Wheel { - // Information about how the wheel is arranged. + // 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, i.e. right-to-left. + // + // For example, on a standard 2-axle, 4-wheel car, the rear-right + // wheel would be (axle=1, index=0). // - optional Arrangement arrangement = 1; + optional uint32 index = 2; // 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 @@ -215,34 +292,20 @@ message HostVehicleDataClass // \par References: // - http://adaptivemap.ma.psu.edu/websites/6_friction/dry_friction/dryfriction.html // - optional double kinetic_friction_coefficient = 2; + optional double kinetic_friction_coefficient = 3; // Contact point of the mid of the tire tread with the world. // Absolute coordinates (x, y, z). // // Unit: m // - optional Vector3d contact_point = 3; + optional Vector3d contact_point = 4; // Contains the rotational speed of each wheel per second. // // Unit: rad/s // - optional double rotational_speed = 4; - - // Contains the steering angle of each wheel. - // Right < 0; 0 = straight; 0 < left. - // - // Unit: rad - // - optional double steering_angle = 5; - - // Contains the relativ position of the center of the wheel to the center of the bounding-box. - // Possibility to get the spring deflection and the camber (https://en.wikipedia.org/wiki/Camber_angle). - // - // Unit: m - // - optional MountingPosition position = 6; + optional double rotational_speed = 5; // Contains the longitudinal slip of the tire. // \par References: @@ -250,37 +313,7 @@ message HostVehicleDataClass // // Unit: % // - optional double slip = 7; - - // Information about how the wheel is arranged. - // - enum Arrangement - { - // The description is about a wheel that has an unknown arrangement. - // - ARRANGEMENT_UNKNOWN = 0; - - // The description is about a wheel that has another arrangement (e.g. more than four wheels). - // - ARRANGEMENT_OTHER = 1; - - // Arragement of the wheels in counter clock-wise direction starting from front-left wheel. - // The description is about the front-left wheel. - // - ARRANGEMENT_FRONT_LEFT = 2; - - // The description is about the rear-left wheel. - // - ARRANGEMENT_REAR_LEFT = 3; - - // The description is about the rear-right wheel. - // - ARRANGEMENT_FRONT_RIGHT = 4; - - // The description is about the front-right wheel. - // - ARRANGEMENT_REAR_RIGHT = 5; - } + optional double slip = 6; } } @@ -292,16 +325,17 @@ message HostVehicleDataClass // // \brief This message contains information about the vehicle's knowledge about its own cartesian position. // - message CartesianPosition + message CartesianInformation { // To be discussed. - // + // xyz, pitch,roll,yaw., velocities, accelerations, one level higher + optional BaseMoving cartesian_data } // // \brief This message contains information about the vehicle's georeferenced positioning solution component. // - message GeoreferencedPosition + message GeoreferencedInformation { // Longitude in decimal degrees regarding WGS84. // @@ -321,7 +355,7 @@ message HostVehicleDataClass // optional double altitude = 3; - // To be discussed: + // To be discussed as it is in CartesianInformation. // Heading in decimal degrees. // // Unit: Degree From 77e8334749681907fce8729df7409cf3efbd5e2e Mon Sep 17 00:00:00 2001 From: Thomas Nader Date: Thu, 10 Sep 2020 17:40:24 +0200 Subject: [PATCH 08/12] Update osi_hostvehicledata.proto --- osi_hostvehicledata.proto | 81 +++++++++++++-------------------------- 1 file changed, 26 insertions(+), 55 deletions(-) diff --git a/osi_hostvehicledata.proto b/osi_hostvehicledata.proto index 774f2efbc..241cb4253 100644 --- a/osi_hostvehicledata.proto +++ b/osi_hostvehicledata.proto @@ -8,14 +8,17 @@ import "osi_object.proto"; package osi3; +// \brief The vehicle-class is about the non-perceivable information, that is measured or +// calculated and transported by the board net. +// 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: +// Vehicle-Basics, Vehicle-Powermanagement, Vehicle-Powertrain, Vehicle-SteeringWheel, Vehicle-Wheels, Vehicle-Localization. // -// \brief Interface for updating internal states of host vehicle data to simulation environment. -// Sensors, mockups and other functions can access the host vehicle data. -// A Usecase like simulation of vehicle model is also possible by extending the OSI with host vehicle data. - // \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 { @@ -33,75 +36,38 @@ message HostVehicleData // \note Note that dimension and base_polygon need not be set. // optional BaseMoving location_rmse = 2; - - // The interface version used by the sender (i.e. the simulation - // environment). - // - optional InterfaceVersion version = 3; - - // The data timestamp of the simulation environment. The zero time point is - // arbitrary but must be identical for all messages. - // Recommendation: Zero time point for start point of the simulation. - // - // \note Zero time point does not need to coincide with the UNIX epoch. - // - // \note For ground truth data this timestamp coincides both with the - // notional simulation time the data applies to and the time it was sent - // (there is no inherent latency for ground truth data, as opposed to - // sensor data). - // - optional Timestamp timestamp = 4; - - // Contains all the perceivable information. - // - optional MovingObject moving_object = 5; - // Contains all the non-perceivable information, that is measured or - // calculated and transported by the board net. - // - optional HostVehicleDataClass host_vehicle_data = 6; -} - -// -// \brief The vehicle-class is about the non-perceivable information, that is measured or -// calculated and transported by the board net. -// It consists of different messages categorizing the vehicle in: -// Vehicle-Basics, Vehicle-Powermanagement, Vehicle-Powertrain, Vehicle-SteeringWheel, Vehicle-Wheels, Vehicle-Localization. -// As it is an description of the whole vehicle (focus on cars) it can be used as interface for various reasons. -// -message HostVehicleDataClass -{ - // The ID of the object. + // The ID of the object. Can be discussed. // // \rules // is_globally_unique // \endrules // - optional Identifier id = 1; + optional Identifier id = 3; // The basic parameters of the vehicle. // - optional VehicleBasics vehicle_basics = 2; + optional VehicleBasics vehicle_basics = 4; // Interface regarding the powermanagement. // - optional VehiclePowermanagement vehicle_powermanagement = 3; + optional VehiclePowermanagement vehicle_powermanagement = 5; // Interface regarding the powertrain. // - optional VehiclePowertrain vehicle_powertrain = 4; + optional VehiclePowertrain vehicle_powertrain = 6; // Interface regarding the steering wheel. // - optional VehicleSteeringWheel vehicle_steering_wheel = 5; + optional VehicleSteeringWheel vehicle_steering_wheel = 7; // Interface regarding the wheels. // - optional VehicleWheels vehicle_wheels = 6; + optional VehicleWheels vehicle_wheels = 8; // Interface regarding the navigation. // - optional VehicleLocalization vehicle_localization = 7; + optional VehicleLocalization vehicle_localization = 9; // // \brief The absolute base parameters of the vehicle. @@ -292,20 +258,20 @@ message HostVehicleDataClass // \par References: // - http://adaptivemap.ma.psu.edu/websites/6_friction/dry_friction/dryfriction.html // - optional double kinetic_friction_coefficient = 3; + //optional double kinetic_friction_coefficient = 3; // Contact point of the mid of the tire tread with the world. // Absolute coordinates (x, y, z). // // Unit: m // - optional Vector3d contact_point = 4; + //optional Vector3d contact_point = 4; // Contains the rotational speed of each wheel per second. // // Unit: rad/s // - optional double rotational_speed = 5; + //optional double rotational_speed = 5; // Contains the longitudinal slip of the tire. // \par References: @@ -318,9 +284,10 @@ message HostVehicleDataClass } // - // \brief This message contains all the necessary information of the localization solution. + // \brief This message contains all the information the vehicle knows about its kinematic states. + // Usually // - message VehicleLocalization + message VehicleKinematics { // // \brief This message contains information about the vehicle's knowledge about its own cartesian position. @@ -329,7 +296,11 @@ message HostVehicleDataClass { // To be discussed. // xyz, pitch,roll,yaw., velocities, accelerations, one level higher - optional BaseMoving cartesian_data + optional BaseMoving cartesian_data = 1; + + // To be discussed. + // xyz, pitch,roll,yaw., velocities, accelerations, one level higher + optional BaseMoving cartesian_data_rmse } // From ba23eb6aaf8af98509033c9f8c7c78a8ad4a8b80 Mon Sep 17 00:00:00 2001 From: Thomas Nader Date: Fri, 11 Sep 2020 11:44:02 +0200 Subject: [PATCH 09/12] Update osi_hostvehicledata.proto --- osi_hostvehicledata.proto | 28 ++++++++++++++++------------ 1 file changed, 16 insertions(+), 12 deletions(-) diff --git a/osi_hostvehicledata.proto b/osi_hostvehicledata.proto index 241cb4253..40967c5d4 100644 --- a/osi_hostvehicledata.proto +++ b/osi_hostvehicledata.proto @@ -44,7 +44,7 @@ message HostVehicleData // \endrules // optional Identifier id = 3; - + // The basic parameters of the vehicle. // optional VehicleBasics vehicle_basics = 4; @@ -267,11 +267,12 @@ message HostVehicleData // //optional Vector3d contact_point = 4; - // Contains the rotational speed of each wheel per second. + // Contains the rotation rate of the wheel per second in radians. + // Based on the processed output of the hall sensor at the wheel. // // Unit: rad/s // - //optional double rotational_speed = 5; + optional double rotation_rate = 5; // Contains the longitudinal slip of the tire. // \par References: @@ -285,26 +286,29 @@ message HostVehicleData // // \brief This message contains all the information the vehicle knows about its kinematic states. - // Usually // message VehicleKinematics { // - // \brief This message contains information about the vehicle's knowledge about its own cartesian position. + // \brief Current kinematic data based on the output of the Intertial Measurement Unit (IMU). // message CartesianInformation { - // To be discussed. - // xyz, pitch,roll,yaw., velocities, accelerations, one level higher + // Current kinematic data based on the output of the Intertial Measurement Unit (IMU). + // + // \note Note that dimension and base_polygon need not be set. + // optional BaseMoving cartesian_data = 1; - - // To be discussed. - // xyz, pitch,roll,yaw., velocities, accelerations, one level higher - optional BaseMoving cartesian_data_rmse + + // Current kinematic data error based on the output of the Intertial Measurement Unit (IMU). + // + // \note Note that dimension and base_polygon need not be set. + // + optional BaseMoving cartesian_data_rmse = 2; } // - // \brief This message contains information about the vehicle's georeferenced positioning solution component. + // \brief Current estimated location based on the output of the GPS-Unit. // message GeoreferencedInformation { From 931a22aeaf941e68ea11fbf57758c95d3118d722 Mon Sep 17 00:00:00 2001 From: Thomas Nader Date: Mon, 14 Sep 2020 14:54:00 +0200 Subject: [PATCH 10/12] Update osi_hostvehicledata.proto --- osi_hostvehicledata.proto | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/osi_hostvehicledata.proto b/osi_hostvehicledata.proto index 40967c5d4..7475a716f 100644 --- a/osi_hostvehicledata.proto +++ b/osi_hostvehicledata.proto @@ -8,8 +8,9 @@ import "osi_object.proto"; package osi3; -// \brief The vehicle-class is about the non-perceivable information, that is measured or -// calculated and transported by the board net. +// \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. // 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: From 80c5752a5e2fc7b25c922efbd5ac8b8dc23c878e Mon Sep 17 00:00:00 2001 From: Thomas Nader Date: Fri, 6 Nov 2020 16:42:26 +0100 Subject: [PATCH 11/12] Update osi_hostvehicledata.proto --- osi_hostvehicledata.proto | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/osi_hostvehicledata.proto b/osi_hostvehicledata.proto index 7475a716f..dff91b4dd 100644 --- a/osi_hostvehicledata.proto +++ b/osi_hostvehicledata.proto @@ -188,8 +188,9 @@ message HostVehicleData // A motor working electric. // - TYPE_ELEKTRIC = 4; + TYPE_ELECTRIC = 4; } + } } // From 8ee3f52187843e7b9d3f5a7f45408dc37ce4f824 Mon Sep 17 00:00:00 2001 From: Thomas Nader Date: Fri, 6 Nov 2020 17:01:34 +0100 Subject: [PATCH 12/12] Update osi_hostvehicledata.proto --- osi_hostvehicledata.proto | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/osi_hostvehicledata.proto b/osi_hostvehicledata.proto index dff91b4dd..f0d19a5c3 100644 --- a/osi_hostvehicledata.proto +++ b/osi_hostvehicledata.proto @@ -68,7 +68,7 @@ message HostVehicleData // Interface regarding the navigation. // - optional VehicleLocalization vehicle_localization = 9; + optional VehiclePositionAndKinematics vehicle_position_and_kinematics = 9; // // \brief The absolute base parameters of the vehicle. @@ -289,7 +289,7 @@ message HostVehicleData // // \brief This message contains all the information the vehicle knows about its kinematic states. // - message VehicleKinematics + message VehiclePositionAndKinematics { // // \brief Current kinematic data based on the output of the Intertial Measurement Unit (IMU).