All Projects → intel → Ad Rss Lib

intel / Ad Rss Lib

Licence: other
Library implementing the Responsibility Sensitive Safety model (RSS) for Autonomous Vehicles

Projects that are alternatives of or similar to Ad Rss Lib

Commafeed
Google Reader inspired self-hosted RSS reader.
Stars: ✭ 1,842 (+934.83%)
Mutual labels:  rss
Leed
Leed (contraction de Light Feed) est un agrégateur RSS libre et minimaliste qui permet la consultation de flux RSS de manière rapide et non intrusive.
Stars: ✭ 160 (-10.11%)
Mutual labels:  rss
Jetson Car
Autonomous Racing Car using NVIDIA Jetson TX2 using end-to-end driving approach. Paper: https://arxiv.org/abs/1604.07316
Stars: ✭ 172 (-3.37%)
Mutual labels:  autonomous-vehicles
Autonomousdrivingcookbook
Scenarios, tutorials and demos for Autonomous Driving
Stars: ✭ 1,939 (+989.33%)
Mutual labels:  autonomous-vehicles
Pythonrobotics
Python sample codes for robotics algorithms.
Stars: ✭ 13,934 (+7728.09%)
Mutual labels:  autonomous-vehicles
Read Rust
Read Rust allows you to keep up with articles about the Rust programming language.
Stars: ✭ 164 (-7.87%)
Mutual labels:  rss
Elf rss
QQ机器人 RSS订阅 插件,订阅源建议选择 RSSHub
Stars: ✭ 133 (-25.28%)
Mutual labels:  rss
Pluto
pluto gems - planet feed reader and (static) website generator - auto-build web pages from published web feeds
Stars: ✭ 174 (-2.25%)
Mutual labels:  rss
Planetxamarin
We are an aggregator of content from Xamarin Community members. Why subscribe individually when you can subscribe to one convenient RSS feed, to see all the content generated by the community members in you news reader.
Stars: ✭ 158 (-11.24%)
Mutual labels:  rss
Feedly Notifier
Google Chrome, Firefox, Opera and Microsoft Edge extension for reading news from RSS aggregator Feedly
Stars: ✭ 170 (-4.49%)
Mutual labels:  rss
Screaming Liquid Tiger
Minimalistic podcast feed generator script for audiobooks, for use with Pocket Casts, Overcast and similar apps.
Stars: ✭ 156 (-12.36%)
Mutual labels:  rss
Airsim
Open source simulator for autonomous vehicles built on Unreal Engine / Unity, from Microsoft AI & Research
Stars: ✭ 12,528 (+6938.2%)
Mutual labels:  autonomous-vehicles
Django Planet
🌐 A django planet and feeds (RSS and ATOM) aggregator application for Django
Stars: ✭ 165 (-7.3%)
Mutual labels:  rss
Rsshub Radar
🍰 Browser extension that simplifies finding and subscribing RSS and RSSHub
Stars: ✭ 2,388 (+1241.57%)
Mutual labels:  rss
Feedjira
A feed parsing library
Stars: ✭ 2,017 (+1033.15%)
Mutual labels:  rss
Self Driving Golf Cart
Be Driven 🚘
Stars: ✭ 147 (-17.42%)
Mutual labels:  autonomous-vehicles
Posidonlauncher
a one-page homescreen with a news feed
Stars: ✭ 163 (-8.43%)
Mutual labels:  rss
Vision3d
Research platform for 3D object detection in PyTorch.
Stars: ✭ 177 (-0.56%)
Mutual labels:  autonomous-vehicles
Ttrss plugin Feediron
Evolution of ttrss_plugin-af_feedmod
Stars: ✭ 172 (-3.37%)
Mutual labels:  rss
Node Feedsub
Subscribes to RSS/Atom/JSON feeds and notifies on new items.
Stars: ✭ 170 (-4.49%)
Mutual labels:  rss

C++ Library for Responsibility Sensitive Safety

License GitHub tag (latest SemVer) Build Status Code Coverage

Table of contents

  1. Introduction
  2. License
  3. Documentation
  4. Releases
    1. Release 4.x
    2. Release 3.x
    3. Release 2.x
    4. Release 1.x
  5. Getting Started
    1. Supported Systems
  6. Building the library
  7. Contributing

Introduction

This library intends to provide a C++ implementation of the Responsibility Sensitive Safety model (RSS) for Automated Vehicles.

RSS is described in the following paper. Potential users of this C++ library are encouraged to read these papers in order to become familiar with the concepts and functions provided by the library.

  • On a Formal Model of Safe and Scalable Self-driving Cars, S. Shalev-Shwartz, S. Shammah, A. Shashua, Mobileye, arXiv:1708.06374, https://arxiv.org/abs/1708.06374

The RSS module in this library receives (processed) sensor information as input and provides actuator command restrictions as output. The input to the RSS module is an object list, with information about all objects (road agents) in the surrounding environment of the ego vehicle. For each object, the RSS module creates a description of the object-ego vehicle pair and their properties, called a "situation". For each situation, the relevant RSS safety checks are performed and a proper response is calculated. Finally, one overall response is obtained by combining the responses calculated for each object-ego vehicle situation. The resulting actuation command restrictions, in the form of longitudinal and lateral limits on acceleration are provided as output.

