Agrarsense
Public Member Functions | Protected Member Functions | Protected Attributes | Private Member Functions | Private Attributes | List of all members
ATransformSensor Class Reference

#include <TransformSensor.h>

Inheritance diagram for ATransformSensor:
Inheritance graph
[legend]
Collaboration diagram for ATransformSensor:
Collaboration graph
[legend]

Public Member Functions

 ATransformSensor (const FObjectInitializer &ObjectInitializer)
 
void Init (FTransformSensorParameters Params, bool SimulateSensor=true)
 
virtual ESensorTypes GetSensorType () const override
 
- Public Member Functions inherited from ASensor
 ASensor (const FObjectInitializer &ObjectInitializer)
 
FString ExportToJsonFile (const FString &FileName)
 
virtual ESensorTypes GetSensorType () const
 
FString GetSensorIdentifier () const
 
void SetSensorIdentifier (const FString newIdentifier)
 
FString GetSensorName () const
 
virtual FString GetParametersAsString () const
 
AVehicleIsAttachedToVehicle () const
 
void SetSensorName (const FString newName)
 
FString GetTopicName ()
 
UTopic * GetROSTopic () const
 
void SetSimulateSensor (bool SimulateSensor)
 
bool CanSimulateSensor () const
 
ASensorModelGetSensorModel () const
 
void SetSensorModel (ASensorModel *NewSensorModel)
 
FORCEINLINE bool IsROSConnected () const
 
UROSIntegrationGameInstance * GetROSGameInstance () const
 
virtual FString GetActorID_Implementation () const override
 
virtual FString GetActorName_Implementation () const override
 
virtual FString GetActorInformation_Implementation () const override
 
virtual void SetActorName_Implementation (const FString &NewActorName) override
 
virtual void SetActorIDAndName_Implementation (const FString &NewActorName, const FString &NewID) override
 
void SetParentActorPtr (AActor *ParentActorPtr)
 
- Public Member Functions inherited from IActorInformation
FString GetActorID () const
 
FString GetActorName () const
 
FString GetActorInformation () const
 
void SetActorName (const FString &NewActorName)
 
void SetActorIDAndName (const FString &NewActorName, const FString &NewID)
 

Protected Member Functions

virtual void BeginPlay () override
 
virtual void EndPlay (const EEndPlayReason::Type EndPlayReason) override
 
virtual void CreateROSTopic () override
 
virtual void DestroyROSTopic () override
 
void CreateDataSavePath () override
 
- Protected Member Functions inherited from ASensor
virtual void BeginPlay () override
 
virtual void EndPlay (const EEndPlayReason::Type EndPlayReason) override
 
FString CreateTimeStampString () const
 
virtual void CreateROSTopic ()
 
virtual void DestroyROSTopic ()
 
virtual void CreateDataSavePath ()
 
bool IsLogFileCreated ()
 
virtual void CreateLogFile ()
 
void WriteToLogFile (const FString &Message)
 

Protected Attributes

FTransformSensorParameters Parameters
 
- Protected Attributes inherited from ASensor
UTopic * ROSTopic = nullptr
 
bool SendDataToROS = true
 
ULogFileLogFile = nullptr
 
AActor * ParentActor = nullptr
 
FString FileSavePath
 
UROSIntegrationGameInstance * ROSInstance = nullptr
 

Private Member Functions

void TickParallel (float DeltaTime)
 
void SendTransformDataToROS (const FVector &Translation, const FQuat &Rotation)
 
void SendGpsDataToROS (const FVector &ActorPosition)
 
void SaveTransformMetaDataToDisk (const FVector &Translation, const FQuat &Rotation)
 
void CreateLogFile () override
 

Private Attributes

TSharedPtr< ROSMessages::geometry_msgs::Transform > TransformMessage
 
TSharedPtr< ROSMessages::sensor_msgs::NavSatFix > NavSatFixMessage
 
FVector PreviousPosition = FVector(0.0f, 0.0f, 0.0f)
 
FQuat PreviousRotation = FQuat(0.0f, 0.0f, 0.0f, 0.0f)
 
FTickEntry TickEntry
 
UTopic * NavSatFixTopic = nullptr
 
AGeoReferencingSystem * GeoReferencingSystem = nullptr
 
float TimeSinceLastPublish = 0.0f
 

Additional Inherited Members

- Static Public Member Functions inherited from ASensor
static void HideComponentForAllCameras (UPrimitiveComponent *PrimitiveComponent)
 
static TMap< FString, FColor > GetSemanticColors ()
 
static TArray< TWeakObjectPtr< UPrimitiveComponent > > GetComponentsToHide ()
 
- Static Public Member Functions inherited from IActorInformation
static void SetAndValidateActorIDAndName (FString &ActorName, FString &ActorID, TWeakObjectPtr< AActor > Actor)
 
static bool DestroyActorByID (const FString &ID)
 
static AActor * GetActorByID (const FString &ID)
 
template<typename T >
static TArray< T * > GetActorsWithInterface ()
 
static void PrintAllIds ()
 
- Public Attributes inherited from ASensor
FSensorDestroy OnSensorDestroy
 
FString AttachedToComponent
 
FName AttachedToBone
 
- Static Protected Member Functions inherited from ASensor
template<typename InStructType >
static FString StructToString (const InStructType &InStruct)
 
- Static Protected Attributes inherited from ASensor
static FPrimitiveAdded OnPrimitiveAdded
 
static const FName NiagaraPointsInt = "User.PointCount"
 
static const FName NiagaraHitPoints = "User.HitPoints"
 
static const FName NiagaraHitColors = "User.HitColors"
 
static const FName NiagaraPointsFloat = "User.Test"
 

Detailed Description

Definition at line 26 of file TransformSensor.h.

Constructor & Destructor Documentation

◆ ATransformSensor()

ATransformSensor::ATransformSensor ( const FObjectInitializer &  ObjectInitializer)

Definition at line 16 of file TransformSensor.cpp.

16 : Super(ObjectInitializer)
17{
18 // TickManager handles this Actor ticking
19 PrimaryActorTick.bCanEverTick = false;
20}

Member Function Documentation

◆ BeginPlay()

void ATransformSensor::BeginPlay ( )
overrideprotectedvirtual

Reimplemented from ASensor.

Definition at line 47 of file TransformSensor.cpp.

48{
49 Super::BeginPlay();
50
51 SetActorEnableCollision(false);
52
53 TickEntry = ATickManager::AddTick(this, BindTick(this, &ATransformSensor::TickParallel), ETickType::LateTickParallel);
54}
static auto BindTick(ObjectType *Object, FunctionType Function)
Definition: TickManager.h:162
static FTickEntry AddTick(UObject *Object, std::function< void(float)> Function, ETickType Type)
Definition: TickManager.cpp:51
FTickEntry TickEntry
void TickParallel(float DeltaTime)

References ATickManager::AddTick(), BindTick(), TickEntry, and TickParallel().

◆ CreateDataSavePath()

void ATransformSensor::CreateDataSavePath ( )
overrideprotectedvirtual

Creates data save path for this sensor. Can be overriden if needed.

Reimplemented from ASensor.

Definition at line 279 of file TransformSensor.cpp.

280{
281 if (!FileSavePath.IsEmpty())
282 {
283 return;
284 }
285
286 const FString DataLocation = UAgrarsensePaths::GetDataFolder();
287
288 // Default save path
289 FileSavePath = DataLocation + GetActorID_Implementation() + "/";
290
292 {
293 // If sensor is attached to vehicle, save data to vehicle folder
294 const FString VehicleName = Vehicle->GetActorID_Implementation();
295 FileSavePath = DataLocation + VehicleName;
296 }
297 else if (ParentActor)
298 {
299 if (ASensor* ParentSensor = Cast<ASensor>(ParentActor))
300 {
301 if (AVehicle* SensorVehicle = ParentSensor->IsAttachedToVehicle())
302 {
303 // If this TransformSensor is attached to a sensor that's attached to a vehicle,
304 // save data to Vehicle/Sensor folder
305 const FString VehicleName = SensorVehicle->GetActorID_Implementation();
306 const FString ParentSensorName = ParentSensor->GetActorID_Implementation();
307 FileSavePath = DataLocation + VehicleName + "/" + ParentSensorName;
308 }
309 }
310 }
311}
Definition: Sensor.h:45
AActor * ParentActor
Definition: Sensor.h:370
AVehicle * IsAttachedToVehicle() const
Definition: Sensor.cpp:152
virtual FString GetActorID_Implementation() const override
Definition: Sensor.h:216
FString FileSavePath
Definition: Sensor.h:372
static FString GetDataFolder()

References ASensor::FileSavePath, ASensor::GetActorID_Implementation(), UAgrarsensePaths::GetDataFolder(), ASensor::IsAttachedToVehicle(), ASensor::ParentActor, and Vehicle.

Referenced by CreateLogFile().

◆ CreateLogFile()

