GithubHelp home page GithubHelp logo

rl-nbv's Introduction

RL-NBV

This repository hosts the implementation of RL-NBV which is a deep reinforcement learning based Next-Best-View method for unknown object reconstruction.

Training Data

The training data contains the complete point cloud of the model and partial point clouds captured in candidate views.

1.The complete point cloud is generated using the tool in the ./tools/sample/ directory.

./tools/sample/run.sh

2.Partial point clouds are generated using the tool in the ./tools/render/ directory

blender -b -P generate_render_exr.py
python generate_render_pcd.py --data_path [data path]\
                              --output_path [output path]\

3.We provide two testing datasets, complex shaped object dataset and mechanical components dataset in the ./data directory.

Train

./run_train.sh

Test

1. RL-NBV

# set test_rlnbv to 1
./run_benchmark.sh

2. PC-NBV

To validate PC-NBV on the same test datasets, we modified the original PC-NBV code. The modified code is available at the repository. The commands to run the test is as follows:

python benchmark_pcnbv.py

3. Area Factor / Proximity Count

The original implementation required importing models into Gazebo for simulation. To improve the efficiency of validation, we used ROS to publish pre-generated partial point clouds, thereby avoiding the use of Gazebo. The modified code is available at the repository. Validation requires running the following commands in different terminals:

# Terminal 1:
roslaunch flying_gazebo_stereo_cam rviz.launch
# Terminal 2:
roslaunch flying_gazebo_stereo_cam view_space.launch
# Terminal 3:
roslaunch ig_active_reconstruction_octomap octomap_world_representation.launch
# Terminal 4:
roslaunch ig_active_reconstruction_ros benchmark_view_planner.launch
# Terminal 5: use python 2.x
python ig_proxy.py
# Terminal 6: set test_information_gain to 1
./run_benchmark.sh

Then, press 'g' in Terminal 4 to start the validation process. The models in the preset test dataset will be tested sequentially, with the following results:

The nodes and topics of ROS are as follows:

Acknowledgment

This work was inspired by the following project:

PC-NBV

rpg_ig_active_reconstruction

PointNet++ implementation

gym

stable-baselines3

rl-nbv's People

Contributors

mingfenghill avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.