All Projects → ahq1993 → MPNet

ahq1993 / MPNet

Licence: MIT license
Motion Planning Networks

Programming Languages

c
50402 projects - #5 most used programming language
C++
36643 projects - #6 most used programming language
CMake
9771 projects
python
139335 projects - #7 most used programming language
java
68154 projects - #9 most used programming language
Makefile
30231 projects

Projects that are alternatives of or similar to MPNet

AI-for-Security-Testing
My AI security testing projects
Stars: ✭ 34 (-75.54%)
Mutual labels:  deeplearning
BMW-IntelOpenVINO-Detection-Inference-API
This is a repository for a No-Code object detection inference API using the OpenVINO. It's supported on both Windows and Linux Operating systems.
Stars: ✭ 66 (-52.52%)
Mutual labels:  deeplearning
Forecasting-Solar-Energy
Forecasting Solar Power: Analysis of using a LSTM Neural Network
Stars: ✭ 23 (-83.45%)
Mutual labels:  deeplearning
Yolo-v2-pytorch
YOLO for object detection tasks
Stars: ✭ 327 (+135.25%)
Mutual labels:  deeplearning
BMW-IntelOpenVINO-Segmentation-Inference-API
This is a repository for a semantic segmentation inference API using the OpenVINO toolkit
Stars: ✭ 31 (-77.7%)
Mutual labels:  deeplearning
BehaviorMetrics
Autonomous driving neural network comparison tool
Stars: ✭ 33 (-76.26%)
Mutual labels:  deeplearning
knime-deeplearning
KNIME Deep Learning Integration
Stars: ✭ 19 (-86.33%)
Mutual labels:  deeplearning
OCR
Optical character recognition Using Deep Learning
Stars: ✭ 25 (-82.01%)
Mutual labels:  deeplearning
Active-Shift-TF
Tensorflow implementation for Active Shift Layer(ASL)
Stars: ✭ 22 (-84.17%)
Mutual labels:  deeplearning
yolov5-crowdhuman
Head and Person detection using yolov5. Detection from crowd.
Stars: ✭ 79 (-43.17%)
Mutual labels:  deeplearning
dst
yet another custom data science template via cookiecutter
Stars: ✭ 59 (-57.55%)
Mutual labels:  deeplearning
kaggle
Kaggle solutions
Stars: ✭ 17 (-87.77%)
Mutual labels:  deeplearning
Practical-Deep-Learning-with-PyTorch
Live Training by Packt, with Jeffrey Yau.
Stars: ✭ 17 (-87.77%)
Mutual labels:  deeplearning
Paddle-SEQ
低代码序列数据处理框架,最短两行即可完成训练任务!
Stars: ✭ 13 (-90.65%)
Mutual labels:  deeplearning
SpeechEnhancement
Combining Weighted Multi-resolution STFT Loss and Distance Fusion to Optimize Speech Enhancement Generative Adversarial Networks
Stars: ✭ 49 (-64.75%)
Mutual labels:  deeplearning
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 (+10.07%)
Mutual labels:  motion-planning
Deep-Learning-Models
Deep Learning Models implemented in python.
Stars: ✭ 17 (-87.77%)
Mutual labels:  deeplearning
IterativeLQR.jl
A Julia package for constrained iterative LQR (iLQR)
Stars: ✭ 15 (-89.21%)
Mutual labels:  motion-planning
learning2hash.github.io
Website for "A survey of learning to hash for Computer Vision" https://learning2hash.github.io
Stars: ✭ 14 (-89.93%)
Mutual labels:  deeplearning
Deep Visual Inertial Odometry
Deep Learning for Visual-Inertial Odometry
Stars: ✭ 31 (-77.7%)
Mutual labels:  deeplearning

Motion Planning Networks

Implementation of MPNet: Motion Planning Networks. [arXiv1] [arXiv2]

The code can easily be adapted for Informed Neural Sampling.

Contains

  • Data Generation
    • Any existing classical motion planner can be used to generate datasets. However, we provide following implementations in C++:
  • MPNet algorithm
  • A navie python visualization files

