ad_rss_map_integration
Public Types | Public Member Functions | Protected Attributes | List of all members
ad::rss::map::RssObjectAdapter< OBJECT_INSTANCE_TYPE > Class Template Reference

Base class to access basic object information required to perform the RSS checks in conjunction with the RssRouteChecker class. More...

#include <ad/rss/map/RssObjectAdapter.hpp>

Inheritance diagram for ad::rss::map::RssObjectAdapter< OBJECT_INSTANCE_TYPE >:
Inheritance graph
[legend]
Collaboration diagram for ad::rss::map::RssObjectAdapter< OBJECT_INSTANCE_TYPE >:
Collaboration graph
[legend]

Public Types

typedef std::shared_ptr< RssObjectAdapterPtr
 Smart pointer on RssObjectAdapter.
 
typedef std::shared_ptr< RssObjectAdapter const > ConstPtr
 Smart pointer on constant RssObjectAdapter.
 
typedef RssObjectInstance< OBJECT_INSTANCE_TYPE >::Ptr ObjectInstancePtr
 
typedef RssObjectInstance< OBJECT_INSTANCE_TYPE >::ConstPtr ObjectInstanceConstPtr
 
- Public Types inherited from ad::rss::map::RssObjectAdapterData
typedef std::shared_ptr< RssObjectAdapterDataPtr
 Smart pointer on RssObjectAdapterData.
 
typedef std::shared_ptr< RssObjectAdapterData const > ConstPtr
 Smart pointer on constant RssObjectAdapterData.
 

Public Member Functions

 RssObjectAdapter (ObjectInstancePtr const objectInstance)
 default constructor
 
virtual ~RssObjectAdapter ()=default
 default destructor
 
::ad::rss::world::ObjectType getObjectType () const
 
RssRouteCheckerControl< OBJECT_INSTANCE_TYPE >::Ptr getCheckerControl () const
 get the checker control instance
 
ObjectInstancePtr getObjectInstance () const
 get the underlying object instance type
 
OBJECT_INSTANCE_TYPE & getObjectInstanceType ()
 get the underlying object instance type.
 
OBJECT_INSTANCE_TYPE const & getObjectInstanceType () const
 get the underlying object instance type
 
virtual ::ad::rss::world::RssDynamics getDefaultRssDynamics () const
 get the default RSS dynamics to be used for the object. More...
 
::ad::physics::Dimension3D getDimensions () const override
 get the dimensions of the object to be considered: the stored (estimated) dimensions are expanded by the position confidence
 
virtual ::ad::map::match::Object getMatchedObject (::ad::map::match::AdMapMatching const &mapMatching, physics::Distance const sampling_distance) const
 Perform actual map matching of the object. More...
 
virtual bool isObjectIdUniqueOverTime () const
 Indicate if the object id of this remains unique over time. More...
 
- Public Member Functions inherited from ad::rss::map::RssObjectAdapterData
 RssObjectAdapterData ()
 standard constructor
 
virtual ~RssObjectAdapterData ()=default
 standard destructor
 
 RssObjectAdapterData (const RssObjectAdapterData &other)=default
 standard copy constructor
 
 RssObjectAdapterData (RssObjectAdapterData &&other)=default
 standard move constructor
 
RssObjectAdapterDataoperator= (const RssObjectAdapterData &other)=default
 standard assignment operator More...
 
RssObjectAdapterDataoperator= (RssObjectAdapterData &&other)=default
 standard move operator More...
 
bool operator== (const RssObjectAdapterData &other) const
 standard comparison operator More...
 
bool operator!= (const RssObjectAdapterData &other) const
 standard comparison operator More...
 
::ad::rss::world::ObjectId getObjectId () const
 get the id of the object
 
::ad::rss::world::ObjectType getObjectType () const
 get the type of the object
 
::ad::map::point::ENUPoint getCenterPoint () const
 get the center point of the object
 
::ad::physics::Dimension2D getPositionConfidence () const
 get the position confidence of the center point
 
::ad::physics::Probability getPositionConfidenceLevel () const
 get the position confidence level of the center point
 
::ad::map::point::ENUHeading getHeading () const
 get the heading of the object
 
virtual ::ad::physics::Dimension3D getDimensions () const
 get the dimensions of the object to be considered
 
::ad::physics::SpeedRange getSpeedRange () const
 get the speed of the object
 
::ad::physics::AngularVelocity getYawRate () const
 get the change of the heading (which is the yaw rate) of the object
 
::ad::physics::Angle getSteeringAngle () const
 get the steering angle of the vehicle. Might be invalid if not available.
 

Protected Attributes

