Giter Club home page Giter Club logo

visensor_simulator's Introduction

VI-Sensor Simulator

The simulation of the VI-Sensor. This is a alpha version. No Guarantees.

This work is described in the letter "Aerial Single-View Depth Completion with Image-Guided Uncertainty Estimation", by Lucas Teixeira, Martin R. Oswald, Marc Pollefeys, Margarita Chli, published in the IEEE Robotics and Automation Letters (RA-L) IEEE link.

Video:

Mesh

Citations:

If you use this code for research, please cite the following publication:

@article{Teixeira:etal:RAL2020,
    title   = {{Aerial Single-View Depth Completion with Image-Guided Uncertainty Estimation}},
    author  = {Lucas Teixeira and Martin R. Oswald and Marc Pollefeys and Margarita Chli},
    journal = {{IEEE} Robotics and Automation Letters ({RA-L})},
    doi     = {10.1109/LRA.2020.2967296},
    year    = {2020}
}

License

???-- there is copyright code from other libraries. Mostly commented in the source code.

Installation

  $ mkdir -p ~/catkin_ws/src
  $ cd ~/catkin_ws  
  $ catkin init  # initialize your catkin workspace
  $ catkin config --cmake-args -DCMAKE_BUILD_TYPE=Release
  • Get the simulator and dependencies
  $ cd ~/catkin_ws/src
  $ sudo apt-get install liblapacke-dev python-wstool python-catkin-tools protobuf-compiler libgoogle-glog-dev libopenexr-dev libopenblas-dev
  $ sudo apt-get install ros-kinetic-joy ros-kinetic-octomap-ros (or ros-indigo-joy ros-indigo-octomap-ros)
  $ git clone [email protected]:catkin/catkin_simple
  $ git clone [email protected]:ethz-asl/rotors_simulator
  $ git clone [email protected]:ethz-asl/mav_comm
  $ git clone [email protected]:ethz-asl/eigen_catkin
  $ git clone [email protected]:ethz-asl/glog_catkin
  $ git clone [email protected]:ethz-asl/mav_control_rw
  $ pip install OpenEXR
  
  $ git clone [email protected]:VIS4ROB-lab/visensor_simulator.git
  $ git checkout devel

  • Build the workspace
  $ catkin build visensor_simulator

Step-by-step

  1. Create a project - this is a folder with any name. Configure the cameras and the waypoints In the folder resources there is a example "project_test.tar"

  2. starts gazebo

  $ roslaunch visensor_simulator uav_vi_blender.launch
  1. run the back_end:
  $ roslaunch visensor_simulator ros_backend.launch project_folder:="/home/lucas/data/test/project_testA"
  1. open your scene on blender, select the camera, file->import->VISensor Simulator Project(*json), choose the file visim_project.json on your project.

  2. Render. Quick render is faster, but it is less realistic.

  3. run the bagcreator(namespace is optional):

  $ rosrun visensor_simulator visensor_sim_bagcreator.py --output_bag your_output.bag --project_folder "/home/lucas/data/test/project_testA" --namespace "firefly"

Roadmap

  • write a camera path exporter compatible with our waypoint planner, better if we introduce this on our dataset format
  • change from firefly to neo11
  • develop a software to build a simplified version of the world to allow collision on the simulation. BVH and Octomap are options
  • better error msg on the bagcreator when it is not possible to create the bagfile
  • expose the simple_planner waypoint tolerance as ros parameters
  • write my owm spawn with noise and vi_sensor pose as parameters
  • add imu name on the json file
  • autoselect a camera from the json
  • add option to disable the simple planner
  • detect incomplete render sequence and jump to the latest one (support in case of shutdown)
  • make everything relative to the project file instead of the project folder
  • add test for topic names on the bagcreator

visensor_simulator's People

Contributors

hitimo avatar weblucas 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.