June 22, 2026
ROS2 and Spiking Neural Networks: What Exists, What Doesn't
Search "ROS2 SNN" and almost everything you find predates ROS2, is tied to one robot, or never shipped as an installable package. Here's the actual landscape.
Spiking neural networks (SNNs) and ROS2 sound like they should already be a solved combination - both are well over a decade old, both have large research communities, and neuromorphic hardware like Loihi 2 has existed since 2021. In practice, the overlap is thin. Most of what surfaces under "ROS2 SNN" is either ROS1 work that predates the current standard, or a single-paper demo never meant for reuse outside its own robot.
What's actually out there
| Project | Stack | Status |
|---|---|---|
| Gridbot | ROS1, Gazebo simulator | Research demo, SNN navigation, neuron/synapse/dendrite nodes |
| Spiking oculomotor head control | ROS1 Kinetic, Python 2, Intel Loihi + NxSDK | Published 2022, tied to one biomimetic robotic head |
| ROS-MUSIC toolchain | ROS1 + MUSIC neural simulator interface | Bridges robot simulators and neuroscience tools, not a deployment package |
| SpikingJelly / snnTorch / NengoDL | Pure PyTorch | General-purpose SNN training and conversion, zero ROS integration |
| S2Act, SNN4Agents | Single robot, single paper | Academic demonstrations, not installable packages |
The pattern across nearly all of it: these are research artifacts built to support one paper's results, not maintained software meant for someone else's robot. None of them are pip install-able, and none target ROS2's current node/topic/message conventions natively.
Why the gap exists
SNN tooling and robotics middleware grew up in separate communities with separate priorities. SNN researchers optimize for biological plausibility and training algorithms, evaluated against MNIST, CIFAR, or neuromorphic benchmark datasets - not against a ROS2 launch file. Robotics engineers optimize for reliability and reuse across many robots, and historically had no reason to learn spiking-neuron simulation just to try one. The result is that picking up SNN-on-robot work has meant either learning spike-based modeling from scratch, or forking someone else's single-robot research code and rewiring it - neither a repeatable workflow.
What changed: compiling instead of training from scratch
The faster path isn't training a new SNN from zero - it's converting a model you've already trained in PyTorch. ANN-to-SNN conversion tools have matured enough that this is now a reliable pipeline rather than a research curiosity, and NeuroCUDA packages that conversion as a one-line compiler call, with results validated against Intel's published Loihi 2 neuron equations to zero spike deviations across 256,000 comparisons.
The missing piece was wiring that compiler into ROS2's actual conventions - nodes, topics, typed messages, a launch file - rather than leaving it as a standalone script. neurocuda_ros2 does exactly that:
pip install neurocuda ros2 launch neurocuda_ros2 infer.launch.py model:=vgg5_cifar10 device:=cuda
It exposes three nodes (snn_inference_node, snn_control_node, spike_viz), three typed messages (SnnDetection, SnnSpikeEvent, SnnStatus), and four backend targets (GPU, CPU, Loihi 2 simulator, FPGA) through one launch argument. The full breakdown of nodes, messages, and the Docker image is on the deployment walkthrough and the architecture page.
How this differs from the research projects above
- Gridbot and the oculomotor head hand-build SNN simulation inside ROS1 nodes. NeuroCUDA ROS2 wraps an already-compiled model - the spiking-neuron math isn't reimplemented per robot.
- ROS-MUSIC bridges to an external neural simulator. NeuroCUDA ROS2 runs inference directly inside the ROS2 node, no separate simulator process.
- SpikingJelly / snnTorch have no ROS integration at all - you'd still need to write the node, message types, and launch file yourself.
What's still unverified
Honestly: neurocuda_ros2 builds, runs in isolation, and produces correct output against recorded input, but hasn't yet been validated against a live ROS2 graph on physical robot hardware, and some nodes currently publish String in places where typed messages are defined but not fully wired. That's the explicit next milestone, not a hidden gap - see the deployment post for the full done/not-yet breakdown.
Frequently asked questions
Is there a spiking neural network package for ROS2? Most prior SNN-and-robotics work runs on ROS1 or is a single-paper demo. NeuroCUDA's neurocuda_ros2 is a pip-installable ROS2-native package.
What is Gridbot? A ROS1 research robot using a distributed SNN for navigation in the Gazebo simulator, with separate node types for neurons, synapses, and dendrites.
Can I run an SNN on Loihi 2 through ROS2? Yes - NeuroCUDA's Loihi 2 simulator target, validated to zero spike deviations across 256,000 comparisons against Intel's published equations, is exposed as a launch argument in neurocuda_ros2.