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

实现carla::client::Sensor接口的RSS传感器类 这个类是RssCheck类的代理 更多...

#include <RssSensor.h>

+ 类 carla::client::RssSensor 继承关系图:
+ carla::client::RssSensor 的协作图:

Public 类型

using ActorConstellationCallbackFunctionType
 
- Public 类型 继承自 carla::client::Sensor
using CallbackFunctionType = std::function<void(SharedPtr<sensor::SensorData>)>
 回调函数的类型别名,用于接收传感器数据。
 

Public 成员函数

void AppendRoutingTarget (const ::carla::geom::Transform &routing_target)
 向当前路由目标列表追加一个路由目标 (
 
void DropRoute ()
 drop the current route (
 
const ::ad::rss::world::RssDynamics & GetEgoVehicleDynamics () const
 返回当前自车(ego vehicle)所使用的动力学参数(
 
const ::ad::rss::world::RssDynamics & GetOtherVehicleDynamics () const
 返回当前其他车辆所使用的动力学参数(
 
const ::ad::rss::world::RssDynamics & GetPedestrianDynamics () const
 返回当前行人所使用的动力学参数(
 
const ::carla::rss::RoadBoundariesModeGetRoadBoundariesMode () const
 
const std::vector<::carla::geom::TransformGetRoutingTargets () const
 
bool IsListening () const override
 返回此Sensor实例当前是否正在监听模拟器中的相关传感器
 
void Listen (CallbackFunctionType callback) override
 注册一个回调函数,每次接收到新的测量数据时都会执行该函数。
 
void RegisterActorConstellationCallback (ActorConstellationCallbackFunctionType callback)
 为每个待处理的测量中的每个行为体注册一个回调函数,以便决定RSS传感器相对于自我车辆与行为体星座的操作。
 
void ResetRoutingTargets ()
 重置当前的路由目标 (
 
 RssSensor (ActorInitializer init)
 构造函数

 
void SetEgoVehicleDynamics (const ::ad::rss::world::RssDynamics &ego_dynamics)
 设置自车(ego vehicle)将要使用的动力学参数(
 
void SetLogLevel (const uint8_t &log_level)
 设置当前的日志级别
 
void SetMapLogLevel (const uint8_t &map_log_level)
 设置当前的地图日志级别
 
void SetOtherVehicleDynamics (const ::ad::rss::world::RssDynamics &other_vehicle_dynamics)
 设置其他车辆所使用的动力学参数(
 
void SetPedestrianDynamics (const ::ad::rss::world::RssDynamics &pedestrian_dynamics)
 设置行人所使用的动力学参数(
 
void SetRoadBoundariesMode (const ::carla::rss::RoadBoundariesMode &road_boundaries_mode)
 设置当前用于遵守道路边界的模式 (
 
void Stop () override
 停止监听新的测量数据。
 
 ~RssSensor ()
 析构函数

 
- Public 成员函数 继承自 carla::client::Sensor
 Actor (ActorInitializer init)
 使用Actor的构造函数初始化Sensor对象。
 
- Public 成员函数 继承自 carla::client::Actor
 Actor (ActorInitializer init)
 
void AddAngularImpulse (const geom::Vector3D &vector)
 对行为体施加角冲量。
 
void AddForce (const geom::Vector3D &force)
 在行为体的质心施加力。
 
void AddForce (const geom::Vector3D &force, const geom::Vector3D &location)
 在某个位置对行为体施加力。
 
void AddImpulse (const geom::Vector3D &impulse, const geom::Vector3D &location)
 在某个位置对行为体施加冲量。
 
void AddImpulse (const geom::Vector3D &vector)
 在行为体的质心施加冲量。
 
void AddTorque (const geom::Vector3D &vector)
 对行为体施加扭矩。
 
virtual bool Destroy ()
 告诉模拟器销毁该行为体,并返回行为体是否成功被销毁的结果。
 
void DisableConstantVelocity ()
 禁用恒定速度模式。
 
void EnableConstantVelocity (const geom::Vector3D &vector)
 启用恒定速度模式。
 
geom::Vector3D GetAcceleration () const
 返回行为体的当前3D加速度。
 
rpc::ActorState GetActorState () const
 
geom::Vector3D GetAngularVelocity () const
 返回行为体的当前3D角速度。
 
std::vector< std::string > GetBoneNames () const
 
std::vector< geom::TransformGetBoneRelativeTransforms () const
 
std::vector< geom::TransformGetBoneWorldTransforms () const
 
std::vector< std::string > GetComponentNames () const
 
geom::Transform GetComponentRelativeTransform (const std::string componentName) const
 获取指定组件相对于Actor的相对坐标变换。 这个函数返回一个包含位置、旋转和平移信息的Transform对象, 表示指定组件相对于Actor原点的位置和方向。
 
geom::Transform GetComponentWorldTransform (const std::string componentName) const
 获取指定组件的世界坐标变换。 这个函数返回一个包含位置、旋转和平移信息的Transform对象, 表示指定组件在世界坐标系中的位置和方向。
 
geom::Location GetLocation () const
 返回行为体的当前位置。
 
std::vector< std::string > GetSocketNames () const
 
std::vector< geom::TransformGetSocketRelativeTransforms () const
 
std::vector< geom::TransformGetSocketWorldTransforms () const
 
geom::Transform GetTransform () const
 返回行为体的当前变换(位置和方向)。
 
geom::Vector3D GetVelocity () const
 返回行为体的当前3D速度。
 
bool IsActive () const
 
bool IsAlive () const
 
bool IsDormant () const
 
const auto & Serialize () const
 
void SetActorDead ()
 将行为体标记为已死亡并开始其生命周期。
 
void SetCollisions (bool enabled=true)
 启用或禁用该行为体的碰撞。
 
void SetEnableGravity (bool enabled=true)
 启用或禁用该行为体的重力。
 
void SetLocation (const geom::Location &location)
 将行为体传送到 location。
 
void SetSimulatePhysics (bool enabled=true)
 启用或禁用该行为体的物理模拟。
 
void SetTargetAngularVelocity (const geom::Vector3D &vector)
 在应用物理之前设置行为体的角速度。
 
void SetTargetVelocity (const geom::Vector3D &vector)
 在应用物理之前设置行为体的速度。
 
void SetTransform (const geom::Transform &transform)
 将行为体传送并旋转到 transform。
 
virtual ~Actor ()=default
 
- Public 成员函数 继承自 carla::client::detail::ActorState
const std::vector< ActorAttributeValue > & GetAttributes () const
 
const std::string & GetDisplayId () const
 
ActorId GetId () const
 
SharedPtr< ActorGetParent () const
 
ActorId GetParentId () const
 
const std::vector< uint8_t > & GetSemanticTags () const
 
const std::string & GetTypeId () const
 
World GetWorld () const
 

Private 成员函数

void TickRssSensor (const client::Timestamp &timestamp, CallbackFunctionType callback)
 传感器滴答(tick,可以理解为周期性触发的操作)回调函数,实际执行传感器相关逻辑的函数
 
void TickRssSensorThreadLocked (const client::Timestamp &timestamp, SharedPtr< carla::client::ActorList > actors, CallbackFunctionType callback)
 

Private 属性

RSS行为体星座(周围物体分布相关)回调函数,用于在相关场景下执行自定义的回调逻辑 bool _drop_route
 reqired to store DropRoute() requests until next sensor tick
 
std::size_t _last_processed_frame
 用于存储DropRoute()请求的标志,直到下一次传感器滴答时处理,用于控制路由丢弃相关逻辑的标记
 
std::size_t _on_tick_register_id
 the id got when registering for the on tick event
 
std::mutex _processing_lock
 注册滴答事件(on tick event,周期性触发的事件)时获取的ID,用于标识该注册操作等相关用途
 
ActorConstellationCallbackFunctionType _rss_actor_constellation_callback
 一些用于调试的时间记录,可能记录RSS检查等操作的耗时情况等,以列表形式存储 / the rss actor constellation callback function
 
std::shared_ptr<::carla::rss::RssCheck_rss_check
 
std::list< double > _rss_check_timings
 用于异步滴答线程的未来(future,用于异步获取线程执行结果等操作)对象
 
std::future< void > _tick_future
 互斥锁,用于保护实际的RSS处理过程,防止在处理每帧数据耗时过长等情况下出现并发问题
 

静态 Private 属性

static std::atomic_uint _global_map_initialization_counter_ {0u}
 上一次处理的帧编号,用于记录处理进度等相关情况
 

额外继承的成员函数

- Protected 成员函数 继承自 carla::client::detail::ActorState
 ActorState (rpc::Actor description, EpisodeProxy episode)
 
const rpc::ActorGetActorDescription () const
 
const geom::BoundingBoxGetBoundingBox () const
 
EpisodeProxyGetEpisode ()
 
const EpisodeProxyGetEpisode () const
 

详细描述

实现carla::client::Sensor接口的RSS传感器类 这个类是RssCheck类的代理

在文件 LibCarla/source/carla/rss/RssSensor.h48 行定义.

成员类型定义说明

◆ ActorConstellationCallbackFunctionType

初始值:
boost::shared_ptr< T > SharedPtr
使用这个SharedPtr(boost::shared_ptr)以保持与boost::python的兼容性, 但未来如果可能的话,我们希望能为std::shared_ptr制作一个Python适配器。
Definition Memory.h:19
Struct defining the configuration for RSS processing of a given actor
Definition RssCheck.h:112

在文件 LibCarla/source/carla/rss/RssSensor.h54 行定义.

构造及析构函数说明

◆ RssSensor()

carla::client::RssSensor::RssSensor ( ActorInitializer init)
explicit

构造函数

在文件 LibCarla/source/carla/rss/RssSensor.cpp27 行定义.

◆ ~RssSensor()

carla::client::RssSensor::~RssSensor ( )

析构函数

在文件 LibCarla/source/carla/rss/RssSensor.cpp29 行定义.

引用了 IsListening() , 以及 Stop().

+ 函数调用图:

成员函数说明

◆ AppendRoutingTarget()

void carla::client::RssSensor::AppendRoutingTarget ( const ::carla::geom::Transform & routing_target)

向当前路由目标列表追加一个路由目标 (

参见
同样参见 RssCheck::AppendRoutingTarget())

在文件 LibCarla/source/carla/rss/RssSensor.cpp258 行定义.

引用了 _rss_check, carla::client::detail::ActorState::GetDisplayId() , 以及 carla::log_error().

+ 函数调用图:

◆ DropRoute()

void carla::client::RssSensor::DropRoute ( )

drop the current route (

参见
also RssCheck::DropRoute())

在文件 LibCarla/source/carla/rss/RssSensor.cpp285 行定义.

引用了 _drop_route.

◆ GetEgoVehicleDynamics()

const::ad::rss::world::RssDynamics & carla::client::RssSensor::GetEgoVehicleDynamics ( ) const

返回当前自车(ego vehicle)所使用的动力学参数(

参见
also
RssCheck::GetEgoVehicleDynamics() 以获取更多信息)

在文件 LibCarla/source/carla/rss/RssSensor.cpp152 行定义.

引用了 _rss_actor_constellation_callback, _rss_check, carla::rss::RssCheck::GetDefaultVehicleDynamics(), carla::client::detail::ActorState::GetDisplayId() , 以及 carla::log_error().

+ 函数调用图:

◆ GetOtherVehicleDynamics()

const::ad::rss::world::RssDynamics & carla::client::RssSensor::GetOtherVehicleDynamics ( ) const

返回当前其他车辆所使用的动力学参数(

参见
RssCheck::GetOtherVehicleDynamics() 获取更多信息)

在文件 LibCarla/source/carla/rss/RssSensor.cpp181 行定义.

引用了 _rss_actor_constellation_callback, _rss_check, carla::rss::RssCheck::GetDefaultVehicleDynamics(), carla::client::detail::ActorState::GetDisplayId() , 以及 carla::log_error().

+ 函数调用图:

◆ GetPedestrianDynamics()

const::ad::rss::world::RssDynamics & carla::client::RssSensor::GetPedestrianDynamics ( ) const

返回当前行人所使用的动力学参数(

参见
RssCheck::GetPedestrianDynamics() 获取更多信息)

在文件 LibCarla/source/carla/rss/RssSensor.cpp210 行定义.

引用了 _rss_actor_constellation_callback, _rss_check, carla::rss::RssCheck::GetDefaultPedestrianDynamics(), carla::client::detail::ActorState::GetDisplayId() , 以及 carla::log_error().

+ 函数调用图:

◆ GetRoadBoundariesMode()

const::carla::rss::RoadBoundariesMode & carla::client::RssSensor::GetRoadBoundariesMode ( ) const
返回
当前用于遵守道路边界的模式 (
参见
同样参见 RssCheck::GetRoadBoundariesMode())

在文件 LibCarla/source/carla/rss/RssSensor.cpp239 行定义.

引用了 _rss_check, carla::rss::RssCheck::GetDefaultRoadBoundariesMode(), carla::client::detail::ActorState::GetDisplayId() , 以及 carla::log_error().

+ 函数调用图:

◆ GetRoutingTargets()

const std::vector<::carla::geom::Transform > carla::client::RssSensor::GetRoutingTargets ( ) const
返回
当前的路由目标 (
参见
同样参见 RssCheck::GetRoutingTargets())

在文件 LibCarla/source/carla/rss/RssSensor.cpp267 行定义.

引用了 _rss_check, carla::client::detail::ActorState::GetDisplayId() , 以及 carla::log_error().

+ 函数调用图:

◆ IsListening()

bool carla::client::RssSensor::IsListening ( ) const
inlineoverridevirtual

返回此Sensor实例当前是否正在监听模拟器中的相关传感器

实现了 carla::client::Sensor.

在文件 LibCarla/source/carla/rss/RssSensor.h79 行定义.

引用了 _on_tick_register_id.

被这些函数引用 Listen(), RegisterActorConstellationCallback(), Stop() , 以及 ~RssSensor().

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

◆ Listen()

void carla::client::RssSensor::Listen ( CallbackFunctionType callback)
overridevirtual

注册一个回调函数,每次接收到新的测量数据时都会执行该函数。

@警告:如果对一个已经在监听的传感器调用此函数,则会窃取之前设置的回调函数的数据流。请注意, 模拟器中的多个Sensor实例(甚至在不同进程中)可能指向同一个传感器。

实现了 carla::client::Sensor.

在文件 LibCarla/source/carla/rss/RssSensor.cpp43 行定义.

引用了 _global_map_initialization_counter_, _last_processed_frame, _on_tick_register_id, _rss_actor_constellation_callback, _rss_check, DEBUG_ASSERT, carla::client::detail::ActorState::GetDisplayId(), carla::client::detail::ActorState::GetEpisode(), carla::client::World::GetMap(), carla::client::detail::ActorState::GetParent(), carla::client::detail::ActorState::GetWorld(), IsListening(), carla::client::detail::EpisodeProxyImpl< PointerT >::Lock(), carla::log_debug(), carla::log_error() , 以及 carla::throw_exception().

+ 函数调用图:

◆ RegisterActorConstellationCallback()

void carla::client::RssSensor::RegisterActorConstellationCallback ( ActorConstellationCallbackFunctionType callback)

为每个待处理的测量中的每个行为体注册一个回调函数,以便决定RSS传感器相对于自我车辆与行为体星座的操作。

在文件 LibCarla/source/carla/rss/RssSensor.cpp35 行定义.

引用了 _rss_actor_constellation_callback, carla::client::detail::ActorState::GetDisplayId(), IsListening() , 以及 carla::log_error().

+ 函数调用图:

◆ ResetRoutingTargets()

void carla::client::RssSensor::ResetRoutingTargets ( )

重置当前的路由目标 (

参见
同样参见 RssCheck::ResetRoutingTargets())

在文件 LibCarla/source/carla/rss/RssSensor.cpp276 行定义.

引用了 _rss_check, carla::client::detail::ActorState::GetDisplayId() , 以及 carla::log_error().

+ 函数调用图:

◆ SetEgoVehicleDynamics()

void carla::client::RssSensor::SetEgoVehicleDynamics ( const ::ad::rss::world::RssDynamics & ego_dynamics)

设置自车(ego vehicle)将要使用的动力学参数(

参见

also RssCheck::SetEgoVehicleDynamics() 以获取更多信息)

在文件 LibCarla/source/carla/rss/RssSensor.cpp167 行定义.

引用了 _rss_actor_constellation_callback, _rss_check, carla::client::detail::ActorState::GetDisplayId() , 以及 carla::log_error().

+ 函数调用图:

◆ SetLogLevel()

void carla::client::RssSensor::SetLogLevel ( const uint8_t & log_level)

设置当前的日志级别

在文件 LibCarla/source/carla/rss/RssSensor.cpp130 行定义.

引用了 _rss_check, carla::client::detail::ActorState::GetDisplayId() , 以及 carla::log_error().

+ 函数调用图:

◆ SetMapLogLevel()

void carla::client::RssSensor::SetMapLogLevel ( const uint8_t & map_log_level)

设置当前的地图日志级别

在文件 LibCarla/source/carla/rss/RssSensor.cpp141 行定义.

引用了 _rss_check, carla::client::detail::ActorState::GetDisplayId() , 以及 carla::log_error().

+ 函数调用图:

◆ SetOtherVehicleDynamics()

void carla::client::RssSensor::SetOtherVehicleDynamics ( const ::ad::rss::world::RssDynamics & other_vehicle_dynamics)

设置其他车辆所使用的动力学参数(

参见
RssCheck::SetOtherVehicleDynamics() 获取更多信息)

在文件 LibCarla/source/carla/rss/RssSensor.cpp196 行定义.

引用了 _rss_actor_constellation_callback, _rss_check, carla::client::detail::ActorState::GetDisplayId() , 以及 carla::log_error().

+ 函数调用图:

◆ SetPedestrianDynamics()

void carla::client::RssSensor::SetPedestrianDynamics ( const ::ad::rss::world::RssDynamics & pedestrian_dynamics)

设置行人所使用的动力学参数(

参见
RssCheck::SetPedestrianDynamics() 获取更多信息)

在文件 LibCarla/source/carla/rss/RssSensor.cpp225 行定义.

引用了 _rss_actor_constellation_callback, _rss_check, carla::client::detail::ActorState::GetDisplayId() , 以及 carla::log_error().

+ 函数调用图:

◆ SetRoadBoundariesMode()

void carla::client::RssSensor::SetRoadBoundariesMode ( const ::carla::rss::RoadBoundariesMode & road_boundaries_mode)

设置当前用于遵守道路边界的模式 (

参见
同样参见 RssCheck::SetRoadBoundariesMode())

在文件 LibCarla/source/carla/rss/RssSensor.cpp249 行定义.

引用了 _rss_check, carla::client::detail::ActorState::GetDisplayId() , 以及 carla::log_error().

+ 函数调用图:

◆ Stop()

void carla::client::RssSensor::Stop ( )
overridevirtual

停止监听新的测量数据。

注意:为了能够等待非活动状态的回调函数,全局解释器锁(GIL)必须被解锁。

实现了 carla::client::Sensor.

在文件 LibCarla/source/carla/rss/RssSensor.cpp100 行定义.

引用了 _global_map_initialization_counter_, _on_tick_register_id, _processing_lock, _rss_check, carla::client::detail::ActorState::GetDisplayId(), carla::client::detail::ActorState::GetEpisode(), IsListening(), carla::client::detail::EpisodeProxyImpl< PointerT >::Lock(), carla::log_debug() , 以及 carla::log_error().

被这些函数引用 ~RssSensor().

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

◆ TickRssSensor()

void carla::client::RssSensor::TickRssSensor ( const client::Timestamp & timestamp,
CallbackFunctionType callback )
private

传感器滴答(tick,可以理解为周期性触发的操作)回调函数,实际执行传感器相关逻辑的函数

the acutal sensor tick callback function

在文件 LibCarla/source/carla/rss/RssSensor.cpp291 行定义.

引用了 _last_processed_frame, _processing_lock, _rss_check, _tick_future, carla::client::Timestamp::frame, carla::client::World::GetActors(), carla::client::World::GetSettings(), carla::client::detail::ActorState::GetWorld() , 以及 TickRssSensorThreadLocked().

+ 函数调用图:

◆ TickRssSensorThreadLocked()

void carla::client::RssSensor::TickRssSensorThreadLocked ( const client::Timestamp & timestamp,
SharedPtr< carla::client::ActorList > actors,
CallbackFunctionType callback )
private

在文件 LibCarla/source/carla/rss/RssSensor.cpp322 行定义.

引用了 _drop_route, _processing_lock, _rss_check, _rss_check_timings, carla::client::Timestamp::elapsed_seconds, carla::client::Timestamp::frame, carla::client::detail::ActorState::GetParent() , 以及 carla::client::Actor::GetTransform().

被这些函数引用 TickRssSensor().

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

类成员变量说明

◆ _drop_route

RSS行为体星座(周围物体分布相关)回调函数,用于在相关场景下执行自定义的回调逻辑 bool carla::client::RssSensor::_drop_route
private

reqired to store DropRoute() requests until next sensor tick

在文件 LibCarla/source/carla/rss/RssSensor.h147 行定义.

被这些函数引用 DropRoute() , 以及 TickRssSensorThreadLocked().

◆ _global_map_initialization_counter_

std::atomic_uint carla::client::RssSensor::_global_map_initialization_counter_ {0u}
staticprivate

上一次处理的帧编号,用于记录处理进度等相关情况

在文件 LibCarla/source/carla/rss/RssSensor.h152 行定义.

被这些函数引用 Listen() , 以及 Stop().

◆ _last_processed_frame

std::size_t carla::client::RssSensor::_last_processed_frame
private

用于存储DropRoute()请求的标志,直到下一次传感器滴答时处理,用于控制路由丢弃相关逻辑的标记

last processed frame

在文件 LibCarla/source/carla/rss/RssSensor.h150 行定义.

被这些函数引用 Listen() , 以及 TickRssSensor().

◆ _on_tick_register_id

std::size_t carla::client::RssSensor::_on_tick_register_id
private

the id got when registering for the on tick event

在文件 LibCarla/source/carla/rss/RssSensor.h132 行定义.

被这些函数引用 IsListening(), Listen() , 以及 Stop().

◆ _processing_lock

std::mutex carla::client::RssSensor::_processing_lock
private

注册滴答事件(on tick event,周期性触发的事件)时获取的ID,用于标识该注册操作等相关用途

the mutex to protect the actual RSS processing and in case it takes too long to process ever frame

在文件 LibCarla/source/carla/rss/RssSensor.h135 行定义.

被这些函数引用 Stop(), TickRssSensor() , 以及 TickRssSensorThreadLocked().

◆ _rss_actor_constellation_callback

ActorConstellationCallbackFunctionType carla::client::RssSensor::_rss_actor_constellation_callback
private

一些用于调试的时间记录,可能记录RSS检查等操作的耗时情况等,以列表形式存储 / the rss actor constellation callback function

在文件 LibCarla/source/carla/rss/RssSensor.h144 行定义.

被这些函数引用 GetEgoVehicleDynamics(), GetOtherVehicleDynamics(), GetPedestrianDynamics(), Listen(), RegisterActorConstellationCallback(), SetEgoVehicleDynamics(), SetOtherVehicleDynamics() , 以及 SetPedestrianDynamics().

◆ _rss_check

std::shared_ptr<::carla::rss::RssCheck> carla::client::RssSensor::_rss_check
private

◆ _rss_check_timings

std::list<double> carla::client::RssSensor::_rss_check_timings
private

用于异步滴答线程的未来(future,用于异步获取线程执行结果等操作)对象

some debug timings

在文件 LibCarla/source/carla/rss/RssSensor.h141 行定义.

被这些函数引用 TickRssSensorThreadLocked().

◆ _tick_future

std::future<void> carla::client::RssSensor::_tick_future
private

互斥锁,用于保护实际的RSS处理过程,防止在处理每帧数据耗时过长等情况下出现并发问题

the future for the async ticking thread

在文件 LibCarla/source/carla/rss/RssSensor.h138 行定义.

被这些函数引用 TickRssSensor().


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