Title: Reactive Swtiching Strategies for the Control of Autonomous Uninhabited Air Vehicles
1REACTIVE SWITCHING STRATEGIES FOR THE CONTROL OF
UNINHABITED AIR VEHICLES Yale University Peter
Belhumeur Paul Hudak
A. Stephen Morse
With help from John Peterson, Stephen
Elliott, Brenda Ng, Samuel Elder, Alexander Potter
- Rapid Prototyping
- Reliable Autonomous Maneuvering
- Reconfiguration
- Robustness
- Reactive Design Verification
- Real-time Programming
- Reuse of Software Components
- Key Research Themes
- Autonomous Coordinated Motion
- Visual Servoing
- Programming Language Design
2Motivation
- There is interest at Yale in
- Unmanned air vehicles (Darpa SEC)
- Unmanned underwater vehicles (NSF KDI/LIS)
- Unmanned surface vehicles (Darpa MARS)
- Not to mention Robocup (Melbourne 2000)
- We believe that autonomous coordinated motionis
inherently interesting and important, and is an
abstraction and distillation of the above
projects. - Issues
- real-time control,
- autonomy,
- communications,
- software,
- mobility, - locomotion, - planning, -
sensing
3Recent Activity
- Focus on autonomous coordinated motion.
- Acquisition of small robots for unmanned surface
vehicle testbed. - Simulation of coordinated motion of autonomous
vehicles. - Comparison of Matlab/Simulink with FRP.
- Improvements to FRP and its implementation.
- Collaboration with OGI on FRP and other
Haskell-based infrastructure.
4Autonomous Coordinated Motion
- Natural behavior amongst living animals
- flocking, herding, schooling, swarming
- Specific tasks of interest to us
- congregation, navigation, escortation,
formation motion, obstacle avoidance, dispersion,
etc. - Key technologies of interest
- computational vision and control (visual
servoing) - programming language support
- domain specific design
- Functional Reactive Programming (FRP)
5Experimental Testbeds
- Unmanned underwater vehicle testbed
- NSF KDI/LIS grant (w/ Princeton and U.
Washington) - Small autonomous underwater vehicles
- 3D context may extrapolate to UAVs
- Unmanned surface vehicle testbed
- Small vision-controlled robots (Probotics
Cye-bots) - Goal no sensors other than passive vision
- Communication via wireless Ethernet
- Programmed using FRP and Fvision
6Example AV Simulation
- Goal
- to move a group of autonomous vehicles
(AVs)through a barrier and then to have them
surround a target at a given distance - autonomy achieved via local control laws only
- nearest neighbor, potential fields, etc.
- modularity achieved via hierarchical control
- a virtual circle surrounds each AV
- each AV positions itself within its circle
- the circles position themselves within
environment - adaptability achieved via mode switching
- Simulated in Matlab/Simulink and FRP
7AV Animated Simulation
8Hierarchical Control
Coordinated Task Control
Schooling Control
Collision Avoidance (between virtual circles)
Local AV positioning (within virtual circle)
9AV Animation w/ virtual circles
10FRP (Functional Reactive Programming)
- High-level, declarative, domain-specific language
(DSL) and environment for programming complex
hybrid systems. - Two key concepts
- Continuous, time-varying behaviors.
- Discrete streams of events.
- Current Uses of FRP
- Graphics and Animation (Fran)
- Robotics (Frob)
- Vision (Fvision)
- User Interfaces (FranTk)
11Behaviors
- Continuous behaviors capture any time-varying
quantity, whether - input (sonar, temperature, video, etc.),
- output (actuator voltage, velocity vector, etc.),
or - intermediate values internal to a program.
- Operations on behaviors include
- Generic operations such as arithmetic,
integration, differentiation, and
time-transformation. - Domain-specific operations such as edge-detection
and filtering for vision, scaling and rotation
for animation and graphics, etc.
12Events
- Discrete event streams include user input as well
as domain-specific sensors, asynchronous
messages, interrupts, etc. - They also include tests for dynamic constraints
(predicate events) on behaviors (temperature too
high, level too low, etc.) - Operations on event streams include
- Mapping, filtering, reduction, etc.
- Reactive behavior modification.
- Behavior snapshots.
13Matlab and Simulink
- Simulink is a visual programming language
designed for model-based control. - Very popular, very successful, and very
effective. - Tough competition for FRP!
14FRP vs Simulink
- Shortcomings of Simulink
- Visual programming is not always best.
- Studies have shown that experts prefer text.
- Logic-based control is awkward to express.
- Simulink lacks a reactive semantics.
- It is difficult to replicate functionality.
- Simulink lacks data structures and other
conventional programming conveniences. - It is difficult to abstract functionality.
- Simulink lacks higher-order abstractions.
15Example from AV Simulator
Force Vector Vel Vector
Speed Limiter
1 -- s
1 -- s
1
vel
f
X Force
pos
1
2
Velocity
Position Vector
Y Force
Mux
Position
k
Gain
rob
2
Non-state Robot Vector
Mux
FRP equivalent code vel integral (f
speedLim vel kvel) pos integral vel
rob (pos,vel)
16Replication in AV Simulator
Fifteen AVs with identical functionality
17Expanded View
18Simplified Replication
fn
proc
FRP Equivalent code out map snd xs xs
map fn args args proc (map fst xs)
fn
fn
out
xs
args
v
fn
Mux
Mux
19Data Structures
- Another AV simulator example finding the two
nearest neighbors in a group of AVs. - No convenient mechanism in Simulink.
- Solution revert to Matlab (using s-functions)
but then weve lost the model-level abstraction. - In FRP, we can remain in the model.
20S-Function Code
cycle through all other robots to determine two
closest robots and apply a configuration force
for i2numrobots xi u( (i - 1)4 1)
yi u( (i - 1)4 2) vxi u( (i - 1)4
3) vyi u( (i - 1)4 4) magdr sqrt(
(xi-xj)2 (yi-yj)2 ) if i j,
if magdr lt closest(j,2),
secondclosest(j,1) closest(j,1)
secondclosest(j,2) closest(j,2)
closest(j,1) i closest(j,2) magdr
elseif magdr lt secondclosest(j,2),
secondclosest(j,1) i
secondclosest(j,2) magdr end end
21Reactivity(where the continuous meets the
discrete)
- The ability to react to either internal or
external stimuli. - Critical notion for hybrid systems.
- Awkward to express in Simulink (often best to
resort to Matlab via s-functions). - Example mode switching in AV simulation.
22S-Function Code
if robot is on targetside, apply force to
attract it to target if ontargetside
magdrcenter 0, output( (j - 1)2 1)
output( (j - 1)2 1)
tempk3(rcenter - magdrcenter)drcenter(1)/magdrce
nter output( (j - 1)2 2) output( (j -
1)2 2) tempk3(rcenter
- magdrcenter)drcenter(2)/magdrcenter end
if robot is not on target side, apply force to
attract it to gap in barrier r
xj,yj magr sqrt(xj2 yj2) if
ontargetside magr 0, output( (j - 1)2
1) output( (j - 1)2 1)
gapattractionconstantr(1)/(10
magr2) output( (j - 1)2 2)
output( (j - 1)2 2)
gapattractionconstantr(2)/(10
magr2) end
23Reactivity in FRP
- Given continuous behaviors b1 and b2, b1
until e gt b2 means Behave as b1 until
event e, then behave as b2. - Well-founded semantics.
- Rich algebra of transformations.
- Previous example in FRP
- Or even better
if ontargetside magdrcenter 0 then
tempk3(rcenter - magdrcenter)drcenter(1)/magdrce
nter else gapattractionconstantr(1)/(10 magr2)
gapattractionconstantr(1)/(10 magr2) until
pred (ontargetside magdrcenter 0) gt
tempk3(rcenter - magdrcenter)drcenter(1)/magdrce
nter
24Future Work
- Coordinated motion
- Task elaboration and analysis
- Control algorithms design
- Monster truck testbed
- Computer vision tasks
- FRP research (next slide)
25Future FRP Research
- Collaboration with OGI
- FRP standard, FRP infrastructure, etc.
- Integration with OCP as plug-in MoC
- Interoperability with other OCP Mocs
- Visual FRP
- Ability to shift between views, and edit either
- Can FRP be a front-end to Simulink?
- Performance
- Interpreted FRP performs worse than Simulink
- This will improve with algebraic
optimization,meta-programming, and conventional
compilation - Space leaks are a problembut garbage collection
is not (its real-time) - Execution on real-time platform
- FRP extensions
- Behavior sustainment
- Multi-rate behaviors
- Preemptive interrupts
26How to Hide a Flock of Turkeys