ad_rss
Physics.hpp
Go to the documentation of this file.
1 // ----------------- BEGIN LICENSE BLOCK ---------------------------------
2 //
3 // Copyright (C) 2018-2021 Intel Corporation
4 //
5 // SPDX-License-Identifier: LGPL-2.1-only
6 //
7 // ----------------- END LICENSE BLOCK -----------------------------------
8 
13 #pragma once
14 
15 #include <vector>
16 #include "ad/physics/Acceleration.hpp"
17 #include "ad/physics/Angle.hpp"
18 #include "ad/physics/AngleRange.hpp"
19 #include "ad/physics/Distance.hpp"
20 #include "ad/physics/Duration.hpp"
21 #include "ad/physics/Speed.hpp"
22 
26 namespace ad {
30 namespace rss {
34 namespace situation {
35 
46 bool calculateDistanceOffsetInAcceleratedMovement(physics::Speed const speed,
47  physics::Acceleration const acceleration,
48  physics::Duration const duration,
49  physics::Distance &distanceOffset);
50 
61 bool calculateSpeedInAcceleratedMovement(physics::Speed const speed,
62  physics::Acceleration const acceleration,
63  physics::Duration const duration,
64  physics::Speed &resultingSpeed);
65 
76 bool calculateStoppingDistance(physics::Speed const currentSpeed,
77  physics::Acceleration const deceleration,
78  physics::Distance &stoppingDistance);
79 
99 bool calculateAcceleratedLimitedMovement(physics::Speed const currentSpeed,
100  physics::Speed const maxSpeedOnAcceleration,
101  physics::Acceleration const acceleration,
102  physics::Duration const duration,
103  physics::Speed &resultingSpeed,
104  physics::Distance &distanceOffset);
105 
125 bool calculateTimeToCoverDistance(physics::Speed const currentSpeed,
126  physics::Speed const maxSpeedOnAcceleration,
127  physics::Duration const responseTime,
128  physics::Acceleration const aUntilResponseTime,
129  physics::Acceleration const aAfterResponseTime,
130  physics::Distance const distanceToCover,
131  physics::Duration &requiredTime);
132 
151 bool calculateSpeedAndDistanceOffset(physics::Duration const duration,
152  physics::Speed const currentSpeed,
153  physics::Duration const responseTime,
154  physics::Speed const maxSpeedOnAcceleration,
155  physics::Acceleration const aUntilReponseTime,
156  physics::Acceleration const aAfterResponseTime,
157  physics::Speed &resultingSpeed,
158  physics::Distance &distanceOffset);
159 
177 bool calculateTimeToStop(physics::Speed const currentSpeed,
178  physics::Duration const responseTime,
179  physics::Speed const maxSpeedOnAcceleration,
180  physics::Acceleration const aUntilResponseTime,
181  physics::Acceleration const aAfterResponseTime,
182  physics::Duration &stopDuration);
183 
184 } // namespace situation
185 } // namespace rss
186 } // namespace ad
ad
namespace ad
Definition: LateralRelativePosition.hpp:26
ad::rss::situation::calculateDistanceOffsetInAcceleratedMovement
bool calculateDistanceOffsetInAcceleratedMovement(physics::Speed const speed, physics::Acceleration const acceleration, physics::Duration const duration, physics::Distance &distanceOffset)
Calculate the distance traveled after a given period of time on a constant accelerated movement.
ad::rss::situation::calculateStoppingDistance
bool calculateStoppingDistance(physics::Speed const currentSpeed, physics::Acceleration const deceleration, physics::Distance &stoppingDistance)
Calculate the stopping distance for a given speed and deceleration on a constant accelerated movement...
ad::rss::situation::calculateSpeedAndDistanceOffset
bool calculateSpeedAndDistanceOffset(physics::Duration const duration, physics::Speed const currentSpeed, physics::Duration const responseTime, physics::Speed const maxSpeedOnAcceleration, physics::Acceleration const aUntilReponseTime, physics::Acceleration const aAfterResponseTime, physics::Speed &resultingSpeed, physics::Distance &distanceOffset)
Calculate the speed and distance offset after a given duration in a two phased limited constant accel...
ad::rss::situation::calculateSpeedInAcceleratedMovement
bool calculateSpeedInAcceleratedMovement(physics::Speed const speed, physics::Acceleration const acceleration, physics::Duration const duration, physics::Speed &resultingSpeed)
Calculate the speed after a given period of time on a constant accelerated movement.
ad::rss::situation::calculateAcceleratedLimitedMovement
bool calculateAcceleratedLimitedMovement(physics::Speed const currentSpeed, physics::Speed const maxSpeedOnAcceleration, physics::Acceleration const acceleration, physics::Duration const duration, physics::Speed &resultingSpeed, physics::Distance &distanceOffset)
Calculate the vehicle speed after a given period of time on a constant accelerated movement.
ad::rss::situation::calculateTimeToStop
bool calculateTimeToStop(physics::Speed const currentSpeed, physics::Duration const responseTime, physics::Speed const maxSpeedOnAcceleration, physics::Acceleration const aUntilResponseTime, physics::Acceleration const aAfterResponseTime, physics::Duration &stopDuration)
Calculate the stopping time in a two phased limited constant accelerated movement.
ad::rss::situation::calculateTimeToCoverDistance
bool calculateTimeToCoverDistance(physics::Speed const currentSpeed, physics::Speed const maxSpeedOnAcceleration, physics::Duration const responseTime, physics::Acceleration const aUntilResponseTime, physics::Acceleration const aAfterResponseTime, physics::Distance const distanceToCover, physics::Duration &requiredTime)
Calculate the time needed to cover a given distance.