this repo makes for training and testing a Crowd navigation or a map based navigation
you can run online reinforcement learning in a navigation task by stable-baselines3 and sb3-contrib!
we have added GRU+PPO for user (please see result in my past repo)
-
${\textsf{\color{pink}The pink}}$ can not be seen by 2d scan,${\textsf{\color{blue}The blue}}$ can be seen by 2d scan. (this is for CrowdNav testing or training) -
${\textsf{\color{pink}A pink}}$ line is a path which is made by Dijkstra algorithm, and${\textsf{\color{pink}A pink}}$ triangle is a subgoal which is made by look-ahead planning,${\textsf{\color{Yellow}A yellow}}$ triangle is a goal. -
apply map (with walls)
-
only walls (on the other way, only map is applied)
os: ubuntu20.04 , python: 3.8.x
mkdir catkin_ws && cd catkin_ws && mkdir src && cd src
git clone https://github.com/CAI23sbP/CrowdNav_Cai.git && cd CrowdNav_Cai && pip3 install -e . && cd ..
git clone https://github.com/CAI23sbP/pymap2d.git && cd pymap2d && pip3 install -e . && cd ..
git clone https://github.com/danieldugas/Python-RVO2.git && cd Python-RVO2 && python3 setup.py build && python3 setup.py install && cd ..
git clone https://github.com/CAI23sbP/range_libc.git && cd range_libc/pywrapper && pip3 install -e. && cd ../..
see config file in crowd_nav/configs/*.yaml
train.py --model_name default_model --config_name base_config --device cuda
if you want to test example model, see detail : ### Example weight ###
test.py --n_eval 100 --weight_path Your_model_name --render True --config_name base_config
Here is testing rendering (from example weight)
10humans.mp4
general.mp4
see detail example_scan_sim.py
(path: crowd_sim/envs/)
see detail example.py
(path: crowd_sim/envs/policy/network_policies/)
if you want to use libraries which are caled imitation , stable-baslines3 and sb3-contrib, You must make the extractor.
see detail example_extractor.py
(path: drl_utils/algorithms/extractors/)
see detail base_config.yaml
(path: crowd_nav/configs/)
see detail train.py
-
create new folder : model_weight / example
-
download model weight: Link
-
move weight to model_weight
-
test by under code
test.py --model_path example/Last.pt
[1] CrowdNav
[2] NavRep
[3] CrowdNav_DSRNN
[4] Pas_CrowdNav