# SafeCrowdNav: Safety Evaluation of Robot Crowd Navigation in complex scenes
## Paper
This paper is available in frontiers.[SafeCrowdNav](https://www.frontiersin.org/articles/10.3389/fnbot.2023.1276519/full)
## Abstract
Navigating safely and efficiently in dense crowds remains a challenging problem for mobile robots. The interaction mechanisms involved in collision avoidance require robots to exhibit active and foresighted behaviors while understanding the crowd dynamics. Deep reinforcement learning methods have shown superior performance compared to model-based approaches. However, existing methods lack an intuitive and quantitative safety evaluation for agents, and they may potentially trap agents in local optima during training, hindering their ability to learn optimal strategies. In addition, sparse reward problems further compound these limitations. To address these challenges, we propose SafeCrowdNav, a comprehensive crowd navigation algorithm that emphasizes obstacle avoidance in complex environments. Our approach incorporates a safety evaluation function to quantitatively assess the current safety score and an intrinsic exploration reward to balance exploration and exploitation based on scene constraints. By combining prioritized experience replay and hindsight experience replay techniques, our model effectively learns the optimal navigation policy in crowded environments. Experimental results demonstrate that our approach enhances the robot's understanding of the crowd, leading to lower collision probabilities and shorter navigation times compared to state-of-the-art algorithms.
## Method Overview
<img src="doc/architecture.png" alt="architecture" width="1000" />
## Setup
1. Install [Python-RVO2](https://github.com/sybrenstuvel/Python-RVO2) library
2. Install [socialforce](https://github.com/ChanganVR/socialforce) library
2. Install crowd_sim and crowd_nav into pip
```
pip install -e .
```
## Getting Started
This repository are organized in two parts: crowd_sim/ folder contains the simulation environment and crowd_nav/ folder contains codes for training and testing the policies. Details of the simulation framework can be found [here](crowd_sim/README.md). Below are the instructions for training and testing policies, and they should be executed
inside the crowd_nav/ folder.
```
parser.add_argument('--policy', type=str, default='tree-search-rl')
parser.add_argument('--config', type=str, default='configs/icra_benchmark/ts_separate_curiosity.py')
parser.add_argument('--output_dir', type=str, default='data/output')
parser.add_argument('--gpu', default=True, action='store_true')
```
1. Train a policy.
```
python train.py
```
2. Test policies with 1000 test cases.
```
python test.py
```
3. Run policy for one episode and visualize the result.
```
python test.py
```
```
python test.py --traj
```
```
python test.py --traj --human_num 10
```
4. plot the result
in crowdnav/plotall folder
```
(xjcrowdnav) xxx@xxx-amd:/mnt/f/xujing/intrinsic-Her-Ntime/crowd_nav/plotall$ python plot.py data/ --plot_time
```
## metrics
| Success Rate | Collision Rate |
| :----------------------------------------: | :----------------------------------------: |
| <img src="doc/train_sr_fig.png" width="500" /> | <img src="doc/train_cr_fig.png" width="500" /> |
| Reward | time |
| <img src="doc/train_reward_fig.png" width="500" /> | <img src="doc/train_time_fig.png" width="500" /> |
## Trajectory Diagram
| Simple Scenario | Complex Scenario |
| :----------------------------------------: | :----------------------------------------: |
| <img src="doc/traj_5human.png" width="500" /> | <img src="doc/traj_10human.png" width="500" /> |
## Safety Weights
| Simple Scenario | Complex Scenario |
| :-------------------------------------------: | :-------------------------------------------: |
| <img src="doc/low score.png" width="500" /> | <img src="doc/high score.png" width="500" /> |
## Video Demo
| Holonomic Robot in Simple Scenarios | Holonomic Robot in Complex Scenarios |
| :--------------------------------------------: | :--------------------------------------------: |
| <img src="doc/test_safe_5human.gif" width="500" /> | <img src="doc/test_safe_10human.gif" width="500" /> |
## Acknowledge
This work is based on [CrowdNav](https://github.com/vita-epfl/CrowdNav) and [SG-D3QN](https://github.com/nubot-nudt/SG-D3QN) and [intrinsic-SGD3QN](https://github.com/dmartinezbaselga/intrinsic-rewards-navigation.git). The authors are thankful for their works and for making them available.
## Citation
```
@article{xu2023safecrowdnav,
title={SafeCrowdNav: safety evaluation of robot crowd navigation in complex scenes},
author={Xu, Jing and Zhang, Wanruo and Cai, Jialun and Liu, Hong},
journal={Frontiers in neurorobotics},
volume={17},
year={2023},
publisher={Frontiers Media SA}
}
```
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
【项目资源】: 包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。 包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、python、web、C#、EDA、proteus、RTOS等项目的源码。 【项目质量】: 所有源码都经过严格测试,可以直接运行。 功能在确认正常工作后才上传。 【适用人群】: 适用于希望学习不同技术领域的小白或进阶学习者。 可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】: 项目具有较高的学习借鉴价值,也可直接拿来修改复刻。 对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】: 有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 鼓励下载和使用,并欢迎大家互相学习,共同进步。
资源推荐
资源详情
资源评论
收起资源包目录
基于深度强化学习的机器人视觉导航安全性评估.zip (147个子文件)
test_safe_10human.gif 2.53MB
test_safe_5human.gif 252KB
.gitignore 196B
LICENSE 1KB
README.md 5KB
README.md 3KB
RobotState.msg 128B
PedState.msg 71B
ObserveInfo.msg 47B
ActionCmd.msg 38B
tsrl5humannoh.out 424KB
high score.pdf 502KB
low score.pdf 497KB
architecture.pdf 312KB
train_time_fig.pdf 159KB
train_reward_fig.pdf 148KB
traj_10human.pdf 94KB
train_sr_fig.pdf 83KB
train_cr_fig.pdf 77KB
traj_5human.pdf 54KB
traj_10human.png 394KB
train_time_fig.png 339KB
train_time_fig.png 339KB
trainfig.png 334KB
train_sr_fig.png 295KB
train_sr_fig.png 295KB
train_cr_fig.png 267KB
train_cr_fig.png 267KB
architecture.png 253KB
train_reward_fig.png 236KB
train_reward_fig.png 236KB
traj_5human.png 231KB
high score.png 154KB
low score.png 150KB
crowd_sim.py 56KB
trainer.py 36KB
value_estimator.py 29KB
tree_searchrl.py 27KB
model_predictive_rl.py 26KB
random_encoder.py 18KB
gat_predictive_rl.py 18KB
train.py 18KB
curiosity.py 18KB
train_on_server.py 17KB
explorer.py 17KB
cadrl.py 15KB
graph_model.py 15KB
helpers.py 12KB
state_predictor.py 11KB
test.py 9KB
ros_inter.py 9KB
orca.py 9KB
multi_human_rl.py 9KB
critic.py 9KB
actor.py 8KB
plot.py 8KB
plot.py 8KB
TD3_rl.py 8KB
gcn.py 7KB
sarl.py 6KB
lstm_rl.py 5KB
config.py 5KB
memory.py 5KB
agent.py 5KB
GrandCentral.py 4KB
reward_estimate.py 4KB
state.py 3KB
testrospy3.py 3KB
socialforce.py 3KB
policy.py 2KB
ts_separate_random_encoder_v2.py 2KB
ts_separate_random_encoder_v3.py 2KB
ts_separate_random_encoder.py 2KB
mp_separate_dp_random_encoder.py 2KB
ts_separate_curiosity_v3.py 2KB
ts_separate_curiosity_v2.py 2KB
ts_separate_curiosity.py 2KB
ts_separate_boltzmann_v2.py 2KB
ts_separate_boltzmann.py 2KB
ts_separate_dropout.py 2KB
ts_separate_dropout_v3.py 2KB
ts_separate_dropout_v2.py 2KB
mp_separate_dp_curiosity_v2.py 2KB
mp_separate_dp_curiosity.py 2KB
mp_separate_dp_dropout.py 1KB
mp_separate_dp_noisy.py 1KB
ts_separate_noisy.py 1KB
test_polices.py 1KB
ts_separate_more_exploration.py 1KB
mp_separate_dp.py 1KB
ts_separate.py 1KB
mp_linear.py 1KB
mp_separate.py 1KB
mp_detach.py 1KB
td3.py 1KB
robot.py 959B
lstm_rl_random_encoder.py 843B
sarl_random_encoder.py 839B
lstm_rl_curiosity_v2.py 750B
lstm_rl_curiosity.py 749B
共 147 条
- 1
- 2
资源评论
妄北y
- 粉丝: 1w+
- 资源: 1万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功