Robotics: Science and Systems 2020
Corvalis, Oregon, USA, July 12-16, 2020

Towards neuromorphic control: A spiking neuralnetwork based PID controller for UAV
Rasmus Karnøe Stagsted∗ , Antonio Vitale † , Jonas Binz † , Alpha Renner † , Leon Bonde Larsen ∗ , Yulia Sandamirskaya †∗ Mærsk Mc-Kinney Møller Instituttet, University of Southern Denmark (SDU), Odense, Denmark.

Email: rk@mmmi.sdu.dk, lelar@mmmi.sdu.dk† Institute of Neuroinformatics (INI), University of Zurich and ETH Zurich, Switzerland.

Email: antnio.vitale@outlook.de, jbinz@student.ethz.ch, alren@ini.uzh.ch, yulia.sandamirskaya@intel.com

Abstract—In this work, we present a spiking neural network(SNN) based PID controller on a neuromorphic chip. On-chip
SNNs are currently being explored in low-power AI applications.
Due to potentially ultra-low power consumption, low latency,
and high processing speed, on-chip SNNs are a promising toolfor control of power-constrained platforms, such as Unmanned
Aerial Vehicles (UAV). To obtain highly efficient and fast end-toend neuromorphic controllers, the SNN-based AI architectures
must be seamlessly integrated with motor control. Towards thisgoal, we present here the first implementation of a fully neuromorphic PID controller. We interfaced Intel’s neuromorphic
research chip Loihi to a UAV, constrained to a single degreeof freedom. We developed an SNN control architecture using
populations of spiking neurons, in which each spike carries
information about the measured, control, or error value, definedby the identity of the spiking neuron. Using this sparse code,
we realize a precise PID controller. The P, I, and D gains of thecontroller are implemented as synaptic weights that can adapt
according to an on-chip plasticity rule. In future work, theseplastic synapses can be used to tune and adapt the controller
autonomously.

I. I NTRODUCTION
Artificial neural networks have transformed the field ofcomputer vision and are increasingly used in robotics tosupport, e.g. perception [1]–[4], simultaneous localisation andmapping [5]–[8], planning [9], [10], and end-to-end control [11]–[13]. To achieve good performance, large neuralnetworks are required that need to be deployed on specialpurpose hardware to meet the latency and power-consumption
constraints of autonomous robots. Neuromorphic hardware
offers a particularly favorable trade-off in latency and power,
due to its parallel, asynchronous, event-based (spiking) way
to compute [14]–[17]. In contrast to other neural network
accelerators, neuromorphic hardware features plasticity thatenables online on-chip learning in real-time, after deploymentof the network [14], [18].
Thus, neuromorphic hardware offers a computing substrate
for neuronal robot control architectures with adaptation and aclose link to advanced perception – e.g., object recognition,
segmentation, or shape estimation. In order to enable theseamless integration of different components of the overallarchitecture, we develop algorithms and computing primitives
to solve different robotic tasks using SNNs. Such a pervasively
neuronal approach is required to reduce computing bottlenecks

on the interface between neuromorphic and conventional,
sequential computing hardware. Conventional computing canbe reduced to the bare minimum to support configuration,
monitoring, and documentation during system development
and can become obsolete at deployment.
The SNNs that we develop are complimentary to the state of
the art deep neural networks (DNNs) and alleviate a number ofchallenges of their use in robotics: (1) training a DNN relies
on a large amount of data that captures the task; since thecharacteristics of a specific robot do not translate perfectly
well to another robot and are subject to fluctuations and drift,
online learning and adaptation are required to enable precise
neuronal control; (2) Robot control has stricter constraints
on latency, power budget, and size of computing hardware
than typical image processing applications, thus simple networks are preferable; (3) The relatively low (compared tohigh-resolution images) dimensionality of input and output
space also lead to preference for smaller NN architectures inmotor control applications. Despite the expanding research inapplications of deep learning in motor control, most motor
controllers deployed today use computationally much lighter
conventional algorithms. Simple PID controllers are the mostbasic and widely used controllers for many control tasks [19].
In this work, we demonstrate how a nested PID controller
can be realized in a spiking neuronal network (SNN) on-chip,achieving comparable performance to a conventional digital
controller realized with floating-point arithmetic. Recent workon motor control in an SNN on-chip [20] implemented aneural network that learns to generate a corrective signal if
the controller starts to fail, e.g., due to wear. In our work,
the controller itself is realized as an SNN, making the wholesystem neuromorphic and subject to optimal performance andpower consumption trade-off on neuromorphic hardware.
We implement our controller on Intel’s neuromorphic research chip Loihi [14]. We demonstrate the controller performance on two robotic systems – a bi-motor UAV and awheeled vehicle – in a closed-loop hardware setup with theneuromorphic chip and robots. The on-chip plasticity createsa possibility for autonomous tuning and adaptation of thecontroller [21]–[23].

