2024-09-05
Notícias emocionantes! FREA é aceito pelo CoRL 2024 para Apresentação Oral ??!2024-08-10
Explore a página do nosso projeto, agora ao vivo aqui?!2024-08-10
Os códigos já foram lançados!2024-06-05
Nosso artigo está disponível no Arxiv?!Este repositório contém a implementação do artigo.
FREA: Geração de Cenários Críticos de Segurança Guiada pela Viabilidade com Adversarialidade Razoável
Keyu Chen 1 , Yuheng Lei 2 , Hao Cheng 1 , Haoran Wu 1 , Wenchao Sun 1 , Sifa Zheng 1
1 Escola de Veículos e Mobilidade, Universidade de Tsinghua 2 Universidade de Hong Kong
Se você acha nosso trabalho útil, por favor, dê-nos uma estrela?!
? O FREA incorpora a viabilidade como orientação para gerar cenários críticos de segurança, contraditórios, porém viáveis para AV.
Sistema recomendado: Ubuntu 20.04 ou 22.04
Etapa 1: Instale Carla (0.9.13 recomendado)
Etapa 2: configurar o ambiente conda
conda create -n frea python=3.8
conda activate frea
Etapa 3: clonar este repositório git em uma pasta apropriada
git clone [email protected]:CurryChen77/FREA.git
Passo 4: Entre na pasta raiz do repositório e instale os pacotes:
cd FREA
pip install -r requirements.txt
pip install -e .
# Launch CARLA
./CarlaUE4.sh -prefernvidia -RenderOffScreen -carla-port=2000
# Launch in another terminal
python scripts/run.py --agent_cfg expert.yaml --scenario_cfg standard_train.yaml --mode collect_feasibility_data
# Merge data
python frea/feasibility/unify_offline_data.py
Para usar o conjunto de dados off-line em nosso download de papel aqui, coloque-os na pasta feasibility
.
# Train optimal feasible value function of AV
python train_feasibility.py
# Launch CARLA
./CarlaUE4.sh -prefernvidia -RenderOffScreen -carla-port=2000
# Train FREA
python scripts/run.py --agent_cfg expert.yaml --scenario_cfg fppo_adv_train.yaml --mode train_scenario
# Launch CARLA
./CarlaUE4.sh -prefernvidia -RenderOffScreen -carla-port=2000
# Train FPPO-RS
python scripts/run.py --agent_cfg expert.yaml --scenario_cfg fppo_rs_train.yaml --mode train_scenario
# Launch CARLA
./CarlaUE4.sh -prefernvidia -RenderOffScreen -carla-port=2000
# Train PPO
python scripts/run.py --agent_cfg expert.yaml --scenario_cfg ppo_train.yaml --mode train_scenario
# Launch CARLA
./CarlaUE4.sh -prefernvidia -RenderOffScreen -carla-port=2000
# Train FREA
python scripts/run.py --agent_cfg ppo.yaml --scenario_cfg fppo_adv_train.yaml --mode train_agent
# Launch CARLA
./CarlaUE4.sh -prefernvidia -RenderOffScreen -carla-port=2000
# Train FREA
python scripts/run.py --agent_cfg ppo.yaml --scenario_cfg standard_train.yaml --mode train_agent
# Launch CARLA
./CarlaUE4.sh -prefernvidia -windowed -carla-port=2000
# Evaluation FREA
python scripts/run.py --agent_cfg expert.yaml --scenario_cfg FPPO_adv_eval.yaml --mode eval --eval_mode analysis
# Launch CARLA
./CarlaUE4.sh -prefernvidia -windowed -carla-port=2000
# Evaluation FREA
python scripts/run.py --agent_cfg expert.yaml --scenario_cfg FPPO_adv_eval.yaml --mode eval --eval_mode render
Certifique-se de que a avaliação foi concluída e o resultado está salvo na pasta.
# Process the recorded data
python eval_analysis/process_data/process_all_data.py
# Plot the evaluation result
python eval_analysis/plot_data/plot_evaluation_result.py
# Launch CARLA
./CarlaUE4.sh -prefernvidia -windowed -carla-port=2000
# Set world spectator
python scripts/run.py --agent_cfg expert.yaml --scenario_cfg standard_eval.yaml --mode eval -sp
# Launch CARLA
./CarlaUE4.sh -prefernvidia -windowed -carla-port=2000
# Visualize AV route
python scripts/run.py --agent_cfg expert.yaml --scenario_cfg standard_eval.yaml --mode eval -viz_route
# Launch CARLA
./CarlaUE4.sh -prefernvidia -windowed -carla-port=2000
# Visualize BEV map
python scripts/run.py --agent_cfg expert.yaml --scenario_cfg FPPO_adv_eval.yaml --mode eval --eval_mode render
Se você achar nosso artigo útil, por favor, cite-nos via:
@inproceedings{
chen2024frea,
title={{FREA}: Feasibility-Guided Generation of Safety-Critical Scenarios with Reasonable Adversariality},
author={Keyu Chen and Yuheng Lei and Hao Cheng and Haoran Wu and Wenchao Sun and Sifa Zheng},
booktitle={8th Annual Conference on Robot Learning},
year={2024},
url={https://openreview.net/forum?id=3bcujpPikC}
}
Esta implementação é baseada em código de vários repositórios. Agradecemos sinceramente aos autores por seu trabalho incrível.