|
In this dissertation, we study two new approaches to fault detection
for autonomous robots. The first approach involves the synthesis of
software components that give a robot the capacity to detect faults
which occur in itself. Our hypothesis is that hardware faults change
the flow of sensory data and the actions performed by the control
program. By detecting these changes, the presence of faults can be
inferred. In order to test our hypothesis, we collect data in three
different tasks performed by real robots. During a number of training
runs, we record sensory data from the robots both while they are
operating normally and after a fault has been injected. We use
back-propagation neural networks to synthesize fault detection
components based on the data collected in the training runs. We
evaluate the performance of the trained fault detectors in terms of
the number of false positives and the time it takes to detect a
fault. The results show that good fault detectors can be obtained. We
extend the set of possible faults and go on to show that a single
fault detector can be trained to detect several faults in both a
robot's sensors and actuators. We show that fault detectors can be
synthesized that are robust to variations in the task. Finally, we
show how a fault detector can be trained to allow one robot to detect
faults that occur in another robot.
The second approach involves the use of firefly-inspired
synchronization to allow the presence of faulty robots to be
determined by other non-faulty robots in a swarm robotic system. We
take inspiration from the synchronized flashing behavior observed in
some species of fireflies. Each robot flashes by lighting up its
on-board red LEDs and neighboring robots are driven to flash in
synchrony. The robots always interpret the absence of flashing by a
particular robot as an indication that the robot has a fault. A faulty
robot can stop flashing periodically for one of two reasons. The fault
itself can render the robot unable to flash
periodically. Alternatively, the faulty robot might be able to detect
the fault itself using endogenous fault detection and decide to stop
flashing. Thus, catastrophic faults in a robot can be directly
detected by its peers, while the presence of less serious faults can
be detected by the faulty robot itself, and actively communicated to
neighboring robots. We explore the performance of the proposed
algorithm both on a real world swarm robotic system and in
simulation. We show that failed robots are detected correctly and in a
timely manner, and we show that a system composed of robots with
simulated self-repair capabilities can survive relatively high failure
rates.
We conclude that i) fault injection and learning can give robots the
capacity to detect faults that occur in themselves, and that ii)
firefly-inspired synchronization can enable robots in a swarm robotic
system to detect and communicate faults.
Download dissertation [PDF, 5 MB]
|
|
|