22 : Super(ObjectInitializer)
24 PrimaryActorTick.bCanEverTick =
true;
25 RandomEngine = CreateDefaultSubobject<URandomEngine>(TEXT(
"RandomEngine"));
48 FVector ActorLocation = GetActorLocation();
77 #if defined(WITH_ROS2)
79 if (ROS2->IsEnabled())
81 TRACE_CPUPROFILER_EVENT_SCOPE_STR(
"ROS2 Send");
83 AActor* ParentActor = GetAttachParentActor();
84 const FTransform SensorWorldTransform = GetActorTransform();
85 double MgrsOffsetPosition[3] = {0.0, 0.0, 0.0};
88 MgrsOffsetPosition[0] =
static_cast<double>(
MgrsDataAsset->MgrsOffsetPosition.X);
89 MgrsOffsetPosition[1] =
static_cast<double>(
MgrsDataAsset->MgrsOffsetPosition.Y);
90 MgrsOffsetPosition[2] =
static_cast<double>(
MgrsDataAsset->MgrsOffsetPosition.Z);
95 FTransform LocalTransformRelativeToParent = GetActorTransform().GetRelativeTransform(ParentActor->GetActorTransform());
96 ROS2->ProcessDataFromAutowareGNSS(DataStream.GetSensorType(), StreamId, LocalTransformRelativeToParent,
carla::geom::GeoLocation{LatitudeValue, LongitudeValue, AltitudeValue}, SensorWorldTransform, MgrsOffsetPosition,
this);
100 ROS2->ProcessDataFromAutowareGNSS(DataStream.GetSensorType(), StreamId, DataStream.GetSensorTransform(),
carla::geom::GeoLocation{LatitudeValue, LongitudeValue, AltitudeValue}, SensorWorldTransform, MgrsOffsetPosition,
this);
106 TRACE_CPUPROFILER_EVENT_SCOPE_STR(
"AAutowareGnssSensor Stream Send");
118 if (
const auto* WS = Cast<AAutowareWorldSettings>(GetWorld()->GetWorldSettings()))
120 if (WS->MgrsDataAssetSoftPtr.IsNull())
122 UE_LOG(LogCarla, Warning, TEXT(
"MGRS Data Asset SoftPtr not set in WorldSettings."));
129 Data = WS->MgrsDataAssetSoftPtr.LoadSynchronous();
138 Super::Set(ActorDescription);
static bool IsValid(const ACarlaWheeledVehicle *Vehicle)
TObjectPtr< UMgrsDataAsset > MgrsDataAsset
void GetMirrorState(carla::multigpu::SensorState &State) const override
Multi-GPU: the runtime state this sensor starts its next tick from (noise generator,...
void SetAltitudeDeviation(float Value)
carla::geom::GeoProjection CurrentGeoProjection
double GetLatitudeValue() const
float GetLatitudeBias() const
static FActorDefinition GetSensorDefinition()
float GetLongitudeDeviation() const
float GetLongitudeBias() const
float GetAltitudeBias() const
virtual void BeginPlay() override
double GetAltitudeValue() const
void SetLatitudeDeviation(float Value)
double GetLongitudeValue() const
void SetLongitudeBias(float Value)
virtual void PostPhysTick(UWorld *World, ELevelTick TickType, float DeltaSeconds) override
void SetMirrorState(const carla::multigpu::SensorState &State) override
bool IsNoiseErrorEnabled() const
void SetLatitudeBias(float Value)
void SetNoiseErrorActive(const bool bEnabled)
float GetAltitudeDeviation() const
void Set(const FActorDescription &ActorDescription)
float GetLatitudeDeviation() const
AAutowareGnssSensor(const FObjectInitializer &ObjectInitializer)
void SetLongitudeDeviation(float Value)
void SetAltitudeBias(float Value)
FVector LocalToGlobalLocation(const FVector &InLocation) const
auto GetToken() const
Return the token that allows subscribing to this sensor's stream.
FAsyncDataStream GetDataStream(SensorType &&Self)
Return the FDataStream associated with this sensor.
URandomEngine * RandomEngine
Random Engine used to provide noise for sensor output.
static FActorDefinition MakeAutowareGnssDefinition()
static void SetAutowareGnss(const FActorDescription &Description, AAutowareGnssSensor *Gnss)
const carla::geom::GeoProjection & GetGeoProjection() const
Return the geo projection of the map loaded.
static ALargeMapManager * GetLargeMapManager(const UObject *WorldContextObject)
static UCarlaEpisode * GetCurrentEpisode(const UObject *WorldContextObject)
Data Asset containing MGRS-related configuration for Autoware maps.
uint32 GetState() const
The engine's state, to continue its exact sequence elsewhere (a Multi-GPU secondary's mirror of a sen...
float GetNormalDistribution(float Mean, float StandardDeviation)
void SetState(uint32 State)
Continue from State, as GetState returned it; an impossible value is ignored.
static std::shared_ptr< ROS2 > GetInstance()
Serializes a stream endpoint.
const auto & get_stream_id() const
A definition of a Carla Actor with all the variation and attributes.
A description of a Carla Actor with all its variation.
GeoLocation TransformToGeoLocation(const Location &location) const
Transform the given geo location to a location.
One record of frame data packet 27: the runtime state a sensor of the primary starts this frame's tic...