实现carla::client::Sensor接口的RSS传感器类 这个类是RssCheck类的代理 更多...
#include <RssSensor.h>
Public 类型 | |
using | ActorConstellationCallbackFunctionType |
![]() | |
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::RoadBoundariesMode & | GetRoadBoundariesMode () const |
const std::vector<::carla::geom::Transform > | GetRoutingTargets () 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 () | |
析构函数 | |
![]() | |
Actor (ActorInitializer init) | |
使用Actor的构造函数初始化Sensor对象。 | |
![]() | |
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::Transform > | GetBoneRelativeTransforms () const |
std::vector< geom::Transform > | GetBoneWorldTransforms () 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::Transform > | GetSocketRelativeTransforms () const |
std::vector< geom::Transform > | GetSocketWorldTransforms () 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 |
![]() | |
const std::vector< ActorAttributeValue > & | GetAttributes () const |
const std::string & | GetDisplayId () const |
ActorId | GetId () const |
SharedPtr< Actor > | GetParent () 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 ×tamp, CallbackFunctionType callback) |
传感器滴答(tick,可以理解为周期性触发的操作)回调函数,实际执行传感器相关逻辑的函数 | |
void | TickRssSensorThreadLocked (const client::Timestamp ×tamp, 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} |
上一次处理的帧编号,用于记录处理进度等相关情况 | |
额外继承的成员函数 | |
![]() | |
ActorState (rpc::Actor description, EpisodeProxy episode) | |
const rpc::Actor & | GetActorDescription () const |
const geom::BoundingBox & | GetBoundingBox () const |
EpisodeProxy & | GetEpisode () |
const EpisodeProxy & | GetEpisode () const |
实现carla::client::Sensor接口的RSS传感器类 这个类是RssCheck类的代理
在文件 LibCarla/source/carla/rss/RssSensor.h 第 48 行定义.
在文件 LibCarla/source/carla/rss/RssSensor.h 第 54 行定义.
|
explicit |
构造函数
在文件 LibCarla/source/carla/rss/RssSensor.cpp 第 27 行定义.
carla::client::RssSensor::~RssSensor | ( | ) |
void carla::client::RssSensor::AppendRoutingTarget | ( | const ::carla::geom::Transform & | routing_target | ) |
向当前路由目标列表追加一个路由目标 (
在文件 LibCarla/source/carla/rss/RssSensor.cpp 第 258 行定义.
引用了 _rss_check, carla::client::detail::ActorState::GetDisplayId() , 以及 carla::log_error().
void carla::client::RssSensor::DropRoute | ( | ) |
drop the current route (
在文件 LibCarla/source/carla/rss/RssSensor.cpp 第 285 行定义.
引用了 _drop_route.
const::ad::rss::world::RssDynamics & carla::client::RssSensor::GetEgoVehicleDynamics | ( | ) | const |
返回当前自车(ego vehicle)所使用的动力学参数(
在文件 LibCarla/source/carla/rss/RssSensor.cpp 第 152 行定义.
引用了 _rss_actor_constellation_callback, _rss_check, carla::rss::RssCheck::GetDefaultVehicleDynamics(), carla::client::detail::ActorState::GetDisplayId() , 以及 carla::log_error().
const::ad::rss::world::RssDynamics & carla::client::RssSensor::GetOtherVehicleDynamics | ( | ) | const |
返回当前其他车辆所使用的动力学参数(
在文件 LibCarla/source/carla/rss/RssSensor.cpp 第 181 行定义.
引用了 _rss_actor_constellation_callback, _rss_check, carla::rss::RssCheck::GetDefaultVehicleDynamics(), carla::client::detail::ActorState::GetDisplayId() , 以及 carla::log_error().
const::ad::rss::world::RssDynamics & carla::client::RssSensor::GetPedestrianDynamics | ( | ) | const |
返回当前行人所使用的动力学参数(
在文件 LibCarla/source/carla/rss/RssSensor.cpp 第 210 行定义.
引用了 _rss_actor_constellation_callback, _rss_check, carla::rss::RssCheck::GetDefaultPedestrianDynamics(), carla::client::detail::ActorState::GetDisplayId() , 以及 carla::log_error().
const::carla::rss::RoadBoundariesMode & carla::client::RssSensor::GetRoadBoundariesMode | ( | ) | const |
在文件 LibCarla/source/carla/rss/RssSensor.cpp 第 239 行定义.
引用了 _rss_check, carla::rss::RssCheck::GetDefaultRoadBoundariesMode(), carla::client::detail::ActorState::GetDisplayId() , 以及 carla::log_error().
const std::vector<::carla::geom::Transform > carla::client::RssSensor::GetRoutingTargets | ( | ) | const |
在文件 LibCarla/source/carla/rss/RssSensor.cpp 第 267 行定义.
引用了 _rss_check, carla::client::detail::ActorState::GetDisplayId() , 以及 carla::log_error().
|
inlineoverridevirtual |
返回此Sensor实例当前是否正在监听模拟器中的相关传感器
在文件 LibCarla/source/carla/rss/RssSensor.h 第 79 行定义.
引用了 _on_tick_register_id.
被这些函数引用 Listen(), RegisterActorConstellationCallback(), Stop() , 以及 ~RssSensor().
|
overridevirtual |
注册一个回调函数,每次接收到新的测量数据时都会执行该函数。
@警告:如果对一个已经在监听的传感器调用此函数,则会窃取之前设置的回调函数的数据流。请注意, 模拟器中的多个Sensor实例(甚至在不同进程中)可能指向同一个传感器。
在文件 LibCarla/source/carla/rss/RssSensor.cpp 第 43 行定义.
引用了 _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().
void carla::client::RssSensor::RegisterActorConstellationCallback | ( | ActorConstellationCallbackFunctionType | callback | ) |
为每个待处理的测量中的每个行为体注册一个回调函数,以便决定RSS传感器相对于自我车辆与行为体星座的操作。
在文件 LibCarla/source/carla/rss/RssSensor.cpp 第 35 行定义.
引用了 _rss_actor_constellation_callback, carla::client::detail::ActorState::GetDisplayId(), IsListening() , 以及 carla::log_error().
void carla::client::RssSensor::ResetRoutingTargets | ( | ) |
重置当前的路由目标 (
在文件 LibCarla/source/carla/rss/RssSensor.cpp 第 276 行定义.
引用了 _rss_check, carla::client::detail::ActorState::GetDisplayId() , 以及 carla::log_error().
void carla::client::RssSensor::SetEgoVehicleDynamics | ( | const ::ad::rss::world::RssDynamics & | ego_dynamics | ) |
设置自车(ego vehicle)将要使用的动力学参数(
在文件 LibCarla/source/carla/rss/RssSensor.cpp 第 167 行定义.
引用了 _rss_actor_constellation_callback, _rss_check, carla::client::detail::ActorState::GetDisplayId() , 以及 carla::log_error().
void carla::client::RssSensor::SetLogLevel | ( | const uint8_t & | log_level | ) |
设置当前的日志级别
在文件 LibCarla/source/carla/rss/RssSensor.cpp 第 130 行定义.
引用了 _rss_check, carla::client::detail::ActorState::GetDisplayId() , 以及 carla::log_error().
void carla::client::RssSensor::SetMapLogLevel | ( | const uint8_t & | map_log_level | ) |
设置当前的地图日志级别
在文件 LibCarla/source/carla/rss/RssSensor.cpp 第 141 行定义.
引用了 _rss_check, carla::client::detail::ActorState::GetDisplayId() , 以及 carla::log_error().
void carla::client::RssSensor::SetOtherVehicleDynamics | ( | const ::ad::rss::world::RssDynamics & | other_vehicle_dynamics | ) |
设置其他车辆所使用的动力学参数(
在文件 LibCarla/source/carla/rss/RssSensor.cpp 第 196 行定义.
引用了 _rss_actor_constellation_callback, _rss_check, carla::client::detail::ActorState::GetDisplayId() , 以及 carla::log_error().
void carla::client::RssSensor::SetPedestrianDynamics | ( | const ::ad::rss::world::RssDynamics & | pedestrian_dynamics | ) |
设置行人所使用的动力学参数(
在文件 LibCarla/source/carla/rss/RssSensor.cpp 第 225 行定义.
引用了 _rss_actor_constellation_callback, _rss_check, carla::client::detail::ActorState::GetDisplayId() , 以及 carla::log_error().
void carla::client::RssSensor::SetRoadBoundariesMode | ( | const ::carla::rss::RoadBoundariesMode & | road_boundaries_mode | ) |
设置当前用于遵守道路边界的模式 (
在文件 LibCarla/source/carla/rss/RssSensor.cpp 第 249 行定义.
引用了 _rss_check, carla::client::detail::ActorState::GetDisplayId() , 以及 carla::log_error().
|
overridevirtual |
停止监听新的测量数据。
注意:为了能够等待非活动状态的回调函数,全局解释器锁(GIL)必须被解锁。
在文件 LibCarla/source/carla/rss/RssSensor.cpp 第 100 行定义.
引用了 _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().
|
private |
传感器滴答(tick,可以理解为周期性触发的操作)回调函数,实际执行传感器相关逻辑的函数
the acutal sensor tick callback function
在文件 LibCarla/source/carla/rss/RssSensor.cpp 第 291 行定义.
引用了 _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().
|
private |
在文件 LibCarla/source/carla/rss/RssSensor.cpp 第 322 行定义.
引用了 _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().
|
private |
reqired to store DropRoute() requests until next sensor tick
在文件 LibCarla/source/carla/rss/RssSensor.h 第 147 行定义.
被这些函数引用 DropRoute() , 以及 TickRssSensorThreadLocked().
|
staticprivate |
上一次处理的帧编号,用于记录处理进度等相关情况
在文件 LibCarla/source/carla/rss/RssSensor.h 第 152 行定义.
|
private |
用于存储DropRoute()请求的标志,直到下一次传感器滴答时处理,用于控制路由丢弃相关逻辑的标记
last processed frame
在文件 LibCarla/source/carla/rss/RssSensor.h 第 150 行定义.
被这些函数引用 Listen() , 以及 TickRssSensor().
|
private |
the id got when registering for the on tick event
在文件 LibCarla/source/carla/rss/RssSensor.h 第 132 行定义.
被这些函数引用 IsListening(), Listen() , 以及 Stop().
|
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.h 第 135 行定义.
被这些函数引用 Stop(), TickRssSensor() , 以及 TickRssSensorThreadLocked().
|
private |
一些用于调试的时间记录,可能记录RSS检查等操作的耗时情况等,以列表形式存储 / the rss actor constellation callback function
在文件 LibCarla/source/carla/rss/RssSensor.h 第 144 行定义.
被这些函数引用 GetEgoVehicleDynamics(), GetOtherVehicleDynamics(), GetPedestrianDynamics(), Listen(), RegisterActorConstellationCallback(), SetEgoVehicleDynamics(), SetOtherVehicleDynamics() , 以及 SetPedestrianDynamics().
|
private |
在文件 LibCarla/source/carla/rss/RssSensor.h 第 129 行定义.
被这些函数引用 AppendRoutingTarget(), GetEgoVehicleDynamics(), GetOtherVehicleDynamics(), GetPedestrianDynamics(), GetRoadBoundariesMode(), GetRoutingTargets(), Listen(), ResetRoutingTargets(), SetEgoVehicleDynamics(), SetLogLevel(), SetMapLogLevel(), SetOtherVehicleDynamics(), SetPedestrianDynamics(), SetRoadBoundariesMode(), Stop(), TickRssSensor() , 以及 TickRssSensorThreadLocked().
|
private |
用于异步滴答线程的未来(future,用于异步获取线程执行结果等操作)对象
some debug timings
在文件 LibCarla/source/carla/rss/RssSensor.h 第 141 行定义.
被这些函数引用 TickRssSensorThreadLocked().
|
private |
互斥锁,用于保护实际的RSS处理过程,防止在处理每帧数据耗时过长等情况下出现并发问题
the future for the async ticking thread
在文件 LibCarla/source/carla/rss/RssSensor.h 第 138 行定义.
被这些函数引用 TickRssSensor().