$darkmode
osi_omni_sensor.hpp File Reference
#include <map>
#include <memory>
#include <string>
#include <utility>
#include <Eigen/Geometry>
#include <cloe/component/lane_boundary.hpp>
#include <cloe/component/object.hpp>
#include <cloe/core.hpp>
#include <cloe/simulator.hpp>
#include <cloe/sync.hpp>
#include "osi_common.pb.h"
#include "osi_detectedobject.pb.h"
#include "osi_hostvehicledata.pb.h"
#include "osi_object.pb.h"
#include "osi_sensordata.pb.h"
#include "osi_ground_truth.hpp"
#include "osi_transceiver.hpp"
#include "osi_utils.hpp"
Include dependency graph for osi_omni_sensor.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  osii::OsiOmniSensor
 

Enumerations

enum class  osii::SensorMockTarget { MountingPosition , DetectedMovingObject , DetectedLaneBoundary }
 
enum class  osii::SensorMockLevel { OverwriteNone , InterpolateMissing , OverwriteAll }
 

Functions

cloe::Duration osii::osi_timestamp_to_time (const osi3::Timestamp &timestamp)
 
void osii::from_osi_identifier (const osi3::Identifier &osi_id, int &id)
 
void osii::from_osi_host_vehicle_data (const osi3::HostVehicleData &osi_hv, cloe::Object &obj)
 
void osii::from_osi_base_moving (const osi3::BaseMoving &osi_bm, cloe::Object &obj)
 
void osii::from_osi_base_moving_alt (const osi3::BaseMoving &osi_bm, const osi3::BaseMoving &osi_bm_gt, cloe::Object &obj)
 
template<typename T >
void osii::from_osi_mov_obj_type_classification (const T &osi_mo, cloe::Object::Class &oc)
 
void osii::from_osi_mov_obj_type_classification (const osi3::MovingObject::Type &osi_ot, const osi3::MovingObject::VehicleClassification::Type &osi_vt, cloe::Object::Class &oc)
 
void osii::from_osi_detected_moving_object_alt (const osi3::DetectedMovingObject &osi_mo, const OsiGroundTruth &ground_truth, cloe::Object &obj)
 
void osii::from_osi_boundary_points (const osi3::LaneBoundary &osi_lb, cloe::LaneBoundary &lb)
 
void osii::transform_ego_coord_from_osi_data (const Eigen::Vector3d &dimensions_gt, cloe::Object &obj)
 
void osii::transform_obj_coord_from_osi_data (const Eigen::Isometry3d &sensor_pose, const Eigen::Vector3d &dimensions_gt, cloe::Object &obj)
 
Eigen::Isometry3d osii::osi_position_orientation_to_pose_alt (const osi3::BaseMoving &base, const osi3::BaseMoving &base_gt)
 
Eigen::Vector3d osii::osi_vehicle_attrib_rear_offset_to_vector3d (const osi3::MovingObject::VehicleAttributes &osi_va)
 

Detailed Description

Enumeration Type Documentation

◆ SensorMockLevel

enum osii::SensorMockLevel
strong

SensorMockLevel determines to which degree an OSI message of a certain data type should be overwritten by ground truth information:

  • Zero means that the message is not altered (default behavior).
  • MissingData means that unavailable data fields are filled.
  • All means that the entire message is overwritten.

◆ SensorMockTarget

OSI messages of the listed data types may be overwritten by ground truth information, if requested by the user.

Function Documentation

◆ from_osi_base_moving()

void osii::from_osi_base_moving ( const osi3::BaseMoving &  osi_bm,
cloe::Object obj 
)

Map the OSI data fields without taking care of transformations to the Cloe reference frame convention. Note that the OSI reference frame may differ for different object data types.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ from_osi_base_moving_alt()

void osii::from_osi_base_moving_alt ( const osi3::BaseMoving &  osi_bm,
const osi3::BaseMoving &  osi_bm_gt,
cloe::Object obj 
)

As from_osi_base_moving, but use ground truth information if required data is not provided by sensor (model).

Here is the call graph for this function:
Here is the caller graph for this function:

◆ from_osi_host_vehicle_data()

void osii::from_osi_host_vehicle_data ( const osi3::HostVehicleData &  osi_hv,
cloe::Object obj 
)

OSI host vehicle coordinates/orientations are relative to the global ground truth coordinate system. Here, this data is stored in a Cloe object.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ osi_timestamp_to_time()

cloe::Duration osii::osi_timestamp_to_time ( const osi3::Timestamp &  timestamp)

Convert OSI timestamp to Cloe time format.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ osi_vehicle_attrib_rear_offset_to_vector3d()

Eigen::Vector3d osii::osi_vehicle_attrib_rear_offset_to_vector3d ( const osi3::MovingObject::VehicleAttributes &  osi_va)

Convert vehicle attribute bbcenter_to_rear into Eigen::Vector3d.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ transform_obj_coord_from_osi_data()

void osii::transform_obj_coord_from_osi_data ( const Eigen::Isometry3d &  sensor_pose,
const Eigen::Vector3d &  dimensions_gt,
cloe::Object obj 
)
Parameters
sensor_poseRelation between the sensor frame and the ego vehicle frame, expressed in the ego vehicle frame.
objWhen enter: Geometric information in ego vehicle frame. When return: Geometric information in sensor frame.
Here is the call graph for this function:
Here is the caller graph for this function: