CARLA
 
载入中...
搜索中...
未找到
Public 成员函数 | 静态 Public 成员函数 | Protected 类型 | Protected 成员函数 | Protected 属性 | Private 属性 | 所有成员列表
ARayCastSemanticLidar类 参考

A ray-cast based Lidar sensor. 更多...

#include <RayCastSemanticLidar.h>

+ 类 ARayCastSemanticLidar 继承关系图:
+ ARayCastSemanticLidar 的协作图:

Public 成员函数

 ARayCastSemanticLidar (const FObjectInitializer &ObjectInitializer)
 
virtual void Set (const FActorDescription &Description) override
 
virtual void Set (const FLidarDescription &LidarDescription)
 
- Public 成员函数 继承自 ASensor
 ASensor (const FObjectInitializer &ObjectInitializer)
 
virtual void BeginPlay ()
 
boost::optional< FActorAttributeGetAttribute (const FString Name)
 
const UCarlaEpisodeGetEpisode () const
 
URandomEngineGetRandomEngine ()
 
int32 GetSeed () const
 
auto GetToken () const
 Return the token that allows subscribing to this sensor's stream.
 
bool IsStreamReady ()
 
FDataStream MoveDataStream ()
 
virtual void OnFirstClientConnected ()
 
virtual void OnLastClientDisconnected ()
 
void PostPhysTickInternal (UWorld *World, ELevelTick TickType, float DeltaSeconds)
 
virtual void PrePhysTick (float DeltaSeconds)
 
void SetDataStream (FDataStream InStream)
 Replace the FDataStream associated with this sensor.
 
void SetEpisode (const UCarlaEpisode &InEpisode)
 
void SetSeed (int32 InSeed)
 
void Tick (const float DeltaTime) final
 

静态 Public 成员函数

static FActorDefinition GetSensorDefinition ()
 

Protected 类型

using FSemanticDetection = carla::sensor::data::SemanticLidarDetection
 
using FSemanticLidarData = carla::sensor::data::SemanticLidarData
 

Protected 成员函数

virtual void ComputeAndSaveDetections (const FTransform &SensorTransform)
 This method uses all the saved FHitResults, compute the RawDetections and then send it to the LidarData structure.
 
void ComputeRawDetection (const FHitResult &HitInfo, const FTransform &SensorTransf, FSemanticDetection &Detection) const
 Compute all raw detection information
 
void CreateLasers ()
 Creates a Laser for each channel.
 
virtual void PostPhysTick (UWorld *World, ELevelTick TickType, float DeltaTime) override
 
virtual void PreprocessRays (uint32_t Channels, uint32_t MaxPointsPerChannel)
 Method that allow to preprocess if the rays will be traced.
 
void ResetRecordedHits (uint32_t Channels, uint32_t MaxPointsPerChannel)
 Clear the recorded data structure
 
bool ShootLaser (const float VerticalAngle, float HorizontalAngle, FHitResult &HitResult, FCollisionQueryParams &TraceParams) const
 Shoot a laser ray-trace, return whether the laser hit something.
 
void SimulateLidar (const float DeltaTime)
 Updates LidarMeasurement with the points read in DeltaTime.
 
void WritePointAsync (uint32_t Channel, FHitResult &Detection)
 Saving the hits the raycast returns per channel
 
- Protected 成员函数 继承自 ASensor
void EndPlay (EEndPlayReason::Type EndPlayReason) override
 
template<typename SensorT >
FAsyncDataStream GetDataStream (const SensorT &Self)
 Return the FDataStream associated with this sensor.
 
void PostActorCreated () override
 

Protected 属性

FLidarDescription Description
 
TArray< float > LaserAngles
 
std::vector< uint32_t > PointsPerChannel
 
std::vector< std::vector< bool > > RayPreprocessCondition
 
std::vector< std::vector< FHitResult > > RecordedHits
 
- Protected 属性 继承自 ASensor
bool bIsActive = false
 
URandomEngineRandomEngine = nullptr
 Random Engine used to provide noise for sensor output.
 
int32 Seed = 123456789
 Seed of the pseudo-random engine.
 

Private 属性

FSemanticLidarData SemanticLidarData
 

详细描述

A ray-cast based Lidar sensor.

在文件 RayCastSemanticLidar.h25 行定义.

成员类型定义说明

◆ FSemanticDetection

在文件 RayCastSemanticLidar.h32 行定义.

◆ FSemanticLidarData

在文件 RayCastSemanticLidar.h31 行定义.

构造及析构函数说明

◆ ARayCastSemanticLidar()

ARayCastSemanticLidar::ARayCastSemanticLidar ( const FObjectInitializer & ObjectInitializer)

在文件 RayCastSemanticLidar.cpp30 行定义.

成员函数说明

◆ ComputeAndSaveDetections()

void ARayCastSemanticLidar::ComputeAndSaveDetections ( const FTransform & SensorTransform)
protectedvirtual

This method uses all the saved FHitResults, compute the RawDetections and then send it to the LidarData structure.

ARayCastLidar 重载.

在文件 RayCastSemanticLidar.cpp187 行定义.

引用了 FLidarDescription::Channels, ComputeRawDetection(), Description, PointsPerChannel, RecordedHits, carla::sensor::data::SemanticLidarData::ResetMemory(), SemanticLidarData, carla::sensor::data::SemanticLidarData::WriteChannelCount() , 以及 carla::sensor::data::SemanticLidarData::WritePointSync().

被这些函数引用 SimulateLidar().

+ 函数调用图:
+ 这是这个函数的调用关系图:

◆ ComputeRawDetection()

void ARayCastSemanticLidar::ComputeRawDetection ( const FHitResult & HitInfo,
const FTransform & SensorTransf,
FSemanticDetection & Detection ) const
protected

Compute all raw detection information

在文件 RayCastSemanticLidar.cpp204 行定义.

引用了 carla::sensor::data::SemanticLidarDetection::cos_inc_angle, FActorRegistry::FindCarlaActor(), FCarlaActor::GetActorId(), UCarlaEpisode::GetActorRegistry(), ASensor::GetEpisode(), carla::sensor::data::SemanticLidarDetection::object_idx, carla::sensor::data::SemanticLidarDetection::object_tag , 以及 carla::sensor::data::SemanticLidarDetection::point.

被这些函数引用 ComputeAndSaveDetections().

+ 函数调用图:
+ 这是这个函数的调用关系图:

◆ CreateLasers()

void ARayCastSemanticLidar::CreateLasers ( )
protected

Creates a Laser for each channel.

在文件 RayCastSemanticLidar.cpp52 行定义.

引用了 FLidarDescription::Channels, Description, LaserAngles, FLidarDescription::LowerFovLimit , 以及 FLidarDescription::UpperFovLimit.

被这些函数引用 Set() , 以及 ARayCastLidar::Set().

+ 这是这个函数的调用关系图:

◆ GetSensorDefinition()

FActorDefinition ARayCastSemanticLidar::GetSensorDefinition ( )
static

在文件 RayCastSemanticLidar.cpp25 行定义.

引用了 UActorBlueprintFunctionLibrary::MakeLidarDefinition().

+ 函数调用图:

◆ PostPhysTick()

void ARayCastSemanticLidar::PostPhysTick ( UWorld * World,
ELevelTick TickType,
float DeltaTime )
overrideprotectedvirtual

重载 ASensor .

ARayCastLidar 重载.

在文件 RayCastSemanticLidar.cpp68 行定义.

引用了 carla::streaming::detail::token_type::get_stream_id(), ASensor::GetDataStream(), carla::ros2::ROS2::GetInstance(), ASensor::GetToken(), PostPhysTick(), SemanticLidarData , 以及 SimulateLidar().

被这些函数引用 PostPhysTick().

+ 函数调用图:
+ 这是这个函数的调用关系图:

◆ PreprocessRays()

void ARayCastSemanticLidar::PreprocessRays ( uint32_t Channels,
uint32_t MaxPointsPerChannel )
protectedvirtual

Method that allow to preprocess if the rays will be traced.

ARayCastLidar 重载.

在文件 RayCastSemanticLidar.cpp171 行定义.

引用了 RayPreprocessCondition.

被这些函数引用 SimulateLidar().

+ 这是这个函数的调用关系图:

◆ ResetRecordedHits()

void ARayCastSemanticLidar::ResetRecordedHits ( uint32_t Channels,
uint32_t MaxPointsPerChannel )
protected

