We are happy to announce CARLA 0.9.3!
Let’s take a look at the highlights of this release!
Town04
is the largest map CARLA ever had, almost three times larger than Town03
. It includes a freeway, connection ramps with different heights and a small town. This allows the user to create a huge amount of different scenarios. Town05
includes a small freeway and a lot of different street layouts with more junctions.
We’ve created specific assets just for the freeway of these two maps to make them more realistic.
Figure 1. Views of the new Town04: Freeway.
Figure 2. View of the new Town05.
We created new models for pedestrians, in both genders. These are more realistic and cheap to render thanks to a new more optimized mesh. They include new animations and textures.
You can try to control them using the manual_control.py
.
Can be run like this:
> ./manual_control.py --filter=walker
Try to jump with space
and run with shift
;)
No Rendering Mode is a 2D map visualization tool that displays vehicles, traffic lights, speed limits, pedestrians, roads and other useful information that occurs in a town map. The main purpose of this tool is to improve the server framerate since the rendered frame won’t need to be transferred to the client. This includes:
Figure 3. The whole Town03 from the Map mode with some cars driving around.
manual_control.py
script and its vehicles, traffic signals and pedestrians around a specific radius. Therefore, in order to make use of this mode, it is necessary to spawn a vehicle by running the manual_control.py
script.Figure 4. Hero mode sample view, the orange circle defines the visible zone of the car in this case.
To run the simulator in no-rendering mode you should load a “CarlaSettings.ini” with the following content
[CARLA/Server]
DisableRendering=true
save this file, and launch the simulator with
./CarlaUE4.sh -carla-settings=CarlaSettings.ini
This release enables the user to access and modify traffic lights in the simulation. The traffic light class has been updated in the Python API with new functions. These allow a traffic light’s state to be accessed and modified in Python along with the times for each state. The user can now also freeze any or all traffic light(s) in the scene. It is now possible to retrieve the traffic light impacting a vehicle from the Vehicle class and change its state allowing the vehicle to proceed.
The following code snippet demonstrates the above:
def tick(self, world, clock):
tl = world.player.get_traffic_light()
if tl != None and tl.get_state() != carla.TrafficLightState.Green:
tl.set_state(carla.TrafficLightState.Green)
We’ve added two new sensors in our list.
Obstacle detector: A simple raycast sensor that will allow your agent to detect if there is something in front of it, and what is it. You can also choose between detecting everything in the world or just dynamic objects (useful for cars).
Global Navigation Satellite System: Good news if you want to use an alternative geographic information system. Now you can attach a GNSS to a car to get its geolocation. This geolocalization is based on the geo-reference define in the OpenDrive file associated with each map.
We added a few methods to interact with the actor’s physics:
set_velocity
allows the user to modify the linear velocity of a given actor.set_angular_velocity
grants the user the ability to set the angular velocity of an actor.get_angular_velocity
lets the user read the angular velocity of an actor.add_impulse
gives the user the posibility of adding an impulse as a vector in the world axis.We also renamed vehicle.get_vehicle_control()
to vehicle.get_control()
, to follow the naming convention we set for the walkers, much more clear and less redundant.
set_velocity
: for setting the linear velocityset_angular_velocity
: for setting the angular velocityget_angular_velocity
: for getting the angular velocityadd_impulse
: for applying an impulse (in world axis)vehicle.get_vehicle_control()
to vehicle.get_control()
to be consistent with walkersget_forward_vector()
to rotation and transform, retrieves the unit vector on the rotation’s X-axis