Project Icon

ad-rss-lib

开源C++库实现自动驾驶责任敏感安全模型

ad-rss-lib是一个开源C++库,实现了自动驾驶责任敏感安全(RSS)模型。该库可处理多车道、交叉路口和非结构化道路场景,为自动驾驶系统提供安全约束。支持自动驾驶地图集成和Python开发,已在CARLA模拟器和百度Apollo平台中应用,为自动驾驶安全研究提供了有力工具。

C++责任敏感安全库

许可证 GitHub标签(最新语义化版本) 构建状态 OpenSSF最佳实践 OpenSSF评分卡

目录

  1. 简介
  2. 许可证
  3. 文档
  4. 发布
    1. 4.x版本
    2. 3.x版本
    3. 2.x版本
    4. 1.x版本
  5. 入门指南
    1. 支持的系统
  6. 构建库
  7. 贡献

简介

该库旨在为自动驾驶车辆提供责任敏感安全(RSS)模型的C++实现。

RSS在以下论文中有详细描述。建议该C++库的潜在用户阅读这些论文,以熟悉库提供的概念和功能。

  • 《安全且可扩展的自动驾驶汽车的形式化模型》,S. Shalev-Shwartz, S. Shammah, A. Shashua, Mobileye, arXiv:1708.06374, https://arxiv.org/abs/1708.06374

该库中的RSS模块接收(经处理的)传感器信息作为输入,并提供执行器命令限制作为输出。RSS模块的输入是一个对象列表,包含了自车周围环境中所有对象(道路代理)的信息。对于每个对象,RSS模块创建一个描述对象-自车对及其属性的"情境"。对每种情境,执行相关的RSS安全检查并计算适当的响应。最后,通过结合为每个对象-自车情境计算的响应,得出一个总体响应。最终的执行命令限制以纵向和横向加速度限制的形式作为输出提供。

ad_rss库包含RSS模块的独立C++实现。

  • 将自动驾驶传感器数据转换为RSS模块所需的输入对象列表不在ad_rss库的范围内。这包括将笛卡尔世界坐标系中的对象位置和运动转换为基于星座的坐标系。
  • 将输出的适当响应和加速度限制转换为实际自动驾驶车辆的执行命令(强制执行限制)不在该库的范围内。这种转换在很大程度上取决于实际(或模拟)车辆的软件和硬件设置。

该RSS C++库的范围、设计和架构在随发布包含的以下文档中有更详细的描述。该文档包括有关RSS库使用及其集成到自动驾驶系统中的指导。强烈建议该库的用户在集成库之前阅读此文档。

将RSS与自动驾驶地图集成

当RSS要集成到更大的系统中时,通常由用户实现根据系统中可用的环境信息提供RSS所需的输入。ad_rss_map_integration库提供了一个将RSS与自动驾驶地图集成的C++实现示例。

ad-rss-lib的使用

如果您在任何出版物中使用ad-rss-lib,请引用IV'2019论文:

@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}
}

与Python一起使用

从v1.6版本开始,也可以在Python中使用ad-rss-lib库。 更多信息请参见ad_rss的Python绑定文档ad_rss_map_integration_python

在CARLA中使用

该库可以与开源驾驶模拟器CARLA一起使用,以研究RSS的行为。以下视频序列展示了第一个版本: CARLA中的RSS安全传感器

在百度Apollo中使用

此外,该库已集成并在百度的Apollo开放平台中使用:

Apollo中的RSS集成

许可证

该软件库根据LGPL-2.1开源许可证提供:https://opensource.org/licenses/LGPL-2.1。

此外,以下条款也适用: 发布说明和免责声明

文档

访问项目的GitHub页面以获取该库完整文档的在线版本。其中包括:

如果你还有其他未解答的问题,可以在常见问题中找到更多信息。

发布

一般发布说明和变更可以在更新日志中找到。

4.x.x 版本

这些版本在3.x版本的基础上扩展了非结构化道路和行人的处理。

3.x.x 版本

这些版本改进了2.x版本在场景创建方面的能力。

2.x.x 版本

这些版本通过地图集成扩展了1.x版本,提高了可用性。

1.x.x 版本

RSS的C++软件库的初始版本实现了已发布RSS论文中指定的部分规则和计算。这意味着该版本处理了以下所述的一部分自动驾驶场景。其他场景无法处理。

特性和限制

此版本实现了对应以下场景的RSS计算和规则:

  • 多车道道路,即纵向和横向安全距离以及适当响应的确定;
  • 交叉路口,即两条或多条不同几何形状的路线,路线交叉的规则,包括优先权/通行权,以及纵向和横向适当响应的确定。但是,在交叉路口的情况下,假设总是存在横向冲突;
  • 非结构化道路和行人。

以下RSS部分在此版本的库软件中未实现:

  • 遮挡;
  • RSS定义的纵向或横向避让机动;
  • 没有横向冲突的交叉路口。

