Coder Social home page Coder Social logo

prgumd / evdodgenet Goto Github PK

View Code? Open in Web Editor NEW
102.0 12.0 29.0 7.72 MB

EVDodgeNet: Deep Dynamic Obstacle Dodging with event cameras

Home Page: http://prg.cs.umd.edu/EVDodgeNet

License: BSD 3-Clause "New" or "Revised" License

CMake 1.05% Python 70.46% Shell 0.12% C++ 28.37%
quadrotor autonomous unmanned-aerial-vehicle robotics robot drone evdodge gapflyt detection tracking event-based dvs dvs128 camera nvidia-jetson-tx2 deep-learning neural-network bio-inspired minimalist bee

evdodgenet's Introduction

EVDodgeNet: Deep Dynamic Obstacle Dodging with event cameras

EVDodgeNet by Perception & Robotics Group at the Department of Computer Science, University of Maryland- College Park and Robotics & Perception Group at Department of Informatics, University of Zurich & ETH Zurich.

Code

Please follow our Wiki for dataset download, instructions to run code and create custom dataset. Incase you don't understand something or find issues please create a GitHub issue and we'll resolve it as soon as possible. though we haven't released the hardware setup details, a guide to hardware setup used in our lab can be found here.

Check out our Youtube video which depicts the proposed framework of our bio-inspired perceptual design for quadrotors.

EVDodgeNet: Deep Dynamic Obstacle Dodging with event cameras

Dynamic obstacle avoidance on quadrotors requires low latency. A class of sensors that are particularly suitable for such scenarios are event cameras. In this paper, we present a deep learning based solution for dodging multiple dynamic obstacles on a quadrotor with a single event camera and onboard computation. Our approach uses a series of shallow neural networks for estimating both the ego-motion and the motion of independently moving objects. The networks are trained in simulation and directly transfer to the real world without any fine-tuning or retraining.

We successfully evaluate and demonstrate the proposed approach in many real-world experiments with obstacles of different shapes and sizes, achieving an overall success rate of 70% including objects of unknown shape and a low light testing scenario. To our knowledge, this is the first deep learning based solution to the problem of dynamic obstacle avoidance using event cameras on a quadrotor. Finally, we also extend our work to the pursuit task by merely reversing the control policy, proving that our navigation stack can cater to different scenarios.

Publication:

If you find our work useful please do cite us as follows:

@inproceedings{Sanket2019EVDodgeEA,
  title={EVDodgeNet: Deep Dynamic Obstacle Dodging with event cameras},
  author={Nitin J. Sanket and Chethan M. Parameshwara and Chahat Deep Singh and Ashwin V. Kuruttukulam and Cornelia Fermuller and Davide Scaramuzza and Yiannis Aloimonos},
  year={2019}
}

Maintainers:

What will not be released?

We do not plan on releasing the code for EVSegFlowNet described in the paper, nor the hardware setup tutorial (since Intel Aero quadrotor is not sold anymore) and code for the control policy. Please do not email us asking about any of the aforementioned things.

Acknowledgements

The code for EVHomographyNet is based on the code from Unsupervised Deep Homography.

License:

Copyright (c) 2019 Perception and Robotics Group (PRG)

evdodgenet's People

Contributors

chahatdeep avatar chethanparameshwara avatar nitinjsanket avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

evdodgenet's Issues

question about dataset

