Sergi e/intro and builds (#2408)

* New draft updated
This commit is contained in:
sergi.e 2020-02-03 20:26:33 +01:00 committed by GitHub
parent 5a904579af
commit ac406fae97
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 160 additions and 28 deletions

View File

@ -0,0 +1,50 @@
#CARLA
![Welcome to CARLA](../img/welcome.png)
!!! important
This documentation refers to the latest development versions of CARLA, 0.9.0 or
later. There is another documentation for the stable version 0.8 [here](https://carla.readthedocs.io/en/stable/getting_started/), though it should only be used for specific queries.
CARLA is an open-source autonomous driving simulator. It was built from scratch to serve as a modular and flexible API to address a range of tasks involved in the problem of autonomous driving. One of the main goals of CARLA is to help democratize autonomous driving R&D, serving as a tool that can be easily accessed and customized by users. To do so, the simulator has to meet the requirements of different use cases within the general problem of driving (e.g. learning driving policies, training perception algorithms, etc.). CARLA is grounded on Unreal Engine to run the simulation and uses the OpenDRIVE standard (1.4 as today) to define roads and urban settings. Control over the simulation is granted through an API handled in Python and C++ that is constantly growing as the project does.
In order to smooth the process of developing, training and validating driving systems, CARLA evolved to become an ecosystem of projects, built around the main platform by the community. In this context, it is important to understand some things about how does CARLA work, so as to fully comprehend its capabilities.
---------------
##The simulator
The CARLA simulator consists of a scalable client-server architecture.
The server is responsible of everything related with the simulation itself: sensor rendering, computation of physics, updates on the world-state and its actors and much more. As it aims for realistic results, the best fit would be running the server with a dedicated GPU, especially when dealing with machine learning.
The client side consists of a sum of client modules controlling the logic of actors on scene and setting world conditions. This is achieved by leveraging the CARLA API (in Python or C++), a layer that mediates between server and client that is constantly evolving to provide new functionalities.
![CARLA Modules](../img/carla_modules.png)
That summarizes the basic structure of the simulator. Understanding CARLA though is much more than that, as many different features and elements coexist within it. Some of these are listed hereunder, as to gain perspective on the capabilities of what CARLA can achieve.
* __Traffic manager:__ A built-in system that takes control of the vehicles besides the one used for learning. It acts as a conductor provided by CARLA to recreate urban-like environments with realistic behaviours.
* __Sensors:__ Vehicles rely on them to dispense information of their surroundings. In CARLA they are a specific kind of actor attached the vehicle and the data they receive can be retrieved and stored to ease the process. Currently the project supports different types of these, from cameras to radars, lidar and many more.
* __Recorder:__ This feature is used to reenact a simulation step by step for every actor in the world. It grants access to any moment in the timeline anywhere in the world, making for a great tracing tool.
* __ROS bridge and Autoware implementation:__ As a matter of universalization, the CARLA project ties knots and works for the integration of the simulator within other learning environments.
* __Open assets:__ CARLA facilitates different maps for urban settings with control over weather conditions and a blueprint library with a wide set of actors to be used. However, these elements can be customized and new can be generated following simple guidelines.
* __Scenario runner:__ In order to ease the learning process for vehicles, CARLA provides a series of routes describing different situations to iterate on. These also set the basis for the [CARLA challenge](https://carlachallenge.org/), open for everybody to test their solutions and make it to the leaderboard.
---------------
##The project
CARLA grows fast and steady, widening the range of solutions provided and opening the way for the different approaches to autonomous driving. It does so while never forgetting its open-source nature. The project is transparent, acting as a white box where anybody is granted access to the tools and the development community. In that democratization is where CARLA finds its value.
Talking about how CARLA grows means talking about a community of developers who dive together into the thorough question of autonomous driving. Everybody is free to explore with CARLA, find their own solutions and then share their achievements with the rest of the community.
This documentation will be a companion along the way. The next page contains the __quickstart__ instructions for those eager to start. However, a build guide (Linux and Windows) is available for those who want to dive full-length into CARLA with all its features.
Welcome to CARLA.
<div class="build-buttons">
<p>
<a href="../../how_to_build_on_linux" target="_blank" class="btn btn-neutral" title="Go to the latest CARLA release">
<b>Linux</b> build</a>
</p>
<p>
<a href="../../how_to_build_on_windows" target="_blank" class="btn btn-neutral" title="Go to the latest CARLA release">
<b>Windows</b> build</a>
</p>
</div>

View File

@ -0,0 +1,82 @@
<h1>Quickstart</h1>
* [Requirements](#requirements)
* [Downloading CARLA](#downloading-carla)
* [Running CARLA](#running-carla)
* [Updating CARLA](#updating-carla)
* [Summary](#summary)
---------------
##Requirements
The quickstart installation uses a pre-packaged version of CARLA. This comprises the content in a boundle that can run automatically with no build installation needed. The API can be accesseded fully but in exchange, advanced customization and developing options are unavailable.
However, some requirements are still a must.
* __Server side:__ A good GPU will be needed to run a highly realistic environment (4GB minimum). A dedicated GPU is highly advised for machine learning.
* __Client side:__ The API is accessed via command line. To do so, [Python](https://www.python.org/downloads/) is necessary, and also a good internet connection and two TCP ports (2000 and 1 by default).
* __System requirements:__ Any 64-bits OS should run the corresponding version of CARLA.
* __Other requirements:__ Only two specific Python modules: [Pygame](https://www.pygame.org/download.shtml), to create graphics directly with Python and [Numpy](https://pypi.org/project/numpy/) for great calculus.
If you have [pip](https://pip.pypa.io/en/stable/installing/) in your system, you can geth both modules simply by running the following commands:
```sh
pip install --user pygame numpy
```
---------------
##Downloading CARLA
<div class="build-buttons">
<p>
<a href="https://github.com/carla-simulator/carla/blob/master/Docs/download.md" target="_blank" class="btn btn-neutral" title="Go to the latest CARLA release">
<span class="icon icon-github"></span> CARLA repository</a>
</p>
</div>
The repository contains the different versions of the simulator available. The _development_ and _stable_ sections, contain the packages for the different official releases. The later the version the more experimental it is. The _nightly build_ is the current development version as today and so, the most unstable (developers are currently working with this build). By the time this documentation is written, __CARLA 0.9.7__ is the latest containing all new features (such as traffic manager), but __CARLA 0.8.2__ is the stable one, recommended for those who are looking for a neat run.
!!! note
Latest Windows release is __CARLA 0.9.5__, but this is to be updated soon.
There may be many files per release. The package is named as __CARLA_version.number__ (compressed file format _.tar.gz_ for Linux and _.zip_ for Windows). Other elements such as __Town06_0.9.5.tar.gz__ are additional assets for Linux releases.
Download and extract the release in a folder of your choice. It contains a precompiled version of the simulator, the Python API module and some scripts to be used as examples.
If you downloaded any additional assets in Linux, move them to the _Import_ folder that has appeared (there is no need to extract them). Open a terminal in the folder where you extracted CARLA and run the script _ImportAssets_ to get the additional content automatically:
```sh
./ImportAssets.sh
```
---------------
##Running CARLA
Open a terminal in the folder where CARLA was extracted. The following command will execute the package file and start the simulation:
```sh
Linux:
./CarlaUE4.sh
Windows:
CarlaUE4.exe
```
A window will open, containing a view over the city. This is the "spectator" view. To fly around the city use the mouse and WASD keys (while clicking). The simulator is now running as a server, waiting for a client app to connect and interact with the world.
!!! note
If the firewall or any other application are blocking the TCP ports needed, these can be manually changed by adding to the previous command the argument: `-carla-port=N`, being `N` the desired port. The second will be automatically set to `N+1`.
---------------
##Updating CARLA
The packaged version requires no updates. The content is bundled and thus, tied to a specific version of CARLA. Everytime there is a release, the repository will be updated. To run this latest or any other version, delete the previous one and repeat the installation steps with the desired.
---------------
##Summary
That concludes the quickstart installation process. In case any unexpected error or issue occurs, the [CARLA forum](https://forum.carla.org/) is open to everybody. There is an _Installation issues_ category to post this kind of problems and doubts.
So far, CARLA should be operative in the desired system. Terminals will be used to contact the server via script and retrieve data. Thus will access all of the capabilities that CARLA provides. Next step should be visiting the _First steps_ section to learn more about this. However, all the information about the Python API regarding classes and its methods can be accessed in the [Python API reference](../python_api.md).
<div class="build-buttons">
<p>
<a href="../../python_api_tutorial" target="_blank" class="btn btn-neutral" title="Go to the latest CARLA release">
Go to: First steps</a>
</p>
</div>

View File

@ -7,7 +7,6 @@
<h3>Quick start</h3>
* [Getting started](getting_started.md)
* [Python API tutorial](python_api_tutorial.md)
* [Configuring the simulation](configuring_the_simulation.md)
* [Cameras and sensors](cameras_and_sensors.md)

View File

@ -7,46 +7,47 @@ extra_css: [extra.css]
nav:
- Home: 'index.md'
- Quick start:
- 'Getting started': 'getting_started.md'
- Getting started:
- 'Introduction': 'getting_started/introduction.md'
- 'Quick start': 'getting_started/quickstart.md'
- Building CARLA:
- 'Linux build': 'how_to_build_on_linux.md'
- 'Windows build': 'how_to_build_on_windows.md'
- "Get latest content": 'dev/how_to_upgrade_content.md'
- 'Build system': 'dev/build_system.md'
- 'Running in a Docker': 'carla_docker.md'
- 'F.A.Q.': 'faq.md'
- First steps:
- 'Python API tutorial': 'python_api_tutorial.md'
- 'Configuring the simulation': 'configuring_the_simulation.md'
- 'Cameras and sensors': 'cameras_and_sensors.md'
- 'F.A.Q.': 'faq.md'
- Building from source:
- 'How to build on Linux': 'how_to_build_on_linux.md'
- 'How to build on Windows': 'how_to_build_on_windows.md'
- Advanced topics:
- 'Python API reference': 'python_api.md'
- 'C++ reference' : 'cpp_reference.md'
- 'Python Cookbook': 'python_cookbook.md'
- References:
- 'Python API reference': 'python_api.md'
- 'Blueprint Library': 'bp_library.md'
- 'Running without display and selecting GPUs': 'carla_headless.md'
- 'Running in a Docker': 'carla_docker.md'
- "How to create and import a new map": 'how_to_make_a_new_map.md'
- "How to generate pedestrian navigation": 'how_to_generate_pedestrians_navigation.md'
- "How to link Epic's Automotive Materials": 'epic_automotive_materials.md'
- 'C++ reference' : 'cpp_reference.md'
- How to... (general):
- 'Add a new sensor': 'dev/how_to_add_a_new_sensor.md'
- "Add friction triggers": "how_to_add_friction_triggers.md"
- "Control vehicle physics": "how_to_control_vehicle_physics.md"
- "Control walker skeletons": "walker_bone_control.md"
- "Creating standalone asset packages for distribution": 'asset_packages_for_dist.md'
- "Generate pedestrian navigation": 'how_to_generate_pedestrians_navigation.md'
- "How to record and replay": 'recorder_and_playback.md'
- "Link Epic's Automotive Materials": 'epic_automotive_materials.md'
- 'Map customization': 'dev/map_customization.md'
- "Recorder binary file format": 'recorder_binary_file_format.md'
- "How to add friction triggers": "how_to_add_friction_triggers.md"
- "How to control vehicle physics": "how_to_control_vehicle_physics.md"
- "How to control walker skeletons": "walker_bone_control.md"
- 'Running without display and selecting GPUs': 'carla_headless.md'
- How to... (content):
- 'Add assets': 'how_to_add_assets.md'
- "Create and import a new map": 'how_to_make_a_new_map.md'
- 'Model vehicles': 'how_to_model_vehicles.md'
- Contributing:
- 'Contribution guidelines': 'CONTRIBUTING.md'
- 'Coding standard': 'coding_standard.md'
- 'Documentation standard': 'doc_standard.md'
- "Make a release": 'dev/how_to_make_a_release.md'
- 'Code of conduct': 'CODE_OF_CONDUCT.md'
- Development:
- 'Index': 'dev/index.md'
- 'Map customization': 'dev/map_customization.md'
- 'Build system': 'dev/build_system.md'
- 'How to add a new sensor': 'dev/how_to_add_a_new_sensor.md'
- "How to upgrade content": 'dev/how_to_upgrade_content.md'
- "How to make a release": 'dev/how_to_make_a_release.md'
- Art guidelines:
- 'How to add assets': 'how_to_add_assets.md'
- 'How to model vehicles': 'how_to_model_vehicles.md'
markdown_extensions:
- admonition