Skip to content

Commit

Permalink
opendrive reference fixes
Browse files Browse the repository at this point in the history
  • Loading branch information
MattRoweEAIF committed Mar 11, 2024
1 parent 4078bd2 commit 67c2168
Show file tree
Hide file tree
Showing 6 changed files with 20 additions and 20 deletions.
14 changes: 7 additions & 7 deletions _posts/2018-11-16-release-0.9.1.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ layout: post
comments: true
title: "CARLA 0.9.1: Vehicle navigation, new waypoint-based API, maps creation and more"
subtitle: ""
description: "This new version brings back most of the missing functionalities of the 0.8.X branch. It also introduces a new programmable navigation API built on top of a waypoint-based representation based on OpenDrive. Users can now build their own maps by defining road networks in OpenDrive format. We have integrated VectorZero's RoadRunner to create new maps for CARLA in a semi-automatic way."
description: "This new version brings back most of the missing functionalities of the 0.8.X branch. It also introduces a new programmable navigation API built on top of a waypoint-based representation based on ASAM OpenDRIVE. Users can now build their own maps by defining road networks in OpenDRIVE format. We have integrated VectorZero's RoadRunner to create new maps for CARLA in a semi-automatic way."
author: "@germanros"
date: 2018-11-16 08:00:00 +0002
image: 'img/carla.jpg'
Expand All @@ -21,7 +21,7 @@ It has been a long journey for the CARLA simulator. The team started this advent

We have dedicated the past 10 months to redesign the platform to achieve these objectives. The 0.9.0 release was an initial showcase of this effort, with the introduction of the new CARLA API, the multi-client architecture and the capacity of controlling all vehicles of the simulation at will.

In this 0.9.1 release, we have added critical features to enable the ingestion of new contents (maps) made with external tools and the simple ***navigation*** of these maps using a new API based on waypoints and map queries. To this end, we have adopted [OpenDrive][opendrivelink]{:target="_blank"} as the core of CARLA's road network format. Our map representation is built on top of [OpenDrive][opendrivelink]{:target="_blank"}, allowing for a easy-to-use and versatile navigation API. We also introduce ***Town03***, a complex urban scene with multi-lane roads, tunnels, roundabouts and many other interesting features, as an example of a map generated semi-automatically from an external tool.
In this 0.9.1 release, we have added critical features to enable the ingestion of new contents (maps) made with external tools and the simple ***navigation*** of these maps using a new API based on waypoints and map queries. To this end, we have adopted [ASAM OpenDRIVE][opendrivelink]{:target="_blank"} as the core of CARLA's road network format. Our map representation is built on top of [OpenDRIVE][opendrivelink]{:target="_blank"}, allowing for a easy-to-use and versatile navigation API. We also introduce ***Town03***, a complex urban scene with multi-lane roads, tunnels, roundabouts and many other interesting features, as an example of a map generated semi-automatically from an external tool.

{% include youtube.html id="BjH-pFGlZ0M" %}

Expand Down Expand Up @@ -154,9 +154,9 @@ while True:
### Pipeline for semi-automatic map generation

One of the most exciting additions of this release is the compatibility with new maps created with external tools. We want users to easily create their own maps in CARLA. Towards this end we adopted [OpenDrive][opendrivelink]{:target="_blank"} as our map definition standard. Using a well-known standard reduces the effort needed to create new contents compatible with the CARLA simulator.
One of the most exciting additions of this release is the compatibility with new maps created with external tools. We want users to easily create their own maps in CARLA. Towards this end we adopted [OpenDRIVE][opendrivelink]{:target="_blank"} as our map definition standard. Using a well-known standard reduces the effort needed to create new contents compatible with the CARLA simulator.

We have been collaborating closely with [VectorZero][vectorzerolink]{:target="_blank"} to guarantee full compatibility between [RoadRunner][roadrunnerlink]{:target="_blank"} and CARLA. RoadRunner is a tool that can produce complex driving maps in a few clicks thanks to its powerful procedural generation engine. What is best, it also produces the [OpenDrive][opendrivelink]{:target="_blank"} file associated to the 3D map, so maps produced by RoadRunner can be directly used in CARLA with all the functionalities available for the current towns.
We have been collaborating closely with [VectorZero][vectorzerolink]{:target="_blank"} to guarantee full compatibility between [RoadRunner][roadrunnerlink]{:target="_blank"} and CARLA. RoadRunner is a tool that can produce complex driving maps in a few clicks thanks to its powerful procedural generation engine. What is best, it also produces the [OpenDRIVE][opendrivelink]{:target="_blank"} file associated to the 3D map, so maps produced by RoadRunner can be directly used in CARLA with all the functionalities available for the current towns.

