26 :
public std::enable_shared_from_this<WalkerNavigation>,
40 while (i < list->size()) {
41 if ((*list)[i].walker == walker_id &&
42 (*list)[i].controller == controller_id) {
58 void Tick(std::shared_ptr<Episode> episode);
64 return boost::optional<geom::Location>(random_location);
unsigned long _next_check_index
boost::optional< geom::Location > GetRandomLocation()
void UpdateVehiclesInCrowd(std::shared_ptr< Episode > episode, bool show_debug=false)
添加/更新/删除人群中的所有车辆
void SetPedestriansCrossFactor(float percentage)
void RegisterWalker(ActorId walker_id, ActorId controller_id)
bool SetWalkerMaxSpeed(ActorId id, float max_speed)
WalkerNavigation(std::weak_ptr< Simulator > simulator)
std::weak_ptr< Simulator > _simulator
void Tick(std::shared_ptr< Episode > episode)
void CheckIfWalkerExist(std::vector< WalkerHandle > walkers, const EpisodeState &state)
检查一些行人,如果不存在,则将其从人群中移除
void SetPedestriansSeed(unsigned int seed)
void AddWalker(ActorId walker_id, carla::geom::Location location)
void RemoveWalker(ActorId walker_id)
void UnregisterWalker(ActorId walker_id, ActorId controller_id)
carla::nav::Navigation _nav
AtomicList< WalkerHandle > _walkers
bool SetWalkerTarget(ActorId id, const carla::geom::Location to)
管理行人导航,使用 Recast & Detour 库进行低层计算。
bool SetWalkerMaxSpeed(ActorId id, float max_speed)
设置新的最大速度
bool RemoveAgent(ActorId id)
移除代理
bool SetWalkerTarget(ActorId id, carla::geom::Location to)
设置新的目标点以通过有事件的路线
void SetSeed(unsigned int seed)
设置随机数种子
bool GetRandomLocation(carla::geom::Location &location, dtQueryFilter *filter=nullptr) const
获取导航的随机位置
void SetPedestriansCrossFactor(float percentage)
设置行人代理在路径跟随过程中穿过马路的概率
bool AddWalker(ActorId id, carla::geom::Location from)
创建新的行人
carla::ActorId ActorId
参与者的智能指针类型