II. M ETHODS
A. Hardware & software components
1) Neuromorphic hardware (Loihi): In this project, Intel’sneuromorphic research chip Loihi [14] realized in the integrated device Kapoho Bay, was used to implement the SNN.
It contains two Loihi chips, each integrating 128 neuron-cores,
and three x86 cores. The x86 cores are used for monitoringand spike I/O. Each neuron-core simulates 1024 neuronalcompartments and 4096 input and output “axons” (ports).
We use 27ms time-steps in our experiments to synchronize
neuronal processing with the overall handling of I/O between
different devices (timestep on Loihi can be as fast as 10µs).
The Kapoho Bay has a USB interface, which gives easy accessto the system via the NxSDK API provided by Intel.
2) Pushbot: The Pushbot [24] is a small differential drive
robot with two propulsion belts (Fig. 1). The Pushbot features:an IMU to measure the angular velocity, one DC motor foreach belt, and a WiFi module to communicate with a hostcomputer, interfaced to the Kapoho Bay.
3) Constrained UAV: The UAV setup consists of a twomotor UAV mounted on a test bench, constraining the UAV to
one degree of freedom. The torque around the horizontal axis
is generated by two BLDC motors, mounted 23cm away fromthe rotational axis, with propellers facing upwards (Fig. 1). A
mapping between motor velocity and torque was derived fromthe black box method, which enables direct torque controlof the axis. We mounted a DAVIS240C sensor [25] on the
UAV and used its integrated Inertial Measurement Unit (IMU)
to obtain estimates of the UAV’s pose and angular velocity.
The event-based camera itself was not used here, but can be
deployed for optic-flow based state estimation [26]. The IMU
and Electronic Speed Controllers (ESCs) were interfaced usinga Raspberri Pi communicating with the Kapoho Bay’s hostcomputer over the network.

Fig. 1: Top: A 3D model of the physical test bench for UAV
control. Bottom: The Pushbot robot and the complete UAV
setup.

4) Interfaces, system overview: For the interface to the
Kapoho Bay, we use an Intel UP2 board. The high-levelsoftware components communicate using a light-weight peerto-peer communication library YARP [27]. This enables amodular system design, in which we can easily swap a CPUbased PID controller with our Loihi implementation and the
1-DoF UAV with the Pushbot (Fig. 2). The injection of input
spikes, extraction of SNN output, and configuration of the
SNN are implemented using NxSDK.

Fig. 2: Overview of the software-hardware setup: the IMU andthe Electronic Speed Controllers (ESC) of the UAV or the IMU
and the DC-motor encoders of the Pushbot communicate withthe host computer (UP2 board) over YARP. Communication
with the Loihi chip is managed through YARP and a Cprogram running on the embedded x86 processor. The Loihibased PID can be exchanged with a conventional CPU-based
PID for comparison experiments.
B. Spiking Neural Network (SNN)1) Neuronal representations: Our SNN consists of several
groups of neurons – neuronal populations – arranged, conceptually, in arrays of different dimensionality. We use 1D populations of neurons to represent scalar values. E.g., a measured
variable a ∈ [−lim, lim] can be represented by a populationof N neurons. Typically in population coding known fromcomputational neuroscience, each neuron ni , i ∈ [0, N − 1]is responsive to a range of the a values with a bell-shaped
tuning curve: strongest response to a certain value and weaker
response to nearby values. Thus, for any measured value a,several neurons in the population are active with different
firing rates. In the network developed here, we use one-hot
encoding: only one neuron is active at any time, representing
a range of values, the whole population linearly mapping theinterval [−lim, lim] to [0, N − 1]. The deterministic behaviorof artificial neurons on Loihi allows us to use this more
efficient code.
In our architecture, we also use 2D arrays of N ×N neurons
to realize mathematical operations. These 2D arrays connect
two input 1D arrays and one 1D output. The operations
arrays can have different connectivity to their output array
to realize different computing functions. For instance, theaddition operation adds two numbers represented by two 1D
populations and passes the result to the third 1D population, as
shown in Fig. 3. The output population receives input along
the diagonals of the 2D operation array, and the output di-mensionality, consequently, is 2N −1. Thus, if we concatenatesuch operations, the size of the populations will grow, which isundesirable for large, e.g., hierarchical controllers. Therefore,
we constrain the output of an operation array to have the same
size as its inputs, mapping several extreme diagonals to thefirst and last neuron of the output population. This leads tominor boundary effects, which, however, did not impact resultsin our experiments. Using the same principle, a subtraction
operation can be implemented by connecting the opposite
diagonals of the 2D neuronal array to the output vector.

