24 if (simulator->IsNavigationServerSide()) {
28 if (walker ==
nullptr) {
32 if (!simulator->WalkerStartNavigation(walker->GetId())) {
33 log_warning(
"NAV: server failed to start navigation for walker", walker->GetId());
38 simulator->RegisterAIController(*
this);
42 if (walker !=
nullptr) {
43 auto nav = simulator->GetNavigation();
45 nav->AddWalker(walker->GetId(), walker->GetLocation());
47 simulator->SetActorSimulatePhysics(*walker,
false);
48 simulator->SetActorCollisions(*walker,
false);
55 if (simulator->IsNavigationServerSide()) {
57 if (walker ==
nullptr) {
61 if (!simulator->WalkerStopNavigation(walker->GetId())) {
62 log_warning(
"NAV: server failed to stop navigation for walker", walker->GetId());
67 simulator->UnregisterAIController(*
this);
71 if (walker !=
nullptr) {
72 auto nav = simulator->GetNavigation();
74 nav->RemoveWalker(walker->GetId());
81 if (simulator->IsNavigationServerSide()) {
82 return simulator->GetRandomLocationFromNavigation();
85 auto nav = simulator->GetNavigation();
87 return nav->GetRandomLocation();
94 if (simulator->IsNavigationServerSide()) {
96 if (walker !=
nullptr) {
97 if (!simulator->WalkerGoToLocation(walker->GetId(), destination)) {
98 log_warning(
"NAV: Failed to set request to go to ", destination.
x, destination.
y, destination.
z);
101 log_warning(
"NAV: Failed to set request to go to ", destination.
x, destination.
y, destination.
z,
"(parent does not exist)");
106 auto nav = simulator->GetNavigation();
107 if (nav !=
nullptr) {
109 if (walker !=
nullptr) {
110 if (!nav->SetWalkerTarget(walker->GetId(), destination)) {
111 log_warning(
"NAV: Failed to set request to go to ", destination.
x, destination.
y, destination.
z);
114 log_warning(
"NAV: Failed to set request to go to ", destination.
x, destination.
y, destination.
z,
"(parent does not exist)");
121 if (simulator->IsNavigationServerSide()) {
123 if (walker !=
nullptr) {
124 if (!simulator->WalkerSetMaxSpeed(walker->GetId(), max_speed)) {
128 log_warning(
"NAV: failed to set max speed (parent does not exist)");
133 auto nav = simulator->GetNavigation();
134 if (nav !=
nullptr) {
136 if (walker !=
nullptr) {
137 if (!nav->SetWalkerMaxSpeed(walker->GetId(), max_speed)) {
141 log_warning(
"NAV: failed to set max speed (parent does not exist)");
Used to initialize Actor classes.
Represents an actor in the simulation.
std::optional< geom::Location > GetRandomLocation()
void SetMaxSpeed(const float max_speed)
void GoToLocation(const carla::geom::Location &destination)
WalkerAIController(ActorInitializer init)
EpisodeProxy & GetEpisode()
SharedPtr< Actor > GetParent() const
const std::string & GetDisplayId() const
SharedPtrType Lock() const
Same as TryLock but never return nullptr.
This file contains definitions of common data structures used in traffic manager.
void throw_exception(const ExceptionT &e)
Templated on the static type so the thrown object keeps its dynamic type: taking a const std::excepti...
static void log_warning(Args &&... args)