VectorZero has commited to give free licenses to use RoadRunner for academic and research purposes to those academics who request it. So, check out their [website][vectorzerolink]{:target="_blank"} to obtain a license and start building your own maps!

Expand Down Expand Up @@ -203,7 +203,7 @@ share it with the community at our [GitHub][githubrepolink]{:target="_blank"} or
- Added collision event sensor, "sensor.other.collision", that triggers a callback on each collision to the actor it is attached to
- Added lane detector sensor, "sensor.other.lane_detector", that detects lane invasion events
- Added `carla.Map` and `carla.Waypoint` classes for querying info about the road layout
- Added methods for converting and saving the map as OpenDrive format
- Added methods for converting and saving the map as OpenDRIVE format
- Added `map.get_spawn_points()` to retrieve the recommended spawn points for vehicles
- Added `map.get_waypoint(location)` to query the nearest waypoint
- Added `map.generate_waypoints(distance)` to generate waypoints all over the map at an approximated distance
Expand Down Expand Up @@ -251,11 +251,11 @@ share it with the community at our [GitHub][githubrepolink]{:target="_blank"} or
- Adjusted vehicle physics and center of mass
- Fixed filenames too long when packing the project on Windows
- Fixed "SplineMeshRepeater" loses its collider mesh from time to time
* New system for road information based on OpenDrive format
* New system for road information based on OpenDRIVE format
- Added new map classes for querying info about the road layout and topology
- Added methods for finding closest point on the road
- Added methods for generating and iterating waypoints based on the road layout
- Added OpenDrive parser to convert OpenDrive files to our map data structures
- Added OpenDRIVE parser to convert OpenDRIVE files to our map data structures
* Other miscellaneous improvements and fixes
- Fixed single channel Lidar crash (by @cwecht)
- Fixed command-line argument `-carla-settings` fails to load absolute paths (by @harlowja)
Expand Down
2 changes: 1 addition & 1 deletion _posts/2018-12-24-release-0.9.2.md
Original file line number Diff line number Diff line change
Expand Up @@ -172,7 +172,7 @@ share it with the community at our [GitHub][githubrepolink]{:target="_blank"} or
- SyncArrival: sync the arrival of two vehicles to a given target
* Updated ROS bridge for CARLA 0.9.X (moved to its own repository)
* Added Python API "agents" extension, includes
- Global route planner based on the Waypoints API (compatible with OpenDrive)
- Global route planner based on the Waypoints API (compatible with OpenDRIVE)
- BasicAgent: new client agent that can drive to a given coordinate of the map using the waypoint API and PID controllers, attending to other vehicles and traffic lights
- RoamingAgent: new client agent that can drive at different speeds following waypoints based on PID controllers, attending to other vehicles and traffic lights
- LocalPlanner functionality to navigate waypoints using PID controllers
Expand Down
4 changes: 2 additions & 2 deletions _posts/2019-03-01-release-0.9.4.md
Original file line number Diff line number Diff line change
Expand Up @@ -166,7 +166,7 @@ In this release, we have simplified the process of creating and ingesting new co

### Importing maps into CARLA

