carla/PythonAPI/docs/control.yml

631 lines
20 KiB
YAML

---
- module_name: carla
# - CLASSES ------------------------------
classes:
- class_name: VehicleControl
# - DESCRIPTION ------------------------
doc: >
Manages the basic movement of a vehicle using typical driving controls.
# - PROPERTIES -------------------------
instance_variables:
- var_name: throttle
type: float
doc: >
A scalar value to control the vehicle throttle [0.0, 1.0]. Default is 0.0.
# --------------------------------------
- var_name: steer
type: float
doc: >
A scalar value to control the vehicle steering [-1.0, 1.0]. Default is 0.0.
# --------------------------------------
- var_name: brake
type: float
doc: >
A scalar value to control the vehicle brake [0.0, 1.0]. Default is 0.0.
# --------------------------------------
- var_name: hand_brake
type: bool
doc: >
Determines whether hand brake will be used. Default is <b>False</b>.
# --------------------------------------
- var_name: reverse
type: bool
doc: >
Determines whether the vehicle will move backwards. Default is <b>False</b>.
# --------------------------------------
- var_name: manual_gear_shift
type: bool
doc: >
Determines whether the vehicle will be controlled by changing gears manually. Default is <b>False</b>.
# --------------------------------------
- var_name: gear
type: int
doc: >
States which gear is the vehicle running on.
# - METHODS ----------------------------
methods:
- def_name: __init__
params:
- param_name: throttle
type: float
default: 0.0
doc: Scalar value between [0.0,1.0]
- param_name: steer
type: float
default: 0.0
doc: Scalar value between [0.0,1.0]
- param_name: brake
type: float
default: 0.0
doc: Scalar value between [0.0,1.0]
- param_name: hand_brake
type: bool
default: False
- param_name: reverse
type: bool
default: False
- param_name: manual_gear_shift
type: bool
default: False
- param_name: gear
type: int
default: 0
# --------------------------------------
- def_name: __eq__
params:
- param_name: other
type: carla.VehicleControl
# --------------------------------------
- def_name: __ne__
params:
- param_name: other
type: carla.VehicleControl
# --------------------------------------
- def_name: __str__
# --------------------------------------
- class_name: VehicleAckermannControl
# - DESCRIPTION ------------------------
doc: >
Manages the basic movement of a vehicle using Ackermann driving controls.
# - PROPERTIES -------------------------
instance_variables:
- var_name: steer
type: float
doc: >
Desired steer (rad). Positive value is to the right. Default is 0.0.
# --------------------------------------
- var_name: steer_speed
type: float
doc: >
Steering velocity (rad/s). Zero steering angle velocity means change the steering angle as quickly as possible. Default is 0.0.
# --------------------------------------
- var_name: speed
type: float
doc: >
Desired speed (m/s). Default is 0.0.
# --------------------------------------
- var_name: acceleration
type: float
doc: >
Desired acceleration (m/s2) Default is 0.0.
# --------------------------------------
- var_name: jerk
type: float
doc: >
Desired jerk (m/s3). Default is 0.0.
# - METHODS ----------------------------
methods:
- def_name: __init__
params:
- param_name: steer
type: float
default: 0.0
- param_name: steer_speed
type: float
default: 0.0
- param_name: speed
type: float
default: 0.0
- param_name: acceleration
type: float
default: 0.0
- param_name: jerk
type: float
default: 0.0
# --------------------------------------
- def_name: __eq__
params:
- param_name: other
type: carla.AckermannVehicleControl
# --------------------------------------
- def_name: __ne__
params:
- param_name: other
type: carla.AckermannVehicleControl
# --------------------------------------
- def_name: __str__
# --------------------------------------
- class_name: AckermannControllerSettings
# - DESCRIPTION ------------------------
doc: >
Manages the settings of the Ackermann PID controller.
# - PROPERTIES -------------------------
instance_variables:
- var_name: speed_kp
type: float
doc: >
Proportional term of the speed PID controller.
# --------------------------------------
- var_name: speed_ki
type: float
doc: >
Integral term of the speed PID controller.
# --------------------------------------
- var_name: speed_kd
type: float
doc: >
Derivative term of the speed PID controller.
# --------------------------------------
- var_name: accel_kp
type: float
doc: >
Proportional term of the acceleration PID controller.
# --------------------------------------
- var_name: accel_ki
type: float
doc: >
Integral term of the acceleration PID controller.
# --------------------------------------
- var_name: accel_kd
type: float
doc: >
Derivative term of the acceleration PID controller.
# - METHODS ----------------------------
methods:
- def_name: __init__
params:
- param_name: speed_kp
type: float
default: 0.15
- param_name: speed_ki
type: float
default: 0.0
- param_name: speed_kd
type: float
default: 0.25
- param_name: accel_kp
type: float
default: 0.01
- param_name: accel_ki
type: float
default: 0.0
- param_name: accel_kd
type: float
default: 0.01
# --------------------------------------
- def_name: __eq__
params:
- param_name: other
type: carla.AckermannControllerSettings
# --------------------------------------
- def_name: __ne__
params:
- param_name: other
type: carla.AckermannControllerSettings
# --------------------------------------
- def_name: __str__
# --------------------------------------
- class_name: WalkerControl
doc: >
This class defines specific directions that can be commanded to a carla.Walker to control it via script.
AI control can be settled for walkers, but the control used to do so is carla.WalkerAIController.
# - PROPERTIES -------------------------
instance_variables:
- var_name: direction
type: carla.Vector3D
doc: >
Vector using global coordinates that will correspond to the direction of the walker.
# --------------------------------------
- var_name: speed
type: float
var_units: m/s
doc: >
A scalar value to control the walker's speed.
# --------------------------------------
- var_name: jump
type: bool
doc: >
If <b>True</b>, the walker will perform a jump.
# - METHODS ----------------------------
methods:
- def_name: __init__
params:
- param_name: direction
default: [1.0, 0.0, 0.0]
type: carla.Vector3D
- param_name: speed
default: 0.0
param_units: m/s
type: float
- param_name: jump
default: False
type: bool
# --------------------------------------
- def_name: __eq__
params:
- param_name: other
type: carla.WalkerControl
doc: >
Compares every variable with `other` and returns <b>True</b> if these are all the same.
# --------------------------------------
- def_name: __ne__
params:
- param_name: other
type: carla.WalkerControl
doc: >
Compares every variable with `other` and returns <b>True</b> if any of these differ.
# --------------------------------------
- def_name: __str__
# --------------------------------------
- class_name: WalkerBoneControlOut
# - DESCRIPTION ------------------------
doc: >
This class is used to return all bone positions of a pedestrian. For each bone we get its _name_ and its transform in three different spaces (world, actor and relative).
# - PROPERTIES -------------------------
instance_variables:
- var_name: bone_transforms
type: list([name,world, actor, relative])
doc: >
List of one entry per bone with this information:
- name: bone name
- world: transform in world coordinates
- component: transform based on the pivot of the actor
- relative: transform based on the bone parent
# - METHODS ----------------------------
methods:
- def_name: __str__
# --------------------------------------
- class_name: WalkerBoneControlIn
# - DESCRIPTION ------------------------
doc: >
This class grants bone specific manipulation for walker. The skeletons of walkers have been unified for clarity and the transform applied to each bone are always relative to its parent. Take a look [here](tuto_G_control_walker_skeletons.md) to learn more on how to create a walker and define its movement.
# - PROPERTIES -------------------------
instance_variables:
- var_name: bone_transforms
type: list([name,transform])
doc: >
List with the data for each bone we want to set:
- name: bone name
- relative: transform based on the bone parent
# - METHODS ----------------------------
methods:
- def_name: __init__
params:
- param_name: 'list(name,transform)'
type: tuple
doc: >
Initializes an object containing moves to be applied on tick. These are listed with the name of the bone and the transform that will be applied to it.
# --------------------------------------
- def_name: __str__
# --------------------------------------
- class_name: VehiclePhysicsControl
doc: >
Summarizes the parameters that will be used to simulate a carla.Vehicle as a physical object. The specific settings for the wheels though are stipulated using carla.WheelPhysicsControl.
# - PROPERTIES -------------------------
instance_variables:
- var_name: torque_curve
type: list(carla.Vector2D)
doc: >
Curve that indicates the torque measured in Nm for a specific RPM of the vehicle's engine.
# --------------------------------------
- var_name: max_torque
type: float
var_units: Nm
doc: >
The maximum vehicle's engine Torque (Nm).
# --------------------------------------
- var_name: max_rpm
type: float
doc: >
The maximum RPM of the vehicle's engine.
# --------------------------------------
- var_name: moi
type: float
var_units: kg*m<sup>2</sup>
doc: >
The moment of inertia of the vehicle's engine.
# --------------------------------------
- var_name: rev_down_rate
type: float
doc: >
Affects how fast the vehicle's engine RPM slows down.
# --------------------------------------
- var_name: differential_type
type: int
doc: >
Type of differential (Undefined = 0, AllWheelDrive = 1, FrontWheelDrive = 2, RearWheelDrive = 3).
# --------------------------------------
- var_name: front_rear_split
type: float
doc: >
Ratio of torque split between front and rear (<0.5 means more to front, >0.5 means more to rear, works only with 4W type).
# --------------------------------------
- var_name: use_gear_autobox
type: bool
doc: >
If <b>True</b>, the vehicle will have an automatic transmission.
# --------------------------------------
- var_name: gear_switch_time
type: float
var_units: seconds
doc: >
Switching time between gears.
# --------------------------------------
- var_name: final_ratio
type: float
doc: >
Fixed ratio from transmission to wheels.
# --------------------------------------
- var_name: forward_gears
type: list(float)
doc: >
List of objects defining the vehicle's gears.
# --------------------------------------
- var_name: reverse_gears
type: list(float)
doc: >
List of floats defining the vehicle's reverse gears (there is normally only one).
# --------------------------------------
- var_name: change_up_rpm
type: float
doc: >
Vehicle's engine RPM at which gear up change ocurrs.
# --------------------------------------
- var_name: change_down_rpm
type: float
doc: >
Vehicle's engine RPM at which gear down change ocurrs.
# --------------------------------------
- var_name: transmission_efficiency
type: float
doc: >
Mechanical frictional losses. If set to 0.9 means that the transmission operate at 90% efficiency.
# --------------------------------------
- var_name: mass
type: float
var_units: kilograms
doc: >
Mass of the vehicle.
# --------------------------------------
- var_name: drag_coefficient
type: float
doc: >
Drag coefficient of the vehicle's chassis.
# --------------------------------------
- var_name: center_of_mass
type: carla.Vector3D
var_units: meters
doc: >
Center of mass of the vehicle.
# --------------------------------------
- var_name: steering_curve
type: list(carla.Vector2D)
doc: >
Curve that indicates the maximum steering for a specific forward speed.
# --------------------------------------
- var_name: use_sweep_wheel_collision
type: bool
doc: >
Enable the use of sweep for wheel collision. By default, it is disabled and it uses a
simple raycast from the axis to the floor for each wheel. This option provides a better
collision model in which the full volume of the wheel is checked against collisions.
# --------------------------------------
- var_name: wheels
type: list(carla.WheelPhysicsControl)
doc: >
List of wheel physics objects. This list should have 4 elements, where index 0 corresponds to the front left wheel, index 1 corresponds to the front right wheel, index 2 corresponds to the back left wheel and index 3 corresponds to the back right wheel. For 2 wheeled vehicles, set the same values for both front and back wheels.
# - METHODS ----------------------------
methods:
- def_name: __init__
params:
- param_name: torque_curve
default: [[0.0,500.0], [5000.0, 500.0]]
type: list(carla.Vector2D)
- param_name: max_torque
default: 300.0
type: float
param_units: Nm
- param_name: max_rpm
default: 5000.0
type: float
- param_name: moi
default: 1.0
type: float
param_units: kg*m<sup>2</sup>
- param_name: rev_down_rate
default: 600.0
type: float
- param_name: differential_type
default: 3
type: int
- param_name: front_rear_split
default: 0.5
type: float
- param_name: use_gear_autobox
default: True
type: bool
- param_name: gear_switch_time
default: 0.5
type: float
param_units: seconds
param_units: kg*m<sup>2</sup>/s
- param_name: final_ratio
default: 4.0
type: float
- param_name: forward_gears
default: [2.85, 2.02, 1.35, 1.0, 2.85, 2.02, 1.35, 1.0]
type: list(float)
- param_name: reverse_gears
default: [2.86, 2.86]
type: list(float)
- param_name: change_up_rpm
default: 4500.0
type: float
- param_name: change_down_rpm
default: 2000.0
type: float
- param_name: transmission_efficiency
default: 0.9
type: float
- param_name: mass
default: 1000.0
type: float
param_units: kilograms
- param_name: drag_coefficient
default: 0.3
type: float
- param_name: center_of_mass
default: [0.0, 0.0, 0.0]
type: carla.Vector3D
- param_name: steering_curve
default: [[0.0, 1.0],[10.0, 0.5]]
type: carla.Vector2D
- param_name: wheels
default: list()
type: list(carla.WheelPhysicsControl)
- param_name: use_sweep_wheel_collision
default: False
type: bool
doc: >
VehiclePhysicsControl constructor
# --------------------------------------
- def_name: __eq__
params:
- param_name: other
type: carla.VehiclePhysicsControl
# --------------------------------------
- def_name: __ne__
params:
- param_name: other
type: carla.VehiclePhysicsControl
# --------------------------------------
- def_name: __str__
# --------------------------------------
- class_name: WheelPhysicsControl
doc: >
Class that defines specific physical parameters for wheel objects that will be part of a carla.VehiclePhysicsControl to simulate vehicle it as a material object.
# - PROPERTIES -------------------------
instance_variables:
- var_name: tire_friction
type: float
doc: >
A scalar value that indicates the friction of the wheel.
# --------------------------------------
- var_name: max_steer_angle
type: float
var_units: degrees
doc: >
Maximum angle that the wheel can steer.
# --------------------------------------
- var_name: radius
type: float
var_units: centimeters
doc: >
Radius of the wheel.
# --------------------------------------
- var_name: cornering_stiffness
type: float
doc: >
Tyre Cornering Ability.
# --------------------------------------
- var_name: abs
type: bool
doc: >
Indicates if the Advanced Braking System is enabled.
# --------------------------------------
- var_name: traction_control
type: bool
doc: >
Indicates if the Straight Line Traction Control is enabled.
# --------------------------------------
- var_name: max_brake_torque
type: float
var_units: N*m
doc: >
Maximum brake torque.
# --------------------------------------
- var_name: max_handbrake_torque
type: float
var_units: N*m
doc: >
Maximum handbrake torque.
# --------------------------------------
- var_name: position
type: carla.Vector3D
doc: >
World position of the wheel. This is a read-only parameter.
# - METHODS ----------------------------
methods:
- def_name: __init__
params:
- param_name: tire_friction
default: 3.0
type: float
- param_name: max_steer_angle
default: 70.0
type: float
param_units: degrees
- param_name: radius
default: 30.0
type: float
param_units: centimerers
- param_name: cornering_stiffness
default: 1000.0
type: float
- param_name: abs
default: False
type: bool
- param_name: traction_control
default: False
type: bool
- param_name: max_brake_torque
default: 1500.0
type: float
param_units: N*m
- param_name: max_handbrake_torque
default: 3000.0
type: float
param_units: N*m
- param_name: position
default: (0.0,0.0,0.0)
type: carla.Vector3D
param_units: meters
# --------------------------------------
- def_name: __eq__
params:
- param_name: other
type: carla.WheelPhysicsControl
# --------------------------------------
- def_name: __ne__
params:
- param_name: other
type: carla.WheelPhysicsControl
# --------------------------------------
- def_name: __str__
# --------------------------------------
...