CARLA
Loading...
Searching...
No Matches
Public Member Functions | Private Member Functions | Private Attributes | List of all members
CaService Class Reference

#include <CaService.h>

Public Member Functions

bool CarlaActorInitialized () const
 
 CaService (URandomEngine *random_engine)
 
CAM_t GetCamMessage () const
 
void SetAccelerationStandardDeviation (const FVector &Vec)
 
void SetActor (UWorld *world, AActor *Owner)
 
void SetGNSSDeviation (const float noise_lat_stddev, const float noise_lon_stddev, const float noise_alt_stddev, const float noise_head_stddev, const float noise_lat_bias, const float noise_lon_bias, const float noise_alt_bias, const float noise_head_bias)
 
void SetParams (const float GenCamMin, const float GenCamMax, const bool FixedRate)
 
void SetVelDeviation (const float noise_vel_stddev_x)
 
void SetYawrateDeviation (const float noise_yawrate_stddev, const float noise_yawrate_bias)
 
bool Trigger (float DeltaSeconds)
 

Private Member Functions

void AddBasicContainer (CAMContainer::BasicContainer_t &BasicContainer)
 
void AddBasicVehicleContainerHighFrequency (CAMContainer::HighFrequencyContainer_t &hfc, float DeltaTime)
 
void AddCooperativeAwarenessMessage (CAMContainer::CoopAwareness_t &CoopAwarenessMessage, float DeltaTime)
 
void AddLowFrequencyContainer (CAMContainer::LowFrequencyContainer_t &lfc)
 
void AddRSUContainerHighFrequency (CAMContainer::HighFrequencyContainer_t &hfc)
 
ITSContainer::SpeedValue_t BuildSpeedValue (const float vel) const
 
bool CheckHeadingDelta (float DeltaSeconds)
 
bool CheckPositionDelta (float DeltaSeconds)
 
bool CheckSpeedDelta (float DeltaSeconds)
 
bool CheckTriggeringConditions (float DeltaSeconds)
 
carla::geom::Vector3D ComputeAccelerometer (const float DeltaTime)
 
const carla::geom::Vector3D ComputeAccelerometerNoise (const FVector &Accelerometer) const
 
float ComputeSpeed () const
 
const float ComputeYawNoise (const FVector &Gyroscope) const
 
float ComputeYawRate () const
 
CAM_t CreateCooperativeAwarenessMessage (float DeltaTime)
 
void CreateITSPduHeader (CAM_t &message)
 
void GenerateCamMessage (float DeltaTime)
 
double GetFVectorAngle (const FVector &a, const FVector &b) const
 
float GetHeading () const
 
FVector GetReferencePosition () const
 
ITSContainer::StationType_t GetStationType () const
 
long GetVehicleRole () const
 

Private Attributes

float AltitudeBias
 
float AltitudeDeviation
 
carla::geom::GeoProjection CurrentGeoProjection
 
float HeadingBias
 
float HeadingDeviation
 
float LatitudeBias
 
float LatitudeDeviation
 
float LongitudeBias
 
float LongitudeDeviation
 
AActor * mActorOwner {nullptr}
 
CAM_t mCAMMessage
 
FCarlaActor * mCarlaActor {nullptr}
 
UCarlaEpisode * mCarlaEpisode {nullptr}
 
bool mDccRestriction
 
double mElapsedTime
 
bool mFixedRate
 
float mGenCam
 
unsigned int mGenCamLowDynamicsCounter {0}
 
unsigned int mGenCamLowDynamicsLimit {3}
 
float mGenCamMax
 
float mGenCamMin
 
float mGenDeltaTimeMod
 
std::chrono::milliseconds mGenerationDelta0
 
float mGenerationInterval
 
FVector mLastCamHeading
 
FVector mLastCamPosition
 
float mLastCamSpeed
 
float mLastCamTimeStamp
 
float mLastLowCamTimeStamp
 
const long mMessageId = ITSContainer::messageID_cam
 
const long mProtocolVersion = 2
 
URandomEngine * mRandomEngine
 
long mStationId
 
long mStationType
 
ACarlaWheeledVehicle * mVehicle {nullptr}
 
UWorld * mWorld {nullptr}
 
float PrevDeltaTime
 Used to compute the acceleration.
 
std::array< FVector, 2 > PrevLocation
 Used to compute the acceleration.
 
FVector StdDevAccel
 Standard deviation for acceleration settings.
 
FVector VehicleHeading
 
FVector VehiclePosition
 
float VehicleSpeed
 
float VelocityDeviation
 
float YawrateBias
 
float YawrateDeviation
 