Data Description

  • Simple 2D has 7 blocks each of size 5x5 that are placed randomly.
  • Complex 3D contains 10 blocks with sizes as follow:
    • shape=[[5.0,5.0,10.0],[5.0,10.0,5.0],[5.0,10.0,10.0], [10.0,5.0,5.0],[10.0,5.0,10.0],[10.0,10.0,5.0], [10.0,10.0,10.0],[5.0,5.0,5.0],[10.0,10.0,10.0],[5.0,5.0,5.0]]
  • e0-109 has the training and testing paths in 110 different environments.
    • 0-100 environments and 0-4000 paths/environment are for training.
    • Seen test dataset: 0-100 envs and 4000-4200=200 paths/env.
    • Unseen test dataset: 100-110 envs and 0-2000 paths/env.
  • obs_cloud is the point-cloud of randomly generated 30,000 environments.
    • 0-110 corresponds to the same environments for which path data is provided.
    • You may use full dataset to train encoder network via unsupervised learning.
  • obs.dat contains the center location (x,y) of each obstacle in the environments.
  • obs_perm2.dat contains the order in which the blocks should be placed in preset locations given by obs.dat file to setup environments.
    • For instance, in complex 3D, the permutation 8342567901 indicates obstacle #8 of size 10x10x10 should be placed at the location #0 given by obs.dat.

Generating your own data

  • Define a region of operation, for instance in simple2D, it is 20x20
  • Decide how many obstacles (r) you would like to place in the region. In the case of simple2D, we have r=7 5x5 blocks.
  • Generate random N locations to place r obstacles in the region. In the case of simple2D, we generated N=20.
  • For N locations and r obstacles, apply combinatorics, to generate NCr different environments i.e., in simple 2D NCr= 20C7= 77520
    • The obs_perm2 file contains the combinations, for instance 6432150 indicates to place obstacle#6 at location #0.
  • Once obstacles are placed, randomly generate collision-free samples and use them in pairs as stat-goal to generate paths using any classical planne for the training. For classical planners, we recommend using OMPL implementations.

Requirements

  • Data Generation

    1. Install libbot2

      • Make sure all dependencies of libbot2 (e.g., lcm) are installed.
      • Install libbot2 with the local installation procedure.
      • Run "make" in the data_generation folder where the README file is located.
    2. Use any compiler such as Netbeans to load the precomplie code.

      • data_generation/src/rrts_main.cpp contains the main rrt/prrt code.

      • data_generation/viewer/src/viewer_main.cpp contains the visualization code.

        • Also checkout comments in data_generation/viewer/src/renderers/graph_renderer.cpp
      • Note: main_viewer and rrts_main should run in parallel as:

        • rrts_main sends the path solution as well as the tree to the main_viewer to publish through local network.
        • data is transmitted through LCM network protocol.
  • MPNet

Examples

  1. Assuming paths to obstacles point-cloud are declared, train obstacle-encoder: python MPNET/AE/CAE.py

  2. Assuming paths to demonstration dataset and obstacle-encoder are declared, run mpnet_trainer:

    python MPNET/train.py

  3. Run tests by first loading the trained models:

    python MPNET/neuralplanner.py

References

@inproceedings{qureshi2019motion,
  title={Motion planning networks},
  author={Qureshi, Ahmed H and Simeonov, Anthony and Bency, Mayur J and Yip, Michael C},
  booktitle={2019 International Conference on Robotics and Automation (ICRA)},
  pages={2118--2124},
  year={2019},
  organization={IEEE}
}
@inproceedings{qureshi2018deeply,
  title={Deeply Informed Neural Sampling for Robot Motion Planning},
  author={Qureshi, Ahmed H and Yip, Michael C},
  booktitle={2018 IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS)},
  pages={6582--6588},
  year={2018},
  organization={IEEE}
}
@article{qureshi2019motion,
  title={Motion Planning Networks: Bridging the Gap Between Learning-based and Classical Motion Planners},
  author={Qureshi, Ahmed H and Miao, Yinglong and Simeonov, Anthony and Yip, Michael C},
  journal={arXiv preprint arXiv:1907.06013},
  year={2019}
}
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].