Fig. 3: Left: Connectivity from two 1D input arrays to theoperation 2D array. Each neuron in the input array on the left
is connected to all neurons on the respective row of the 2D
array, and each neuron in the input array on top is connected
to all neurons in the respective column. Numbers in the circles
show the centers of the represented regions of the continuously
measured variables. Right: The output connectivity of thesame 2D operation array performing the addition operation.
The size of the output 1D array is constrained to the size ofthe input arrays.
2) P-, I-, and D controller: Having realized the additionand subtraction operations with spiking neurons, the algebraof the PID controller can be implemented in the SNN network.
The PID controller is defined by Eqs. (1):Zu(t) = Kp e(t) + Ki

e(t)dt + Kd

de(t)
,
dt

(1)

e(t) = r(t) − y(t),where u(t) is the actuated command, y(t) is the feedback/sensor signal, r(t) is the control signal (desired valueof y(t)), e(t) is the error, and Kp , Ki , and Kd are the PID
gains.
We reformulate the PID equations in a time-discrete way
and define five values that will structure our SNN (et , pt , it ,dt , and ut ) in Eqs. (2):et = rt−2 − yt−2
pt = et−1(error),(proportional term),

it = it−2 + et−2 ∆t (integral term),
et−2 − et−3(derivative term),
dt =∆t
ut = Kp pt + Ki it + Kd dt (command).

(2)Note, all computations on Loihi run in parallel, but the spikeexchange is synchronized within a time-step. Thus, at least
one time-step delay (∆t) is introduced by each connection(the delay can be longer, it is a parameter of a synapse). For
simplicity, all connections in this network have a delay of one
time-step. The system variables et , pt , it and dt can thus bedefined with the exact delay in Eqs. (2). The architecture of
the neural PID controller is visualized in Fig. 4.

Fig. 4: The first part of the PID network consists ofthree 2D operation arrays (matrices): EM calculates the error/proportional signal by subtracting the control signal fromthe sensory feedback; IM calculates the integrated error signal
by adding the current error with the last integrated error, fed
back to the adder IM; and DM calculates the derivative of
the error by subtracting the one time-step delayed error signal
from the current error signal. Inset shows an overview of a
PID controller.
3) Spike-based operation of the network: We use a onespike approach in our SNN, in which only one neuron ineach population can fire at any time-step. This behavior isachieved by setting the maximum voltage- and current decays
in neuronal compartments of all populations. This resets themembrane potential of neurons to the resting state at every
time-step. Furthermore, the threshold of neurons in the 2D
arrays is set to value of 3, and all the input weights to the
2D arrays are set to 2. This means that a neuron in any
2D array can only fire if it receives two spikes within thesame time-step. At each time-step, at most one spike is output
in each of the two input populations (e.g., R and Y) of the
2D operation array, e.g. EM (Error Matrix). This forces one
neuron in the EM to fire. This, in turn, triggers firing of one
neuron in the output population, E (error). In this way, spikes
propagate through the network and maintain the one-spikebehavior throughout all neuronal populations. Which neuron
in each population fires determines the represented value atthat time-step.
4) Output network: rate-coded populations: To enable future adaptive learning of the PID constants, two approaches
are possible. A gain constant can be implemented as weights
between two 1D neuronal arrays that represent values with

