ad_rss_map_integration
Public Types | Public Member Functions | List of all members
ad::rss::map::RssObjectConversion Class Reference

class providing support to convert ad::map objects into ad::rss objects More...

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

Public Types

using Ptr = std::shared_ptr< RssObjectConversion >
 Smart pointer on RssObjectConversion.
 
using ConstPtr = std::shared_ptr< RssObjectConversion const >
 Smart pointer on constant RssObjectConversion.
 

Public Member Functions

 RssObjectConversion (RssObjectData const &objectData)
 constructor More...
 
 RssObjectConversion (RssObjectData const &objectData, ::ad::rss::world::OccupiedRegionVector const &objectOccupiedRegions)
 constructor with explicit occupied regions More...
 
 RssObjectConversion (const RssObjectConversion &other)=default
 standard copy constructor
 
 RssObjectConversion (RssObjectConversion &&other)=default
 standard move constructor
 
 ~RssObjectConversion ()=default
 standard destructor
 
RssObjectConversionoperator= (const RssObjectConversion &other)=delete
 delete standard assignment operator
 
RssObjectConversionoperator= (RssObjectConversion &&other)=delete
 delete standard move assignment operator
 
::ad::rss::world::RssDynamics getRssDynamics () const
 
const ::ad::rss::world::Object & getRssObject () const
 
::ad::rss::world::ObjectId getId () const
 
bool calculateMinStoppingDistance (::ad::physics::Distance &minStoppingDistance) const
 
void updateSpeedLimit (::ad::physics::Speed const &maxSpeedOnAcceleration)
 update the max speed content
 
void laneIntervalAdded (::ad::map::route::LaneInterval const &laneInterval)
 lane interval was added to the object route, so append relevant occupied regions
 
void updateVelocityOnRoute (::ad::map::route::FullRoute const &route)
 update the objects current velocity on the route
 
const ::ad::map::match::Object * getObjectMapMatchedPosition () const
 return the map matched position object this was created with (might be nullptr)
 
bool isOriginalSpeedAcceptable (::ad::physics::Speed const acceptableNegativeSpeed=::ad::physics::Speed(-0.5)) const
 check if the original input speed is in acceptable range More...
 
const ::ad::physics::Speed & getOriginalObjectSpeed () const
 

Detailed Description

class providing support to convert ad::map objects into ad::rss objects

Constructor & Destructor Documentation

◆ RssObjectConversion() [1/2]

ad::rss::map::RssObjectConversion::RssObjectConversion ( RssObjectData const &  objectData)
explicit

constructor

Parameters
[in]objectDatathe object data

◆ RssObjectConversion() [2/2]

ad::rss::map::RssObjectConversion::RssObjectConversion ( RssObjectData const &  objectData,
::ad::rss::world::OccupiedRegionVector const &  objectOccupiedRegions 
)

constructor with explicit occupied regions

Parameters
[in]objectDatathe object data
[in]objectOccupiedRegionsthe object's occupied regions explicitly

Member Function Documentation

◆ calculateMinStoppingDistance()

bool ad::rss::map::RssObjectConversion::calculateMinStoppingDistance ( ::ad::physics::Distance &  minStoppingDistance) const
Returns
the minimum distance for the object to stop This is an estimate, that can be used to calculate the connecting route calculation distance to be taken into account.

◆ getId()

::ad::rss::world::ObjectId ad::rss::map::RssObjectConversion::getId ( ) const
Returns
Object id

◆ getOriginalObjectSpeed()

const ::ad::physics::Speed& ad::rss::map::RssObjectConversion::getOriginalObjectSpeed ( ) const
inline
Returns
the original object speed provided as input

◆ getRssDynamics()

::ad::rss::world::RssDynamics ad::rss::map::RssObjectConversion::getRssDynamics ( ) const
Returns
RssDynamics of the object

If updateSpeedLimit() was called in between the maxSpeedOnAcceleration value of the dynamics will be adapted to these.

◆ getRssObject()

const ::ad::rss::world::Object& ad::rss::map::RssObjectConversion::getRssObject ( ) const
Returns
RSS Object description

If laneIntervalAdded() or fillNotRelevantSceneBoundingBox() was called in between the occupied regions have been filled accordingly. If not, these are empty (which is an invalid object!)

◆ isOriginalSpeedAcceptable()

bool ad::rss::map::RssObjectConversion::isOriginalSpeedAcceptable ( ::ad::physics::Speed const  acceptableNegativeSpeed = ::ad::physics::Speed(-0.5)) const

check if the original input speed is in acceptable range

Negative speed is not supported by the RSS implementation; therefore negative input speeds are mapped to zero speed by this class.

But up to a certain small negative speed value, negative speeds still might want to be accepted to account for slowly backward drifting vehicles. Therefore, the constructor of this class maps all negative speeds to zero, but stores the original provided speed for later analysis. This function can be used to check for an acceptable speed.

Parameters
[in]acceptableNegativeSpeeda small negative speed value that should be allowed to be mapped to zero without error (default -0.5m/s).
Returns
true if the original speed equals the current internal object speed. It also returns true if the original speed is equal or larger than the provided acceptableNegativeSpeed.

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