CARLA
Loading...
Searching...
No Matches
Public Types | Public Member Functions | Private Member Functions | Private Attributes | List of all members
carla::agents::navigation::BehaviorAgent Class Reference

Behavior-driven navigation agent. More...

#include <BehaviorAgent.h>

+ Inheritance diagram for carla::agents::navigation::BehaviorAgent:

Public Types

enum class  Behavior { Cautious , Normal , Aggressive }
 

Public Member Functions

 BehaviorAgent (SharedPtr< client::Vehicle > vehicle, Behavior behavior=Behavior::Normal, const Options &opts=BasicAgent::DefaultOptions(), SharedPtr< client::Map > map=nullptr, SharedPtr< GlobalRoutePlanner > grp=nullptr)
 
rpc::VehicleControl EmergencyStop () const
 Build an emergency-stop control: throttle=0, brake=_max_brake, hand_brake=false, steer left untouched (default 0).
 
rpc::VehicleControl RunStep () override
 Polymorphic entry point: keeps dispatch through BasicAgent* correct.
 
rpc::VehicleControl RunStep (bool debug)
 Execute one step of navigation.
 
bool TrafficLightManager ()
 Returns true if the agent is affected by a traffic light.
 
- Public Member Functions inherited from carla::agents::navigation::BasicAgent
rpc::VehicleControl AddEmergencyStop (rpc::VehicleControl c) const
 Overwrites throttle/brake to perform an emergency stop.
 
 BasicAgent (SharedPtr< client::Vehicle > vehicle, float target_speed_kmh=20.0f, const Options &options=DefaultOptions(), SharedPtr< client::Map > map=nullptr, SharedPtr< GlobalRoutePlanner > grp=nullptr)
 
bool Done () const
 
void FollowSpeedLimits (bool value=true)
 
GlobalRoutePlanner * GetGlobalPlanner ()
 
LocalPlanner * GetLocalPlanner ()
 
void IgnoreStopSigns (bool active=true)
 
void IgnoreTrafficLights (bool active=true)
 
void IgnoreVehicles (bool active=true)
 
void LaneChange (const std::string &direction, float same_lane_time=0.0f, float other_lane_time=0.0f, float lane_change_time=2.0f)
 Replaces the current plan with one that performs a lane change.
 
void SetDestination (const geom::Location &end, std::optional< geom::Location > start=std::nullopt)
 Computes a route from start (or the current target waypoint) to end and forwards it to the local planner.
 
void SetGlobalPlan (const std::vector< LocalPlanner::PlanItem > &plan, bool stop_waypoint_creation=true, bool clean_queue=true)
 
void SetOffset (float offset)
 
void SetTargetSpeed (float speed_kmh)
 
std::vector< LocalPlanner::PlanItem > TraceRoute (SharedPtr< client::Waypoint > start, SharedPtr< client::Waypoint > end)
 
virtual ~BasicAgent ()=default
 

Private Member Functions

rpc::VehicleControl CarFollowingManager (SharedPtr< client::Actor > vehicle, float distance, bool debug=false)
 Car-following control law applied when there is a vehicle in front.
 
VehicleObstacle CollisionAndCarAvoidManager (SharedPtr< client::Waypoint > waypoint)
 Detect collision/car-avoidance opportunities ahead.
 
VehicleObstacle PedestrianAvoidManager (SharedPtr< client::Waypoint > waypoint)
 Detect pedestrians ahead.
 
void Tailgating (SharedPtr< client::Waypoint > waypoint)
 Tailgating-avoidance lane change, called from CollisionAndCarAvoidManager.
 
void UpdateInformation ()
 Refresh cached scene information consumed by RunStep.
 

Private Attributes

BehaviorParameters _behavior
 
RoadOption _direction = RoadOption::LaneFollow
 
RoadOption _incoming_direction = RoadOption::LaneFollow
 
SharedPtr< client::Waypoint > _incoming_waypoint
 
int _look_ahead_steps = 0
 
float _min_speed = 5.0f
 
float _speed = 0.0f
 
float _speed_limit = 0.0f
 

Additional Inherited Members

- Static Public Member Functions inherited from carla::agents::navigation::BasicAgent
static Options DefaultOptions ()
 Out-of-line default factory; see LocalPlanner::DefaultOptions().
 
- Protected Member Functions inherited from carla::agents::navigation::BasicAgent
std::pair< bool, SharedPtr< client::TrafficLight > > AffectedByTrafficLight (SharedPtr< client::ActorList > lights=nullptr, std::optional< float > max_distance=std::nullopt)
 Returns (affected, light) similar to Python _affected_by_traffic_light.
 
std::vector< LocalPlanner::PlanItem > GenerateLaneChangePath (SharedPtr< client::Waypoint > waypoint, const std::string &direction="left", float distance_same_lane=10.0f, float distance_other_lane=25.0f, float lane_change_distance=25.0f, bool check=true, int lane_changes=1, float step_distance=2.0f)
 Mirrors Python _generate_lane_change_path.
 
VehicleObstacle VehicleObstacleDetected (SharedPtr< client::ActorList > vehicles=nullptr, std::optional< float > max_distance=std::nullopt, float up_angle_th=90.0f, float low_angle_th=0.0f, int lane_offset=0)
 Mirrors Python _vehicle_obstacle_detected.
 
- Protected Attributes inherited from carla::agents::navigation::BasicAgent
float _base_tlight_threshold
 
