June 22, 2026

Event Cameras and ROS2: DVS Drivers and SNN Pipelines

Event cameras and spiking neural networks share the same data shape - asynchronous, sparse, timestamped. Here's the existing ROS2 driver landscape and how to wire one into an SNN.

An event camera - also called a dynamic vision sensor (DVS) or neuromorphic camera - doesn't capture frames. Each pixel operates independently and reports a brightness change the instant it crosses a threshold, producing a stream of events: timestamp, x, y, and polarity (the direction of the change). No change, no event, no power spent. That makes event cameras a natural sensor for spiking neural networks, which are themselves built around sparse, asynchronous activity rather than dense per-frame computation.

The existing ROS2 driver landscape

ProjectHardwareROS version
rpg_dvs_ros (UZH-RPG)DVS / DAVIS, via libcaerROS1
ros-event-camera (libcaer_driver)Inivation DAVIS, DVXplorerROS2
Prophesee MetaVision SDKProphesee event sensorsROS2 (official, since 2025)

The ros-event-camera GitHub organization is currently the most complete ROS2-native option: libcaer_driver handles the camera itself, event_camera_msgs defines the wire format, event_camera_codecs decodes it in C++, and event_camera_py exposes decoded events as structured numpy arrays via pybind11 - the same layout Prophesee's own MetaVision SDK uses, which keeps code portable across vendors. There's also event_camera_renderer for visualizing time slices as images in rqt, and frequency_cam for visualizing periodic light signals.

Why this pairs naturally with spiking neural networks

A standard camera-and-CNN pipeline has to convert continuous frames into something a network can process, discarding most of the redundant unchanged pixels. An event camera already does that filtering in hardware. Feed its event stream into a spiking neural network and you've removed a layer of waste on both ends: the sensor only reports what changed, and the network only fires neurons in response to that change.

This isn't theoretical - NeuroCUDA's pre-trained CNN model on the NMNIST dataset, an event-camera-recorded version of MNIST, reaches 99.88% accuracy, the highest of any of the six models on the NeuroCUDA ROS2 model list.

Wiring an event camera into NeuroCUDA's ROS2 node

snn_inference_node doesn't require a standard camera topic - it accepts an event-camera topic in place of one, since the underlying spiking network is already built to consume sparse, timestamped input rather than dense frames:

ros2 launch neurocuda_ros2 infer.launch.py model:=cnn_nmnist input_topic:=/event_camera/events device:=cuda

The node publishes the same typed messages regardless of input source - SnnDetection for predictions, SnnSpikeEvent for per-layer spike statistics - so downstream nodes don't need to know whether the input came from a standard camera or a DVS.

What's still missing

There's no single ROS2 package today that bundles an event-camera driver, an event-to-spike encoder, and a trained SNN inference node end to end - you currently combine ros-event-camera (or Prophesee's driver) for the sensor with a separate inference package like neurocuda_ros2 for the model. That's a reasonable division of labor - drivers and models are maintained by different teams for good reason - but it does mean wiring the topic names together yourself rather than getting a single launch file that does both.

Where this fits

For the full node, message, and Docker breakdown of NeuroCUDA's ROS2 package, see the deployment walkthrough. For how this compares to other SNN-and-robotics work, see ROS2 and Spiking Neural Networks: What Exists, What Doesn't. New to ROS2 itself? Start with What Is ROS2?

Frequently asked questions

What is an event camera? A sensor where each pixel reports brightness changes asynchronously, producing a sparse stream of timestamped events instead of full frames.

Is there a ROS2 driver for event cameras? Yes - ros-event-camera's libcaer_driver for Inivation hardware, and Prophesee's official MetaVision ROS2 driver.

Can event data feed directly into a spiking neural network? Yes - it's a natural pairing, and NeuroCUDA's NMNIST model (99.88% accuracy) is trained specifically on event-camera data.