void ATransformSensor::CreateLogFile ( )
overrideprivatevirtual

Create Text file for this sensor if it has not been created already. Text file will be created to ROOT/Data/Run/Logs directory. Filename will be SensorName_ID_UnixTimestamp.txt Can be overriden by individual sensor if needed.

Reimplemented from ASensor.

Definition at line 237 of file TransformSensor.cpp.

238{
240 {
241 return;
242 }
243
245
246 FLogFileSettings Settings;
249 Settings.QueueLength = MAX_int32; // Only write the log after destroying the sensor
250 Settings.KeepFileOpen = false;
251 Settings.Timestamp = false;
252 Settings.OverrideFilePath = true;
253 Settings.FilePath = FileSavePath;
254
255 LogFile = NewObject<ULogFile>(ULogFile::StaticClass());
256 if (IsValid(LogFile))
257 {
258 FString Prefix;
260 {
261 Prefix = Vehicle->GetActorID_Implementation();
262 }
263 FString FileName = Prefix.IsEmpty() ? TEXT("transform") : Prefix + TEXT("_transform");
264
265 LogFile->Create(FileName, Settings);
266
267 AGeoReferencingSystem* GeoRef = AGeoReferencingSystem::GetGeoReferencingSystem(GetWorld());
268 if (GeoRef)
269 {
270 WriteToLogFile("timestamp, X location, Y location, Z location, yaw rotation, pitch rotation, roll rotation, GPS latitude, GPS longitude, GPS altitude");
271 }
272 else
273 {
274 WriteToLogFile("timestamp, X location, Y location, Z location, yaw rotation, pitch rotation, roll rotation");
275 }
276 }
277}
ULogFile * LogFile
Definition: Sensor.h:367
void WriteToLogFile(const FString &Message)
Definition: Sensor.cpp:295
void CreateDataSavePath() override
FTransformSensorParameters Parameters
void Create(const FString &FileNameWithoutExtension, FLogFileSettings Settings)
Definition: LogFile.cpp:40
bool KeepFileOpen
Definition: LogFile.h:42
bool Timestamp
Definition: LogFile.h:39
FString FilePath
Definition: LogFile.h:54
FFileWriteOptions FileWriteOptions
Definition: LogFile.h:45
int32 QueueLength
Definition: LogFile.h:48
bool OverrideFilePath
Definition: LogFile.h:51
FFileCreationOptions FileCreationOptions
Definition: LogFile.h:36

References ULogFile::Create(), CreateDataSavePath(), FLogFileSettings::FileCreationOptions, FLogFileSettings::FilePath, ASensor::FileSavePath, FLogFileSettings::FileWriteOptions, ASensor::IsAttachedToVehicle(), FLogFileSettings::KeepFileOpen, ASensor::LogFile, FLogFileSettings::OverrideFilePath, Overwrite, Parameters, Queue, FLogFileSettings::QueueLength, FTransformSensorParameters::SaveTransformDataToDisk, FLogFileSettings::Timestamp, Vehicle, and ASensor::WriteToLogFile().

Referenced by Init().

◆ CreateROSTopic()

void ATransformSensor::CreateROSTopic ( )
overrideprotectedvirtual

Creates ROS Topic for this sensor. Can be overriden by individual sensor if needed.

Reimplemented from ASensor.

Definition at line 69 of file TransformSensor.cpp.

70{
71 Super::CreateROSTopic();
72
73 GeoReferencingSystem = AGeoReferencingSystem::GetGeoReferencingSystem(GetWorld());
74
75 // If map has been georeferenced, create gnss and navsatfix topics.
77 {
78 FString BaseTopicName = FString::Printf(TEXT("/agrarsense/out/sensors/%s"), *GetSensorIdentifier());
79 FString NavSatFixTopicName;
80
81 int32 LastSlashIndex = BaseTopicName.Find(TEXT("/"), ESearchCase::IgnoreCase, ESearchDir::FromEnd);
82 if (LastSlashIndex != INDEX_NONE)
83 {
84 NavSatFixTopicName = BaseTopicName.Left(LastSlashIndex) + TEXT("/navsatfix");
85 }
86 else
87 {
88 NavSatFixTopicName = BaseTopicName + TEXT("/navsatfix");
89 }
90
91 NavSatFixTopic = NewObject<UTopic>(UTopic::StaticClass());
93 {
94 NavSatFixTopic->Init(ROSInstance->ROSIntegrationCore, NavSatFixTopicName, TEXT("sensor_msgs/NavSatFix"));
95 NavSatFixTopic->Advertise();
96 }
97 }
98}
UROSIntegrationGameInstance * ROSInstance
Definition: Sensor.h:375
FString GetSensorIdentifier() const
Definition: Sensor.h:75
UTopic * NavSatFixTopic
AGeoReferencingSystem * GeoReferencingSystem

