2022-07-21 12:48:13 +02:00
# Closed-Loop Next-Best-View Planning for Target-Driven Grasping
2021-12-22 12:30:05 +01:00
2022-07-22 08:38:04 +02:00
This repository contains the implementation of our IROS 2022 submission, _"Closed-Loop Next-Best-View Planning for Target-Driven Grasping"_ . [[Paper ](http://arxiv.org/abs/2207.10543 )][[Video ](https://youtu.be/67W_VbSsAMQ )]
2022-03-01 14:45:06 +01:00
2021-12-22 12:30:05 +01:00
## Setup
2022-07-21 12:48:13 +02:00
The experiments were conducted with a Franka Emika Panda arm and a Realsense D435 attached to the wrist of the robot. The code was developed and tested on Ubuntu 20.04 with ROS Noetic. It depends on the following external packages:
2021-12-22 12:30:05 +01:00
2022-02-18 16:01:37 +01:00
- [MoveIt ](https://github.com/ros-planning/panda_moveit_config )
- [robot_helpers ](https://github.com/mbreyer/robot_helpers )
2021-12-22 12:30:05 +01:00
- [TRAC-IK ](http://wiki.ros.org/trac_ik )
2022-02-18 16:01:37 +01:00
- [VGN ](https://github.com/ethz-asl/vgn/tree/devel )
- franka_ros and realsense2_camera (only required for hardware experiments)
2021-12-22 12:30:05 +01:00
Additional Python dependencies can be installed with
```
pip install -r requirements.txt
```
2022-07-21 12:48:13 +02:00
Run `catkin build active_grasp` to build the package.
2022-02-18 16:01:37 +01:00
2022-12-15 13:07:18 +01:00
Finally, download the [assets folder ](https://drive.google.com/file/d/1xJF9Cd82ybCH3nCdXtQRktTr4swDcNFD/view ) and extract it inside the repository.
2021-12-22 12:30:05 +01:00
## Experiments
Start a roscore.
```
roscore
```
2022-01-16 14:26:48 +01:00
To run simulation experiments.
2021-12-22 12:30:05 +01:00
```
2022-01-16 14:26:48 +01:00
roslaunch active_grasp env.launch sim:=true
2021-12-22 12:30:05 +01:00
python3 scripts/run.py nbv
```
2022-07-21 12:48:13 +02:00
To run real-world experiments.
2021-12-22 12:30:05 +01:00
```
2022-01-16 14:26:48 +01:00
roslaunch active_grasp hw.launch
roslaunch active_grasp env.launch sim:=false
2021-12-22 12:30:05 +01:00
python3 scripts/run.py nbv --wait-for-input
```