Detailed Description

Definition at line 21 of file CaService.h.

Constructor & Destructor Documentation

◆ CaService()

CaService::CaService ( URandomEngine *  random_engine)

Definition at line 41 of file CaService.cpp.

References mGenerationDelta0, and mRandomEngine.

Member Function Documentation

◆ AddBasicContainer()

void CaService::AddBasicContainer ( CAMContainer::BasicContainer_t &  BasicContainer)
private

◆ AddBasicVehicleContainerHighFrequency()

void CaService::AddBasicVehicleContainerHighFrequency ( CAMContainer::HighFrequencyContainer_t &  hfc,
float  DeltaTime 
)
private

Definition at line 503 of file CaService.cpp.

References ITSContainer::AccelerationConfidence_unavailable, CAMContainer::BasicVehicleContainerHighFrequency::accelerationControlAvailable, CAMContainer::HighFrequencyContainer::basicVehicleContainerHighFrequency, BuildSpeedValue(), CAMContainer::BasicVehicleContainerHighFrequency::cenDsrcTollingZoneAvailable, ComputeAccelerometer(), ComputeSpeed(), ComputeYawRate(), CAMContainer::BasicVehicleContainerHighFrequency::curvature, CAMContainer::BasicVehicleContainerHighFrequency::curvatureCalculationMode, ITSContainer::CurvatureCalculationMode_yarRateUsed, ITSContainer::Curvature::curvatureConfidence, ITSContainer::CurvatureConfidence_unavailable, ITSContainer::Curvature::curvatureValue, ITSContainer::CurvatureValue_unavailable, CAMContainer::BasicVehicleContainerHighFrequency::driveDirection, ITSContainer::DriveDirection_backward, ITSContainer::DriveDirection_forward, UBoundingBoxCalculator::GetActorBoundingBox(), GetHeading(), ACarlaWheeledVehicle::GetVehicleForwardSpeed(), CAMContainer::BasicVehicleContainerHighFrequency::heading, ITSContainer::Heading::headingConfidence, ITSContainer::HeadingConfidence_equalOrWithinOneDegree, ITSContainer::Heading::headingValue, CAMContainer::HighFrequencyContainer_PR_basicVehicleContainerHighFrequency, CAMContainer::BasicVehicleContainerHighFrequency::lanePositionAvailable, CAMContainer::BasicVehicleContainerHighFrequency::lateralAcceleration, CAMContainer::BasicVehicleContainerHighFrequency::lateralAccelerationAvailable, ITSContainer::LateralAcceleration::lateralAccelerationConfidence, ITSContainer::LateralAcceleration::lateralAccelerationValue, ITSContainer::LateralAccelerationValue_pointOneMeterPerSecSquaredToLeft, ITSContainer::LateralAccelerationValue_unavailable, CAMContainer::BasicVehicleContainerHighFrequency::longitudinalAcceleration, ITSContainer::LongitudinalAcceleration::longitudinalAccelerationConfidence, ITSContainer::LongitudinalAcceleration::longitudinalAccelerationValue, ITSContainer::LongitudinalAccelerationValue_pointOneMeterPerSecSquaredForward, ITSContainer::LongitudinalAccelerationValue_unavailable, mActorOwner, mVehicle, CAMContainer::BasicVehicleContainerHighFrequency::performanceClassAvailable, CAMContainer::HighFrequencyContainer::present, CAMContainer::BasicVehicleContainerHighFrequency::speed, ITSContainer::speed::speedConfidence, ITSContainer::SpeedConfidence_equalOrWithInOneCentimerterPerSec, ITSContainer::speed::speedValue, CAMContainer::BasicVehicleContainerHighFrequency::steeringWheelAngleAvailable, carla::geom::Math::ToDegrees(), CAMContainer::BasicVehicleContainerHighFrequency::vehicleLength, ITSContainer::VehicleLength::vehicleLengthConfidenceIndication, ITSContainer::VehicleLengthConfidenceIndication_unavailable, ITSContainer::VehicleLength::vehicleLengthValue, CAMContainer::BasicVehicleContainerHighFrequency::vehicleWidth, CAMContainer::BasicVehicleContainerHighFrequency::verticalAcceleration, CAMContainer::BasicVehicleContainerHighFrequency::verticalAccelerationAvailable, ITSContainer::VerticalAcceleration::verticalAccelerationConfidence, ITSContainer::VerticalAcceleration::verticalAccelerationValue, ITSContainer::VerticalAccelerationValue_pointOneMeterPerSecSquaredUp, ITSContainer::VerticalAccelerationValue_unavailable, carla::geom::Vector3D::x, carla::geom::Vector3D::y, CAMContainer::BasicVehicleContainerHighFrequency::yawRate, ITSContainer::YawRate::yawRateConfidence, ITSContainer::YawRateConfidence_unavailable, ITSContainer::YawRate::yawRateValue, ITSContainer::YawRateValue_degSec_000_01ToLeft, ITSContainer::YawRateValue_unavailable, and carla::geom::Vector3D::z.

Referenced by AddCooperativeAwarenessMessage().

◆ AddCooperativeAwarenessMessage()

void CaService::AddCooperativeAwarenessMessage ( CAMContainer::CoopAwareness_t &  CoopAwarenessMessage,
float  DeltaTime 
)
private

◆ AddLowFrequencyContainer()

void CaService::AddLowFrequencyContainer ( CAMContainer::LowFrequencyContainer_t &  lfc)
private

◆ AddRSUContainerHighFrequency()

void CaService::AddRSUContainerHighFrequency ( CAMContainer::HighFrequencyContainer_t &  hfc)
private

◆ BuildSpeedValue()

ITSContainer::SpeedValue_t CaService::BuildSpeedValue ( const float  vel) const
private

◆ CarlaActorInitialized()

bool CaService::CarlaActorInitialized ( ) const
inline

Definition at line 41 of file CaService.h.

References mCarlaActor.

◆ CheckHeadingDelta()

bool CaService::CheckHeadingDelta ( float  DeltaSeconds)
private

◆ CheckPositionDelta()

bool CaService::CheckPositionDelta ( float  DeltaSeconds)
private

Definition at line 200 of file CaService.cpp.

References mLastCamPosition, mVehicle, and VehiclePosition.

Referenced by CheckTriggeringConditions().

◆ CheckSpeedDelta()

bool CaService::CheckSpeedDelta ( float  DeltaSeconds)
private

◆ CheckTriggeringConditions()

bool CaService::CheckTriggeringConditions ( float  DeltaSeconds)
private

◆ ComputeAccelerometer()

carla::geom::Vector3D CaService::ComputeAccelerometer ( const float  DeltaTime)
private

◆ ComputeAccelerometerNoise()

const carla::geom::Vector3D CaService::ComputeAccelerometerNoise ( const FVector &  Accelerometer) const
private

Definition at line 590 of file CaService.cpp.

References URandomEngine::GetNormalDistribution(), mRandomEngine, and StdDevAccel.

Referenced by ComputeAccelerometer().

◆ ComputeSpeed()

float CaService::ComputeSpeed ( ) const
private

◆ ComputeYawNoise()

const float CaService::ComputeYawNoise ( const FVector &  Gyroscope) const
private

◆ ComputeYawRate()

float CaService::ComputeYawRate ( ) const
private

◆ CreateCooperativeAwarenessMessage()

CAM_t CaService::CreateCooperativeAwarenessMessage ( float  DeltaTime)
private

Definition at line 398 of file CaService.cpp.

References AddCooperativeAwarenessMessage(), CAM::cam, and CreateITSPduHeader().

Referenced by GenerateCamMessage(), and Trigger().

◆ CreateITSPduHeader()

void CaService::CreateITSPduHeader ( CAM_t &  message)
private

◆ GenerateCamMessage()

void CaService::GenerateCamMessage ( float  DeltaTime)
private

◆ GetCamMessage()

CAM_t CaService::GetCamMessage ( ) const

Definition at line 155 of file CaService.cpp.

References mCAMMessage.

◆ GetFVectorAngle()

double CaService::GetFVectorAngle ( const FVector &  a,
const FVector &  b 
) const
private

Definition at line 229 of file CaService.cpp.

Referenced by CheckHeadingDelta().

◆ GetHeading()

float CaService::GetHeading ( ) const
private

◆ GetReferencePosition()

FVector CaService::GetReferencePosition ( ) const
private

◆ GetStationType()

ITSContainer::StationType_t CaService::GetStationType ( ) const
private

◆ GetVehicleRole()

long CaService::GetVehicleRole ( ) const
private

◆ SetAccelerationStandardDeviation()

void CaService::SetAccelerationStandardDeviation ( const FVector &  Vec)

Definition at line 468 of file CaService.cpp.

References StdDevAccel.

◆ SetActor()

void CaService::SetActor ( UWorld *  world,
AActor *  Owner 
)

◆ SetGNSSDeviation()

void CaService::SetGNSSDeviation ( const float  noise_lat_stddev,
const float  noise_lon_stddev,
const float  noise_alt_stddev,
const float  noise_head_stddev,
const float  noise_lat_bias,
const float  noise_lon_bias,
const float  noise_alt_bias,
const float  noise_head_bias 
)

◆ SetParams()

void CaService::SetParams ( const float  GenCamMin,
const float  GenCamMax,
const bool  FixedRate 
)

Definition at line 116 of file CaService.cpp.

References mFixedRate, mGenCam, mGenCamMax, and mGenCamMin.

◆ SetVelDeviation()

void CaService::SetVelDeviation ( const float  noise_vel_stddev_x)

Definition at line 492 of file CaService.cpp.

References VelocityDeviation.

◆ SetYawrateDeviation()

void CaService::SetYawrateDeviation ( const float  noise_yawrate_stddev,
const float  noise_yawrate_bias 
)

Definition at line 497 of file CaService.cpp.

References YawrateBias, and YawrateDeviation.

◆ Trigger()

bool CaService::Trigger ( float  DeltaSeconds)

Member Data Documentation

◆ AltitudeBias

float CaService::AltitudeBias
private

Definition at line 108 of file CaService.h.

Referenced by GetReferencePosition(), and SetGNSSDeviation().

◆ AltitudeDeviation

float CaService::AltitudeDeviation
private

Definition at line 103 of file CaService.h.

Referenced by GetReferencePosition(), and SetGNSSDeviation().

◆ CurrentGeoProjection

carla::geom::GeoProjection CaService::CurrentGeoProjection
private

Definition at line 100 of file CaService.h.

Referenced by GetReferencePosition(), and SetActor().

◆ HeadingBias

float CaService::HeadingBias
private

Definition at line 109 of file CaService.h.

Referenced by GetHeading(), and SetGNSSDeviation().

◆ HeadingDeviation

float CaService::HeadingDeviation
private

Definition at line 104 of file CaService.h.

Referenced by GetHeading(), and SetGNSSDeviation().

◆ LatitudeBias

float CaService::LatitudeBias
private

Definition at line 106 of file CaService.h.

Referenced by GetReferencePosition(), and SetGNSSDeviation().

◆ LatitudeDeviation

float CaService::LatitudeDeviation
private

Definition at line 101 of file CaService.h.

Referenced by GetReferencePosition(), and SetGNSSDeviation().

◆ LongitudeBias

float CaService::LongitudeBias
private

Definition at line 107 of file CaService.h.

Referenced by GetReferencePosition(), and SetGNSSDeviation().

◆ LongitudeDeviation

float CaService::LongitudeDeviation
private

Definition at line 102 of file CaService.h.

Referenced by GetReferencePosition(), and SetGNSSDeviation().

◆ mActorOwner

AActor* CaService::mActorOwner {nullptr}
private

◆ mCAMMessage

CAM_t CaService::mCAMMessage
private

Definition at line 128 of file CaService.h.

Referenced by GenerateCamMessage(), GetCamMessage(), and Trigger().

◆ mCarlaActor

FCarlaActor* CaService::mCarlaActor {nullptr}
private

Definition at line 44 of file CaService.h.

Referenced by CarlaActorInitialized(), GetStationType(), and SetActor().

◆ mCarlaEpisode

UCarlaEpisode* CaService::mCarlaEpisode {nullptr}
private

Definition at line 45 of file CaService.h.

Referenced by AddCooperativeAwarenessMessage(), SetActor(), and Trigger().

◆ mDccRestriction

bool CaService::mDccRestriction
private

Definition at line 55 of file CaService.h.

Referenced by CheckTriggeringConditions(), and SetActor().

◆ mElapsedTime

double CaService::mElapsedTime
private

◆ mFixedRate

bool CaService::mFixedRate
private

Definition at line 56 of file CaService.h.

Referenced by CheckTriggeringConditions(), and SetParams().

◆ mGenCam

float CaService::mGenCam
private

Definition at line 52 of file CaService.h.

Referenced by CheckTriggeringConditions(), and SetParams().

◆ mGenCamLowDynamicsCounter

unsigned int CaService::mGenCamLowDynamicsCounter {0}
private

Definition at line 57 of file CaService.h.

Referenced by CheckTriggeringConditions().

◆ mGenCamLowDynamicsLimit

unsigned int CaService::mGenCamLowDynamicsLimit {3}
private

Definition at line 58 of file CaService.h.

Referenced by CheckTriggeringConditions().

◆ mGenCamMax

float CaService::mGenCamMax
private

Definition at line 51 of file CaService.h.

Referenced by CheckTriggeringConditions(), SetActor(), and SetParams().

◆ mGenCamMin