ObjectInstancePtr mObjectInstance
 

Additional Inherited Members

- Public Attributes inherited from ad::rss::map::RssObjectAdapterData
::ad::rss::world::ObjectId id {0}
 
::ad::rss::world::ObjectType object_type {::ad::rss::world::ObjectType::Invalid}
 
::ad::map::point::ENUPoint center_point
 
::ad::physics::Dimension2D position_confidence_ellipse_half_axis_dimension
 
::ad::physics::Probability position_confidence_ellipse_confidence_level
 
::ad::map::point::ENUHeading heading {std::numeric_limits<double>::quiet_NaN()}
 
::ad::physics::Dimension3D dimension
 
::ad::physics::SpeedRange speed_range
 
::ad::physics::AngularVelocity yaw_rate
 
::ad::physics::Angle steering_angle {std::numeric_limits<double>::quiet_NaN()}
 

Detailed Description

template<class OBJECT_INSTANCE_TYPE>
class ad::rss::map::RssObjectAdapter< OBJECT_INSTANCE_TYPE >

Base class to access basic object information required to perform the RSS checks in conjunction with the RssRouteChecker class.

Derived from this class virtually to allows for a similar class layout on side of the concrete implementations of this to be able to handle common functionality of vehicles and pedestrians at one place. E.g.:

class RssObjectAdapterCustom: public virtual RssObjectAdapter {}; class RssPedestrianAdapterCustom: public RssObjectAdapterCustom, public RssPedestrianAdapter {}; class RssVehicleAdapterCustom: public RssObjectAdapterCustom, public virtual RssVehicleAdapter {}; class RssEgoVehicleAdapterCustom: public RssVehicleAdapterCustom, public RssEgoVehicleAdapter {};

Where RssArtificialObjectAdapter plays a special role to be used to inject additional artificial objects to be considered in addition by the RSS calculation.

The pure virtual Getter-functions of this class have to be provided by some derived class. This not necessarily has to be the direct child class (e.g. RssObjectAdapterCustom), since RssObjectAdapter is not used directly. Other virtual functions might be implemented by derived classed to take care on the required steps on their own instead of letting the default implementation handle these (see details on in the function descriptions).

Member Function Documentation

◆ getDefaultRssDynamics()

template<class OBJECT_INSTANCE_TYPE >
virtual ::ad::rss::world::RssDynamics ad::rss::map::RssObjectAdapter< OBJECT_INSTANCE_TYPE >::getDefaultRssDynamics ( ) const
inline

get the default RSS dynamics to be used for the object.

Default implementation deploys RssRouteCheckerControl in conjunction with the object_type to gather results.

◆ getMatchedObject()

template<class OBJECT_INSTANCE_TYPE >
virtual ::ad::map::match::Object ad::rss::map::RssObjectAdapter< OBJECT_INSTANCE_TYPE >::getMatchedObject ( ::ad::map::match::AdMapMatching const &  mapMatching,
physics::Distance const  sampling_distance 
) const
inline

Perform actual map matching of the object.

This function is called each time step ONCE to get the latest map matching results. The default implementation mainly calls into ::ad::map::match::AdMapMatching::getMapMatchedBoundingBox()

Can be reimplemented if the map matched position of the object is already available by other means.

Parameters
[in]mapMatchingthe map matching object used for map matching
[in]sampling_distancethe sampling_distance parameter for the mapMatching.getMapMatchedBoundingBox() call.

If there is specific user implementation available for this, this can be overridden.

◆ getObjectType()

template<class OBJECT_INSTANCE_TYPE >
::ad::rss::world::ObjectType ad::rss::map::RssObjectAdapter< OBJECT_INSTANCE_TYPE >::getObjectType ( ) const
inline
Returns
the object type of this.

This function is not virtual by intension. If a derived class (e.g. RssEgoVehicleAdapter) is not used as ego-vehicle, but e.g. as other vehicle, the object type should reflect this.

◆ isObjectIdUniqueOverTime()

template<class OBJECT_INSTANCE_TYPE >
virtual bool ad::rss::map::RssObjectAdapter< OBJECT_INSTANCE_TYPE >::isObjectIdUniqueOverTime ( ) const
inlinevirtual

Indicate if the object id of this remains unique over time.

If the object is re-associated over time e.g. the object is tracked, this is true. In that case it is assumed that the same real/artificial object keeps the same object id in the next time step, so the RSS state of the previous time step can be taken into account for deriving the proper response. But if the object data is delivered by lower level object detectors where IDs are not re-associated to the last time step objects, this should return false.

Returns
true by default implementation.

The documentation for this class was generated from the following file: