CARLA 0.9.14 Release

New large map, multi-GPU, new semantic classes, Mitsubishi bus, N-wheeled vehicles

Posted by @MattRowe18 on December 23, 2022

Get CARLA 0.9.14

The 0.9.14 release of CARLA has landed and we think you’ll be just as excited as we are about it!

At CARLA, we are scaling things up! The latest version of CARLA brings a brand new Large Map, with an unprecedented scale and level of detail. Town 12 is 10x10 km2 and boasts a diverse range of environments from urban high-rise to rural corn fields. You’ll be amazed by the size and detail!

Continuing with the theme of scaling up, 0.9.14 now supports multiple GPUs for setting up high-performance CARLA workstations.

CARLA 0.9.14 brings further diversity and realism to your traffic simulations with a brand new public transit vehicle - the Mitsubishi Fuso Rosa bus.

This version of CARLA includes new semantic classes to further differentiate vehicle types. Buses, trucks, bicycles, motorcycles and riders now have their own semantic IDs and colors matching the Cityscapes color pallette.

N-wheeled vehicles are now supported by CARLA’s engine, enabling users to import models of heavy goods and industrial vehicles with 3 or more axles.

And last but not least, version 0.9.14 comes with numerous fixes and improvements. CARLA now has an Ackermann control built into the API, vehicle objects now have additional attributes to help filter and organise them and the Traffic Manager has new functions to offset the vehicle from the lane center.

We hope you enjoy reading about CARLA’s latest features!

Town 12

Town 12 is the newest addition to the CARLA asset library. Leveraging the Large Map functionality introduced in CARLA version 0.9.12, Town 12 boasts a diverse range of highly detailed environments including the following regions:

High-rise central business district:

Town 12’s central business district is a large area of high rise skyscrapers arranged into blocks on a consistent grid of roads, resembling downtown areas in many large American and European cities.

high_rise

High density residential:

The high density residential areas of Town 12 have many 2-10 storey apartment buildings with commercial properties like cafes and retail stores at street level.

high_dens_res

Low density residential:

The low density residential regions of Town 12 reflect the classic suburbs of many American cities, with one and two story homes surrounded by fenced gardens and garages.

low_dens_res

Highways and intersections:

Town 12 has an extensive highway system, including 3-4 lane highways interspersed with impressive roundabout junctions.

highway

Rural and farmland:

Town 12 also has rural regions with characteristic farmland buildings like wooden barns and farmhouses, windmills, grain silos, corn fields, hay bails and rural fencing.

rural

Multi GPU

multi_gpu

The CARLA simulator can now be distributed across multiple GPU devices. Multiple synchronized instances of the simulator can be run on different GPUs, with the sensor workload distributed evenly over the graphics cards. High performance CARLA workstations can be built using multi-GPU server hardware.

New Semantic Segmentation Classes

CARLA’s semantic classes are now fully compatible with the Cityscapes ontology. We have included 5 new classes for extra ground truth fidelity, assisting in the classification of different types of vehicle. The semantic class list now includes separate classes for cars, trucks and buses, along with new classes for motorcycles, bicycles and their riders.

The semantic class list has 5 new members and associated colors:

  • car (replaces the previous ‘vehicle’ class) - RGB: (0, 0, 142)
  • truck - RGB: (0, 0, 70)
  • bus - RGB: (0, 60, 100)
  • motorcycle - RGB: (0, 0, 230)
  • bicycle - RGB: (119, 11, 32)
  • rider - RGB: (255, 0, 0)

new_semantic_classes

Mitsubishi Fuso Rosa bus

The CARLA garage presents a brand new public transit vehicle. The Mitsubishi Fuso Rosa is a widely used 20-25 seat bus, used by both private travel companies and public transport authorities around the world with tens of thousands produced every year.

fuso_rosa_bus

N-wheeled Vehicles

CARLA now supports vehicles with more than four wheels. Users can now develop models of heavy goods and industrial vehicles with 3 or more axles and import them into CARLA.

n_wheeled

New Camera Post Processing Effects

CARLA camera sensors can now simulate the distorting effects of rain and dust contamination of the lens, adding an extra level of realism to your training data and presenting challenges for testing your AD stacks with imperfect data.

Improvements and fixes

As with every CARLA release, we continue our efforts to improve the workflow and fix bugs. The following are some key improvements and fixes:

New vehicle attributes:

Vehicle blueprints now have new attributes to help organize and filter them better:

  • base_type: can be use as a vehicle classification. The possible values are car, truck, van, motorcycle and bicycle.
  • special_type: provides more information about the vehicle. It is currently restricted to electric, emergency and taxi, and not all vehicles have this attribute filled.
  • has_dynamic_doors: can either be true or false depending on whether or not the vehicle has doors that can be opened using the API.
  • has_lights: works in the same way as has_dynamic_doors, but differentiates between vehicles with lights, and those that don’t.

Native Ackermann controller:

The CARLA API now has methods for applying Ackermann controls to a vehicle:

  • apply_ackermann_control: to apply an Ackermann control command to a vehicle
  • get_ackermann_controller_settings: to get the last Ackermann controller settings applied
  • apply_ackermann_controller_settings: to apply new Ackermann controller settings

New Traffic Manager methods:

The Traffic Manager has new methods to offset the vehicle from the lane center:

  • vehicle_lane_offset(actor, offset)
  • global_lane_offset(offset)

Other fixes and improvements:

  • Fixed bug in FrictionTrigger causing sometimes server segfault
  • Added attachment type “SpringArmGhost” for cinematic cameras but without doing the collision test.
  • Improved algorithm to move signals out of the road by computing the desired displacement direction.
  • Some of the warnings shown when building a map will now only be showing when debugging.
  • The ids for semantic segmentation has been modified to be the same as cityscapes (labels, ids and colors)
  • Fixed bug causing traffic signals at the end points of a road to sometimes create malformed waypoints.
  • Fixed pedestrian skeleton frame, where sometimes it was draw displaced from the body
  • Fixed decals when importing maps. It was using other .json files found in other packages.
  • In multi-GPU mode some sensors now are forced to be created on the primary server always (ex. collision sensor)
  • Added the speed limits for 100, 110 and 120 Km/h.
  • Fixing sensor destruction, now the stream and socket is succesfully destroyed.
  • Fixed bug at Vehicle.get_traffic_light_state() and Vehicle.is_at_traffic_light() causing vehicles to temporarily not lose the information of a traffic light if they moved away from it before it turned green.
  • Changed the height of the automatic spawn points, from 3m to only 0.5m
  • Added pedestrian skeleton to the recorder, as additional data. They will replay with the exact pose.
  • Added multi-GPU feature. Now several servers (with dedicated GPU) can render sensors for the same simulation.
  • Fixed bug causing the Vehicle.get_traffic_light_state() function not notify about the green to yellow and yellow to red light state changes.
  • Fixed bug causing the Vehicle.is_at_traffic_light() function to return false if the traffic light was green.
  • Fixed bug causing the scene lights to return an incorrect location at large maps.
  • Fixed bug causing the world.ground_projection() function to return an incorrect location at large maps.
  • Added failure state to vehicles, which can be retrieved by using Vehicle.get_failure_state(). Only Rollover failure state is currently supported.
  • Fixed bug causing the TM to block the simulation when a vehicle with no physics was teleported.
  • Fixed bug causing the TM to block the simulation when travelling through a short roads that looped on themselves.
  • Improved the TM’s handling of non signalized junctions, resulting in a more fluid overall behavior.
  • Added check to avoid adding procedural trigger boxes inside intersections.
  • Python agents now accept a carla.Map and GlobalRoutePlanner instances as inputs, avoiding the need to recompute them.
  • Python agents now have a function to lane change.
  • Python agents now detect vehicle in adjacent lanes if invaded due to the offset.
  • Fixed bug causing the python agents to sometimes not detect a blocking actor if there were severral actors around it.
  • Improved Python agents performance for large maps.
  • Fix a bug at Map.get_topology(), causing lanes with no successors to not be part of it.
  • Added new ConstantVelocityAgent
  • Added new parameter to the TrafficManager, set_desired_speed, to set a vehicle’s speed.
  • Fixed bug causing the Traffic Manager to not be deterministic when using hybrid mode
  • Added NormalsSensor, a new sensor with normals information
  • Added support for N wheeled vehicles
  • Added support for new batch commands ConsoleCommand, ApplyLocation (to actor), SetTrafficLightState
  • Added new API function: set_day_night_cycle at the LightManager, to (de)activate the automatic switch of the lights when the simulation changes from day to night mode, and viceversa.
  • Switch to boost::variant2 for rpc::Command as that allows more than 20 RPC commands
  • Added post process effects for rainy and dusty weathers.
  • Switched data type of the dust storm weather parameter from bool to float.
  • Check for the version of the installed Clang compiler during build.
  • Added API function to get direct access to the GBuffer textures of a sensor:
    • listen_to_gbuffer: to set a callback for a specific GBuffer texture