population encoding (e.g., one-hot sparse encoding in our
network). This gain representation will allow for an arbitrary
mapping between the pre-gain values and the post-gain values,i.e., any non-linear scaling of P, I, and D terms can potentiallybe realized. Being a more powerful representation, we anticipate that learning such a gain matrix will be more difficult.
Thus, although we realized the network following both
approaches, our results shown here are based on the second
approach, in which the gain is represented by the weights
between two rate-coded populations. A rate-coded population
is a population of neurons with a homogeneous distribution ofresting level membrane potentials. The overall firing rate of thewhole population represents the current value of the variable.
Note how this stays in contrast to the sparse population code,
in which the value is represented by the identity (index, oraddress) of the firing neuron(s). Synaptic weights scale input toa rate-coding population, increasing or decreasing the numberof neurons that get above threshold in response to input spikes(remember, there is only one spike per time-step per neuron)and thus controlling the overall firing rate. A simple learning
rule that increases or decreases the weights depending on thecontroller’s behavior can adjust the P, I, and D gains.
Thus, in our architecture, we convert the sparse coded P/I/D
representations to population-rate code before the three values
go through weights that encode the P, I, and D gains andare summed up in the control output population, U. In thesparse-coding P/I/D arrays, the represented values are in therange a ∈ [−lim, lim], with a = 0 at the central neuron. Eachneuron in the P/I/D 1D arrays is connected to either P/I/D+ or
P/I/D- rate-coding populations, depending on the sign of therepresented value. The weight that connects each neuron in thesparse-coded populations is proportional to the magnitude ofthe encoded value (i.e., its index in the array, counted from thecenter). This connectivity produces high activity in the P/I/D+
or P/I/D- neurons when edge neurons in the P/I/D arrays areactive, and, respectively, low activity if a neuron close to thecenter of the P/I/D arrays is active (see Fig. 5).
It is important that neurons in the population-rate coded
populations fire asynchronously: if all neurons fire synchronously, the overall firing rate will not depend on input
strength in our single-spike network. Thus, small bias andnoise currents are injected into the P+ and P- neurons toensure uniformly distributed voltage potentials that enableasynchronous behavior of the neurons. Both P+ and P- areconnected to the summing-up population A with the weightof respectively Kp and −Kp . Note that the transfer functionof weights between two rate-coded populations may have anon-linear form; this requires further investigation and will be
alleviated if weight adaptation is used to tune the gains.
The same steps as for P populations are made for I and
D arrays (Fig. 6). A small bias is injected into the summing
population A to ensure a firing activity of A as an offset. From
this offset P-, I-, and D- lower the activity and P+, I+, andD+ raise the activity.
The population-rate coded sum of control signals, represented in A, is converted back into sparse code in B byintroducing linearly distributed thresholds of the neurons in
B. A and B are connected in an all-to-all manner. The neuronof B representing the lowest value (−lim) spikes in response
to a single input spike and the neuron representing the highest
value (lim) spikes only, when the activity of A is the highest.
Every level of activity between [−lim, lim] is linearly mapped
along the B population. To get back to the one-spike encoding,each neuron in B is connected in a one-to-one manner toneurons in U with a positive weight, and to all neurons of
U with lower indices with negative weights (Fig. 5).

Fig. 5: Conversion from the sparse place-coded array (one-hot
coding) (P) to the rate-coded neuronal populations (P+, P-).
The same structure is used for I and D pathways. Adaptive gain
can be applied to the weights from P+ and P- to the summing
population A (weights +/-Kp ). The rate-coded values aretransferred back to the space-coded control output population
U through an auxiliary population B. The space-code in the
U population simplifies connection to the motors in our setup(the address of the firing neuron can easily be accessed in an
embedded snip, alleviating the need to calculate firing rates).

Fig. 6: Overview of the full PID controller and the output
network with the space-to-rate code conversion, required tosimplify learning of the controller gains.

C. Implementation on robots
1) Pushbot: For simplicity, a single PID controller was
initially tested with the Pushbot1 . The Pushbot’s angularvelocity was controlled to the target angular velocity (R)using angular velocity (Y ), measured with an IMU or wheel
encoders.
2) 1-DoF UAV: In order to control the angular positionof the 1-DoF UAV, two nested PID controllers are needed.
The outer PID outputs the target angular velocity based on
the target angular position and the current angular position.
The inner PID computes the target torque based on the target
angular velocity obtained from the outer PID and the current
angular velocity.

3-axis gyroscope and the linear accelerometer. The velocity
values were sampled at 20Hz (note, Loihi can support input
at > 10kHz). The IMU-measured values were sent to theembedded program on Loihi and used to generate input spikes
to the Y population. The two input spikes – to the Y andR populations – generate a cascade of spikes in the SNN
architecture, eventually leading to a single spike in the output
U population 12 time-steps later. The index of the firing
neuron of the U population is recorded in the embedded
program and is interpreted as the angular-velocity command
sent to the robot. This command is directly translated into
motor commands making the robot turn with the set velocity.

