Skip to content

ubi-coro/rpg_esim

 
 

Repository files navigation

ESIM: an Open Event Camera Simulator

ESIM: an Open Event Camera Simulator

This is the code for the 2018 CoRL paper ESIM: an Open Event Camera Simulator by Henri Rebecq, Daniel Gehrig and Davide Scaramuzza:

@Article{Rebecq18corl,
  author        = {Henri Rebecq and Daniel Gehrig and Davide Scaramuzza},
  title         = {{ESIM}: an Open Event Camera Simulator},
  journal       = {Conf. on Robotics Learning (CoRL)},
  year          = 2018,
  month         = oct
}

Note

If you use any of this code, please cite this publication.

Python Bindings

Python bindings for the event camera simulator can be found here. We now also support GPU support for fully parallel event generation!

Features

  • Accurate event simulation, guaranteed by the tight integration between the rendering engine and the event simulator
  • Inertial Measurement Unit (IMU) simulation
  • Support for multi-camera systems
  • Ground truth camera poses, IMU biases, angular/linear velocities, depth maps, and optic flow maps
  • Support for camera distortion (only planar and panoramic renderers)
  • Different C+/C- contrast thresholds
  • Basic noise simulation for event cameras (based on additive Gaussian noise on the contrast threshold)
  • Motion blur simulation
  • Publish to ROS and/or save data to rosbag

Getting Started

Tutorials

Advanced

Available Rendering Engines

Below is a table summarizing the different rendering engines available to date, with their respective properties.

Dimension IMU Moving Objects Camera Distortion Simulation speed
MultiObjects2D 2D No Yes No ▓▓▓░░
PanoramicRenderer 2D (rotation only) Yes No Yes ▓▓▓▓░
PlanarRenderer 2.5D (planar) Yes No Yes ▓▓▓▓░
OpenGLRenderer 3D Yes Yes No ▓▓▓▓▓
UnrealCVRenderer 3D Yes No No ▓░░░░

Languages

  • C 48.9%
  • C++ 48.0%
  • CMake 1.5%
  • Other 1.6%