References GeoReferencingSystem, ASensor::GetSensorIdentifier(), NavSatFixTopic, and ASensor::ROSInstance.

Referenced by Init().

◆ DestroyROSTopic()

void ATransformSensor::DestroyROSTopic ( )
overrideprotectedvirtual

Destroy created ROS Topic. Can be overriden by individual sensor if needed.

Reimplemented from ASensor.

Definition at line 100 of file TransformSensor.cpp.

101{
102 if (NavSatFixTopic)
103 {
104 NavSatFixTopic->Unadvertise();
105 NavSatFixTopic->Unsubscribe();
106 NavSatFixTopic->MarkAsDisconnected();
107 NavSatFixTopic->ConditionalBeginDestroy();
108 NavSatFixTopic = nullptr;
109 }
110
111 if (ROSTopic)
112 {
113 ROSTopic->Unadvertise();
114 ROSTopic->Unsubscribe();
115 ROSTopic->MarkAsDisconnected();
116 ROSTopic->ConditionalBeginDestroy();
117 ROSTopic = nullptr;
118 }
119}
UTopic * ROSTopic
Definition: Sensor.h:361

References NavSatFixTopic, and ASensor::ROSTopic.

Referenced by EndPlay().

◆ EndPlay()

void ATransformSensor::EndPlay ( const EEndPlayReason::Type  EndPlayReason)
overrideprotectedvirtual

Reimplemented from ASensor.

Definition at line 56 of file TransformSensor.cpp.

57{
59
61
63 TransformMessage.Reset();
64 NavSatFixMessage.Reset();
65
66 Super::EndPlay(EndPlayReason);
67}
static void RemoveTick(FTickEntry TickEntry)
Definition: TickManager.cpp:80
TSharedPtr< ROSMessages::geometry_msgs::Transform > TransformMessage
TSharedPtr< ROSMessages::sensor_msgs::NavSatFix > NavSatFixMessage
virtual void DestroyROSTopic() override

References FTransformSensorParameters::Clear(), DestroyROSTopic(), NavSatFixMessage, Parameters, ATickManager::RemoveTick(), TickEntry, and TransformMessage.

◆ GetSensorType()

virtual ESensorTypes ATransformSensor::GetSensorType ( ) const
inlineoverridevirtual

Get type of the sensor

Returns
Sensor's type

Reimplemented from ASensor.

Definition at line 40 of file TransformSensor.h.

41 {
43 }

References Transform.

◆ Init()

void ATransformSensor::Init ( FTransformSensorParameters  Params,
bool  SimulateSensor = true 
)

Definition at line 22 of file TransformSensor.cpp.

23{
24 SetActorEnableCollision(false);
25
26 SetSimulateSensor(SimulateSensor);
27 Parameters = Params;
28
29 ROSMessages::geometry_msgs::Transform transformMsg;
30 TransformMessage = MakeShared<ROSMessages::geometry_msgs::Transform>(transformMsg);
31
32 NavSatFixMessage = MakeShared<ROSMessages::sensor_msgs::NavSatFix>();
33 NavSatFixMessage->header.frame_id = "world";
34 NavSatFixMessage->position_covariance = {
35 1.0, 0, 0,
36 0, 1.0, 0,
37 0, 0, 1.0
38 };
39 NavSatFixMessage->position_covariance_type = NavSatFixMessage->CovarianceType::COVARIANCE_TYPE_DIAGONAL_KNOWN;
40 NavSatFixMessage->status.status = NavSatFixMessage->status.STATUS_FIX;
41 NavSatFixMessage->status.service = NavSatFixMessage->status.SERVICE_GPS;
42
45}
void SetSimulateSensor(bool SimulateSensor)
Definition: Sensor.h:160
void CreateLogFile() override
virtual void CreateROSTopic() override

References CreateLogFile(), CreateROSTopic(), NavSatFixMessage, Parameters, ASensor::SetSimulateSensor(), and TransformMessage.

Referenced by USensorFactory::SpawnTransformSensor().

◆ SaveTransformMetaDataToDisk()

void ATransformSensor::SaveTransformMetaDataToDisk ( const FVector &  Translation,
const FQuat &  Rotation 
)
private

