Home

Awesome

Event-based RGBD ROS Wrapper

If you reuse parts of this work, please cite the paper:

Seyed Ehsan Marjani Bajestani and Giovanni Beltrame. "Event-based RGB sensing with structured light." Proceedings of the IEEE/CVF Winter Conference on Applications of Computer Vision. 2023.

BibTex:

@InProceedings{Bajestani_2023_WACV,
 author = {Bajestani, Seyed Ehsan Marjani and Beltrame, Giovanni},
 title = {Event-Based RGB Sensing With Structured Light},
 booktitle = {Proceedings of the IEEE/CVF Winter Conference on Applications of Computer Vision (WACV)},
 month = {January},
 year = {2023},
 pages = {5458-5467},
 organization={IEEE},
 url={https://openaccess.thecvf.com/content/WACV2023/html/Bajestani_Event-Based_RGB_Sensing_With_Structured_Light_WACV_2023_paper.html}
 }

This metapackage is similar to Prophesee ROS wrapper. However, it is able to control the camera setting online and publish a stream of color-stamped events in addition to RGB frames on ROS topics. The GUI is to calibrate the camera with a Symmetric Circles Grid LED Pattern.

The following packages and nodes are provided:

Supported cameras:

Requirements

Installation

First of all, retrieve and compile OpenEB.

Then, compile the wrapper code:

Getting Started

Publishing data from a live camera-projector and listening them

The DLP projector should be on and projecting patterns in three light colors of red, green, and blue. The default exposure (and period) time is 235 us for red and green and 239 us for blue.

To run all nodes alongside the GUI:

      roslaunch event_based_rgbd_ros_driver camera-projector.launch

Instead of running all packages alongside GUI, it is possible to publish data from camera-projector to ROS topics:

      roslaunch event_based_rgbd_ros_driver publisher.launch

The following topics will be published:

To listen the publisher node, generate frames, and publishing them on ROS topics:

      roslaunch event_based_rgbd_ros_driver frame_generator.launch

To listen the frame_generator node and visualize generated frames:

      roslaunch event_based_rgbd_ros_driver viewer.launch

Recording data from a live camera-projector to rosbag

To record data from live camera to rosbag:

      roslaunch event_based_rgbd_ros_driver publisher.launch
      rosbag record -a

The graph node, GUI window, and an RGB frame captured by a monochrome event-based camera are shown below. <img src="docs/node_graph.png" width="640" height="625" />

<img src="docs/ros_gui.png" width="640" height="435" /> <img src="docs/pinwheel.png" width="640" height="582" />