Merge branch 'master' into lidar
This commit is contained in:
commit
b5b609e7e1
|
@ -48,6 +48,18 @@
|
||||||
},
|
},
|
||||||
"build_systems":
|
"build_systems":
|
||||||
[
|
[
|
||||||
|
{
|
||||||
|
"name": "CARLA - Pylint",
|
||||||
|
"working_dir": "${project_path}",
|
||||||
|
"file_regex": "^\\[([^:]*):([0-9]+):?([0-9]+)?\\]:? (.*)$",
|
||||||
|
"shell_cmd": "pylint --disable=R,C --rcfile=PythonClient/.pylintrc PythonClient/carla PythonClient/*.py --msg-template='[{path}:{line:3d}:{column}]: {msg_id} {msg}'"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "CARLA - CppCheck",
|
||||||
|
"working_dir": "${project_path}",
|
||||||
|
"file_regex": "^\\[([^:]*):([0-9]+):?([0-9]+)?\\]:? (.*)$",
|
||||||
|
"shell_cmd": "cppcheck . -iBuild -i.pb.cc --error-exitcode=0 --enable=warning --quiet"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"name": "CARLA - Rebuild script",
|
"name": "CARLA - Rebuild script",
|
||||||
"working_dir": "${project_path}",
|
"working_dir": "${project_path}",
|
||||||
|
|
|
@ -63,6 +63,17 @@ please contact one of us (or send an email to carla.simulator@gmail.com).
|
||||||
|
|
||||||
[projectslink]: https://github.com/carla-simulator/carla/projects/1
|
[projectslink]: https://github.com/carla-simulator/carla/projects/1
|
||||||
|
|
||||||
|
#### Where can I learn more about Unreal Engine?
|
||||||
|
|
||||||
|
A basic introduction to C++ programming with UE4 can be found at Unreal's
|
||||||
|
[C++ Programming Tutorials][ue4tutorials]. Then, if you want to dive into UE4
|
||||||
|
C++ development there are few paying options online. The
|
||||||
|
[Unreal C++ Course at Udemy][ue4course] it's pretty complete and there are
|
||||||
|
usually offers that make it very affordable.
|
||||||
|
|
||||||
|
[ue4tutorials]: https://docs.unrealengine.com/latest/INT/Programming/Tutorials/
|
||||||
|
[ue4course]: https://www.udemy.com/unrealcourse/
|
||||||
|
|
||||||
#### What should I know before I get started?
|
#### What should I know before I get started?
|
||||||
|
|
||||||
Check out the ["CARLA Design"](carla_design.md) document to get an idea on the
|
Check out the ["CARLA Design"](carla_design.md) document to get an idea on the
|
||||||
|
@ -71,6 +82,27 @@ the new feature. We are aware the developers documentation is still scarce,
|
||||||
please ask us in case of doubt, and of course don't hesitate to improve the
|
please ask us in case of doubt, and of course don't hesitate to improve the
|
||||||
current documentation if you feel confident enough.
|
current documentation if you feel confident enough.
|
||||||
|
|
||||||
|
#### Are there any examples in CARLA to see how Unreal programming works?
|
||||||
|
|
||||||
|
You can find an example of how C++ classes work in UE4 in
|
||||||
|
[`ASceneCaptureToDiskCamera`][capturelink] (and its parent class
|
||||||
|
`ASceneCaptureCamera`). This class creates an actor that can be dropped into the
|
||||||
|
scene. In the editor, type _"Scene Capture To Disk"_ in the Modes tab, and drag
|
||||||
|
and drop the actor into the scene. Now searching for its detail tab you can find
|
||||||
|
all the `UPROPERTY` members reflected. This shows the basic mechanism to use C++
|
||||||
|
classes in Unreal Editor.
|
||||||
|
|
||||||
|
For a more advanced example on how to extend C++ classes with blueprints, you
|
||||||
|
can take a look at the _"VehicleSpawner"_ blueprint. It derives from the C++
|
||||||
|
class `AVehicleSpawnerBase`. The C++ class decides where and when it spawns a
|
||||||
|
vehicle, then calls the function `SpawnVehicle()`, which is implemented in the
|
||||||
|
blueprint. The blueprint then decides model and color of the vehicle being
|
||||||
|
spawned. Note that the blueprint can call back C++ functions, for instance for
|
||||||
|
getting the random engine. This way there is a back-and-forth communication
|
||||||
|
between C++ code and blueprints.
|
||||||
|
|
||||||
|
[capturelink]: https://github.com/carla-simulator/carla/blob/master/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/SceneCaptureToDiskCamera.h
|
||||||
|
|
||||||
#### Coding standard
|
#### Coding standard
|
||||||
|
|
||||||
Please follow the current [coding standard](coding_standard.md) when submitting
|
Please follow the current [coding standard](coding_standard.md) when submitting
|
||||||
|
|
|
@ -9,7 +9,7 @@ This document describes the details of the different cameras/sensors currently
|
||||||
available as well as the resulting images produced by them.
|
available as well as the resulting images produced by them.
|
||||||
|
|
||||||
Although we plan to extend the sensor suite of CARLA in the near future, at the
|
Although we plan to extend the sensor suite of CARLA in the near future, at the
|
||||||
moment there are three different sensors available. These three sensors are
|
moment there are only three different sensors available. These three sensors are
|
||||||
implemented as different post-processing effects applied to scene capture
|
implemented as different post-processing effects applied to scene capture
|
||||||
cameras.
|
cameras.
|
||||||
|
|
||||||
|
@ -38,6 +38,8 @@ more human readable palette of colors. It can be found at
|
||||||
Scene final
|
Scene final
|
||||||
-----------
|
-----------
|
||||||
|
|
||||||
|
![SceneFinal](img/capture_scenefinal.png)<br>
|
||||||
|
|
||||||
The "scene final" camera provides a view of the scene after applying some
|
The "scene final" camera provides a view of the scene after applying some
|
||||||
post-processing effects to create a more realistic feel. These are actually
|
post-processing effects to create a more realistic feel. These are actually
|
||||||
stored on the Level, in an actor called [PostProcessVolume][postprolink] and not
|
stored on the Level, in an actor called [PostProcessVolume][postprolink] and not
|
||||||
|
@ -55,6 +57,8 @@ in the Camera. We use the following post process effects:
|
||||||
Depth map
|
Depth map
|
||||||
---------
|
---------
|
||||||
|
|
||||||
|
![Depth](img/capture_depth.png)
|
||||||
|
|
||||||
The "depth map" camera provides an image with 24 bit floating precision point
|
The "depth map" camera provides an image with 24 bit floating precision point
|
||||||
codified in the 3 channels of the RGB color space. The order from less to more
|
codified in the 3 channels of the RGB color space. The order from less to more
|
||||||
significant bytes is R -> G -> B.
|
significant bytes is R -> G -> B.
|
||||||
|
@ -81,12 +85,14 @@ Our max render distance (far) is 1km.
|
||||||
Semantic segmentation
|
Semantic segmentation
|
||||||
---------------------
|
---------------------
|
||||||
|
|
||||||
|
![SemanticSegmentation](img/capture_semseg.png)
|
||||||
|
|
||||||
The "semantic segmentation" camera classifies every object in the view by
|
The "semantic segmentation" camera classifies every object in the view by
|
||||||
displaying it in a different color according to the object class. E.g.,
|
displaying it in a different color according to the object class. E.g.,
|
||||||
pedestrians appear in a different color than vehicles.
|
pedestrians appear in a different color than vehicles.
|
||||||
|
|
||||||
The server provides an image with the tag information encoded in the red
|
The server provides an image with the tag information **encoded in the red
|
||||||
channel. A pixel with a red value of x displays an object with tag x. The
|
channel**. A pixel with a red value of x displays an object with tag x. The
|
||||||
following tags are currently available
|
following tags are currently available
|
||||||
|
|
||||||
Value | Tag
|
Value | Tag
|
||||||
|
@ -106,6 +112,13 @@ Value | Tag
|
||||||
12 | TrafficSigns
|
12 | TrafficSigns
|
||||||
|
|
||||||
This is implemented by tagging every object in the scene before hand (either at
|
This is implemented by tagging every object in the scene before hand (either at
|
||||||
begin play or on spawn). The objects are classified by their relative file
|
begin play or on spawn). The objects are classified by their relative file path
|
||||||
system path in the project. E.g., every mesh stored in the "pedestrians" folder
|
in the project. E.g., every mesh stored in the
|
||||||
it's tagged as pedestrian.
|
_"Unreal/CarlaUE4/Content/Static/Pedestrians"_ folder it's tagged as pedestrian.
|
||||||
|
|
||||||
|
!!! note
|
||||||
|
**Adding new tags**:
|
||||||
|
At the moment adding new tags is not very flexible and requires to modify
|
||||||
|
the C++ code. Add a new label to the `ECityObjectLabel` enum in "Tagger.h",
|
||||||
|
and its corresponding filepath check inside `GetLabelByFolderName()`
|
||||||
|
function in "Tagger.cpp".
|
||||||
|
|
|
@ -12,6 +12,10 @@ CARLA is composed by the following modules
|
||||||
- Carla plugin for Unreal Engine: "Unreal/CarlaUE4/Plugins/Carla"
|
- Carla plugin for Unreal Engine: "Unreal/CarlaUE4/Plugins/Carla"
|
||||||
- CarlaServer: "Util/CarlaServer"
|
- CarlaServer: "Util/CarlaServer"
|
||||||
|
|
||||||
|
!!! tip
|
||||||
|
Documentation for the C++ code can be generated by running
|
||||||
|
[Doxygen](http://www.doxygen.org) in the main folder of CARLA project.
|
||||||
|
|
||||||
Python client API
|
Python client API
|
||||||
-----------------
|
-----------------
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,89 @@
|
||||||
|
Running CARLA without Display and Selecting GPUs
|
||||||
|
------
|
||||||
|
|
||||||
|
|
||||||
|
This tutorial is designed for:
|
||||||
|
- Remote server users that have several nvidia graphical cards and want to effectively use CARLA on all GPUs.
|
||||||
|
- Desktop users who want to use the GPU that is not plugged on the screen for rendering CARLA.
|
||||||
|
|
||||||
|
|
||||||
|
On this tutorial you will learn.
|
||||||
|
- How to configure your server to have nvidia working on rendering without a display attached.
|
||||||
|
- How to use VNC + VGL to simulate a display connected to any GPU you have in your machine.
|
||||||
|
- And Finally, how to run CARLA in this environment
|
||||||
|
|
||||||
|
This tutorial was tested in Ubuntu 16.04 and using NVIDIA 384.11 drivers.
|
||||||
|
## Preliminaries
|
||||||
|
|
||||||
|
A few things need to be working in your server before.
|
||||||
|
Latest NVIDIA Drivers, OpenGL, VirtualGL(VGL), TurboVNC 2.11, ,
|
||||||
|
#### NVIDIA Drivers
|
||||||
|
Download and install NVIDIA-drivers with typical tutorials
|
||||||
|
http://www.nvidia.es/Download/index.aspx
|
||||||
|
#### OpenGL
|
||||||
|
Openg GL is necessary for Virtual GL. Normally OpenGL
|
||||||
|
can be installed through apt.
|
||||||
|
|
||||||
|
sudo apt-get install freeglut3-dev mesa-utils
|
||||||
|
#### VGL
|
||||||
|
Follow this tutorial and install vgl: <br>
|
||||||
|
[Installing VGL](https://virtualgl.org/vgldoc/2_2_1/#hd004001)
|
||||||
|
|
||||||
|
#### TurboVNC
|
||||||
|
Follow the tutorial below to install TurboVNC 2.11:<br>
|
||||||
|
[Installing TurboVNC](https://cdn.rawgit.com/TurboVNC/turbovnc/2.1.1/doc/index.html#hd005001)
|
||||||
|
|
||||||
|
WARNING: Take care on which VNC you install as it may not be compatible with Unreal. The one above was the only one that worked for me.
|
||||||
|
#### Extra Packages
|
||||||
|
These extra packages were necessary to make unreal to work.
|
||||||
|
|
||||||
|
sudo apt install x11-xserver-utils libxrandr-dev
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#### Configure your X
|
||||||
|
|
||||||
|
You must generate a X compatible with your nvdia and compatible to run without display. For that, the following command worked:
|
||||||
|
|
||||||
|
sudo nvidia-xconfig -a --use-display-device=None --virtual=1280x1024
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
## Emulating The Virtual Display
|
||||||
|
|
||||||
|
|
||||||
|
Run your own Xorg. Here I use number 7, but it could be labeled with any free number.
|
||||||
|
|
||||||
|
sudo nohup Xorg :7 &
|
||||||
|
|
||||||
|
Run an auxiliary remote VNC-Xserver. This will create a
|
||||||
|
virtual display "8".
|
||||||
|
|
||||||
|
/opt/TurboVNC/bin/vncserver :8
|
||||||
|
|
||||||
|
If everything is working fine the following command
|
||||||
|
should run smoothly.
|
||||||
|
|
||||||
|
DISPLAY=:8 vglrun -d :7.0 glxinfo
|
||||||
|
Note. This will run glxinfo on Xserver 7, device 0. This means you are selecting the GPU 0 on your machine. To run on other GPU, such as GPU 1 run:
|
||||||
|
|
||||||
|
DISPLAY=:8 vglrun -d :7.1 glxinfo
|
||||||
|
|
||||||
|
#### Extra
|
||||||
|
|
||||||
|
If you want disable the need of sudo when creating the 'nohup Xorg'
|
||||||
|
go to the '/etc/X11/Xwrapper.config' file and change 'allowed_users=console' to 'allowed_users=anybody'
|
||||||
|
|
||||||
|
It may be needed to stop all Xorg servers before running nohup Xorg.
|
||||||
|
The command for that could change depending on your system. Generally for Ubuntu 16.04
|
||||||
|
you should use:
|
||||||
|
|
||||||
|
sudo service lightdm stop
|
||||||
|
|
||||||
|
|
||||||
|
## Running CARLA
|
||||||
|
|
||||||
|
Now, finally, to run CARLA on a certain gpu_number placed in a certain $CARLA_PATH, run.
|
||||||
|
|
||||||
|
DISPLAY=:8 vglrun -d :7.<gpu_number> $CARLA_PATH/CarlaUE4/Binaries/Linux/CarlaUE4
|
49
Docs/faq.md
49
Docs/faq.md
|
@ -152,3 +152,52 @@ rebuild of all the project files with
|
||||||
It takes a long time but fixes the issue. Sometimes a reboot is also needed.
|
It takes a long time but fixes the issue. Sometimes a reboot is also needed.
|
||||||
|
|
||||||
</details>
|
</details>
|
||||||
|
|
||||||
|
<!-- ======================================================================= -->
|
||||||
|
<details>
|
||||||
|
<summary><h5 style="display:inline">
|
||||||
|
Fatal error: 'carla/carla_server.h' file not found.
|
||||||
|
</h4></summary>
|
||||||
|
|
||||||
|
This indicates that the CarlaServer dependency failed to compile.
|
||||||
|
|
||||||
|
Please follow the instructions at
|
||||||
|
[How to build on Linux](http://carla.readthedocs.io/en/latest/how_to_build_on_linux/).
|
||||||
|
|
||||||
|
Make sure that the Setup script does print _"Success!"_ at the end
|
||||||
|
|
||||||
|
$ ./Setup.sh
|
||||||
|
...
|
||||||
|
...
|
||||||
|
****************
|
||||||
|
*** Success! ***
|
||||||
|
****************
|
||||||
|
|
||||||
|
Then check if CarlaServer compiles without errors running make
|
||||||
|
|
||||||
|
$ make
|
||||||
|
|
||||||
|
It should end printing something like
|
||||||
|
|
||||||
|
```
|
||||||
|
[1/1] Install the project...
|
||||||
|
-- Install configuration: "Release"
|
||||||
|
-- Installing: Unreal/CarlaUE4/Plugins/Carla/CarlaServer/shared/libc++abi.so.1
|
||||||
|
-- Installing: Unreal/CarlaUE4/Plugins/Carla/CarlaServer/shared/libc++abi.so.1.0
|
||||||
|
-- Installing: Unreal/CarlaUE4/Plugins/Carla/CarlaServer/shared/libc++.so.1
|
||||||
|
-- Installing: Unreal/CarlaUE4/Plugins/Carla/CarlaServer/shared/libc++.so.1.0
|
||||||
|
-- Installing: Unreal/CarlaUE4/Plugins/Carla/CarlaServer/shared/libc++.so
|
||||||
|
-- Installing: Unreal/CarlaUE4/Plugins/Carla/CarlaServer/shared/libc++abi.so
|
||||||
|
-- Installing: Unreal/CarlaUE4/Plugins/Carla/CarlaServer/lib/libc++abi.a
|
||||||
|
-- Installing: Unreal/CarlaUE4/Plugins/Carla/CarlaServer/lib/libboost_system.a
|
||||||
|
-- Installing: Unreal/CarlaUE4/Plugins/Carla/CarlaServer/lib/libprotobuf.a
|
||||||
|
-- Installing: Unreal/CarlaUE4/Plugins/Carla/CarlaServer/include/carla
|
||||||
|
-- Installing: Unreal/CarlaUE4/Plugins/Carla/CarlaServer/include/carla/carla_server.h
|
||||||
|
-- Installing: Unreal/CarlaUE4/Plugins/Carla/CarlaServer/lib/libcarlaserver.a
|
||||||
|
-- Installing: Unreal/CarlaUE4/Plugins/Carla/CarlaServer/bin/test_carlaserver
|
||||||
|
-- Set runtime path of "Unreal/CarlaUE4/Plugins/Carla/CarlaServer/bin/test_carlaserver" to ""
|
||||||
|
```
|
||||||
|
|
||||||
|
If so you can safely run Rebuild.sh.
|
||||||
|
|
||||||
|
</details>
|
||||||
|
|
|
@ -20,13 +20,15 @@ change your default clang version to compile Unreal
|
||||||
Build Unreal Engine
|
Build Unreal Engine
|
||||||
-------------------
|
-------------------
|
||||||
|
|
||||||
|
!!! note
|
||||||
|
Unreal Engine repositories are set to private. In order to gain access you
|
||||||
|
need to add your GitHub username when you sign up at
|
||||||
|
[www.unrealengine.com](https://www.unrealengine.com).
|
||||||
|
|
||||||
Download and compile Unreal Engine 4.17. Here we will assume you install it at
|
Download and compile Unreal Engine 4.17. Here we will assume you install it at
|
||||||
"~/UnrealEngine_4.17", but you can install it anywhere, just replace the path
|
"~/UnrealEngine_4.17", but you can install it anywhere, just replace the path
|
||||||
where necessary.
|
where necessary.
|
||||||
|
|
||||||
Unreal Engine repositories are set to private. In order to gain access you need
|
|
||||||
to add your GitHub username when you sign up at https://unrealengine.com.
|
|
||||||
|
|
||||||
$ git clone --depth=1 -b 4.17 https://github.com/EpicGames/UnrealEngine.git ~/UnrealEngine_4.17
|
$ git clone --depth=1 -b 4.17 https://github.com/EpicGames/UnrealEngine.git ~/UnrealEngine_4.17
|
||||||
$ cd ~/UnrealEngine_4.17
|
$ cd ~/UnrealEngine_4.17
|
||||||
$ ./Setup.sh && ./GenerateProjectFiles.sh && make
|
$ ./Setup.sh && ./GenerateProjectFiles.sh && make
|
||||||
|
|
Binary file not shown.
After Width: | Height: | Size: 93 KiB |
Binary file not shown.
After Width: | Height: | Size: 128 KiB |
Binary file not shown.
After Width: | Height: | Size: 7.3 KiB |
|
@ -7,6 +7,7 @@ CARLA Documentation
|
||||||
* [CARLA settings](carla_settings.md)
|
* [CARLA settings](carla_settings.md)
|
||||||
* [Measurements](measurements.md)
|
* [Measurements](measurements.md)
|
||||||
* [Cameras and sensors](cameras_and_sensors.md)
|
* [Cameras and sensors](cameras_and_sensors.md)
|
||||||
|
* [CARLA without Display and Selecting GPUs](carla_headless.md)
|
||||||
* [Benchmark](benchmark.md)
|
* [Benchmark](benchmark.md)
|
||||||
* [F.A.Q.](faq.md)
|
* [F.A.Q.](faq.md)
|
||||||
|
|
||||||
|
|
|
@ -6,4 +6,7 @@ If you are asking a question please make sure your question was not asked before
|
||||||
by searching among the existing issues. Also make sure you have read our
|
by searching among the existing issues. Also make sure you have read our
|
||||||
documentation and FAQ at carla.readthedocs.io.
|
documentation and FAQ at carla.readthedocs.io.
|
||||||
|
|
||||||
|
If you are reporting an issue, please provide the CARLA version number you are
|
||||||
|
using and your Platform/OS.
|
||||||
|
|
||||||
-->
|
-->
|
||||||
|
|
|
@ -2,6 +2,8 @@ CARLA Simulator
|
||||||
===============
|
===============
|
||||||
|
|
||||||
[![Build Status](https://travis-ci.org/carla-simulator/carla.svg?branch=master)](https://travis-ci.org/carla-simulator/carla)
|
[![Build Status](https://travis-ci.org/carla-simulator/carla.svg?branch=master)](https://travis-ci.org/carla-simulator/carla)
|
||||||
|
[![Documentation](https://readthedocs.org/projects/docs/badge/?version=latest)](https://carla.readthedocs.io)
|
||||||
|
[![Waffle.io](https://badge.waffle.io/carla-simulator/carla.svg?columns=Next,In%20Progress,Review)](https://waffle.io/carla-simulator/carla)
|
||||||
|
|
||||||
CARLA is an open-source simulator for autonomous driving research. CARLA has
|
CARLA is an open-source simulator for autonomous driving research. CARLA has
|
||||||
been developed from the ground up to support development, training, and
|
been developed from the ground up to support development, training, and
|
||||||
|
|
|
@ -8,3 +8,4 @@
|
||||||
0.6.0: 1Gw8sw01hDEV4FtpHEZZwvS-6XN0jmaLT
|
0.6.0: 1Gw8sw01hDEV4FtpHEZZwvS-6XN0jmaLT
|
||||||
0.7.0: 11PKC_lG7L80L1ZxiMlzV17utU45UcRnT
|
0.7.0: 11PKC_lG7L80L1ZxiMlzV17utU45UcRnT
|
||||||
0.7.1: 1gf3YaFIjwr1EaK6qxq2V-a510Brt9Imq
|
0.7.1: 1gf3YaFIjwr1EaK6qxq2V-a510Brt9Imq
|
||||||
|
Latest: 1Coa1iX19TKR5DMxPPQSWsT83l-Ize0Jk
|
||||||
|
|
|
@ -9,6 +9,7 @@ pages:
|
||||||
- 'CARLA Settings': 'carla_settings.md'
|
- 'CARLA Settings': 'carla_settings.md'
|
||||||
- 'Measurements': 'measurements.md'
|
- 'Measurements': 'measurements.md'
|
||||||
- 'Cameras and sensors': 'cameras_and_sensors.md'
|
- 'Cameras and sensors': 'cameras_and_sensors.md'
|
||||||
|
- 'CARLA without Display and Selecting GPUs': 'carla_headless.md'
|
||||||
- 'Benchmark': 'benchmark.md'
|
- 'Benchmark': 'benchmark.md'
|
||||||
- 'F.A.Q.': 'faq.md'
|
- 'F.A.Q.': 'faq.md'
|
||||||
- Building from source:
|
- Building from source:
|
||||||
|
|
Loading…
Reference in New Issue