ad_rss_map_integration
|
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>
Classes | |
struct | RssRoutingTargetOperation |
The mode to be applied on routing target operation. More... | |
Public Types | |
typedef std::shared_ptr< RssVehicleAdapter > | Ptr |
Smart pointer on RssVehicleAdapter. | |
typedef std::shared_ptr< RssVehicleAdapter const > | ConstPtr |
Smart pointer on constant RssVehicleAdapter. | |
![]() | |
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 | |
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 | |
![]() | |
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. | |
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 | |
![]() | |
::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()} |
![]() | |
ObjectInstancePtr | mObjectInstance |
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.
|
strong |
The mode to be applied on routing target operation.
|
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.
|
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.
|
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.
|
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).
|
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.
|
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.