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

Base class to access vehicle 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::RssVehicleAdapter< OBJECT_INSTANCE_TYPE >:
Inheritance graph
[legend]
Collaboration diagram for ad::rss::map::RssVehicleAdapter< OBJECT_INSTANCE_TYPE >:
Collaboration graph
[legend]

Classes

struct  RssRoutingTargetOperation
 The mode to be applied on routing target operation. More...
 

Public Types

typedef std::shared_ptr< RssVehicleAdapterPtr
 Smart pointer on RssVehicleAdapter.
 
typedef std::shared_ptr< RssVehicleAdapter const > ConstPtr
 Smart pointer on constant RssVehicleAdapter.
 
- Public Types inherited from ad::rss::map::RssObjectAdapter< OBJECT_INSTANCE_TYPE >
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

 RssVehicleAdapter (ObjectInstancePtr const objectInstance)
 default constructor
 
virtual ~RssVehicleAdapter ()=default
 default destructor
 
virtual ::ad::rss::map::RssRouteList getRoutePredictions () const
 Return the list of route predictions of the object (optionally). More...
 
virtual ad::physics::Distance getPositionJumpTraveledDistance () const
 Defines the distance at which a delta in vehicle position is considered as unexpected jump. A jump in the position (can occur in simulation on resetting a vehicle's position) triggers automatically the clearing of the current routes and enforces a re-creation of them. More...
 
virtual ad::physics::Distance getMinimumDistanceToObjectsThatHaveToBeAnalyzed () const
 Defines the distance below which a detailed analysis becomes necessary regardless of the objects stopping distance estimates. More...
 
::ad::rss::world::ObjectId getObjectId () const
 get the id of the object
 
- Public Member Functions inherited from ad::rss::map::RssObjectAdapter< OBJECT_INSTANCE_TYPE >
 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.
 

Routing targets specific functions

The following group of functions are used to handle routing targets of the vehicle.

The default implementation returns an empty list, which disables the routing target functionality and RssRouteChecker will take care on calculating the route predictions.

Be aware: if the getRoutePredictions() function returns anything else than an empty list, the routing target functionality is not used/called at all!

enum class  RssRoutingTargetCommand { None , AppendTargets , ReplaceTargets }
 The mode to be applied on routing target operation. More...
 
virtual RssRoutingTargetOperation getRoutingTargetOperation ()
 Return a routing target operation to be applied (optional) More...
 
virtual ad::physics::Distance getRoutingTargetReachedDistance () const
 Defines the distance at which a given routing target is interpreted to be reached. More...
 
virtual void activeRoutingTargets (::ad::map::point::ENUPointList const &activeRoutingTargets)
 Provides information on the currently active routing targets. More...
 

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()}
 
- Protected Attributes inherited from ad::rss::map::RssObjectAdapter< OBJECT_INSTANCE_TYPE >
ObjectInstancePtr mObjectInstance
 

Detailed Description

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

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

This class specializes the RssObjectAdapter by functionality required specifically for vehicles. This class derives virtually from the RssObjectAdapter which 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. 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).

The main aspect of RssVehicleAdapter class are the route predictions of the vehicle. These are used by RSS to evaluate the potential route constellations between a RssEgoVehicleAdapter and a RssVehicleAdapter. The default functionality for route prediction is actually implemented by the RssRouteChecker class. Therefore, it is not required to provide any information on those by this class.

Member Enumeration Documentation

◆ RssRoutingTargetCommand

template<class OBJECT_INSTANCE_TYPE >
enum ad::rss::map::RssVehicleAdapter::RssRoutingTargetCommand
strong

The mode to be applied on routing target operation.

Enumerator
None 

no operation (default)

AppendTargets 

append the provided routing targets to the current routing targets and extend the route(s) accordingly

ReplaceTargets 

clear the current route and replace the current routing targets by the new ones; in case the new routing targets are empty, route is created using predictions

Member Function Documentation

◆ activeRoutingTargets()

template<class OBJECT_INSTANCE_TYPE >
virtual void ad::rss::map::RssVehicleAdapter< OBJECT_INSTANCE_TYPE >::activeRoutingTargets ( ::ad::map::point::ENUPointList const &  activeRoutingTargets)
inlinevirtual

Provides information on the currently active routing targets.

Default implementation deploys RssRouteCheckerControl to collect results.

Be aware: only relevant if routing target functionality is active.

◆ getMinimumDistanceToObjectsThatHaveToBeAnalyzed()

template<class OBJECT_INSTANCE_TYPE >
virtual ad::physics::Distance ad::rss::map::RssVehicleAdapter< OBJECT_INSTANCE_TYPE >::getMinimumDistanceToObjectsThatHaveToBeAnalyzed ( ) const
inlinevirtual

Defines the distance below which a detailed analysis becomes necessary regardless of the objects stopping distance estimates.

Far away object might not be analyzed in detail, if the stopping distances allow it

Default implementation deploys RssRouteCheckerControl to gather results.

◆ getPositionJumpTraveledDistance()

template<class OBJECT_INSTANCE_TYPE >
virtual ad::physics::Distance ad::rss::map::RssVehicleAdapter< OBJECT_INSTANCE_TYPE >::getPositionJumpTraveledDistance ( ) const
inlinevirtual

Defines the distance at which a delta in vehicle position is considered as unexpected jump. A jump in the position (can occur in simulation on resetting a vehicle's position) triggers automatically the clearing of the current routes and enforces a re-creation of them.

Default implementation deploys RssRouteCheckerControl to gather results.

◆ getRoutePredictions()

template<class OBJECT_INSTANCE_TYPE >
virtual ::ad::rss::map::RssRouteList ad::rss::map::RssVehicleAdapter< OBJECT_INSTANCE_TYPE >::getRoutePredictions ( ) const
inline

Return the list of route predictions of the object (optionally).

The default implementation returns an empty list.

If the specialized function RssVehicleAdapter::getRoutePredictions() returns anything else than an empty list, the returned routes are used for further RSS calculations. In this case only the field RssRoute::vehicle_dynamics_on_route is updated for ego vehicles by RssRouteChecker. All other fields have to be taken care on, including Route::route_id and Route::likelihood (normalization is taken care by RssRouteChecker).

Otherwise, RssRouteChecker will take care on calculating the route predictions.

Another possibility to influence the route predictions is overriding the routing targets functionality (see below).

◆ getRoutingTargetOperation()

template<class OBJECT_INSTANCE_TYPE >
virtual RssRoutingTargetOperation ad::rss::map::RssVehicleAdapter< OBJECT_INSTANCE_TYPE >::getRoutingTargetOperation ( )
inlinevirtual

Return a routing target operation to be applied (optional)

In case getRoutePredictions() returns an empty list, RssRouteChecker will query for routing target operations via this function. If this returns anything else than RoutingTargetCommand::None, the route for the vehicle is created/extended according to the routing target operation; further route prediction operations are only performed in case the resulting route is empty.

Default implementation deploys RssRouteCheckerControl to gather results.

◆ getRoutingTargetReachedDistance()

template<class OBJECT_INSTANCE_TYPE >
virtual ad::physics::Distance ad::rss::map::RssVehicleAdapter< OBJECT_INSTANCE_TYPE >::getRoutingTargetReachedDistance ( ) const
inlinevirtual

Defines the distance at which a given routing target is interpreted to be reached.

The default implementation returns 3 meters.

Be aware: only relevant if routing target functionality is active.


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