Definition at line 203 of file TransformSensor.cpp.

204{
206 {
207 return;
208 }
209
210 const FRotator ActorRotation = Rotation.Rotator();
211
212 FString MetaData;
213
214 FString TimeStamp = CreateTimeStampString();
215
217 {
218 FGeographicCoordinates GeographicCoordinates = UCoordinateConversionUtilities::UnrealToGeographicCoordinates(GeoReferencingSystem, ActorPosition);
219 const double Latitude = GeographicCoordinates.Latitude;
220 const double Longitude = GeographicCoordinates.Longitude;
221 const double Altitude = GeographicCoordinates.Altitude;
222
223 MetaData = FString::Printf(TEXT("%s, %.2f, %.2f, %.2f, %.2f, %.2f, %.2f, %.8f, %.8f, %.8f"), *TimeStamp, ActorPosition.X, ActorPosition.Y, ActorPosition.Z,
224 ActorRotation.Pitch, ActorRotation.Yaw, ActorRotation.Roll,
225 GeographicCoordinates.Latitude, GeographicCoordinates.Longitude, GeographicCoordinates.Altitude);
226 }
227 else
228 {
229 MetaData = FString::Printf(TEXT("%s, %.2f, %.2f, %.2f, %.2f, %.2f, %.2f"), *TimeStamp, ActorPosition.X, ActorPosition.Y, ActorPosition.Z,
230 ActorRotation.Pitch, ActorRotation.Yaw, ActorRotation.Roll);
231 }
232
233 // Write to the log file (this is written after sensor is destroyed)
234 WriteToLogFile(MetaData);
235}
FString CreateTimeStampString() const
Definition: Sensor.cpp:323
static FGeographicCoordinates UnrealToGeographicCoordinates(AGeoReferencingSystem *GeoReferencingSystem, const FVector &Position)

References ASensor::CreateTimeStampString(), GeoReferencingSystem, ASensor::LogFile, Parameters, FTransformSensorParameters::SaveTransformDataToDisk, UCoordinateConversionUtilities::UnrealToGeographicCoordinates(), and ASensor::WriteToLogFile().

Referenced by TickParallel().

◆ SendGpsDataToROS()

void ATransformSensor::SendGpsDataToROS ( const FVector &  ActorPosition)
private

Definition at line 178 of file TransformSensor.cpp.

179{
181 {
182 return;
183 }
184
185 // Convert Actor position to geographic coordinates
186 FGeographicCoordinates GeographicCoordinates = UCoordinateConversionUtilities::UnrealToGeographicCoordinates(GeoReferencingSystem, ActorPosition);
187 const double Latitude = GeographicCoordinates.Latitude;
188 const double Longitude = GeographicCoordinates.Longitude;
189 const double Altitude = GeographicCoordinates.Altitude;
190
191 // gps data as NavSatFix ROS message
192 if (NavSatFixTopic && NavSatFixMessage.IsValid())
193 {
194 NavSatFixMessage->latitude = Latitude;
195 NavSatFixMessage->longitude = Longitude;
196 NavSatFixMessage->altitude = Altitude;
197 NavSatFixMessage->header.time = FROSTime::Now();
198
200 }
201}

References GeoReferencingSystem, NavSatFixMessage, NavSatFixTopic, and UCoordinateConversionUtilities::UnrealToGeographicCoordinates().

Referenced by TickParallel().

◆ SendTransformDataToROS()

void ATransformSensor::SendTransformDataToROS ( const FVector &  Translation,
const FQuat &  Rotation 
)
private

Definition at line 166 of file TransformSensor.cpp.

167{
168 UTopic* Topic = GetROSTopic();
169 if (Topic && TransformMessage.IsValid())
170 {
171 TransformMessage->translation = Translation;
172 TransformMessage->rotation = Rotation;
173
174 Topic->Publish(TransformMessage);
175 }
176}
UTopic * GetROSTopic() const
Definition: Sensor.h:150

References ASensor::GetROSTopic(), and TransformMessage.

Referenced by TickParallel().

◆ TickParallel()

void ATransformSensor::TickParallel ( float  DeltaTime)
private

Definition at line 121 of file TransformSensor.cpp.