float _base_vehicle_threshold
 
SharedPtr< GlobalRoutePlanner > _global_planner
 
bool _ignore_stop_signs
 
bool _ignore_traffic_lights
 
bool _ignore_vehicles
 
SharedPtr< client::TrafficLight > _last_traffic_light
 
SharedPtr< client::ActorList > _lights_list
 
std::unordered_map< uint32_t, SharedPtr< client::Waypoint > > _lights_map
 
std::unique_ptr< LocalPlanner > _local_planner
 
SharedPtr< client::Map > _map
 
float _max_brake
 
float _offset
 
float _sampling_resolution
 
float _speed_ratio
 
float _target_speed
 
bool _use_bbs_detection
 
SharedPtr< client::Vehicle > _vehicle
 
SharedPtr< client::World > _world
 

Detailed Description

Behavior-driven navigation agent.

Mirrors agents.navigation.behavior_agent.BehaviorAgent in the Python API.

Definition at line 30 of file BehaviorAgent.h.

Member Enumeration Documentation

◆ Behavior

Enumerator
Cautious 
Normal 
Aggressive 

Definition at line 32 of file BehaviorAgent.h.

Constructor & Destructor Documentation

◆ BehaviorAgent()

carla::agents::navigation::BehaviorAgent::BehaviorAgent ( SharedPtr< client::Vehicle >  vehicle,
Behavior  behavior = Behavior::Normal,
const Options &  opts = BasicAgent::DefaultOptions(),
SharedPtr< client::Map >  map = nullptr,
SharedPtr< GlobalRoutePlanner >  grp = nullptr 
)

Member Function Documentation

◆ CarFollowingManager()

rpc::VehicleControl carla::agents::navigation::BehaviorAgent::CarFollowingManager ( SharedPtr< client::Actor >  vehicle,
float  distance,
bool  debug = false 
)
private

◆ CollisionAndCarAvoidManager()

BasicAgent::VehicleObstacle carla::agents::navigation::BehaviorAgent::CollisionAndCarAvoidManager ( SharedPtr< client::Waypoint >  waypoint)
private

◆ EmergencyStop()

rpc::VehicleControl carla::agents::navigation::BehaviorAgent::EmergencyStop ( ) const

Build an emergency-stop control: throttle=0, brake=_max_brake, hand_brake=false, steer left untouched (default 0).

Definition at line 371 of file BehaviorAgent.cpp.

References carla::agents::navigation::BasicAgent::_max_brake, and carla::rpc::VehicleControl::throttle.

Referenced by RunStep().

◆ PedestrianAvoidManager()

BasicAgent::VehicleObstacle carla::agents::navigation::BehaviorAgent::PedestrianAvoidManager ( SharedPtr< client::Waypoint >  waypoint)
private

◆ RunStep() [1/2]

rpc::VehicleControl carla::agents::navigation::BehaviorAgent::RunStep ( )
inlineoverridevirtual

Polymorphic entry point: keeps dispatch through BasicAgent* correct.

Reimplemented from carla::agents::navigation::BasicAgent.

Definition at line 48 of file BehaviorAgent.h.

References RunStep().

Referenced by RunStep().

◆ RunStep() [2/2]

rpc::VehicleControl carla::agents::navigation::BehaviorAgent::RunStep ( bool  debug)

◆ Tailgating()

void carla::agents::navigation::BehaviorAgent::Tailgating ( SharedPtr< client::Waypoint >  waypoint)
private

◆ TrafficLightManager()

bool carla::agents::navigation::BehaviorAgent::TrafficLightManager ( )

Returns true if the agent is affected by a traffic light.

Definition at line 99 of file BehaviorAgent.cpp.

References carla::agents::navigation::BasicAgent::_world, and carla::agents::navigation::BasicAgent::AffectedByTrafficLight().

Referenced by RunStep().

◆ UpdateInformation()

void carla::agents::navigation::BehaviorAgent::UpdateInformation ( )
private

Member Data Documentation

◆ _behavior

BehaviorParameters carla::agents::navigation::BehaviorAgent::_behavior
private

◆ _direction

RoadOption carla::agents::navigation::BehaviorAgent::_direction = RoadOption::LaneFollow
private

◆ _incoming_direction

RoadOption carla::agents::navigation::BehaviorAgent::_incoming_direction = RoadOption::LaneFollow
private

Definition at line 78 of file BehaviorAgent.h.

Referenced by RunStep(), and UpdateInformation().

◆ _incoming_waypoint

SharedPtr<client::Waypoint> carla::agents::navigation::BehaviorAgent::_incoming_waypoint
private

Definition at line 79 of file BehaviorAgent.h.

Referenced by RunStep(), and UpdateInformation().

◆ _look_ahead_steps

int carla::agents::navigation::BehaviorAgent::_look_ahead_steps = 0
private

Definition at line 73 of file BehaviorAgent.h.

Referenced by UpdateInformation().

◆ _min_speed

float carla::agents::navigation::BehaviorAgent::_min_speed = 5.0f
private

Definition at line 76 of file BehaviorAgent.h.

Referenced by CarFollowingManager().

◆ _speed

float carla::agents::navigation::BehaviorAgent::_speed = 0.0f
private

◆ _speed_limit

float carla::agents::navigation::BehaviorAgent::_speed_limit = 0.0f
private

The documentation for this class was generated from the following files: