README.md 1.89 KB
Newer Older
Nada Beili's avatar
Nada Beili committed
1
2
3
4
# next_best_view_rl_benchmark

This project is an extension to the work presented in this [repository](https://gitlab.uni-koblenz.de/ckorbach/next_best_view_rl). The project aims to find the sequence of next-best-views of occluded and self-occluded objects using reinforcement learning algorithms: PPO, SAC, TD3, and A2C. We trained each algorithm separately on three different datasets, extracted from [TEOS dataset](https://data.nvision.eecs.yorku.ca/TEOS/), for five runs using random seed. We compared the performance of the algorithms during training and evaluation. We could find that SAC outperforms all the other algorithms.

Nada Beili's avatar
Nada Beili committed
5
6
# Setup

7
1. Clone the repository: `git clone ...`
Nada Beili's avatar
Nada Beili committed
8
9
2. in third_party/ clone `git clone git@github.com:ckorbach/kinova-ros.git`
3. in third_party/ clone `git clone -b devel git@github.com:ckorbach/zed-ros-wrapper.git`
10
11
12
13
14
15
16
17
18
19
4. in 'third_party/zed-ros-wrapper' verify branch `devel`: `git checkout devel`
5. `sudo apt-get update && sudo apt-get install cmake libopenmpi-dev python3-dev zlib1g-dev libosmesa6-dev libgl1-mesa-glx libglfw3'
6. Create virtual environment: `conda create --name nbv_env python=3.7`
7. Activate virual environment: 'conda activate nbv_env'
8. Download and unpack mjpro150 ([link](https://roboti.us/download.html)) and move the `mjpro150` folder into `~/.mujoco/`
9. Download and copy a license key ([link](https://roboti.us/license.htmlo)) into `~/.mujoco/`
10. Add `LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/USER/.mujoco/mjpro150/bin` to your `.bashrc`
11. Install mujoco from `https://github.com/openai/mujoco-py`
12. Install requirements: `pip install -r requirements.txt`
13. Install setup.py: `pip install -e .`
Nada Beili's avatar
Nada Beili committed
20
21
22
23

# Execution

- modify configs in `config` with hydra framework
24
- to execute the training and evaluation using ppo algorithm as an example:
Nada Beili's avatar
Nada Beili committed
25
26
	- start RL training: `python3 scripts/train.py algorithm=ppo`
	- evaluate RL model: `python3 scripts/evaluate.py algorithm=ppo`
Nada Beili's avatar
Nada Beili committed
27