An open API service indexing awesome lists of open source software.

https://github.com/however-yir/autonomous-driving-lab

Autonomous driving engineering monorepo — CARLA simulation, Autoware ROS 2 vehicle stack, VSS signal spec, automotive DLT logging.
https://github.com/however-yir/autonomous-driving-lab

automotive autonomous-driving autoware carla cplusplus cpp docker fork-customized kubernetes monorepo python robotics ros2 simulation ue5 validation vehicle-signals

Last synced: 21 days ago
JSON representation

Autonomous driving engineering monorepo — CARLA simulation, Autoware ROS 2 vehicle stack, VSS signal spec, automotive DLT logging.

Awesome Lists containing this project

README

          

# 🚗 Autonomous Driving Lab

[![License: MIT](https://img.shields.io/badge/license-MIT-16A34A)](./LICENSE)
[![Status](https://img.shields.io/badge/status-research%20lab-64748B)](#)
[![ROS 2](https://img.shields.io/badge/ROS%202-Humble-blue)](https://docs.ros.org/en/humble/index.html)
[![UE5](https://img.shields.io/badge/UE5-CARLA-ff69b4)](https://carla.org/)

> **自动驾驶开源栈集成实验室** — 仿真验证 · ROS 2 集成 · 信号规范 · 车载日志
>
> 一个 research / integration lab / experimental baseline,用来把 CARLA、Autoware、COVESA VSS 与 DLT 等开源栈放在同一工作台上做集成验证。

---

## 🏗️ 仓库架构

```
autonomous-driving-lab/

├── main ← 统一入口(当前页面)
│ ├── ros2-stack/ Autoware ROS 2 车辆栈集成
│ ├── vehicle-signals/ VSS 车辆信号规范
│ └── automotive-dlt/ 车载 DLT 日志守护进程

└── ue5-dev ← CARLA 仿真平台完整源码
├── Unreal/ UE5 场景引擎
├── LibCarla/ C++ 核心库
├── PythonAPI/ Python 仿真接口
├── Ros2Native/ ROS 2 原生桥接
├── deploy/ Docker + K8s 实验部署样例
└── tests/ 测试套件
```

### 分支策略

| 分支 | 用途 | 说明 |
| --- | --- | --- |
| **`main`** | 集成入口 | 聚合 ros2-stack、vehicle-signals、automotive-dlt 三个实验模块 |
| **`ue5-dev`** | 仿真引擎 | CARLA UE5 仿真平台源码分支,原 `carla-sim-engine` 仓库 |

> **为什么要两个分支?** CARLA 仿真引擎仓库体积极大(~2GB),与 ROS 2/VSS/DLT 等轻量模块放在同一 commit 树下会影响 clone 效率和 CI 构建速度。因此仿真引擎独立维护在 `ue5-dev` 分支,轻量模块聚合在 `main` 分支。

---

## 🔗 上游项目关系

本仓库是社区维护的衍生工程,基于以下上游开源项目构建。各模块与上游的关系如下:

| 模块 | 上游项目 | 关系说明 |
| --- | --- | --- |
| **`ue5-dev` 分支** | [carla-simulator/carla](https://github.com/carla-simulator/carla) | however-yir 的 CARLA 仿真引擎 fork,基于上游 CARLA 做 UE5 适配、运行时扩展模块与健康检查实验。仿真场景、PythonAPI、LibCarla 核心库以跟踪上游为主。 |
| **`ros2-stack/`** | [autowarefoundation/autoware](https://github.com/autowarefoundation/autoware) | 基于上游 Autoware 主仓模板做 ROS 2 工作区集成实验,包含 `.repos` 依赖入口、colcon 构建入口与容器化样例。 |
| **`vehicle-signals/`** | [COVESA/vehicle_signal_specification](https://github.com/COVESA/vehicle_signal_specification) | 基于上游 VSS 标准数据模型,增加扩展治理、schema freeze gate 与季度上游同步脚本。 |
| **`automotive-dlt/`** | [COVESA/dlt-daemon](https://github.com/COVESA/dlt-daemon) | 基于上游 AUTOSAR DLT 守护进程,增加 ARM 交叉编译、协议兼容回归与 fuzz smoke 测试入口。 |

> 本仓库与上游项目及其组织无隶属关系,也无官方背书。上游项目名称、Logo 与商标归其各自权利人所有。各子项目目录下维护独立许可证;部分目录另含 `LICENSE.HOWEVER` 或 `NOTICE.md`。

---

## 📦 模块详情

### 状态标签

| 标签 | 含义 |
| --- | --- |
| `verified` | 本仓库提供了本地 smoke check 或 CI 入口,可验证基础文件、脚本语法或构建入口。 |
| `partial` | 已有集成入口和预期产物说明,但完整构建依赖外部工具链、上游仓库或平台环境。 |
| `research` | 用于研究、课程、原型验证或集成实验,不声明生产可用性。 |
| `upstream-derived` | 来自上游开源项目的 fork / 衍生目录,改动以集成、治理和验证入口为主。 |

### 🎮 CARLA 仿真引擎 · [`ue5-dev` 分支](https://github.com/however-yir/autonomous-driving-lab/tree/ue5-dev)

| 属性 | 详情 |
| --- | --- |
| 上游 | `carla-simulator/carla` |
| 定位 | 仿真与验证研究底座,面向自动驾驶场景验证、可复现实验流程与平台集成样例 |
| 亮点 | UE5 主分支、运行时扩展模块、健康检查(含 deep 模式)、Docker / K8s 实验部署样例 |
| 状态 | `research`, `upstream-derived`, `partial` |
| 快速开始 | `git checkout ue5-dev && bash CarlaSetup.sh` |

### 🤖 Autoware ROS 2 车辆栈 · [`ros2-stack/`](./ros2-stack)

| 属性 | 详情 |
| --- | --- |
| 上游 | `autowarefoundation/autoware` |
| 定位 | Autoware ROS 2 工作区集成实验基线 |
| 亮点 | `.repos` 主入口、依赖管理、模块解耦、回归测试、colcon CI、容器化、实时性 Profiling |
| 状态 | `partial`, `verified`, `upstream-derived` |
| 快速开始 | `cd ros2-stack && vcs import src < autoware.repos && colcon build --symlink-install` |

#### colcon 构建证据

依赖:

- ROS 2 Humble 环境:`ros-humble-desktop` 或等价基础镜像
- Python 工具:`python3-vcstool`, `python3-rosdep`, `python3-colcon-common-extensions`
- 本仓库自定义包依赖:`ament_cmake`, `rclcpp`, `geometry_msgs`, `sensor_msgs`, `pluginlib`
- 上游依赖入口:`ros2-stack/autoware.repos`

可复现命令:

```bash
cd ros2-stack
mkdir -p src
vcs import src < autoware.repos
rosdep update
rosdep install --from-paths src my_modules/ros2_pkgs --ignore-src -r -y --rosdistro humble
colcon build --symlink-install --cmake-args -DCMAKE_BUILD_TYPE=RelWithDebInfo
colcon test --packages-select \
my_vehicle_perception_bridge \
my_vehicle_planning_strategies \
my_vehicle_control_safety
colcon test-result --verbose
```

预期产物:

- `build/`, `install/`, `log/` 三个 colcon 工作区目录
- `install/my_vehicle_perception_bridge/lib/my_vehicle_perception_bridge/perception_topic_bridge`
- `install/my_vehicle_control_safety/lib/my_vehicle_control_safety/control_safety_node`
- `install/my_vehicle_planning_strategies/lib/libdefault_strategy_plugin.so`
- `install/my_vehicle_planning_strategies/share/my_vehicle_planning_strategies/plugins.xml`

### 📊 车辆信号规范 (VSS) · [`vehicle-signals/`](./vehicle-signals)

| 属性 | 详情 |
| --- | --- |
| 上游 | `COVESA/vehicle_signal_specification` |
| 定位 | 标准化汽车数据模型、治理检查与制品导出 |
| 亮点 | VSS 标准数据模型、扩展治理、schema freeze gate、季度上游同步 |
| 状态 | `verified`, `partial`, `upstream-derived` |
| 快速开始 | `cd vehicle-signals && make jsonschema` |

#### VSS schema 校验与导出

依赖:

- `python3`
- COVESA `vss-tools`,提供 `vspec` 命令
- VSS 入口文件:`spec/VehicleSignalSpecification.vspec`
- 扩展入口文件:`spec/extensions/VehicleSignalSpecificationExtensions.vspec`
- 单位定义:`spec/units.yaml`

校验 / 导出命令:

```bash
cd vehicle-signals
make bootstrap
make jsonschema
make extensions_jsonschema
make overlays
make signal_lint
python3 ./scripts/check_schema_compat.py --base origin/master --head HEAD
./scripts/export_extension_artifacts.sh
```

预期产物:

- 核心 schema:`vss.jsonschema`
- overlay 校验导出:`vss_motorbike.json`, `vss_dualwiper.json`, `vss_obd.json`
- 扩展 schema:`vss_extensions.schema.json`
- 扩展制品目录:`artifacts/extensions//`
- 扩展制品文件:`vss_extensions.json`, `vss_extensions.csv`, `vss_extensions.fidl`, `vss_extensions.idl`, `vss_extensions.schema.json`
- SDK 常量导出:`artifacts/extensions//sdk/`

### 📋 车载 DLT 日志 · [`automotive-dlt/`](./automotive-dlt)

| 属性 | 详情 |
| --- | --- |
| 上游 | `COVESA/dlt-daemon` |
| 定位 | AUTOSAR DLT 守护进程集成实验,关注协议兼容、构建入口与日志可观测性 |
| 亮点 | ARM 交叉编译、协议兼容回归、fuzz 测试、CodeQL 安全扫描 |
| 状态 | `partial`, `verified`, `upstream-derived` |
| 快速开始 | `cd automotive-dlt && cmake -B build && cmake --build build` |

#### CMake 构建、兼容性与 fuzz

依赖:

- `cmake`, `make` 或 Ninja
- C/C++ 编译器:GCC 或 Clang
- 单元测试:`WITH_DLT_UNIT_TESTS=ON`, `ctest`
- fuzz smoke:`clang`
- ARM 交叉编译:`gcc-aarch64-linux-gnu`, `g++-aarch64-linux-gnu`

CMake 构建:

```bash
cd automotive-dlt
cmake -S . -B build \
-DCMAKE_BUILD_TYPE=RelWithDebInfo \
-DWITH_DLT_UNIT_TESTS=ON \
-DBUILD_GMOCK=OFF
cmake --build build -- -j"$(nproc 2>/dev/null || sysctl -n hw.ncpu)"
ctest --test-dir build --output-on-failure
```

协议兼容检查:

```bash
cd automotive-dlt
bash scripts/protocol-compat-gate.sh
```

该脚本会配置 `build-protocol-gate/`,构建测试目标,并分别运行 AUTOSAR DLT V1/V2 相关的 `gtest_dlt_*` 回归集合。

fuzz smoke:

```bash
cd automotive-dlt
bash tests/fuzz/run_parser_fuzz.sh
```

预期产物为 `build-fuzz/fuzz_dlt_config_file_parser`;如果 libFuzzer 不可用,脚本会回退生成 `build-fuzz/fuzz_dlt_config_file_parser_standalone`。

ARM 交叉编译:

```bash
cd automotive-dlt
cmake -S . -B build-aarch64 \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_TOOLCHAIN_FILE=cmake/toolchains/aarch64-linux-gnu.cmake
cmake --build build-aarch64 --target dlt-daemon -- -j"$(nproc)"
```

预期产物为 `build-aarch64/` 下的 `dlt-daemon` 目标构建结果。

---

## 🛠️ 技术栈总览

| 领域 | 技术 |
| --- | --- |
| 仿真引擎 | C++17, Unreal Engine 5, Python 3 |
| 车辆栈 | ROS 2 Humble, C++17, colcon |
| 信号规范 | YAML, JSON Schema, Python |
| 车载日志 | C, CMake, DLT Protocol (AUTOSAR) |
| 容器化 | Docker, Docker Compose |
| 编排部署 | Kubernetes, Helm |
| CI/CD | GitHub Actions, CodeQL, Dependabot |
| 质量保障 | ruff, mypy, cppcheck, clang-tidy, fuzzing |

---

## ⚖️ 合规与声明

- 各衍生目录维护独立许可证;`LICENSE.HOWEVER` 与 `NOTICE.md` 按模块实际情况提供
- 上游项目名称、Logo 与相关商标归其各自权利人所有
- 本仓库为社区维护的衍生工程,与上游组织无隶属、无官方背书关系
- 详细许可证信息见各子项目目录下的 `LICENSE` 文件

---

## 📁 合并归档

本 monorepo 由以下独立仓库合并而成(已归档删除):

| 原仓库 | 归入 | 分支/目录 |
| --- | --- | --- |
| `carla-sim-engine` | CARLA 仿真引擎 | `ue5-dev` 分支 |
| `autoware-ros2-stack` | Autoware ROS 2 集成 | `main` / `ros2-stack/` |
| `vehicle_signal_specification` | 车辆信号规范 | `main` / `vehicle-signals/` |
| `automotive-dlt-logger` | 车载 DLT 日志 | `main` / `automotive-dlt/` |

> 各子项目保留原始 README、CI 配置、LICENSE 与构建入口;完整构建依赖对应上游工具链。