Clear the recorded data structure

在文件 RayCastSemanticLidar.cpp162 行定义.

引用了 RecordedHits.

被这些函数引用 SimulateLidar().

+ 这是这个函数的调用关系图:

◆ Set() [1/2]

void ARayCastSemanticLidar::Set ( const FActorDescription & Description)
overridevirtual

重载 ASensor .

ARayCastLidar 重载.

在文件 RayCastSemanticLidar.cpp36 行定义.

引用了 Set() , 以及 UActorBlueprintFunctionLibrary::SetLidar().

被这些函数引用 Set().

+ 函数调用图:
+ 这是这个函数的调用关系图:

◆ Set() [2/2]

void ARayCastSemanticLidar::Set ( const FLidarDescription & LidarDescription)
virtual

ARayCastLidar 重载.

在文件 RayCastSemanticLidar.cpp44 行定义.

引用了 FLidarDescription::Channels, CreateLasers(), Description, PointsPerChannel , 以及 SemanticLidarData.

+ 函数调用图:

◆ ShootLaser()

bool ARayCastSemanticLidar::ShootLaser ( const float VerticalAngle,
float HorizontalAngle,
FHitResult & HitResult,
FCollisionQueryParams & TraceParams ) const
protected

Shoot a laser ray-trace, return whether the laser hit something.

在文件 RayCastSemanticLidar.cpp231 行定义.

引用了 Description , 以及 FLidarDescription::Range.

被这些函数引用 SimulateLidar().

+ 这是这个函数的调用关系图:

◆ SimulateLidar()

void ARayCastSemanticLidar::SimulateLidar ( const float DeltaTime)
protected

Updates LidarMeasurement with the points read in DeltaTime.

在文件 RayCastSemanticLidar.cpp100 行定义.

引用了 FLidarDescription::Channels, ComputeAndSaveDetections(), Description, carla::sensor::data::SemanticLidarData::GetHorizontalAngle(), FLidarDescription::HorizontalFov, LaserAngles, FLidarDescription::PointsPerSecond, PreprocessRays(), RayPreprocessCondition, ResetRecordedHits(), FLidarDescription::RotationFrequency, SemanticLidarData, carla::sensor::data::SemanticLidarData::SetHorizontalAngle(), ShootLaser(), SimulateLidar(), carla::geom::Math::ToDegrees(), carla::geom::Math::ToRadians() , 以及 WritePointAsync().

被这些函数引用 ARayCastLidar::PostPhysTick(), PostPhysTick() , 以及 SimulateLidar().

+ 函数调用图:
+ 这是这个函数的调用关系图:

◆ WritePointAsync()

void ARayCastSemanticLidar::WritePointAsync ( uint32_t Channel,
FHitResult & Detection )
protected

Saving the hits the raycast returns per channel

在文件 RayCastSemanticLidar.cpp181 行定义.

引用了 DEBUG_ASSERT , 以及 RecordedHits.

被这些函数引用 SimulateLidar().

+ 这是这个函数的调用关系图:

类成员变量说明

◆ Description

FLidarDescription ARayCastSemanticLidar::Description
protected

◆ LaserAngles

TArray<float> ARayCastSemanticLidar::LaserAngles
protected

在文件 RayCastSemanticLidar.h73 行定义.

被这些函数引用 CreateLasers() , 以及 SimulateLidar().

◆ PointsPerChannel

std::vector<uint32_t> ARayCastSemanticLidar::PointsPerChannel
protected

◆ RayPreprocessCondition

std::vector<std::vector<bool> > ARayCastSemanticLidar::RayPreprocessCondition
protected

在文件 RayCastSemanticLidar.h76 行定义.

被这些函数引用 PreprocessRays(), ARayCastLidar::PreprocessRays() , 以及 SimulateLidar().

◆ RecordedHits

std::vector<std::vector<FHitResult> > ARayCastSemanticLidar::RecordedHits
protected

◆ SemanticLidarData

FSemanticLidarData ARayCastSemanticLidar::SemanticLidarData
private

在文件 RayCastSemanticLidar.h80 行定义.

被这些函数引用 ComputeAndSaveDetections(), PostPhysTick(), Set() , 以及 SimulateLidar().


该类的文档由以下文件生成: