43 lines
2.2 KiB
Markdown
43 lines
2.2 KiB
Markdown
<h1>AD Responsibility Sensitive Safety model (RSS) integration</h1>
|
|
|
|
> _This feature is a work in progress, only a Linux build variant is available._
|
|
|
|
This feature integrates the [C++ Library for Responsibility Sensitive Safety](https://github.com/intel/ad-rss-lib) into the CARLA Client library.
|
|
|
|
**As the _ad-rss-lib_ library is licensed under LGPL-2.1-only, building the variant which includes this feature and therefor the library might have some implications to the outgoing license of the resulting binary!**
|
|
|
|
It provides basic implementations of both an **RssSensor**, the situation analysis and response generation by the **ad-rss-lib** and an basic **RssRestrictor** class which applies the restrictions to given vehicle commands.
|
|
|
|
The **RssSensor** results can be visualized within CARLA.
|
|
[![RSS safety sensor in CARLA](img/rss_carla_integration.png)](https://www.youtube.com/watch?v=UxKPXPT2T8Q)
|
|
|
|
|
|
Please see [C++ Library for Responsibility Sensitive Safety documentation](https://intel.github.io/ad-rss-lib/) and especially the [Background documentation](https://intel.github.io/ad-rss-lib/documentation/Main.html) for further details.
|
|
|
|
|
|
<h2>Compilation</h2>
|
|
|
|
RSS integration is a Linux-only build variant.
|
|
Please see [Build System](dev/build_system.md) for general information.
|
|
*LibCarla* with RSS has the be explicitly compiled by
|
|
|
|
```sh
|
|
make LibCarla.client.rss
|
|
```
|
|
|
|
The *PythonAPI* with RSS is built by
|
|
|
|
```sh
|
|
make PythonAPI.rss
|
|
```
|
|
|
|
|
|
<h2>Current state</h2>
|
|
<h3>RssSensor</h3>
|
|
The RssSensor is currently only considering vehicles within the same road segment, but on all lanes within that segment. Intersections are not yet supported!
|
|
|
|
<h3>RssRestrictor</h3>
|
|
The current implementation of the RssRestrictor checks and potentially modifies a given *VehicleControl* generated by e.g. and Automated Driving stack or user imput via a *manual_control* client (see the *PythonAPI/examples/manual_control_rss.py*).
|
|
|
|
Due to the structure of *VehicleControl* (just throttle, brake, streering values for the car under control), the Restrictor modifies and sets these values to best reach the desired accelerations or decelerations by a given restriction. Due to car physics and the simple control options these might not be met.
|