I have download your dataset on https://github.com/prgumd/EVDodgeNet/wiki/Access-Data-Set-Using-ROS-Python.
But when I wanted to run your code, I encountered the following problems.
Follow the guide, I run the code about EVDeblurNet, but IOError(can't find DirNames.txt)
Then I found that this file was generate in DataParseUnsrack.py, but print(CurrReadPath + 'events' + os.sep + '*.png') is not in your provided dataset.
I'm not sure whether my idea is correct. I would appreciate your reply.

WIKI

There is something wrong in the dataset you supplied , because there is no downfacing rosbag .what's more, could you tell me the input and output of deblurnet and homography net.I can not understand the wiki instruction.

Segmentation network syntax error

Hello, thanks for your work.

I am trying to use the EVSegNet code you provided. There is a syntax error in the following part of the code:

Parser.add_argument('--WritePath', dest='WritePath', default='/media/nitin/Research/EVDodge/DatasetChethanEvents/DeblurredHomographyDodgeNet',\
Parser.add_argument('--GPUDevice', type=int, default=0, help='What GPU do you want to use? -1 for CPU, Default:0')
help='Path to write images to, Default:WritePath')
.

Specifically, lines 281 and 282 should be switched.

Cannot read model files

I am trying to read pretrained model files but I got error and could not load any of them.

image
This is just an example of one of pretrained models. I tried every one of them.

raise type(e)(node_def, op, message)
tensorflow.python.framework.errors_impl.DataLossError: Unable to open table file EVDodgeNet/code/HomographyNetUnsup/Checkpoints/HomographySUSL1LR1e-4/199model.ckpt.data-00000-of-00001: Data loss: not an sstable (bad magic number): perhaps your file is in a different file format and you need to use a different restore operator?
         [[node save/RestoreV2 (defined at /drone/EVDodgeNet/code/HomographyNetUnsup/RunEVHomographyNet.py:277) ]]

Original stack trace for u'save/RestoreV2':
  File "/drone/EVDodgeNet/code/HomographyNetUnsup/RunEVHomographyNet.py", line 378, in <module>
    main()
  File "/drone/EVDodgeNet/code/HomographyNetUnsup/RunEVHomographyNet.py", line 375, in main
    TestOperation(PatchPH, I1PH, I2PH, PatchSize, ModelPath, ReadPath, WritePath, TrainNames, NumTrainSamples, CropType)
  File "/drone/EVDodgeNet/code/HomographyNetUnsup/RunEVHomographyNet.py", line 277, in TestOperation
    Saver = tf.train.Saver()
  File "/miniconda3/envs/tf14/lib/python2.7/site-packages/tensorflow/python/training/saver.py", line 825, in __init__
    self.build()
  File "/miniconda3/envs/tf14/lib/python2.7/site-packages/tensorflow/python/training/saver.py", line 837, in build
    self._build(self._filename, build_save=True, build_restore=True)
  File "/miniconda3/envs/tf14/lib/python2.7/site-packages/tensorflow/python/training/saver.py", line 875, in _build
    build_restore=build_restore)
  File "/miniconda3/envs/tf14/lib/python2.7/site-packages/tensorflow/python/training/saver.py", line 508, in _build_internal
    restore_sequentially, reshape)
  File "/miniconda3/envs/tf14/lib/python2.7/site-packages/tensorflow/python/training/saver.py", line 328, in _AddRestoreOps
    restore_sequentially)
  File "/miniconda3/envs/tf14/lib/python2.7/site-packages/tensorflow/python/training/saver.py", line 575, in bulk_restore
    return io_ops.restore_v2(filename_tensor, names, slices, dtypes)
  File "/miniconda3/envs/tf14/lib/python2.7/site-packages/tensorflow/python/ops/gen_io_ops.py", line 1696, in restore_v2
    name=name)
  File "/miniconda3/envs/tf14/lib/python2.7/site-packages/tensorflow/python/framework/op_def_library.py", line 788, in _apply_op_helper
    op_def=op_def)
  File "/miniconda3/envs/tf14/lib/python2.7/site-packages/tensorflow/python/util/deprecation.py", line 507, in new_func
    return func(*args, **kwargs)
  File "/miniconda3/envs/tf14/lib/python2.7/site-packages/tensorflow/python/framework/ops.py", line 3616, in create_op
    op_def=op_def)
  File "/miniconda3/envs/tf14/lib/python2.7/site-packages/tensorflow/python/framework/ops.py", line 2005, in __init__
    self._traceback = tf_stack.extract_stack()

Dataset structure for EVSegNet

Hello. While trying to understand the EVSegNet code you provided, I have seen that the RunEVSegNet.py and TrainEVSegNet.py scripts have a function named "SetupAll" where certain files named "DirNames.txt" and "Train.txt" are trying to be read, like the following:

DirNamesPath = ReadPath + os.sep + 'DirNames.txt'
TrainPath = ReadPath + os.sep + 'Train.txt'
DirNames, TrainNames = ReadDirNames(DirNamesPath, TrainPath)

Checking the dataset from https://drive.google.com/open?id=1pJSVXtRlTU4_b-I8oakoZtl1ChcG0OiQ and also checking the dataset structure desciption in https://github.com/prgumd/EVDodgeNet/wiki/Access-Data-Set-Using-ROS-Python, I could not find any file named "DirNames.txt" or "Train.txt". What am I missing here, can you guide me on this?

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.