ad_rss_map_integration
|
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>
Public Types | |
typedef std::shared_ptr< RssObjectAdapter > | Ptr |
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 |
![]() | |
typedef std::shared_ptr< RssObjectAdapterData > | Ptr |
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... | |
![]() | |
RssObjectAdapterData () | |
standard constructor | |
virtual | ~RssObjectAdapterData ()=default |
standard destructor | |
RssObjectAdapterData (const RssObjectAdapterData &other)=default | |
standard copy constructor | |
RssObjectAdapterData (RssObjectAdapterData &&other)=default | |
standard move constructor | |
RssObjectAdapterData & | operator= (const RssObjectAdapterData &other)=default |
standard assignment operator More... | |
RssObjectAdapterData & | operator= (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 | |
![]() | |
::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()} |
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).
|
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.
|
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.
[in] | mapMatching | the map matching object used for map matching |
[in] | sampling_distance | the sampling_distance parameter for the mapMatching.getMapMatchedBoundingBox() call. |
If there is specific user implementation available for this, this can be overridden.
|
inline |
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.
|
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
.
true
by default implementation.