D. Constraints of neuromorphic hardware and network size
Each neuronal core on Loihi can simulate up to 1024
neurons, which enables 2D populations of size 32×32 neurons.
To increase population size, we divide the 2D populations into
multiple segments and distribute them across multiple neuronalcores, increasing the size of available 2D operation arrays.
Each connection in our network is initialized with its own
input- and output axon (weight sharing is not supported in
the current version of the API, NxSDK 0.9). The number ofaxons per core is limited to 4K. For each 2D-population’s
segment, 2n2 input- and n2 output-axons are needed, wheren2 is the size of the 2D array’s segment. To initialize two(nested) PID controllers for the UAV on Loihi, we need six
2D arrays. Thus, 6m2 neuro-cores are used for simulation of
the 2D populations, where m2 is the number of segments,
in which each 2D array is divided. Since 128 neuro-cores areavailable on one chip, arrays of size 632 can be used (each 2D
array consists of 32 segments of size 212 ). These populationsuse 54 neuro-cores and leave 74 neuro-cores for the rest of
the network.
E. Experiments
We tested the SNN-based PID controller running on Loihi
with both robotic systems and compared the performanceagainst a conventional PID controller implemented on a CPU(the UP2 board2 ). Furthermore, for the UAV, we implemented
a constrained-PID (CPID) on the CPU that uses the same
numeric precision as the SNN on Loihi (63 different values).
This shows the impact of lowering the resolution of value
representation without introducing the probabilistic behaviorof the rate-coded populations. All connections in the SNNs
were static, the PID gains of both systems were tuned by hand.
3

F. Pushbot
The IMU integrated in the eDVS sensor of the Pushbot robot
outputs the angular velocity, measured by a combination of a
1 http://inilabs.com/products/pushbot/
2 Intel Pentium N4200: 1.1/2.5GHz w/4GB LPDDR4 RAM; Ubuntu 16.04
3 All performance results are based on testing as of February 2020 and may
not reflect all publicly available security updates. No product can be absolutely
secure.

G. 1-DoF UAV
To control the angular position of the UAV in one degreeof freedom, two nested PID controllers were used. The first
PID receives the control signal (rt ) and the current angular
position (yt ), measured by the IMU. The PID computes thetarget angular velocity ut . ut is passed-on into the second
PID controller that also receives the current angular velocity(ẏt ) from IMU as a 1D input and computes the target angularacceleration u̇t .

III. R ESULTS

To visually show the performance of the controller, for
exemplary tests, we show a plot comparing the SNN implementation against CPU based- and constrained CPU based PID
controllers. We also show tables with measures of overshoot,rise time, and settling time of the systems for quantitative
comparison. A video of one of the test runs, along with themeasured controller outputs, can be found in Supplementary.

A. Pushbot control
Fig. 7 shows the results of an exemplary run of the SNN
controller on Loihi controlling the angular velocity of the
Pushbot robot. The set value (blue line in the plot) was generated on the host computer and sent to the Loihi chip as input
to the R population. The numerical values were interpreted inan embedded program on an x86 core, and a single spike
per time-step was sent to one neuron in the R population
as input. The full range of available speed (±150deg/s) was
mapped onto 63 neurons of the 1D population. In Fig. 7, thered curve shows the angular velocity of the robot measured
by IMU when the Pushbot is controlled by spikes from the U
population in the SNN on Loihi. The green curve shows theperformance of the software PID controller.

of gains in a learning process should be able to find a betterparametrization of the SNN-based PID controller.

Fig. 7: Output of PID controllers for the Pushbot robot. Blue:the control signal for the PID (target angular velocity). Red:
the angular velocity measured by IMU when UAV is controlled
by the SNN-based PID running on Loihi. Green: the angularvelocity measured by IMU when UAV is controlled by thesoftware PID controller running on a CPU.
Table I shows the overshoot, rise time, and settling timeof the SNN PID controller throughout four trails. Comparedto the CPU-based PID values (Table II), it can be seen that
there is no overshoot in the CPU PID compared to the mean
5.89deg/s overshoot in the SNN PID. The rise time is shorterin the SSN PID and the settle time is longer. This is a sign thatthe D gain has a stronger effect in the CPU implementation.
However, both controllers work well despite the delay in thesystem.
TABLE I: Performance of the SNN PID controller (Pushbot)
SNN PID
Trial 1
Trial 2
Trial 3
Trial 4
Mean
Std.

Overshoot [deg/s]
5.753
5.997
5.972
5.844
5.892
0.988

Rise time [s]
0.105
0.101
0.094
0.104
0.101
0.004

Settling time [s]
4.95
3.80
5.08
4.30
4.531
0.519

TABLE II: Performance of the CPU PID controller ( Pushbot)
CPU PID
Trial 1
Trial 2
Trial 3
Trial 4
Mean
Std.

