#include <World.h>
Public 成员函数 | |
void | ApplyColorTextureToObject (const std::string &actor_name, const rpc::MaterialParameter ¶meter, const rpc::TextureColor &Texture) |
void | ApplyColorTextureToObjects (const std::vector< std::string > &objects_names, const rpc::MaterialParameter ¶meter, const rpc::TextureColor &Texture) |
void | ApplyFloatColorTextureToObject (const std::string &actor_name, const rpc::MaterialParameter ¶meter, const rpc::TextureFloatColor &Texture) |
void | ApplyFloatColorTextureToObjects (const std::vector< std::string > &objects_names, const rpc::MaterialParameter ¶meter, const rpc::TextureFloatColor &Texture) |
uint64_t | ApplySettings (const rpc::EpisodeSettings &settings, time_duration timeout) |
void | ApplyTexturesToObject (const std::string &actor_name, const rpc::TextureColor &diffuse_texture, const rpc::TextureFloatColor &emissive_texture, const rpc::TextureFloatColor &normal_texture, const rpc::TextureFloatColor &ao_roughness_metallic_emissive_texture) |
void | ApplyTexturesToObjects (const std::vector< std::string > &objects_names, const rpc::TextureColor &diffuse_texture, const rpc::TextureFloatColor &emissive_texture, const rpc::TextureFloatColor &normal_texture, const rpc::TextureFloatColor &ao_roughness_metallic_emissive_texture) |
std::vector< rpc::LabelledPoint > | CastRay (geom::Location start_location, geom::Location end_location) const |
void | EnableEnvironmentObjects (std::vector< uint64_t > env_objects_ids, bool enable) const |
启用或禁用环境物体,根据传入的环境物体ID列表(env_objects_ids)以及布尔值参数enable来操作, 可以动态地控制某些环境物体在模拟世界中是否显示或者参与物理模拟等,实现灵活的场景配置。 | |
void | FreezeAllTrafficLights (bool frozen) |
冻结或解冻所有交通信号灯,通过传入的布尔值参数来控制, 冻结时交通信号灯状态将保持不变,常用于暂停交通灯变化来观察特定交通场景或者进行调试等情况。 | |
SharedPtr< Actor > | GetActor (ActorId id) const |
根据id查找actor,如果没有找到则返回nullptr。 通过传入的ActorId参数,在当前模拟世界中查找对应的参与者对象,方便快速定位特定的实体, 比如查找某一辆特定编号的车辆或者某个行人等。 | |
SharedPtr< ActorList > | GetActors () const |
返回一个包含当前世界上所有存在的参与者(actor)的列表。 获取整个模拟世界中所有参与者的集合,便于进行批量操作、统计或者遍历所有实体执行某些通用的操作等。 | |
SharedPtr< ActorList > | GetActors (const std::vector< ActorId > &actor_ids) const |
返回一个包含ActorId请求的参与者(actor)的列表。 根据传入的包含多个ActorId的vector参数,返回对应的参与者列表,实现按照指定的一组ID来查找和获取相应的参与者对象集合。 | |
SharedPtr< BlueprintLibrary > | GetBlueprintLibrary () const |
返回当前世界中可用的蓝图列表。 这个蓝图可以用来在世界中生成参与者(actor)。 通过这些蓝图可以在世界中生成相应的实体对象,调用者可以基于返回的蓝图库来选择合适的蓝图创建所需的参与者。 | |
std::vector< rpc::EnvironmentObject > | GetEnvironmentObjects (uint8_t queried_tag) const |
获取指定标签(queried_tag)的环境物体(EnvironmentObject)列表。 环境物体可以包括路边的障碍物、建筑物等各种非参与者但影响模拟场景的物体,通过获取它们可以进行相关的查询、操作或者场景渲染等处理。 | |
detail::EpisodeProxy | GetEpisode () const |
返回当前World对象关联的detail::EpisodeProxy对象, 供外部在需要直接操作EpisodeProxy所包含的相关剧集信息或者传递给其他函数进行进一步处理时使用。 | |
uint64_t | GetId () const |
得到与这个世界相联系的id集。 这个ID可能是用于唯一标识该模拟世界实例的编号,在整个CARLA系统中,用于区分不同的模拟场景等用途。 | |
float | GetIMUISensorGravity () const |
获取用于IMUI传感器加速度计计算的重力值。 在涉及到模拟车辆、机器人等带有IMUI传感器的实体时,需要获取这个重力值用于传感器相关物理量的准确计算, 以符合真实物理世界的规律或者模拟特定的物理环境。 | |
std::vector< geom::BoundingBox > | GetLevelBBs (uint8_t queried_tag) const |
返回该等级中所有元素的BBs。 边界框可以描述物体在三维空间中的大致范围,通过获取所有元素的边界框, 可以用于碰撞检测、空间划分、可视化展示等多种与空间位置和范围相关的操作,这里返回的是指定标签(queried_tag)对应的元素的边界框列表。 | |
SharedPtr< LightManager > | GetLightManager () const |
获取交通灯管理器(LightManager)的智能指针。 交通灯管理器可以用于统一管理和控制模拟世界中所有交通灯的各种操作,比如批量设置状态、定时切换等,提供更便捷的交通灯管理功能。 | |
SharedPtr< Map > | GetMap () const |
返回描述这个世界的地图。 返回的是一个智能指针指向的Map对象,该Map对象包含了模拟世界中的地理信息、道路布局等地图相关的数据结构, 供外部调用者进一步查询和操作地图相关的功能。 | |
std::vector< std::string > | GetNamesOfAllObjects () const |
boost::optional< geom::Location > | GetRandomLocationFromNavigation () const |
从行人导航网格获得一个随机位置 在模拟行人行为等场景时,可以利用这个函数获取一个在行人导航范围内的随机地点, 比如用于生成行人的初始位置或者随机行走的目标位置等。 | |
rpc::EpisodeSettings | GetSettings () const |
获取当前模拟世界的设置信息,比如时间步长、同步模式等相关的参数配置情况, 返回的rpc::EpisodeSettings对象包含了这些详细的设置内容,供外部查询和可能的修改参考。 | |
WorldSnapshot | GetSnapshot () const |
返回当前世界的快照。 快照(Snapshot)包含了模拟世界在某一时刻的整体状态信息,例如所有参与者的位置、状态,天气情况等, 可以用于记录、对比不同时刻的世界状态或者进行一些基于特定时刻状态的分析和操作。 | |
SharedPtr< Actor > | GetSpectator () const |
返回为旁观者的参与者. | |
SharedPtr< Actor > | GetTrafficLight (const Landmark &landmark) const |
根据提供的地标(Landmark)获取对应的交通信号灯(TrafficLight)的智能指针。 与获取交通标志类似,通过地标来查找对应的交通信号灯对象,以便获取信号灯状态、控制信号灯等相关操作,模拟交通灯变化对交通流的影响。 | |
SharedPtr< Actor > | GetTrafficLightFromOpenDRIVE (const road::SignId &sign_id) const |
根据OpenDRIVE标志ID获取对应的交通灯的智能指针。 OpenDRIVE是一种用于描述道路网络等信息的标准格式,利用其中的标志ID可以准确地在模拟世界中找到对应的交通灯对象, | |
SharedPtr< Actor > | GetTrafficLightFromOpenDRIVE (const road::SignId &sign_id) const |
交通灯和标志,根据提供的 获取交通标志或交通信号灯。代表地图中的特定位置。 | |
std::vector< SharedPtr< Actor > > | GetTrafficLightsFromWaypoint (const Waypoint &waypoint, double distance) const |
std::vector< SharedPtr< Actor > > | GetTrafficLightsInJunction (const road::JuncId junc_id) const |
SharedPtr< Actor > | GetTrafficSign (const Landmark &landmark) const |
根据提供的地标(Landmark)获取对应的交通标志(TrafficSign)的智能指针。 地标通常代表地图中的特定位置,通过它可以定位和获取对应的交通标志对象,用于查询交通规则相关的指示信息等。 | |
rpc::VehicleLightStateList | GetVehiclesLightStates () const |
返回一个元素对列表, 其中第一个元素是车辆ID,第二个元素是灯光状态. | |
rpc::WeatherParameters | GetWeather () const |
检索当前世界上活动的天气参数。 可以获取到当前模拟世界中的天气状况相关的参数,例如晴天、雨天、雾天等天气类型对应的具体参数设置, 像光照强度、雾气浓度等,用于呈现不同天气下的模拟场景效果。 | |
boost::optional< rpc::LabelledPoint > | GroundProjection (geom::Location location, float search_distance=10000.0) const |
void | LoadLevelLayer (rpc::MapLayer map_layers) const |
加载指定的地图层级(由rpc::MapLayer类型参数指定)到模拟世界中。 可以根据需要选择性地加载地图的不同部分或者功能层,比如只加载交通道路层或者建筑物层等,具体取决于MapLayer的定义。 | |
DebugHelper | MakeDebugHelper () const |
创建并返回一个DebugHelper对象,该对象基于当前的EpisodeProxy创建, DebugHelper通常用于在模拟世界中进行调试相关的操作,比如可视化一些内部数据结构、辅助排查问题等。 | |
size_t | OnTick (std::function< void(WorldSnapshot)> callback) |
注册一个 回调函数,在每次接收到世界刻时调用。 可以注册一个自定义的函数,在模拟世界每推进一个时间步(即接收到世界刻)时被自动调用, 便于在每个时间步执行一些自定义的逻辑,比如更新统计信息、检查特定条件等,返回的回调函数ID用于后续删除该回调函数。 | |
World & | operator= (const World &)=default |
World & | operator= (World &&)=default |
boost::optional< rpc::LabelledPoint > | ProjectPoint (geom::Location location, geom::Vector3D direction, float search_distance=10000.f) const |
GetEnvironmentObjects获取指定标签的环境物体。 EnableEnvironmentObjects启用或禁用环境物体。 | |
void | RemoveOnTick (size_t callback_id) |
Remove a callback registered with OnTick. | |
void | ResetAllTrafficLights () |
根据OpenDRIVE标志ID获取对应的交通灯的智能指针。 重置所有交通信号灯的状态,可能将其恢复到初始默认状态或者按照一定规则重新初始化状态, 用于在模拟过程中重新调整交通灯的整体情况,比如模拟交通拥堵后重新规划交通流时使用。 | |
void | SetIMUISensorGravity (float NewIMUISensorGravity) |
设置用于IMUISensor加速度计计算的重力值。 允许外部根据实际模拟需求,调整IMUI传感器加速度计计算所使用的重力值,改变模拟物理环境的相关参数。 | |
void | SetPedestriansCrossFactor (float percentage) |
设置一个代理表示在它的路径中穿过道路的概率。 0.0f表示行人不得过马路 0.5f表示50的行人可以过马路 1.0f表示所有行人在需要时都可以过马路 用于控制模拟世界中行人过马路行为的概率,通过调整这个概率值,可以模拟出不同行人遵守交通规则或者交通繁忙程度不同的场景情况。 | |
void | SetPedestriansSeed (unsigned int seed) |
在行人模块中将 seed 设置为使用随机数。 设置行人相关随机行为的种子值,相同的种子值可以使得行人模块在每次模拟时产生相同的随机行为序列,便于复现和对比不同模拟情况, 或者设置不同的种子值来获取真正的随机行为表现。 | |
void | SetWeather (const rpc::WeatherParameters &weather) |
在模拟场景中改变天气。 通过传入指定的rpc::WeatherParameters参数,来设置模拟世界的天气情况,实现模拟不同天气环境下的交通、行人等行为场景。 | |
SharedPtr< Actor > | SpawnActor (const ActorBlueprint &blueprint, const geom::Transform &transform, Actor *parent=nullptr, rpc::AttachmentType attachment_type=rpc::AttachmentType::Rigid, const std::string &socket_name="") |
根据 转换中提供的 蓝图,在世界中生成一个参与者(actor)。 如果提供了 父类,则参与者(actor)被附加到 父类。 基于给定的ActorBlueprint(参与者创建蓝图)以及指定的几何变换(geom::Transform,用于确定在世界中的位置、姿态等信息), 在模拟世界中创建一个新的参与者对象,并且可以选择将其附加到一个已有的父类参与者上,建立父子关系, 这种父子关系可能在物理模拟、行为关联等方面有相应的作用,例如车辆挂载拖车等场景。 | |
uint64_t | Tick (time_duration timeout) |
通知模拟器继续进行下一个节拍(仅对同步模式有效)。 在同步模拟模式下,通过调用这个函数来告知模拟器可以推进到下一个时间步了, 并且返回这个调用开始的帧的id,用于跟踪和记录模拟进度在时间轴上的位置。 | |
SharedPtr< Actor > | TrySpawnActor (const ActorBlueprint &blueprint, const geom::Transform &transform, Actor *parent=nullptr, rpc::AttachmentType attachment_type=rpc::AttachmentType::Rigid, const std::string &socket_name="") noexcept |
和SpawnActor一样,但失败时返回nullptr而不抛出异常。 与SpawnActor功能类似,不过在创建参与者失败的情况下,不会抛出异常打断程序流程,而是安静地返回nullptr, 这样在一些需要稳健处理创建操作失败情况的场景中,调用者可以自行根据返回值进行相应的错误处理逻辑。 | |
void | UnloadLevelLayer (rpc::MapLayer map_layers) const |
卸载指定的地图层级(由rpc::MapLayer类型参数指定)。 与LoadLevelLayer相对应,用于移除已经加载的地图部分,释放相关资源或者改变模拟世界的显示内容等。 | |
WorldSnapshot | WaitForTick (time_duration timeout) const |
阻塞调用线程,直到接收到一个世界刻。 世界刻(Tick)可以理解为模拟世界的时间推进的一个基本单位,通过阻塞等待一个世界刻, 可以确保在获取后续操作所需的最新世界状态时,是基于已经更新到下一个时间步的情况,常用于同步模拟流程与世界状态更新。 | |
World (const World &)=default | |
World (detail::EpisodeProxy episode) | |
World (World &&)=default | |
~World () | |
Private 属性 | |
detail::EpisodeProxy | _episode |
|
inlineexplicit |
|
default |
|
default |
void carla::client::World::ApplyColorTextureToObject | ( | const std::string & | actor_name, |
const rpc::MaterialParameter & | parameter, | ||
const rpc::TextureColor & | Texture ) |
引用了 _episode , 以及 carla::client::detail::EpisodeProxyImpl< PointerT >::Lock().
被这些函数引用 ApplyTexturesToObject().
|
inline |
void carla::client::World::ApplyFloatColorTextureToObject | ( | const std::string & | actor_name, |
const rpc::MaterialParameter & | parameter, | ||
const rpc::TextureFloatColor & | Texture ) |
引用了 _episode , 以及 carla::client::detail::EpisodeProxyImpl< PointerT >::Lock().
被这些函数引用 ApplyTexturesToObject().
void carla::client::World::ApplyFloatColorTextureToObjects | ( | const std::vector< std::string > & | objects_names, |
const rpc::MaterialParameter & | parameter, | ||
const rpc::TextureFloatColor & | Texture ) |
引用了 _episode , 以及 carla::client::detail::EpisodeProxyImpl< PointerT >::Lock().
被这些函数引用 ApplyTexturesToObjects().
uint64_t carla::client::World::ApplySettings | ( | const rpc::EpisodeSettings & | settings, |
time_duration | timeout ) |
引用了 _episode, carla::rpc::EpisodeSettings::fixed_delta_seconds, GetSnapshot(), carla::client::detail::EpisodeProxyImpl< PointerT >::Lock(), carla::log_warning(), carla::time_duration::milliseconds() , 以及 Tick().
void carla::client::World::ApplyTexturesToObject | ( | const std::string & | actor_name, |
const rpc::TextureColor & | diffuse_texture, | ||
const rpc::TextureFloatColor & | emissive_texture, | ||
const rpc::TextureFloatColor & | normal_texture, | ||
const rpc::TextureFloatColor & | ao_roughness_metallic_emissive_texture ) |
void carla::client::World::ApplyTexturesToObjects | ( | const std::vector< std::string > & | objects_names, |
const rpc::TextureColor & | diffuse_texture, | ||
const rpc::TextureFloatColor & | emissive_texture, | ||
const rpc::TextureFloatColor & | normal_texture, | ||
const rpc::TextureFloatColor & | ao_roughness_metallic_emissive_texture ) |
std::vector< rpc::LabelledPoint > carla::client::World::CastRay | ( | geom::Location | start_location, |
geom::Location | end_location ) const |
void carla::client::World::EnableEnvironmentObjects | ( | std::vector< uint64_t > | env_objects_ids, |
bool | enable ) const |
启用或禁用环境物体,根据传入的环境物体ID列表(env_objects_ids)以及布尔值参数enable来操作, 可以动态地控制某些环境物体在模拟世界中是否显示或者参与物理模拟等,实现灵活的场景配置。
引用了 _episode , 以及 carla::client::detail::EpisodeProxyImpl< PointerT >::Lock().
void carla::client::World::FreezeAllTrafficLights | ( | bool | frozen | ) |
冻结或解冻所有交通信号灯,通过传入的布尔值参数来控制, 冻结时交通信号灯状态将保持不变,常用于暂停交通灯变化来观察特定交通场景或者进行调试等情况。
引用了 _episode , 以及 carla::client::detail::EpisodeProxyImpl< PointerT >::Lock().
根据id查找actor,如果没有找到则返回nullptr。 通过传入的ActorId参数,在当前模拟世界中查找对应的参与者对象,方便快速定位特定的实体, 比如查找某一辆特定编号的车辆或者某个行人等。
引用了 _episode , 以及 carla::client::detail::EpisodeProxyImpl< PointerT >::Lock().
被这些函数引用 carla::nav::WalkerManager::GetAllTrafficLightWaypoints().
返回一个包含当前世界上所有存在的参与者(actor)的列表。 获取整个模拟世界中所有参与者的集合,便于进行批量操作、统计或者遍历所有实体执行某些通用的操作等。
引用了 _episode , 以及 carla::client::detail::EpisodeProxyImpl< PointerT >::Lock().
被这些函数引用 carla::client::TrafficLight::GetGroupTrafficLights(), GetTrafficLight(), GetTrafficLightFromOpenDRIVE(), GetTrafficSign() , 以及 carla::client::RssSensor::TickRssSensor().
SharedPtr< ActorList > carla::client::World::GetActors | ( | const std::vector< ActorId > & | actor_ids | ) | const |
返回一个包含ActorId请求的参与者(actor)的列表。 根据传入的包含多个ActorId的vector参数,返回对应的参与者列表,实现按照指定的一组ID来查找和获取相应的参与者对象集合。
引用了 _episode , 以及 carla::client::detail::EpisodeProxyImpl< PointerT >::Lock().
SharedPtr< BlueprintLibrary > carla::client::World::GetBlueprintLibrary | ( | ) | const |
返回当前世界中可用的蓝图列表。 这个蓝图可以用来在世界中生成参与者(actor)。 通过这些蓝图可以在世界中生成相应的实体对象,调用者可以基于返回的蓝图库来选择合适的蓝图创建所需的参与者。
引用了 _episode , 以及 carla::client::detail::EpisodeProxyImpl< PointerT >::Lock().
std::vector< rpc::EnvironmentObject > carla::client::World::GetEnvironmentObjects | ( | uint8_t | queried_tag | ) | const |
获取指定标签(queried_tag)的环境物体(EnvironmentObject)列表。 环境物体可以包括路边的障碍物、建筑物等各种非参与者但影响模拟场景的物体,通过获取它们可以进行相关的查询、操作或者场景渲染等处理。
引用了 _episode , 以及 carla::client::detail::EpisodeProxyImpl< PointerT >::Lock().
|
inline |
|
inline |
得到与这个世界相联系的id集。 这个ID可能是用于唯一标识该模拟世界实例的编号,在整个CARLA系统中,用于区分不同的模拟场景等用途。
引用了 _episode , 以及 carla::client::detail::EpisodeProxyImpl< PointerT >::GetId().
float carla::client::World::GetIMUISensorGravity | ( | ) | const |
获取用于IMUI传感器加速度计计算的重力值。 在涉及到模拟车辆、机器人等带有IMUI传感器的实体时,需要获取这个重力值用于传感器相关物理量的准确计算, 以符合真实物理世界的规律或者模拟特定的物理环境。
引用了 _episode , 以及 carla::client::detail::EpisodeProxyImpl< PointerT >::Lock().
std::vector< geom::BoundingBox > carla::client::World::GetLevelBBs | ( | uint8_t | queried_tag | ) | const |
返回该等级中所有元素的BBs。 边界框可以描述物体在三维空间中的大致范围,通过获取所有元素的边界框, 可以用于碰撞检测、空间划分、可视化展示等多种与空间位置和范围相关的操作,这里返回的是指定标签(queried_tag)对应的元素的边界框列表。
引用了 _episode , 以及 carla::client::detail::EpisodeProxyImpl< PointerT >::Lock().
SharedPtr< LightManager > carla::client::World::GetLightManager | ( | ) | const |
获取交通灯管理器(LightManager)的智能指针。 交通灯管理器可以用于统一管理和控制模拟世界中所有交通灯的各种操作,比如批量设置状态、定时切换等,提供更便捷的交通灯管理功能。
引用了 _episode , 以及 carla::client::detail::EpisodeProxyImpl< PointerT >::Lock().
返回描述这个世界的地图。 返回的是一个智能指针指向的Map对象,该Map对象包含了模拟世界中的地理信息、道路布局等地图相关的数据结构, 供外部调用者进一步查询和操作地图相关的功能。
引用了 _episode , 以及 carla::client::detail::EpisodeProxyImpl< PointerT >::Lock().
被这些函数引用 GetTrafficLightsInJunction(), carla::client::RssSensor::Listen(), carla::client::Client::LoadWorldIfDifferent() , 以及 carla::traffic_manager::TrafficManagerLocal::SetupLocalMap().
std::vector< std::string > carla::client::World::GetNamesOfAllObjects | ( | ) | const |
boost::optional< geom::Location > carla::client::World::GetRandomLocationFromNavigation | ( | ) | const |
从行人导航网格获得一个随机位置 在模拟行人行为等场景时,可以利用这个函数获取一个在行人导航范围内的随机地点, 比如用于生成行人的初始位置或者随机行走的目标位置等。
引用了 _episode , 以及 carla::client::detail::EpisodeProxyImpl< PointerT >::Lock().
rpc::EpisodeSettings carla::client::World::GetSettings | ( | ) | const |
获取当前模拟世界的设置信息,比如时间步长、同步模式等相关的参数配置情况, 返回的rpc::EpisodeSettings对象包含了这些详细的设置内容,供外部查询和可能的修改参考。
引用了 _episode , 以及 carla::client::detail::EpisodeProxyImpl< PointerT >::Lock().
被这些函数引用 carla::client::RssSensor::TickRssSensor().
WorldSnapshot carla::client::World::GetSnapshot | ( | ) | const |
返回当前世界的快照。 快照(Snapshot)包含了模拟世界在某一时刻的整体状态信息,例如所有参与者的位置、状态,天气情况等, 可以用于记录、对比不同时刻的世界状态或者进行一些基于特定时刻状态的分析和操作。
引用了 _episode , 以及 carla::client::detail::EpisodeProxyImpl< PointerT >::Lock().
被这些函数引用 ApplySettings(), carla::traffic_manager::TrafficManagerLocal::Run(), carla::traffic_manager::MotionPlanStage::Update() , 以及 carla::traffic_manager::TrafficLightStage::Update().
返回为旁观者的参与者.
旁观者控制模拟器窗口中的视图. 方便外部查询当前模拟世界中所有车辆的灯光状态信息,例如哪些车辆的大灯开着、转向灯状态等,用于模拟交通场景中的灯光效果展示和相关逻辑判断。
引用了 _episode , 以及 carla::client::detail::EpisodeProxyImpl< PointerT >::Lock().
根据提供的地标(Landmark)获取对应的交通信号灯(TrafficLight)的智能指针。 与获取交通标志类似,通过地标来查找对应的交通信号灯对象,以便获取信号灯状态、控制信号灯等相关操作,模拟交通灯变化对交通流的影响。
引用了 GetActors(), carla::client::Landmark::GetId(), carla::client::TrafficSign::GetSignId() , 以及 carla::StringUtil::Match().
被这些函数引用 GetTrafficLightsFromWaypoint().
SharedPtr< Actor > carla::client::World::GetTrafficLightFromOpenDRIVE | ( | const road::SignId & | sign_id | ) | const |
根据OpenDRIVE标志ID获取对应的交通灯的智能指针。 OpenDRIVE是一种用于描述道路网络等信息的标准格式,利用其中的标志ID可以准确地在模拟世界中找到对应的交通灯对象,
引用了 GetActors(), carla::client::TrafficSign::GetSignId() , 以及 carla::StringUtil::Match().
被这些函数引用 GetTrafficLightsInJunction().
SharedPtr< Actor > carla::client::World::GetTrafficLightFromOpenDRIVE | ( | const road::SignId & | sign_id | ) | const |
交通灯和标志,根据提供的 获取交通标志或交通信号灯。代表地图中的特定位置。
std::vector< SharedPtr< Actor > > carla::client::World::GetTrafficLightsFromWaypoint | ( | const Waypoint & | waypoint, |
double | distance ) const |
std::vector< SharedPtr< Actor > > carla::client::World::GetTrafficLightsInJunction | ( | const road::JuncId | junc_id | ) | const |
根据提供的地标(Landmark)获取对应的交通标志(TrafficSign)的智能指针。 地标通常代表地图中的特定位置,通过它可以定位和获取对应的交通标志对象,用于查询交通规则相关的指示信息等。
引用了 GetActors(), carla::client::Landmark::GetId(), carla::client::TrafficSign::GetSignId() , 以及 carla::StringUtil::Match().
rpc::VehicleLightStateList carla::client::World::GetVehiclesLightStates | ( | ) | const |
返回一个元素对列表, 其中第一个元素是车辆ID,第二个元素是灯光状态.
方便外部查询当前模拟世界中所有车辆的灯光状态信息,例如哪些车辆的大灯开着、转向灯状态等,用于模拟交通场景中的灯光效果展示和相关逻辑判断。
引用了 _episode , 以及 carla::client::detail::EpisodeProxyImpl< PointerT >::Lock().
rpc::WeatherParameters carla::client::World::GetWeather | ( | ) | const |
检索当前世界上活动的天气参数。 可以获取到当前模拟世界中的天气状况相关的参数,例如晴天、雨天、雾天等天气类型对应的具体参数设置, 像光照强度、雾气浓度等,用于呈现不同天气下的模拟场景效果。
引用了 _episode , 以及 carla::client::detail::EpisodeProxyImpl< PointerT >::Lock().
boost::optional< rpc::LabelledPoint > carla::client::World::GroundProjection | ( | geom::Location | location, |
float | search_distance = 10000.0 ) const |
void carla::client::World::LoadLevelLayer | ( | rpc::MapLayer | map_layers | ) | const |
加载指定的地图层级(由rpc::MapLayer类型参数指定)到模拟世界中。 可以根据需要选择性地加载地图的不同部分或者功能层,比如只加载交通道路层或者建筑物层等,具体取决于MapLayer的定义。
引用了 _episode , 以及 carla::client::detail::EpisodeProxyImpl< PointerT >::Lock().
|
inline |
size_t carla::client::World::OnTick | ( | std::function< void(WorldSnapshot)> | callback | ) |
注册一个 回调函数,在每次接收到世界刻时调用。 可以注册一个自定义的函数,在模拟世界每推进一个时间步(即接收到世界刻)时被自动调用, 便于在每个时间步执行一些自定义的逻辑,比如更新统计信息、检查特定条件等,返回的回调函数ID用于后续删除该回调函数。
引用了 _episode , 以及 carla::client::detail::EpisodeProxyImpl< PointerT >::Lock().
boost::optional< rpc::LabelledPoint > carla::client::World::ProjectPoint | ( | geom::Location | location, |
geom::Vector3D | direction, | ||
float | search_distance = 10000.f ) const |
GetEnvironmentObjects获取指定标签的环境物体。 EnableEnvironmentObjects启用或禁用环境物体。
引用了 _episode , 以及 carla::client::detail::EpisodeProxyImpl< PointerT >::Lock().
被这些函数引用 GroundProjection().
void carla::client::World::RemoveOnTick | ( | size_t | callback_id | ) |
Remove a callback registered with OnTick.
根据之前注册回调函数时返回的ID,来移除对应的在每个世界刻调用的回调函数,实现对回调机制的动态管理。
引用了 _episode , 以及 carla::client::detail::EpisodeProxyImpl< PointerT >::Lock().
void carla::client::World::ResetAllTrafficLights | ( | ) |
根据OpenDRIVE标志ID获取对应的交通灯的智能指针。 重置所有交通信号灯的状态,可能将其恢复到初始默认状态或者按照一定规则重新初始化状态, 用于在模拟过程中重新调整交通灯的整体情况,比如模拟交通拥堵后重新规划交通流时使用。
引用了 _episode , 以及 carla::client::detail::EpisodeProxyImpl< PointerT >::Lock().
void carla::client::World::SetIMUISensorGravity | ( | float | NewIMUISensorGravity | ) |
设置用于IMUISensor加速度计计算的重力值。 允许外部根据实际模拟需求,调整IMUI传感器加速度计计算所使用的重力值,改变模拟物理环境的相关参数。
引用了 _episode , 以及 carla::client::detail::EpisodeProxyImpl< PointerT >::Lock().
void carla::client::World::SetPedestriansCrossFactor | ( | float | percentage | ) |
设置一个代理表示在它的路径中穿过道路的概率。 0.0f表示行人不得过马路 0.5f表示50的行人可以过马路 1.0f表示所有行人在需要时都可以过马路 用于控制模拟世界中行人过马路行为的概率,通过调整这个概率值,可以模拟出不同行人遵守交通规则或者交通繁忙程度不同的场景情况。
引用了 _episode , 以及 carla::client::detail::EpisodeProxyImpl< PointerT >::Lock().
void carla::client::World::SetPedestriansSeed | ( | unsigned int | seed | ) |
在行人模块中将 seed 设置为使用随机数。 设置行人相关随机行为的种子值,相同的种子值可以使得行人模块在每次模拟时产生相同的随机行为序列,便于复现和对比不同模拟情况, 或者设置不同的种子值来获取真正的随机行为表现。
引用了 _episode , 以及 carla::client::detail::EpisodeProxyImpl< PointerT >::Lock().
void carla::client::World::SetWeather | ( | const rpc::WeatherParameters & | weather | ) |
在模拟场景中改变天气。 通过传入指定的rpc::WeatherParameters参数,来设置模拟世界的天气情况,实现模拟不同天气环境下的交通、行人等行为场景。
引用了 _episode , 以及 carla::client::detail::EpisodeProxyImpl< PointerT >::Lock().
SharedPtr< Actor > carla::client::World::SpawnActor | ( | const ActorBlueprint & | blueprint, |
const geom::Transform & | transform, | ||
Actor * | parent = nullptr, | ||
rpc::AttachmentType | attachment_type = rpc::AttachmentType::Rigid, | ||
const std::string & | socket_name = "" ) |
根据 转换中提供的 蓝图,在世界中生成一个参与者(actor)。 如果提供了 父类,则参与者(actor)被附加到 父类。 基于给定的ActorBlueprint(参与者创建蓝图)以及指定的几何变换(geom::Transform,用于确定在世界中的位置、姿态等信息), 在模拟世界中创建一个新的参与者对象,并且可以选择将其附加到一个已有的父类参与者上,建立父子关系, 这种父子关系可能在物理模拟、行为关联等方面有相应的作用,例如车辆挂载拖车等场景。
引用了 _episode, carla::client::Inherit , 以及 carla::client::detail::EpisodeProxyImpl< PointerT >::Lock().
uint64_t carla::client::World::Tick | ( | time_duration | timeout | ) |
通知模拟器继续进行下一个节拍(仅对同步模式有效)。 在同步模拟模式下,通过调用这个函数来告知模拟器可以推进到下一个时间步了, 并且返回这个调用开始的帧的id,用于跟踪和记录模拟进度在时间轴上的位置。
引用了 _episode, carla::client::detail::EpisodeProxyImpl< PointerT >::Lock() , 以及 carla::time_duration::milliseconds().
被这些函数引用 ApplySettings().
|
noexcept |
void carla::client::World::UnloadLevelLayer | ( | rpc::MapLayer | map_layers | ) | const |
卸载指定的地图层级(由rpc::MapLayer类型参数指定)。 与LoadLevelLayer相对应,用于移除已经加载的地图部分,释放相关资源或者改变模拟世界的显示内容等。
引用了 _episode , 以及 carla::client::detail::EpisodeProxyImpl< PointerT >::Lock().
WorldSnapshot carla::client::World::WaitForTick | ( | time_duration | timeout | ) | const |
阻塞调用线程,直到接收到一个世界刻。 世界刻(Tick)可以理解为模拟世界的时间推进的一个基本单位,通过阻塞等待一个世界刻, 可以确保在获取后续操作所需的最新世界状态时,是基于已经更新到下一个时间步的情况,常用于同步模拟流程与世界状态更新。
引用了 _episode, carla::client::detail::EpisodeProxyImpl< PointerT >::Lock() , 以及 carla::time_duration::milliseconds().
|
private |
被这些函数引用 ApplyColorTextureToObject(), ApplyFloatColorTextureToObject(), ApplyFloatColorTextureToObjects(), ApplySettings(), CastRay(), EnableEnvironmentObjects(), FreezeAllTrafficLights(), GetActor(), GetActors(), GetActors(), GetBlueprintLibrary(), GetEnvironmentObjects(), GetEpisode(), GetId(), GetIMUISensorGravity(), GetLevelBBs(), GetLightManager(), GetMap(), GetNamesOfAllObjects(), GetRandomLocationFromNavigation(), GetSettings(), GetSnapshot(), GetSpectator(), GetVehiclesLightStates(), GetWeather(), LoadLevelLayer(), MakeDebugHelper(), OnTick(), ProjectPoint(), RemoveOnTick(), ResetAllTrafficLights(), SetIMUISensorGravity(), SetPedestriansCrossFactor(), SetPedestriansSeed(), SetWeather(), SpawnActor(), Tick(), UnloadLevelLayer() , 以及 WaitForTick().