2021-07-26 19:31:48 +08:00
# Control and monitor vehicle physics
2019-06-06 22:58:48 +08:00
2021-04-26 17:05:38 +08:00
Physics properties can be tuned for vehicles and their wheels.
These changes are applied **only** on runtime, and values are set back to default when the execution ends.
2019-06-06 22:58:48 +08:00
2019-09-06 17:07:21 +08:00
These properties are controlled through a
2020-03-29 18:51:16 +08:00
[carla.VehiclePhysicsControl ](python_api.md#carla.VehiclePhysicsControl ) object,
2019-09-06 17:07:21 +08:00
which also provides the control of each wheel's physics through a
2020-03-29 18:51:16 +08:00
[carla.WheelPhysicsControl ](python_api.md#carla.WheelPhysicsControl ) object.
2019-06-06 22:58:48 +08:00
2021-07-26 19:31:48 +08:00
- [__Vehicle control code example__ ](#vehicle-control-code-example )
- [__Viewing vehicle telemetry__ ](#viewing-vehicle-telemetry )
2020-03-02 21:35:50 +08:00
---
2021-07-26 19:31:48 +08:00
## Vehicle control code example
2019-06-06 22:58:48 +08:00
2019-07-09 23:23:35 +08:00
```py
2019-06-06 22:58:48 +08:00
import carla
import random
def main():
# Connect to client
client = carla.Client('127.0.0.1', 2000)
client.set_timeout(2.0)
# Get World and Actors
world = client.get_world()
actors = world.get_actors()
# Get a random vehicle from world (there should be one at least)
vehicle = random.choice([actor for actor in actors if 'vehicle' in actor.type_id])
# Create Wheels Physics Control
2021-04-26 17:05:38 +08:00
front_left_wheel = carla.WheelPhysicsControl(tire_friction=2.0, damping_rate=1.5, max_steer_angle=70.0, long_stiff_value=1000)
front_right_wheel = carla.WheelPhysicsControl(tire_friction=2.0, damping_rate=1.5, max_steer_angle=70.0, long_stiff_value=1000)
rear_left_wheel = carla.WheelPhysicsControl(tire_friction=3.0, damping_rate=1.5, max_steer_angle=0.0, long_stiff_value=1000)
rear_right_wheel = carla.WheelPhysicsControl(tire_friction=3.0, damping_rate=1.5, max_steer_angle=0.0, long_stiff_value=1000)
2019-06-06 22:58:48 +08:00
wheels = [front_left_wheel, front_right_wheel, rear_left_wheel, rear_right_wheel]
# Change Vehicle Physics Control parameters of the vehicle
physics_control = vehicle.get_physics_control()
physics_control.torque_curve = [carla.Vector2D(x=0, y=400), carla.Vector2D(x=1300, y=600)]
physics_control.max_rpm = 10000
physics_control.moi = 1.0
physics_control.damping_rate_full_throttle = 0.0
physics_control.use_gear_autobox = True
physics_control.gear_switch_time = 0.5
physics_control.clutch_strength = 10
physics_control.mass = 10000
physics_control.drag_coefficient = 0.25
physics_control.steering_curve = [carla.Vector2D(x=0, y=1), carla.Vector2D(x=100, y=1), carla.Vector2D(x=300, y=1)]
2020-12-19 01:09:33 +08:00
physics_control.use_sweep_wheel_collision = True
2021-04-26 17:05:38 +08:00
physics_control.wheels = wheels
2019-06-06 22:58:48 +08:00
# Apply Vehicle Physics Control for the vehicle
vehicle.apply_physics_control(physics_control)
2021-04-26 17:05:38 +08:00
print(physics_control)
2019-06-06 22:58:48 +08:00
if __name__ == '__main__':
main()
2019-07-09 23:23:35 +08:00
```
2021-07-26 19:31:48 +08:00
---
## Viewing vehicle telemetry
Vehicle telemetry can be visualised by calling the [`Actor.enable_debug_telemetry` ](python_api.md#carla.Actor.enable_debug_telemetry ) method. This will provide graph views of several metrics on the server window as well as vehicle reference points on the simulation window.
![vehicle_telemetry ](img/vehicle_telemetry.png )
2021-07-26 23:22:12 +08:00
You can try the telemetry visualisation tool in the example script `manual_control.py` located in `PythonAPI/examples` . Activate the telemetry view by pressing `T` .