Built-in Skills
This file is automatically generated from java files. Do Not Edit It.
Introduction​
Skills are built-in modules, written in Java, that provide a set of related built-in variables and built-in actions (in addition to those already provided by GAMA) to the species that declare them. A declaration of skill is done by filling the skills attribute in the species definition:
species my_species skills: [skill1, skill2] {
...
}
Skills have been designed to be mutually compatible so that any combination of them will result in a functional species. An example of skill is the moving
skill.
So, for instance, if a species is declared as:
species foo skills: [moving]{
...
}
Its agents will automatically be provided with the following variables : speed
, heading
, destination
and the following actions: move
, goto
, wander
, follow
in addition to those built-in in species and declared by the modeller. Most of these variables, except the ones marked read-only, can be customized and modified like normal variables by the modeller. For instance, one could want to set a maximum for the speed; this would be done by redeclaring it like this:
float speed max:100 min:0;
Or, to obtain a speed increasing at each simulation step:
float speed max:100 min:0 <- 1 update: speed * 1.01;
Or, to change the speed in a behavior:
if speed = 5 {
speed <- 10;
}
Table of Contents​
advanced_driving, driving, dynamic_body, fipa, messaging, moving, moving3D, network, skill_road, skill_road_node, SQLSKILL, static_body,
advanced_driving
​
Variables​
acc_bias
(float
): the bias term used for asymmetric lane changing, parameter 'a_bias' in MOBILacc_gain_threshold
(float
): the minimum acceleration gain for the vehicle to switch to another lane, introduced to prevent frantic lane changing. Known as the parameter 'a_th' in the MOBIL lane changing modelacceleration
(float
): the current acceleration of the vehicle (in m/s^2)allowed_lanes
(list
): a list containing possible lane index values for the attribute lowest_lanecurrent_index
(int
): the index of the current edge (road) in the pathcurrent_lane
(int
): the current lane on which the agent iscurrent_path
(path
): the path which the agent is currently followingcurrent_road
(agent
): the road which the vehicle is currently oncurrent_target
(agent
): the current target of the agentdelta_idm
(float
): the exponent used in the computation of free-road acceleration in the Intelligent Driver Modeldistance_to_current_target
(float
): euclidean distance to the current target nodedistance_to_goal
(float
): euclidean distance to the endpoint of the current segmentfinal_target
(agent
): the final target of the agentfollower
(agent
): the vehicle following this vehicleignore_oneway
(boolean
): if set totrue
, the vehicle will be able to violate one-way traffic rulelane_change_cooldown
(float
): the duration that a vehicle must wait before changing lanes againlane_change_limit
(int
): the maximum number of lanes that the vehicle can change during a simulation stepleading_distance
(float
): the distance to the leading vehicleleading_speed
(float
): the speed of the leading vehicleleading_vehicle
(agent
): the vehicle which is right ahead of the current vehicle. If this is set to nil, the leading vehicle does not exist or might be very far away.linked_lane_limit
(int
): the maximum number of linked lanes that the vehicle can use; the default value is -1, i.e. the vehicle can use all available linked laneslowest_lane
(int
): the lane with the smallest index that the vehicle is inmax_acceleration
(float
): the maximum acceleration of the vehicle. Known as the parameter 'a' in the Intelligent Driver Modelmax_deceleration
(float
): the maximum deceleration of the vehicle. Known as the parameter 'b' in the Intelligent Driver Modelmax_safe_deceleration
(float
): the maximum deceleration that the vehicle is willing to induce on its back vehicle when changing lanes. Known as the parameter 'b_save' in the MOBIL lane changing modelmax_speed
(float
): the maximum speed that the vehicle can achieve. Known as the parameter 'v0' in the Intelligent Driver Modelmin_safety_distance
(float
): the minimum distance of the vehicle's front bumper to the leading vehicle's rear bumper, known as the parameter s0 in the Intelligent Driver Modelmin_security_distance
(float
): the minimal distance to another vehiclenext_road
(agent
): the road which the vehicle will enter nextnum_lanes_occupied
(int
): the number of lanes that the vehicle occupieson_linked_road
(boolean
): is the agent on the linked road?politeness_factor
(float
): determines the politeness level of the vehicle when changing lanes. Known as the parameter 'p' in the MOBIL lane changing modelproba_block_node
(float
): probability to block a node (do not let other vehicle cross the crossroad), within one secondproba_lane_change_down
(float
): probability to change to a lower lane (right lane if right side driving) to gain acceleration, within one secondproba_lane_change_up
(float
): probability to change to a upper lane (left lane if right side driving) to gain acceleration, within one secondproba_respect_priorities
(float
): probability to respect priority (right or left) laws, within one secondproba_respect_stops
(list
): probability to respect stop laws - one value for each type of stop, within one secondproba_use_linked_road
(float
): probability to change to a linked lane to gain acceleration, within one secondreal_speed
(float
): the actual speed of the agent (in meter/second)right_side_driving
(boolean
): are vehicles driving on the right size of the road?safety_distance_coeff
(float
): the coefficient for the computation of the the min distance between two vehicles (according to the vehicle speed - security_distance =max(min_security_distance, security_distance_coeff*
min(self.real_speed, other.real_speed) )security_distance_coeff
(float
): the coefficient for the computation of the the min distance between two vehicles (according to the vehicle speed - safety_distance =max(min_safety_distance, safety_distance_coeff*
min(self.real_speed, other.real_speed) )segment_index_on_road
(int
): current segment index of the agent on the current roadspeed
(float
): the speed of the agent (in meter/second)speed_coeff
(float
): speed coefficient for the speed that the vehicle want to reach (according to the max speed of the road)targets
(list
): the current list of points that the agent has to reach (path)time_headway
(float
): the time gap that to the leading vehicle that the driver must maintain. Known as the parameter 'T' in the Intelligent Driver Modeltime_since_lane_change
(float
): the elapsed time since the last lane changeusing_linked_road
(boolean
): indicates if the vehicle is occupying at least one lane on the linked roadvehicle_length
(float
): the length of the vehicle (in meters)violating_oneway
(boolean
): indicates if the vehicle is moving in the wrong direction on an one-way (unlinked) road
Actions​
advanced_follow_driving
​
moves the agent towards along the path passed in the arguments while considering the other agents in the network (only for graph topology)
Returned type: float
: the remaining time
Additional facets:​
path
(path): a path to be followed.target
(point): the target to reachspeed
(float): the speed to use for this move (replaces the current value of speed)time
(float): time to travel