Skip to content

Commit

Permalink
Merge 0.9.4 into mac-build-0.9 branch
Browse files Browse the repository at this point in the history
  • Loading branch information
analog-cbarber committed Mar 2, 2019
2 parents f14f8c5 + cf1598a commit b0a12e7
Show file tree
Hide file tree
Showing 223 changed files with 12,303 additions and 1,435 deletions.
4 changes: 4 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,9 @@ Deprecated/PythonClient/dist
Util/Build
Install

/ExportedMaps
/RoadRunnerFiles/*/

*.VC.db
*.VC.opendb
*.a
Expand All @@ -30,6 +33,7 @@ Install
.gtest
.tags*
.vs
.vscode
__pycache__
_benchmarks_results
_images*
Expand Down
45 changes: 42 additions & 3 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,46 @@
## Latest Changes

* Fixed `manual_control.py` and `no_rendering_mode.py` to prevent crashes when used in "no rendering mode"
## CARLA 0.9.4

* Added recording and playback functionality
* Added synchronous mode, simulator waits until a client sends a "tick" cue, `client.tick()`
* Allow changing map from client-side, added `client.load_map(name)`, `client.reload_map()`, and `client.get_available_maps()`
* Added scripts and tools to import maps directly from .fbx and .xodr files into the simulator
* Exposed minimum physics control parameters for vehicles' engine and wheels
* Allow controlling multiple actors in "batch mode"
* New Town06, featuring a "Michigan left" intersection including:
- Connection ramp between two highways
- Incorporation to a highway requiring changing several lanes to take another exit
- Junctions supporting different scenarios
* New traffic signs assets: one-way, no-turn, more speed limits, do not enter, arrow floors, Michigan left, and lane end
* New pedestrian texture to add more variations
* New road PBR material
* Extended the waypoint API with `lane_change`, `lane_type`, `get_right_lane()` and `get_left_lane()`
* Added world settings for changing no-rendering mode and synchronous mode at run-time
* Added methods to acquire a traffic light's pole index and all traffic lights in it's group
* Added performance benchmark script to measure the simulator's rendering performance
* Added `manual_control_steeringwheel.py` to control agents using Logitech G29 steering wheels (and maybe others)
* Added movable props present in the map (e.g. chairs and tables) as actors so they can be controlled from Python
* Added recording and playback bindings to `manual_control.py` script
* Removed `world.map_name` from API, use `world.get_map().name` instead
* Refactored `no_rendering_mode.py` to improve performance and interface
* Several improvements to the build system for Windows
* Expose traffic sign's trigger volumes on Python API
* Improved export/import map tools
* Simplify Dockerfile halving Carla Docker image size
* Episodes have now a random unique id to avoid collisions between runs
* Reduced overhead of many RPC calls by sending only actor IDs (instead of serializing all the actor attributes every time)
* Added priority system for vehicle control input (internal, not exposed in API)
* 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 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`
* Fixed `manual_control.py` and `no_rendering_mode.py` to prevent crashes when used in "no rendering mode"
* Fixed traffic signs having the trigger box rotated
* Fixed female walk animation
* Fixed BP_MultipleFloor, tweaked offset in BaseFloor to adjust meshes between them
* Fixed static objects present in the map were marked as "movable"

## CARLA 0.9.3

Expand Down
4 changes: 0 additions & 4 deletions Docs/Example.CarlaSettings.ini

This file was deleted.

5 changes: 3 additions & 2 deletions Docs/download.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,9 @@
> features. Keep in mind that the API and features in this channel can (and
> probably will) change.
- [CARLA 0.9.3](https://github.com/carla-simulator/carla/releases/tag/0.9.3) -
- [CARLA 0.9.2](https://github.com/carla-simulator/carla/releases/tag/0.9.2) -
- [CARLA 0.9.4](https://github.com/carla-simulator/carla/releases/tag/0.9.4)
- [CARLA 0.9.3](https://github.com/carla-simulator/carla/releases/tag/0.9.3)
- [CARLA 0.9.2](https://github.com/carla-simulator/carla/releases/tag/0.9.2)
- [CARLA 0.9.1](https://github.com/carla-simulator/carla/releases/tag/0.9.1) -
[[Blog post](http://carla.org/2018/11/16/release-0.9.1/)] - _Vehicle navigation, new waypoint-based API, maps creation, and more_
- [CARLA 0.9.0](https://github.com/carla-simulator/carla/releases/tag/0.9.0) -
Expand Down
13 changes: 9 additions & 4 deletions Docs/export_import_dist.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,14 +10,19 @@ them with yet another script from the editor.

<h4>How to export a map</h4>
The current script only work for content placed into the
"CarlaRoot/Unreal/CarlaUE4/Content/Carla/ExportedMaps" folder, inside the unreal's project
structure. Once all the changes are saved in the editor and the maps to export
are located in that folder, running
"CarlaRoot/Unreal/CarlaUE4/Content/Carla/ExportedMaps" folder (this can be overriden with
--map flag), inside the unreal's project structure. Once all the changes are saved in the
editor and the maps to export are located in that folder, by the name of the map or the
name provided with the --file flag, so, running

```sh
make export-maps
make export-maps ARGS="--map=/Path/To/Awesome/Map --file=AwesomeMap"
```

!!! important
The path specified in <b>--map</b> flag has to be in Unreal's way.
For example:<br><i><b>/Game/Carla/Maps/AwesomeTownMap</b></i>

will clean, cook and pack the necessary assets with the maps. Please, note that
there is no way of knowing what assets are on the project-to-import-to, so the
final package will usually contain assets needed for the current project to work
Expand Down
71 changes: 71 additions & 0 deletions Docs/generate_map_from_fbx.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
<h1>Automatically generate a map from RoadRunner</h1>

!!! important
The given scripts only works if the files are kept in the folders
detailed below.

This script is aimed to reduce the time needed to setup a map inside Carla's project.
Also, in combination of the [import / export scripts](export_import_dist.md) will allow
the user to generate a simple map without opening Unreal Engine.

!!! important
The script does heavy use of Unreal's capabilities, so it is needed to be installed
and setup, as the import fbx action is done directly over the code project, not a
distribution build.


<h4>How to import a fbx</h4>
The current script only work for files placed with the follow structure (RoadRunnerFiles is
located in the root folder):

```sh
RoadRunnerFiles/
├── MapToImport01
│   ├── Asphalt1_Diff.png
│   ├── Asphalt1_Norm.png
│   ├── Asphalt1_Spec.png
│   ├── Grass1_Diff.png
│   ├── Grass1_Norm.png
│   ├── Grass1_Spec.png
│   ├── LaneMarking1_Diff.png
│   ├── LaneMarking1_Norm.png
│   ├── LaneMarking1_Spec.png
│   ├── MapToImport01.fbx
│   └── MapToImport01.xodr
└── MapToImport02
├── Asphalt1_Diff.png
├── Asphalt1_Norm.png
├── Asphalt1_Spec.png
├── Concrete1_Diff.png
├── Concrete1_Norm.png
├── Concrete1_Spec.png
├── Grass1_Diff.png
├── Grass1_Norm.png
├── Grass1_Spec.png
├── LaneMarking1_Diff.png
├── LaneMarking1_Norm.png
├── LaneMarking1_Spec.png
├── MapToImport02.fbx
└── MapToImport02.xodr
```

Under <i>RoadRunnerFiles</i> folder located at the Carla Root, place each "Export"
folder obtained from RoadRunner and rename it with the name of the map to be imported.
It have to match the <b>.fbx</b>
and <b>.xodr</b> files.

Now, simply go into the PythonAPI/util folder and run <b>generate_map.py</b>

!!! important
The script, by default, checks the <i>/Unreal/CarlaUE4/Content/Carla/ExportedMaps</i> for matching names.
If a map with the same name as a to-be-imported map is found, it will notify the user and won't do anything.
To override this, <b>generate_map.py</b> can be invoked with the <b>--force</b> flag.

After the script finishes, all a map with the same name of the folder and files will be located under
<i>/Unreal/CarlaUE4/Content/Carla/Maps</i> with all the static meshes and placed, textures, waypoints and routes
generated.

!!! important
There is a bug in RoadRunner that generates wrong materials automatically and they get broken inside Unreal.
By adding the flag <b>--usecarlamats</b> the meshes will use the materials provided by Carla's project,
that will also <b>react to the weather</b>.
5 changes: 1 addition & 4 deletions Docs/how_to_build_on_windows.md
Original file line number Diff line number Diff line change
Expand Up @@ -52,8 +52,7 @@ Once you have downloaded the repo and extract the Carla contents you can start w
| Command | Description |
| --- | --- |
| `make help` | Print all available commands |
| `make launch`| Builds and launches Carla |
| `make launch-editor` | Launches Carla Editor |
| `make launch` | Launches Carla Editor |
| `make package` | Builds CARLA and creates a packaged version for distribution |
| `make clean` | Deletes all the binaries and temporals generated by the build system |
| `make rebuild` | Rebuilds Carla project, dependencies not build |
Expand All @@ -64,10 +63,8 @@ If you build Carla for the first time or after you clean the project it will pro
Example of building Carla 0.9.0 for first time:
```cmd
1) git clone https://github.com/carla-simulator/carla.git
2) Download https://drive.google.com/uc?id=1FtC00CrDb7Kz5StBAwb6vqOGbzZtpROx&export=download
3) Extract to Unreal/CarlaUE4/Content/Carla
4) make launch
```

Expand Down
Binary file added Docs/img/accident.gif
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added Docs/img/actor_blocked1.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added Docs/img/actor_blocked2.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added Docs/img/collision1.gif
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
1 change: 1 addition & 0 deletions Docs/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@
* [Running in a Docker](carla_docker.md)
* [How to make a new map with RoadRunner](how_to_make_a_new_map.md)
* [How to link Epic's Automotive Materials](epic_automotive_materials.md)
* [How to automatically generate a map from RoadRunner](generate_map_from_fbx.md)
* [How to export and import maps to distribution builds](export_import_dist.md)

<h3>Contributing</h3>
Expand Down
109 changes: 108 additions & 1 deletion Docs/python_api.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,22 +12,40 @@
- `get_client_version()`
- `get_server_version()`
- `get_world()`
- `get_available_maps()`
- `reload_world()`
- `load_world(map_name)`
- `start_recorder(string filename)`
- `replay_file(string filename, float start, float duration, int camera_follow_id)`
- `show_recorder_file_info(string filename)`
- `show_recorder_collisions(string filename, char category1, char category2)`
- `show_recorder_actors_blocked(string filename, float min_time, float min_distance)`
- `apply_batch(commands, do_tick=False)`

## `carla.World`

- `id`
- `map_name`
- `debug`
- `get_blueprint_library()`
- `get_map()`
- `get_spectator()`
- `get_settings()`
- `apply_settings(world_settings)`
- `get_weather()`
- `set_weather(weather_parameters)`
- `get_actors()`
- `spawn_actor(blueprint, transform, attach_to=None)`
- `try_spawn_actor(blueprint, transform, attach_to=None)`
- `wait_for_tick(seconds=1.0)`
- `on_tick(callback)`
- `tick()`

## `carla.WorldSettings`

- `synchronous_mode`
- `no_rendering_mode`
- `__eq__(other)`
- `__ne__(other)`

## `carla.DebugHelper`

Expand Down Expand Up @@ -108,6 +126,8 @@
- `apply_control(vehicle_control)`
- `get_control()`
- `set_autopilot(enabled=True)`
- `get_physics_control()`
- `apply_physics_control(vehicle_physics_control)`
- `get_speed_limit()`
- `get_traffic_light_state()`
- `is_at_traffic_light()`
Expand All @@ -127,6 +147,8 @@
- `get_elapsed_time()`
- `freeze(True)`
- `is_frozen()`
- `get_pole_index()`
- `get_group_traffic_lights()`

## `carla.Sensor(carla.Actor)`

Expand Down Expand Up @@ -197,6 +219,34 @@
- `__eq__(other)`
- `__ne__(other)`


## `carla.WheelsPhysicsControl`
- `tire_friction`
- `damping_rate`
- `steer_angle`
- `disable_steering`
- `__eq__(other)`
- `__ne__(other)`

## `carla.VehiclePhysicsControl`

- `torque_curve`
- `max_rpm`
- `moi`
- `damping_rate_full_throttle`
- `damping_rate_zero_throttle_clutch_engaged`
- `damping_rate_zero_throttle_clutch_disengaged`
- `use_gear_autobox`
- `gear_switch_time`
- `clutch_strength`
- `mass`
- `drag_coefficient`
- `center_of_mass`
- `steering_curve`
- `wheels`
- `__eq__(other)`
- `__ne__(other)`

## `carla.Map`

- `name`
Expand All @@ -214,7 +264,17 @@
- `lane_width`
- `road_id`
- `lane_id`
- `lane_change`
- `lane_type`
- `next(distance)`
- `get_right_lane()`
- `get_left_lane()`

## `carla.LaneChange`
- `None`
- `Right`
- `Left`
- `Both`

## `carla.WeatherParameters`

Expand Down Expand Up @@ -335,3 +395,50 @@ Static presets
- `Other`
- `Broken`
- `Solid`

# module `carla.command`

## `carla.command.DestroyActor`

- `actor_id`

## `carla.command.ApplyVehicleControl`

- `actor_id`
- `control`

## `carla.command.ApplyWalkerControl`

- `actor_id`
- `control`

## `carla.command.ApplyTransform`

- `actor_id`
- `transform`

## `carla.command.ApplyVelocity`

- `actor_id`
- `velocity`

## `carla.command.ApplyAngularVelocity`

- `actor_id`
- `angular_velocity`


## `carla.command.ApplyImpulse`

- `actor_id`
- `impulse`

## `carla.command.SetSimulatePhysics`

- `actor_id`
- `enabled`

## `carla.command.SetAutopilot`

- `actor_id`
- `enabled`
Loading

0 comments on commit b0a12e7

Please sign in to comment.