float CaService::mGenCamMin
private

Definition at line 50 of file CaService.h.

Referenced by CheckTriggeringConditions(), and SetParams().

◆ mGenDeltaTimeMod

float CaService::mGenDeltaTimeMod
private

Definition at line 54 of file CaService.h.

◆ mGenerationDelta0

std::chrono::milliseconds CaService::mGenerationDelta0
private

Definition at line 68 of file CaService.h.

Referenced by AddCooperativeAwarenessMessage(), and CaService().

◆ mGenerationInterval

float CaService::mGenerationInterval
private

Definition at line 59 of file CaService.h.

Referenced by SetActor(), and Trigger().

◆ mLastCamHeading

FVector CaService::mLastCamHeading
private

Definition at line 67 of file CaService.h.

Referenced by CheckHeadingDelta(), GenerateCamMessage(), and SetActor().

◆ mLastCamPosition

FVector CaService::mLastCamPosition
private

Definition at line 65 of file CaService.h.

Referenced by CheckPositionDelta(), GenerateCamMessage(), and SetActor().

◆ mLastCamSpeed

float CaService::mLastCamSpeed
private

Definition at line 66 of file CaService.h.

Referenced by CheckSpeedDelta(), GenerateCamMessage(), and SetActor().

◆ mLastCamTimeStamp

float CaService::mLastCamTimeStamp
private

Definition at line 48 of file CaService.h.

Referenced by CheckTriggeringConditions(), GenerateCamMessage(), SetActor(), and Trigger().

◆ mLastLowCamTimeStamp

float CaService::mLastLowCamTimeStamp
private

Definition at line 49 of file CaService.h.

Referenced by AddCooperativeAwarenessMessage(), and SetActor().

◆ mMessageId

const long CaService::mMessageId = ITSContainer::messageID_cam
private

Definition at line 83 of file CaService.h.

Referenced by CreateITSPduHeader().

◆ mProtocolVersion

const long CaService::mProtocolVersion = 2
private

Definition at line 82 of file CaService.h.

Referenced by CreateITSPduHeader().

◆ mRandomEngine

URandomEngine* CaService::mRandomEngine
private

◆ mStationId

long CaService::mStationId
private

Definition at line 84 of file CaService.h.

Referenced by CreateITSPduHeader(), and SetActor().

◆ mStationType

long CaService::mStationType
private

Definition at line 85 of file CaService.h.

Referenced by AddBasicContainer(), GetVehicleRole(), SetActor(), and Trigger().

◆ mVehicle

ACarlaWheeledVehicle* CaService::mVehicle {nullptr}
private

◆ mWorld

UWorld* CaService::mWorld {nullptr}
private

Definition at line 46 of file CaService.h.

Referenced by GetReferencePosition(), and SetActor().

◆ PrevDeltaTime

float CaService::PrevDeltaTime
private

Used to compute the acceleration.

Definition at line 96 of file CaService.h.

Referenced by ComputeAccelerometer(), and SetActor().

◆ PrevLocation

std::array<FVector, 2> CaService::PrevLocation
private

Used to compute the acceleration.

Definition at line 93 of file CaService.h.

Referenced by ComputeAccelerometer(), and SetActor().

◆ StdDevAccel

FVector CaService::StdDevAccel
private

Standard deviation for acceleration settings.

Definition at line 90 of file CaService.h.

Referenced by ComputeAccelerometerNoise(), and SetAccelerationStandardDeviation().

◆ VehicleHeading

FVector CaService::VehicleHeading
private

Definition at line 63 of file CaService.h.

Referenced by CheckHeadingDelta(), GenerateCamMessage(), and SetActor().

◆ VehiclePosition

FVector CaService::VehiclePosition
private

Definition at line 62 of file CaService.h.

Referenced by CheckPositionDelta(), GenerateCamMessage(), and SetActor().

◆ VehicleSpeed

float CaService::VehicleSpeed
private

Definition at line 61 of file CaService.h.

Referenced by CheckSpeedDelta(), GenerateCamMessage(), and SetActor().

◆ VelocityDeviation

float CaService::VelocityDeviation
private

Definition at line 113 of file CaService.h.

Referenced by ComputeSpeed(), and SetVelDeviation().

◆ YawrateBias

float CaService::YawrateBias
private

Definition at line 119 of file CaService.h.

Referenced by ComputeYawNoise(), and SetYawrateDeviation().

◆ YawrateDeviation

float CaService::YawrateDeviation
private

Definition at line 118 of file CaService.h.

Referenced by ComputeYawNoise(), and SetYawrateDeviation().


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