Overshoot [deg/s]
0
0
0
0
0
0

Rise time [s]
0.745
0.798
0.800
0.698
0.760
0.042

Settling time [s]
2.265
2.457
2.356
2.246
2.331
0.084

B. 1-DoF UAV
Fig. 8 shows the behavior of the SNN PID and software
PIDs for the UAV, in an exemplary run.
Table III shows the average overshoot, rise time, and settling
time for three PID controllers on the UAV, computed basedon four trials. It can be noticed that the SNN PID overshoots
more than the other controllers and has a faster rise time. This
indicates again that the D gain has more effect in the CPU
implementation than in the SNN implementation. Adaptation

Fig. 8: Blue: control signal for the outer PID (target angle).
Red: performance of the SNN-PID running on Loihi (measured UAV angle). Green: performance of a conventional PID
controller on CPU. Magenta: performance of the CPU-PID
constrained to the same value representations as the SNN-PID.

TABLE III: Performance of PID controllers for UAV
SNN PID
CPU PID
CPID

Overshoot [deg]
8.319
4.128
4.876

Rise time [s]
3.419
4.173
3.872

Settling time [s]21.78121.77221.764

IV. D ISCUSSION
Before implementing adaptation of the control gains using
on-chip plasticity, several challenges of our setup must be
addressed. Thus, the Pushbot followed the control signal withapprox 450ms response latency. This response time is partly
due to the delay from the sensor to the host program and backto the robot and the sensors through the physical system. Thisaccounts for approximately 100ms of delay and affects theresults for both the Loihi- and the CPU PID. The larger partof the delay is introduced by the long time-step on Loihi. It
takes 12 time-steps of 27ms for the data to flow through the
PID controller (this is approx. 323ms). By optimizing I/O, thetimestep duration could be reduced down to 10µs in a future
implementation, considerably improving the results.
The performance of the Pushbot and the UAV differ since
the two control problems are different. The Pushbot’s controller is controlling the first derivative of the position, whichis damped by the motors and gears, making the system easier
to control and to tune since the D term becomes obsolete. The
UAV controller is controlling the second derivative of a nonlinear system, which is a harder control problem. Furthermore,
the UAV was unbalanced in our test bench due to cable pulling.
As can be observed in Fig. 8, there is more overshoot in thenegative direction than in the positive direction.
V. C ONCLUSION
We implemented a PID controller fully in a Spiking Neural
Network on Intel’s neuromorphic research chip Loihi. The

SNN was tested on two robotic platforms and was able tocontrol both. The results show that the behavior of the controllers matches the behavior of conventional PID controllers,
but the performance was worse due to long time-steps causing
delays. A more direct low-level interface to Loihi cores will
enable fast, responsive, and reliable communication between
the chip and the robot as the hardware matures, significantly
reducing the response time.
To our knowledge, this is the first attempt to implement a
PID controller fully in neuromorphic hardware. Having accessto an SNN implementation of a PID controller will lead to
new applications of neuromorphic technology. Implemented
in the concurrent neuromorphic hardware, the SNN controller
can be scaled-up to control multiple degrees of freedoms andallows us to build nested and hierarchical controllers. The
PID controller can be combined with SNN-based forward andinverse models with online learning and adaptation [28] andcan be seamlessly integrated with SNN-based vision systems
on chip [29]–[35]. A complete SNN-based robotic solutions
without the need for conventional sequential hardware in theloop will reduce bottlenecks on the interface between theneuronal and conventional computing systems.
No learning was applied in this work. However, the output
network in our SNN was designed to be compatible with
online learning in order to enable autonomous adaptation of
the controller gains, which is the subject of our further work.
VI. ACKNOWLEDGEMENTS
We would like to thank SDU-UAV for founding all drone
related hardware and Cao Dahn Do for building the 1-Dof
UAV test bench. We thank Intel Labs for providing the stateof-the art neuromorphic research chip Loihi as well as a lot of
support. This project was funded by SNSF grant Ambizione
PZOOP2 168183 ELMA and was initiated during the Capo
Caccia 2019 Workshop “Toward Neuromorphic Intelligence”.
R EFERENCES[1] A. Giusti, J. Guzzi, D. C. Cireşan, F.-L. He, J. P. Rodrı́guez, F. Fontana,
M. Faessler, C. Forster, J. Schmidhuber, G. Di Caro et al., “A machinelearning approach to visual perception of forest trails for mobile robots,”
IEEE Robotics and Automation Letters, vol. 1, no. 2, pp. 661–667, 2015.
[2] H. A. Pierson and M. S. Gashler, “Deep learning in robotics: a review
of recent research,” Advanced Robotics, vol. 31, no. 16, pp. 821–835,
2017.
[3] N. Sünderhauf, O. Brock, W. Scheirer, R. Hadsell, D. Fox, J. Leitner,
B. Upcroft, P. Abbeel, W. Burgard, M. Milford et al., “The limits andpotentials of deep learning for robotics,” The International Journal of
Robotics Research, vol. 37, no. 4-5, pp. 405–420, 2018.
[4] D. Palossi, A. Loquercio, F. Conti, E. Flamand, D. Scaramuzza, and
L. Benini, “A 64-mw dnn-based visual navigation engine for autonomous
nano-drones,” IEEE Internet of Things Journal, vol. 6, no. 5, pp. 8357–
8371, Oct 2019.
[5] C. Cadena, L. Carlone, H. Carrillo, Y. Latif, D. Scaramuzza, J. Neira,I. Reid, and J. J. Leonard, “Past, present, and future of simultaneous
localization and mapping: Toward the robust-perception age,” IEEE
Transactions on Robotics, vol. 32, no. 6, pp. 1309–1332, Dec 2016.
[6] S. Milz, G. Arbeiter, C. Witt, B. Abdallah, and S. Yogamani, “Visualslam for automated driving: Exploring the applications of deep learning,”
in Proceedings of the IEEE Conference on Computer Vision and Pattern
Recognition Workshops, 2018, pp. 247–257.