注意:此库中的RSS模块不会主动进行避让机动。同时,只要符合所需的RSS适当响应,它不会妨碍AV驾驶策略和规划模块执行的避让机动。

入门

安装依赖项

目前,重点支持的操作系统是Ubuntu 20.04和Ubuntu 22.04。不过,该库应该也能在其他Linux操作系统上以类似方式工作。 要在Ubuntu 20.04/22.04上安装基本依赖项,请执行以下命令:

 user$> sudo apt-get install git build-essential cmake libboost-dev libpugixml-dev libgtest-dev libpython-dev libproj-dev

如果你想使用doxygen生成API文档,请也安装:

 user$> sudo apt-get install doxygen graphviz

获取库

要下载该库,你可以运行:

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

支持的系统

开发系统为Ubuntu 20.04和Ubuntu 22.04 以下编译器和Python组合持续进行测试

Ubuntu 20.04Ubuntu 22.04
GCC 9x
Clang 10x
GCC 11x
Clang 14x
Python 3.8x
Python 3.10xx

重要提示:cmake版本至少需要3.5!

构建库

请参阅详细的构建说明

贡献

非常欢迎贡献!

在提交拉取请求之前,请确保你的代码能够成功编译,并且测试能够成功运行。 如果添加了新功能,请也注意添加适当的单元测试。报告的代码覆盖率不应低于80%。

请同时检查你的代码格式是否符合提供的clang样式。为此,你可以运行:

ad-rss-lib$> sudo apt-get install clang-format-14
ad-rss-lib$> find -iname *.cpp -o -iname *.hpp | xargs clang-format-14 -style=file -i

这个命令将自动更新代码格式以符合我们的样式。

此外,如果可能的话,请执行静态代码分析。

ad-rss-lib$> sudo apt-get install clang-tidy
ad-rss-lib$> cmake -DBUILD_STATIC_ANALYSIS=ON
ad-rss-lib$> make clang-tidy

这可能会提供一系列可能的改进建议,你可以考虑在拉取请求中采纳这些建议。

项目侧边栏1项目侧边栏2
推荐项目
Project Cover

豆包MarsCode

豆包 MarsCode 是一款革命性的编程助手,通过AI技术提供代码补全、单测生成、代码解释和智能问答等功能,支持100+编程语言,与主流编辑器无缝集成,显著提升开发效率和代码质量。

Project Cover

AI写歌

Suno AI是一个革命性的AI音乐创作平台,能在短短30秒内帮助用户创作出一首完整的歌曲。无论是寻找创作灵感还是需要快速制作音乐,Suno AI都是音乐爱好者和专业人士的理想选择。

Project Cover

有言AI

有言平台提供一站式AIGC视频创作解决方案,通过智能技术简化视频制作流程。无论是企业宣传还是个人分享,有言都能帮助用户快速、轻松地制作出专业级别的视频内容。

Project Cover

Kimi

Kimi AI助手提供多语言对话支持,能够阅读和理解用户上传的文件内容,解析网页信息,并结合搜索结果为用户提供详尽的答案。无论是日常咨询还是专业问题,Kimi都能以友好、专业的方式提供帮助。

Project Cover

阿里绘蛙

绘蛙是阿里巴巴集团推出的革命性AI电商营销平台。利用尖端人工智能技术,为商家提供一键生成商品图和营销文案的服务,显著提升内容创作效率和营销效果。适用于淘宝、天猫等电商平台,让商品第一时间被种草。

Project Cover

吐司

探索Tensor.Art平台的独特AI模型,免费访问各种图像生成与AI训练工具,从Stable Diffusion等基础模型开始,轻松实现创新图像生成。体验前沿的AI技术,推动个人和企业的创新发展。

Project Cover

SubCat字幕猫

SubCat字幕猫APP是一款创新的视频播放器,它将改变您观看视频的方式!SubCat结合了先进的人工智能技术,为您提供即时视频字幕翻译,无论是本地视频还是网络流媒体,让您轻松享受各种语言的内容。

Project Cover

美间AI

美间AI创意设计平台,利用前沿AI技术,为设计师和营销人员提供一站式设计解决方案。从智能海报到3D效果图,再到文案生成,美间让创意设计更简单、更高效。

Project Cover

AIWritePaper论文写作

AIWritePaper论文写作是一站式AI论文写作辅助工具,简化了选题、文献检索至论文撰写的整个过程。通过简单设定,平台可快速生成高质量论文大纲和全文,配合图表、参考文献等一应俱全,同时提供开题报告和答辩PPT等增值服务,保障数据安全,有效提升写作效率和论文质量。

投诉举报邮箱: service@vectorlightyear.com
@2024 懂AI·鲁ICP备2024100362号-6·鲁公网安备37021002001498号