122{
123 if (!CanSimulateSensor())
124 {
125 return;
126 }
127
128 FTransform CurrentTransform;
129 const bool HasValidTransform =
130 (Parameters.UseOwningActorTransform && Parameters.OwningActor && (CurrentTransform = Parameters.OwningActor->GetTransform(), true)) ||
131 (Parameters.PrimitiveComponent && Parameters.UsePrimiteRelativeTransform && (CurrentTransform = Parameters.PrimitiveComponent->GetRelativeTransform(), true)) ||
132 (Parameters.PrimitiveComponent && !Parameters.UsePrimiteRelativeTransform && (CurrentTransform = Parameters.PrimitiveComponent->GetComponentTransform(), true));
133
134 if (!HasValidTransform)
135 {
136 return;
137 }
138
139 const FVector CurrentPosition = CurrentTransform.GetLocation();
140 const FQuat CurrentRotation = CurrentTransform.GetRotation();
141
142 const float PositionToleranceSq = 0.01f;
143 const float RotationTolerance = 0.001f;
144
145 const bool PositionChanged = FVector::DistSquared(CurrentPosition, PreviousPosition) > PositionToleranceSq;
146 const bool RotationChanged = !CurrentRotation.Equals(PreviousRotation, RotationTolerance);
147
148 TimeSinceLastPublish += DeltaTime;
149
150 if (PositionChanged || RotationChanged || TimeSinceLastPublish >= 1.0f)
151 {
153 PreviousPosition = CurrentPosition;
154 PreviousRotation = CurrentRotation;
155
156 if (IsROSConnected())
157 {
158 SendTransformDataToROS(CurrentPosition, CurrentRotation);
159 SendGpsDataToROS(CurrentPosition);
160 }
161
162 SaveTransformMetaDataToDisk(CurrentPosition, CurrentRotation);
163 }
164}
bool CanSimulateSensor() const
Definition: Sensor.h:170
FORCEINLINE bool IsROSConnected() const
Definition: Sensor.h:201
void SendTransformDataToROS(const FVector &Translation, const FQuat &Rotation)
void SendGpsDataToROS(const FVector &ActorPosition)
void SaveTransformMetaDataToDisk(const FVector &Translation, const FQuat &Rotation)
FVector PreviousPosition
UPrimitiveComponent * PrimitiveComponent

References ASensor::CanSimulateSensor(), ASensor::IsROSConnected(), FTransformSensorParameters::OwningActor, Parameters, PreviousPosition, PreviousRotation, FTransformSensorParameters::PrimitiveComponent, SaveTransformMetaDataToDisk(), SendGpsDataToROS(), SendTransformDataToROS(), TimeSinceLastPublish, FTransformSensorParameters::UseOwningActorTransform, and FTransformSensorParameters::UsePrimiteRelativeTransform.

Referenced by BeginPlay().

Member Data Documentation

◆ GeoReferencingSystem

AGeoReferencingSystem* ATransformSensor::GeoReferencingSystem = nullptr
private

Definition at line 88 of file TransformSensor.h.

Referenced by CreateROSTopic(), SaveTransformMetaDataToDisk(), and SendGpsDataToROS().

◆ NavSatFixMessage

TSharedPtr<ROSMessages::sensor_msgs::NavSatFix> ATransformSensor::NavSatFixMessage
private

Definition at line 73 of file TransformSensor.h.

Referenced by EndPlay(), Init(), and SendGpsDataToROS().

◆ NavSatFixTopic

UTopic* ATransformSensor::NavSatFixTopic = nullptr
private

Definition at line 85 of file TransformSensor.h.

Referenced by CreateROSTopic(), DestroyROSTopic(), and SendGpsDataToROS().

◆ Parameters

FTransformSensorParameters ATransformSensor::Parameters
protected

◆ PreviousPosition

FVector ATransformSensor::PreviousPosition = FVector(0.0f, 0.0f, 0.0f)
private

Definition at line 76 of file TransformSensor.h.

Referenced by TickParallel().

◆ PreviousRotation

FQuat ATransformSensor::PreviousRotation = FQuat(0.0f, 0.0f, 0.0f, 0.0f)
private

Definition at line 79 of file TransformSensor.h.

Referenced by TickParallel().

◆ TickEntry

FTickEntry ATransformSensor::TickEntry
private

Definition at line 82 of file TransformSensor.h.

Referenced by BeginPlay(), and EndPlay().

◆ TimeSinceLastPublish

float ATransformSensor::TimeSinceLastPublish = 0.0f
private

Definition at line 90 of file TransformSensor.h.

Referenced by TickParallel().

◆ TransformMessage

TSharedPtr<ROSMessages::geometry_msgs::Transform> ATransformSensor::TransformMessage
private

Definition at line 71 of file TransformSensor.h.

Referenced by EndPlay(), Init(), and SendTransformDataToROS().


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