[7] K. Tateno, F. Tombari, I. Laina, and N. Navab, “Cnn-slam: Real-timedense monocular slam with learned depth prediction,” in Proceedingsof the IEEE Conference on Computer Vision and Pattern Recognition,
2017, pp. 6243–6252.
[8] R. Li, S. Wang, and D. Gu, “Ongoing evolution of visual slam fromgeometry to deep learning: challenges and opportunities,” Cognitive
Computation, vol. 10, no. 6, pp. 875–889, 2018.
[9] P. Karkus, D. Hsu, and W. S. Lee, “Qmdp-net: Deep learning forplanning under partial observability,” in Advances in Neural Information
Processing Systems, 2017, pp. 4694–4704.
[10] S. Toyer, F. Trevizan, S. Thiébaux, and L. Xie, “Action schema networks: Generalised policies with deep learning,” in Thirty-Second AAAI
Conference on Artificial Intelligence, 2018.
[11] V. Rausch, A. Hansen, E. Solowjow, C. Liu, E. Kreuzer, and J. K.
Hedrick, “Learning a deep neural net policy for end-to-end control of
autonomous vehicles,” in 2017 American Control Conference (ACC).
IEEE, 2017, pp. 4914–4919.
[12] S. Yang, W. Wang, C. Liu, and W. Deng, “Scene understanding in deeplearning-based end-to-end controllers for autonomous vehicles,” IEEE
Transactions on Systems, Man, and Cybernetics: Systems, vol. 49, no. 1,
pp. 53–63, 2018.
[13] T.-M. Hsu, C.-H. Wang, and Y.-R. Chen, “End-to-end deep learning forautonomous longitudinal and lateral control based on vehicle dynamics,”
in Proceedings of the 2018 International Conference on Artificial
Intelligence and Virtual Reality, 2018, pp. 111–114.
[14] M. Davies, N. Srinivasa, T.-H. Lin, G. Chinya, Y. Cao, S. H. Choday,
G. Dimou, P. Joshi, N. Imam, S. Jain et al., “Loihi: A neuromorphic
manycore processor with on-chip learning,” IEEE Micro, vol. 38, no. 1,
pp. 82–99, 2018.
[15] G. Indiveri, E. Chicca, and R. J. Douglas, “Artificial Cognitive
Systems: From VLSI Networks of Spiking Neurons to Neuromorphic
Cognition,” Cognitive Computation, vol. 1, no. 2, pp. 119–127,
2009. [Online]. Available: http://www.springerlink.com/index/10.1007/
s12559-008-9003-6[16] S. B. Furber, D. R. Lester, L. A. Plana, J. D. Garside, E. Painkras,
S. Temple, and A. D. Brown, “Overview of the SpiNNaker System
Architecture,” IEEE Transactions on Computers, vol. 62, no. 12, pp.
2454–2467, 2012.
[17] P. A. Merolla, J. V. Arthur, R. Alvarez-Icaza, and A. S. e. a. Cassidy,“Artificial brains. A million spiking-neuron integrated circuit with ascalable communication network and interface.” Science (New York,N.Y.), vol. 345, no. 6197, pp. 668–73, 2014. [Online]. Available:
http://www.ncbi.nlm.nih.gov/pubmed/25104385[18] N. Qiao, H. Mostafa, F. Corradi, M. Osswald, D. Sumislawska, G. Indiveri, and G. Indiveri, “A Re-configurable On-line Learning Spiking
Neuromorphic Processor comprising 256 neurons and 128K synapses,”Frontiers in neuroscience, vol. 9, no. February, 2015.
[19] K. J. Åström and T. Hägglund, PID controllers: theory, design, andtuning. Instrument society of America Research Triangle Park, NC,
1995, vol. 2.
[20] T. DeWolf, T. C. Stewart, J.-J. Slotine, and C. Eliasmith, “A spiking
neural model of adaptive arm control,” Proceedings of the Royal Society
B: Biological Sciences, vol. 283, no. 1843, p. 20162134, 2016.
[21] S. Akhyar and S. Omatu, “Self-tuning PID control by neural networks,”
Proceedings of the International Joint Conference on Neural Networks,
vol. 3, pp. 2749–2752, 1993.
[22] A. Guez, J. Eilbert, and M. Kam, “Neuromorphic architecture foradaptive robot control: A preliminary analysis.” 12 1987, pp. iv/567–
572.
[23] A. Guez and J. Selinsky, “A trainable neuromorphic controller,” Journalof robotic systems, vol. 5, no. 4, pp. 363–388, 1988.
[24] https://inilabs.com/products/pushbot/.
[25] J. A. Leñero-Bardallo, T. Serrano-Gotarredona, and B. Linares-Barranco,“A 3.6\µ s latency asynchronous frame-free event-driven dynamicvision-sensor,” IEEE Journal of Solid-State Circuits, vol. 46, no. 6, pp.
1443–1455, 2011.
[26] R. S. Dimitrova, M. Gehrig, D. Brescianini, and D. Scaramuzza,“Towards low-latency high-bandwidth control of quadrotors using event
cameras,” arXiv preprint arXiv:1911.04553, 2019.
[27] G. Metta, P. Fitzpatrick, and L. Natale, “Yarp: yet another robot
platform,” International Journal of Advanced Robotic Systems, vol. 3,
no. 1, p. 8, 2006.
[28] J. Conradt, F. Galluppi, and T. C. Stewart, “Trainable sensorimotormapping in a neuromorphic robot,” Robotics and Autonomous Systems,
vol. 71, pp. 60–68, 2015.
[29] X. Lagorce and R. Benosman, “STICK: Spike Time Interval Computational Kernal, a Framework for General Purpose Computation Using
Neurons, Precise Timing and Synchrony,” Neural computation, vol. 27,
pp. 2261–2317, 2015.
[30] X. Lagorce, G. Orchard, F. Gallupi, B. E. Shi, and R. Benosman,“HOTS: A Hierarchy Of event-based Time-Surfaces for patternrecognition,” IEEE Transactions on Pattern Analysis and MachineIntelligence, vol. 8828, no. c, pp. 1–1, 2016. [Online]. Available: http://ieeexplore.ieee.org/lpdocs/epic03/wrapper.htm?arnumber=7508476[31] D. Liang, R. Kreiser, C. Nielsen, N. Qiao, Y. Sandamirskaya, and
G. Indiveri, “Neural state machines for robust learning and control ofneuromorphic agents,” IEEE Journal on Emerging and Selected Topics
in Circuits and Systems, vol. 9, no. 4, pp. 679–689, Dec 2019.
[32] S. Baumgartner, A. Renner, R. Kreiser, D. Liang, G. Indiveri, and
Y. Sandamirskaya, “Visual pattern recognition with on on-chip learning:towards a fully neuromorphic approach,” in IEEE International Symposium on Circuits and Systems (ISCAS), 2020.
[33] J. H. Lee, T. Delbruck, and M. Pfeiffer, “Training deep spiking neuralnetworks using backpropagation,” Frontiers in Neuroscience, 2016.
[34] E. O. Neftci, H. Mostafa, and F. Zenke, “Surrogate gradient learning in
spiking neural networks,” arXiv preprint arXiv:1901.09948, 2019.
[35] F. Zenke and S. Ganguli, “Superspike: Supervised learning in multilayer
spiking neural networks,” Neural computation, vol. 30, no. 6, pp. 1514–
1541, 2018.