The ad_rss library contains a stand-alone C++ implementation of the RSS module.

  • Conversion of AV sensor data to the input object list required by the RSS module is outside the scope of the ad_rss library. This includes conversion of object location and motion in a Cartesian world coordinate system into a constellation based coordinate system.
  • Conversion of the output proper response and acceleration restrictions to real AV actuation commands (enforcing the restrictions) is outside the scope of this library. This conversion depends strongly on the software and hardware setup of the actual (or simulated) vehicle.

The scope, design and architecture of this C++ library for RSS is described in more detail in the following document packaged with this release. This documentation includes guidance on the usage of the RSS library and its integration into a automated driving system. Users of this library are strongly encouraged to read this documentation prior to integration of the library.

Integrating RSS with automated driving maps

When RSS is to be integrated into a larger system it is usually up to the user implementation to provide the required input into RSS based on the environment information available within the system. The ad_rss_map_integration library provides an example C++ implementation for integrating RSS with automated driving maps.

Usage of ad-rss-lib

If you use ad-rss-lib for any publication, please cite the IV'2019 paper:

@INPROCEEDINGS{
   title={Towards Standardization of AV Safety: C++ Library for Responsibility Sensitive Safety}
   author={Gassmann, Bernd and Oboril, Fabian and Buerkle, Cornelius and Liu, Shuang and Yan, Shoumeng and Elli, Maria Soledad and Alvarez, Ignacio and Aerrabotu, Naveen and Jaber, Suhel and van Beek, Peter and Iyer, Darshan and Weast, Jack}
   booktitle={2019 IEEE Intelligent Vehicles Symposium (IV)}
   year={2019}
}

Usage with Python

Starting with Release v1.6, it is possible to use the ad-rss-lib library also with Python. Please see the Documentation on the Python binding for ad_rss or ad_rss_map_integration_python for further information.

Usage within CARLA

This library can be used together with the open-source driving simulator CARLA to investigate the behavior of RSS. A first version is shown in the following video sequence: RSS safety sensor in CARLA

Usage within Baidu Apollo

In addition, the library is already integrated and used in Baidu's Apollo Open Platform stack:

RSS integration in Apollo

License

This software library is provided under the LGPL-2.1 open-source license: https://opensource.org/licenses/LGPL-2.1.

In addition, the terms in the following apply: RELEASE NOTES AND DISCLAIMERS.

Documentation

Visit the project's GitHub page to access the online version of the full documentation of this library. This includes:

If you have any additional question not answered therein, you might find more in the FAQ

Releases

General release notes and changes can be found in the Changelog

Release 4.x.x

These releases extends the 3.x version with handling of unstructured roads and pedestrians.

Release 3.x.x

These releases improve the 2.x version capabilities on constellation creation.

Release 2.x.x

These releases extend the 1.x version with map integration for extended usability.

Release 1.x.x

The initial release of the C++ software library for RSS implements a subset of the rules and calculations specified in the published RSS paper. This means that this release handles a subset of automated driving scenarios, described below. Scenarios other than this subset cannot be handled.

Features & Limitations

This release implements the RSS calculations and rules corresponding to the following scenarios:

  • Multi-lane roads, i.e. longitudinal and lateral safe distance and proper response determination; and
  • Intersections, i.e. two or more routes of different geometry, rules for intersections of routes, with priority/right of way, and longitudinal and lateral proper response determination. However, in the case of intersections, it is assumed that there is always a lateral conflict; and
  • Unstructured roads and pedestrians.

The following parts of RSS are NOT implemented in this release of the library software:

  • Occlusions;
  • Longitudinal or lateral evasive maneuvers as defined by RSS; and
  • Intersections without a lateral conflict.

Note: The RSS module in this library does not initiate evasive manuevers. At the same time, it would not hinder an evasive manuever being executed by the AV driving policy and planning modules, as long as it is compliant with the required RSS proper response.

Getting started

Installation of dependencies

Currently, the focused operating systems are Ubuntu 16.04 and Ubuntu 18.04. Nevertheless, the library should work in a similar way for any other Linux OS. To install the basic dependencies for Ubuntu 16.04/18.04 execute the following command:

 user$> sudo apt-get install git build-essential cmake libboost-dev

If you want to use doxygen for API documentation, please also install:

 user$> sudo apt-get install doxygen graphviz

Get the library

To download the library, you may run:

 user$> git clone https://github.com/intel/ad-rss-lib.git
 user$> cd ad-rss-lib

Supported systems

Development systems are Ubuntu 16.04 and Ubuntu 18.04. Following compiler combinations are tested continously:

Ubuntu 16.04 Ubuntu 18.04 Ubuntu 20.04
Clang 5.0 x
Clang 6.0 x
Clang 7 x
Clang 8 x
GCC 5 x
GCC 6 x
GCC 7 x
GCC 8 x
GCC 9 x x

Important: cmake is required to be at least version 3.5!

Building the library

See the detailed Build instructions.

Contributing

Contibutions are very welcome!

Before submitting a pull request, please ensure that your code compiles successfully and that the tests run successfully. Please also check that your code formatting complies to the provided clang style. To do so, you can run:

ad_rss$> sudo apt-get install clang-format-3.9
ad_rss$> find -iname *.cpp -o -iname *.hpp | xargs clang-format-3.9 -style=file -i

This command will automatically update the code formatting to be compliant with our style.

In addition, please perform a static code analysis, if possible.

ad_rss$> sudo apt-get install clang-tidy
ad_rss$> cmake -DBUILD_STATIC_ANALYSIS=ON
ad_rss$> make clang-tidy

This may provide a list of possible improvements that you would like to consider in your pull request.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].