New maps based on FBX and OpenDrive files, such as those created by [VectorZero's RoadRunner](https://www.vectorzero.io/){:target="_blank"} software. To this end maps just have to be placed as tar.gz files into the "ExportedMaps" folder within CARLA root folder. Then you can run ImportMaps.sh (for now only on Linux) to patch the map into the project. Then just load that map by invoking it in CARLA by name. An example of this functionality can be seen by downloading our new [Town06](https://carla-releases.s3.us-east-005.backblazeb2.com/Linux/Town06_0.9.5.tar.gz){:target="_blank"} and following these instructions:
New maps based on FBX and ASAM OpenDRIVE files, such as those created by [VectorZero's RoadRunner](https://www.vectorzero.io/){:target="_blank"} software. To this end maps just have to be placed as tar.gz files into the "ExportedMaps" folder within CARLA root folder. Then you can run ImportMaps.sh (for now only on Linux) to patch the map into the project. Then just load that map by invoking it in CARLA by name. An example of this functionality can be seen by downloading our new [Town06](https://carla-releases.s3.us-east-005.backblazeb2.com/Linux/Town06_0.9.5.tar.gz){:target="_blank"} and following these instructions:

```
mv Town06_0.9.4.tar.gz <CARLA_ROOT>/ExportedMaps
Expand Down Expand Up @@ -397,7 +397,7 @@ As usual, if you find any issues or have suggestions that can be added, please d
* Removed "Example.CarlaSettings.ini", you can still use it, but it's no longer necessary
* Improved time-out related error messages
* Fixed Town01 placed 38 meters above the zero
* Fixed parsing of OpenDrive geo-reference exported by RoadRunner
* Fixed parsing of OpenDRIVE geo-reference exported by RoadRunner
* Fixed issue of retrieving an empty list when calling `world.get_actors()` right after creating the world
* Fixed a few synchronization issues related to changing the world at runtime
* Fixed traffic light when it gets illuminated by the hero vehicle in `no_rendering_mode.py`
Expand Down
16 changes: 8 additions & 8 deletions _posts/2019-04-03-release-0.9.5.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,10 +22,10 @@ This release adds many important features and improvements to CARLA. Let's take

#### Description

Since we had a limited OpenDrive parser, there was a need to expand it.
Since we had a limited ASAN OpenDRIVE parser, there was a need to expand it.

- Now the whole OpenDrive file is parsed and we extract and store all the data.
- Our new data structures are now similar to OpenDrive, so the parser is more expandable and queries are easy.
- Now the whole OpenDRIVE file is parsed and we extract and store all the data.
- Our new data structures are now similar to OpenDRIVE, so the parser is more expandable and queries are easy.

#### Python API Changes

Expand All @@ -34,9 +34,9 @@ We always try to avoid changing the Python API where possible but in this case,
###### Additions:

* **carla.Waypoint.id**: Unique identifier for a Waypoint based on the hash of it's `road_id`, `section_id`, `lane_id`, and `s`.
* **carla.Waypoint.section_id**: Refers to OpenDrive's [`laneSection`](http://opendrive.org/docs/OpenDRIVEFormatSpecRev1.4H.pdf#page=21) number used as an id.
* **carla.Waypoint.s**: The [`s`](http://opendrive.org/docs/OpenDRIVEFormatSpecRev1.4H.pdf#page=15) parameter of OpenDrive, it defines the position along the reference line, measured in meters from the beginning of the track, calculated in the XY-plane.~~ (already in master)
* **carla.LaneType**: Define the type of lane. The most common are, _NONE_, _Driving_, _Shoulder_, _Sidewalk_, _Bidirectional_, and _Parking_ although OpenDrive use [more of them](http://opendrive.org/docs/OpenDRIVEFormatSpecRev1.4H.pdf#page=93). These enums can be used as flags for queries.
* **carla.Waypoint.section_id**: Refers to OpenDRIVE's [`laneSection`](http://opendrive.org/docs/OpenDRIVEFormatSpecRev1.4H.pdf#page=21) number used as an id.
* **carla.Waypoint.s**: The [`s`](http://opendrive.org/docs/OpenDRIVEFormatSpecRev1.4H.pdf#page=15) parameter of OpenDRIVE, it defines the position along the reference line, measured in meters from the beginning of the track, calculated in the XY-plane.~~ (already in master)
* **carla.LaneType**: Define the type of lane. The most common are, _NONE_, _Driving_, _Shoulder_, _Sidewalk_, _Bidirectional_, and _Parking_ although OpenDRIVE use [more of them](http://opendrive.org/docs/OpenDRIVEFormatSpecRev1.4H.pdf#page=93). These enums can be used as flags for queries.
* **_Extended_ carla.LaneMarking**:
+ **type** Defines the [types](http://opendrive.org/docs/OpenDRIVEFormatSpecRev1.4H.pdf#page=92).
+ **color**: Defines the [color](http://opendrive.org/docs/OpenDRIVEFormatSpecRev1.4H.pdf#page=92).
Expand Down Expand Up @@ -112,7 +112,7 @@ Our content has a new home! All our assets have been moved from Google Drive to

## No-rendering Mode Improvements

We have made a few significant additions to the no-rendering mode feature. Maps will now more accurately reflect the data from OpenDrive and there is now more information available to the user for debugging.
We have made a few significant additions to the no-rendering mode feature. Maps will now more accurately reflect the data from OpenDRIVE and there is now more information available to the user for debugging.

Here are the main updates:
* Improved lane markings ( double Solids lane markings, solid and broken lane markings, etc.)
Expand All @@ -129,7 +129,7 @@ Here are the main updates:

## Carla Map Editor

In the previous release, we introduced a new GUI application for updating OpenDrive files with traffic sign information. This tool serves an important role in our process for creating a map outside of the Unreal Editor. Once the user has exported the FBX and XODR files from RoadRunner, they can load the map into this application, place the traffic signs and export the changes to the XODR file. They can then run our Python script to produce an Unreal Engine umap asset from the FBX and updated XODR ([See here](https://carla.readthedocs.io/en/latest/tuto_A_create_standalone/)). This map is then ready for use with CARLA. We have plans to update this application in the future to do a lot more!
In the previous release, we introduced a new GUI application for updating OpenDRIVE files with traffic sign information. This tool serves an important role in our process for creating a map outside of the Unreal Editor. Once the user has exported the FBX and XODR files from RoadRunner, they can load the map into this application, place the traffic signs and export the changes to the XODR file. They can then run our Python script to produce an Unreal Engine umap asset from the FBX and updated XODR ([See here](https://carla.readthedocs.io/en/latest/tuto_A_create_standalone/)). This map is then ready for use with CARLA. We have plans to update this application in the future to do a lot more!

![carla_map_editor](/img/posts/2019-04-03/carla_map_editor.png){:class="img-fluid"}
> CARLA Map Editor
Expand Down
2 changes: 1 addition & 1 deletion _posts/2020-03-09-release-0.9.8.md
Original file line number Diff line number Diff line change
Expand Up @@ -140,7 +140,7 @@ There are some helper scripts that translate CARLA blueprints to SUMO vehicle ty
<small><i><strong>Warning!</strong> This feature has only been tested thoroughly in Town01.</i></small>
</div>

## OpenDRIVE standalone mode
## ASAM OpenDRIVE standalone mode
---

This new and experimental mode allows to perform full simulation starting from a single OpenDRIVE file: no additional geometries or assets required. Finally your own OpenDRIVE files can be easily ingested by CARLA. To this end, the simulator takes an OpenDRIVE file and procedurally creates a 3D mesh to run simulations with. In order to test this feature, the `config.py` script in `PythonAPI/util/` has a new argument, `-x` or `--xodr-path`, which is a string containing the path to the _.xml_ file. This script calls a new method in [carla.Client](https://carla.readthedocs.io/en/latest/python_api/#carlaclient), `client.generate_opendrive_world()`, which blocks the simulation (as `load_world()` would do) until the new map is active.
Expand Down
2 changes: 1 addition & 1 deletion index.html
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ <h3>Highlighted features</h3>
<li><strong>Flexible API</strong>: CARLA exposes a powerful API that allows users to control all aspects related to the simulation, including traffic generation, pedestrian behaviors, weathers, sensors, and much more. </li>
<li><strong>Autonomous Driving sensor suite</strong>: users can configure diverse sensor suites including LIDARs, multiple cameras, depth sensors and GPS among others.</li>
<li><strong>Fast simulation for planning and control</strong>: this mode disables rendering to offer a fast execution of traffic simulation and road behaviors for which graphics are not required.</li>
<li><strong>Maps generation</strong>: users can easily create their own maps following the <a href="http://www.opendrive.org/">OpenDrive</a> standard via tools like <a href="https://www.vectorzero.io/">RoadRunner</a>.</li>
<li><strong>Maps generation</strong>: users can easily create their own maps following the <a href="http://www.opendrive.org/">ASAM OpenDRIVE</a> standard via tools like <a href="https://www.vectorzero.io/">RoadRunner</a>.</li>
<li><strong>Traffic scenarios simulation</strong>: our engine <a href="https://github.com/carla-simulator/scenario_runner">ScenarioRunner</a> allows users to define and execute different traffic situations based on modular behaviors.</li>
<li><strong>ROS integration</strong>: CARLA is provided with integration with <a href="http://www.ros.org/">ROS</a> via our <a href="https://github.com/carla-simulator/ros-bridge">ROS-bridge</a></li>
<li><strong>Autonomous Driving baselines</strong>: we provide Autonomous Driving baselines as runnable agents in CARLA, including an <a href="https://github.com/carla-simulator/carla-autoware">AutoWare</a> agent and a <a href="https://github.com/felipecode/coiltraine">Conditional Imitation Learning</a> agent.</li>
Expand Down

0 comments on commit 67c2168

Please sign in to comment.