All Projects → danfeiX → RPN

danfeiX / RPN

Licence: MIT license
Code Repository for Regression Planning Networks

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to RPN

coffee
Infrastructure for PyBullet research
Stars: ✭ 17 (-70.69%)
Mutual labels:  pybullet
RigidBodySim.jl
Simulation and visualization of articulated rigid body systems in Julia
Stars: ✭ 63 (+8.62%)
Mutual labels:  robotics-simulation
Robotics-Warehouse
A warehouse environment for robotics simulation in Unity.
Stars: ✭ 17 (-70.69%)
Mutual labels:  robotics-simulation
ign-rendering
C++ library designed to provide an abstraction for different rendering engines. It offers unified APIs for creating 3D graphics applications.
Stars: ✭ 34 (-41.38%)
Mutual labels:  robotics-simulation
ign-sensors
Provides numerous sensor models designed to generate realistic data from simulation environments.
Stars: ✭ 30 (-48.28%)
Mutual labels:  robotics-simulation
Robotics-Object-Pose-Estimation
A complete end-to-end demonstration in which we collect training data in Unity and use that data to train a deep neural network to predict the pose of a cube. This model is then deployed in a simulated robotic pick-and-place task.
Stars: ✭ 153 (+163.79%)
Mutual labels:  robotics-simulation
compas fab
Robotic fabrication package for the COMPAS Framework.
Stars: ✭ 75 (+29.31%)
Mutual labels:  pybullet
SwarmSim
Multi-robot control simulation environmrnt build on top on Mobile Robotics Simulation Toolbox, implemented 1)some algorithm for formation control 2)mapping, localization and SLAM based on Kalman filter..
Stars: ✭ 44 (-24.14%)
Mutual labels:  robotics-simulation
URDF-Importer
URDF importer
Stars: ✭ 135 (+132.76%)
Mutual labels:  robotics-simulation
ign-math
General purpose math library for robot applications.
Stars: ✭ 35 (-39.66%)
Mutual labels:  robotics-simulation
OpenMAS
OpenMAS is an open source multi-agent simulator based in Matlab for the simulation of decentralized intelligent systems defined by arbitrary behaviours and dynamics.
Stars: ✭ 80 (+37.93%)
Mutual labels:  robotics-simulation
vnla
Code accompanying the CVPR 2019 paper: https://arxiv.org/abs/1812.04155
Stars: ✭ 60 (+3.45%)
Mutual labels:  robotics-simulation
gazebo tutorials
Tutorials for gazebo
Stars: ✭ 78 (+34.48%)
Mutual labels:  robotics-simulation
Bullet3
Bullet Physics SDK: real-time collision detection and multi-physics simulation for VR, games, visual effects, robotics, machine learning etc.
Stars: ✭ 8,714 (+14924.14%)
Mutual labels:  pybullet
ROS-TCP-Connector
No description or website provided.
Stars: ✭ 123 (+112.07%)
Mutual labels:  robotics-simulation
gym-line-follower
Line follower robot simulator environment for Open AI Gym.
Stars: ✭ 46 (-20.69%)
Mutual labels:  pybullet
mujoco-ur5-model
Mujoco Model for UR5-Ridgeback-Robotiq Robot
Stars: ✭ 22 (-62.07%)
Mutual labels:  robotics-simulation
chalet
Cornell House Agent Learning Environment
Stars: ✭ 42 (-27.59%)
Mutual labels:  robotics-simulation
RAWSim-O
A simulation framework for Robotic Mobile Fulfillment Systems
Stars: ✭ 82 (+41.38%)
Mutual labels:  robotics-simulation
ign-physics
Abstract physics interface designed to support simulation and rapid development of robot applications.
Stars: ✭ 40 (-31.03%)
Mutual labels:  robotics-simulation

Regression Planning Networks

preview

A reference implementation of the Regression Planning Networks.

This repo also includes the simulated environments used in the paper: GridWorld and Kitchen3D. GridWorld is built on gym-minigrid. Kitchen3D is simulated with PyBullet. Most of the PyBullet utilities are adapted from Caelan Garrett's ss-pybullet. The Appendix of the original paper is also included here for reference.

To cite the code, use bibtex:

@inproceedings{xu2019rpn,
  title={Regression Planning Networks},
  author={Xu, Danfei and Martín-Martín, Roberto and Huang, De-An and Zhu, Yuke and Savarese, Silvio and Fei-Fei, Li},
  booktitle={Thirty-third Conference on Neural Information Processing Systems (NeurIPS)},
  year={2019}
 }

preview

Installation and Setup

Requirement: Python >= 3.6

Note: The code DOES NOT work with Python 3.5

$ git clone https://github.com/danfeiX/rpn.git
$ git submodule update --init --recursive
$ pip install -r requirements.txt
$ cd rpn
$ mkdir checkpoints
$ mkdir data

Kitchen3D

Dataset

To reproduce the main experiments, first create a demonstration dataset with three ingredients and two dishes (I=3, D=2).

$ python create_dataset_pb.py --problem pb_cook_meal_3i_2d_3m_iter \
    --dataset data/pb_cook_3i_2d_3m_10_s0.group \
    --num_episodes 10 --num_tasks -1 --seed 0 \
    --teleport --num_chunks 100 --num_workers 10

The entire process takes around 3 hours with 10 works (--num_workers 10) on a machine with i7-7700K CPU @ 4.20GHz. The dataset will be written to data/pb_cook_3i_2d_3m_10_s0.group.

To create a smaller validation set, run:

$ python create_dataset_pb.py --problem pb_cook_meal_3i_2d_3m_iter \
    --dataset data/pb_cook_3i_2d_3m_1_s1.group \
    --num_episodes 1 --num_tasks -1 --seed 1 \
    --teleport --num_chunks 10 --num_workers 10

Train

To train our full RPN model, run:

$ python train.py --dataset data/pb_cook_3i_2d_3m_10_s0.group \
    --testset data/pb_cook_3i_2d_3m_1_s1.group \
    --exp rpn \
    --run experiment \
    --batch_size 128 \
    --eval_batch_size 128 \
    --eval_freq 1 --save_freq 1 \
    --num_epoch 10 --config configs/pbv_rpn.json \
    --num_workers 1

Checkpoints will be written to checkpoints/rpn/experiment/ each epoch. Both text and tensorboard event will be written to checkpoints/rpn/experiment/log/.

Evaluation

To evaluate a trained model on the Kitchen3D task with I=6 and D=3, run:

$ python eval_pb.py --restore_path checkpoints/rpn/experiment/ckpt_ep6.pt \
       --problem pb_cook_meal_6i_3d_6m_shuffle \
       --num_eval 1000 --seed 1 \
       --display

Aside: Our naming convention for the cooking tasks is pb_cook_meal_<I>i_<D>d_<M>m_<shuffle/iter>, where <I> is the number of ingredients involved, <D> is the number of dishes to cook, <M> is the maximum number of ingredients that can be placed on a plate (usually set to be equal to <I>), and <shuffle/iter> is whether to shuffle the list of all possible tasks under the current task specification.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].