Upload
adrian-small
View
217
Download
0
Embed Size (px)
Citation preview
CLARAty Decision Layer Overview
Tara EstlinMay 16, 2002
CLARAty Decision Layer Team: Tara Estlin and Caroline Chouinard
CLEaR Team: Forest Fisher, Dan Gaines and Steve Schaffer
Jet Propulsion Laboratory,California Institute of Technology
2
Talk Organization
• Decision Layer capabilities• DL system architecture (as provided by CLEaR)• Examples of DL domain models• Code status and documentation
3
Decision Layer Capabilities
4
Decision Layer Summary
• Provides intelligent decision-making capabilities
• Designed to contain and enable integration of:– planning/scheduling techniques
– executive techniques
– other high-level autonomy techniques (e.g. data analysis)
• Also intended to provide flexible interface to CLARAty Functional Layer
• Current DL instantiation provided by CLEaR Framework– CLEaR: Closed Loop Execution and Recovery
– Integrates CASPER dynamic planning system (JPL) with TDL executive (CMU)
5
Decision Layer Capabilities
• Autonomous rover-command generation to achieve high-level science and engineering goals– Given:
• Initial state: Rover at position (x,y) w/ certain resource levels• Desired state: Achieve science activities A, B and C
– Produce:• Plan (i.e., list of commands) to make desired state true• E.g., navigate to loc A, raise mast, take image, lower mast, navigate to loc B,
etc.
6
Decision Layer Capabilities, cont.
• Use of both declarative and procedural domain information– Activity X uses “20 Watts of Power” and requires “Camera to be on”
– Activity A must be scheduled before Activity B within allowable range [10 sec, 30 sec]
– Activity Z breaks down into sub-activities Z1, Z2 & Z3
– If condition P holds then perform activity Q
• Reasoning about state, resource and temporal constraints
• Timelines represent plan’s effects over time
LOW HIGH MEDIUM HIGH LOW HIGH
RESOURCE
STATE
Time
7
Decision Layer Capabilities, cont.
• Command execution and monitoring– Dispatch commands to FL and monitor relevent state and resource
information
• Exception handling– Handle exceptions or failures
– E.g., must retry rock grasp due to initial failure
– E.g., motor overheats so disable arm
• Re-planning in light of changing context or goals– Modify global plan when conditions change
– E.g., discard science target or traverse due to unexpected low power reserves
– E.g., add science target due to unexpected opportunity
8
Decision Layer System Overview
9
CLEaR System Approach• CLEaR integrates two software components:
– CASPER planning and scheduling system• Initial plan generation• Reasoning about resource, state and temporal constraints • Global knowledge of plan and state/resource timelines• Dynamic re-planning when state or goals changes• Declarative constructs for model information (e.g., activity pre-conditions and
effects)
– TDL executive• Task expansion based on current conditions• Execution monitoring• Task synchronization• Exception handling• Procedural constructs for model information (e.g., conditionals, iterative
behavior)
• CLEaR task examining how planning and executive capabilities can be closely integrated to provide a more robust and responsive system
10
CLEaR High-level View
ASPEN/CASPER Planner
ASPEN/CASPER Planner
Goals & Init State
Pathplanner(e.g., TG, D*)
Pathplanner(e.g., TG, D*)
TDL ExecutiveTDL Executive
Functional Layer / Simulator
Command status; state/resource updates Commands
Activity status; state/resource updates
Activities
Path queries; path lengths
Path queries; waypoints
Resource queries; estimations
CLEaR
11
ASPEN/CASPER System Architecture
TimelineManager
Activity infoConflict status
ADB modifications(e.g., add, modify, delete)
PCN
TCN
NetworkConstraint Propagation
ActivityDatabase
Real-timeSystem
RoverModel
Act, state & resource
updates
ActivitiesActivity
permissionupdates
Interface /GUI
Timelineupdates
Search commands
Activity, timeline, & conflict info
TDL Executive
CASPER
ASPEN
Activities to execute
Act status; TL updates
Goals & Init State
Pathplanner(e.g., TG, D*)
Pathplanner(e.g., TG, D*)
Path queries; path lengths
Domain-specific information
Legend
System Module
Socket connection
Can be socket connection or embedded
Pathplanning(outside module)
Heuristics
Repair Optimize
Search
12
TDL System Architecture
Task/Agenda Manager
Task/Agenda Manager
Executive/FLInterface
Executive/FLInterface
Functional Layer / Simulator
Planner/ExecInterface
Planner/ExecInterface
Command status; state updates
Global state updates
State/resource updates
Command status; state updates Commands
Plan activities
Activity/TL updates
ASPEN / CASPER Planner
Pathplanner(e.g., TG, D*)
Pathplanner(e.g., TG, D*)
Path queries; waypoints
Commands
AgendaUpdate Manager
Real-time Task TreesTask Tree Library
TT/agenda info
Task mgmt & state
Registertasks
Task/state updates
Global State
Task Database
13
Decision Layer Model Examples
14
Example ASPEN Plan
PlanActivity
Resourcetimelines
Statetimelines
15
Sample ASPEN Activity DefinitionActivity go_to_location { position fromx, fromy, fromz, x, y, z; angle fromheading, heading; distance dist; // est. traverse distance real speed = 1.655; // meters per min real goto_power = 330.0; // Watts int goto_energy; // Watt-hours
… timeline_dependencies = <fromx, fromy, fromz, fromheading> <- rover_orientation_sv; dependencies = dist <- path_distance(fromx, fromy, x, y, pathplanner), duration <- traverse_time(dist, speed, duration, …), goto_energy <- calculate_rover_energy(goto_power, duration); reservations = day_night_sv must_be "day", rover_energy_sv use goto_energy, health_sv must_be "nominal", rover_orientation_sv change_to <x,y,z,heading> at_end; };
16
Sample ASPEN Resource & State Defs
Resource shovel { type = atomic; };
Resource spectrometer { type = atomic; };
Resource battery {
type = depletable;
capacity = 69; // watts
min_value = 0;
};
State_variable rover_orientation_sv {
// x, y, z, heading
states = <real, real, real, real>;
default_state = <0.0, 0.0, 0.0, 0.0>;
}
State_variable mast_sv {
states = ("stowed", "deployed");
default_state = "stowed";
};
17
Sample TDL Task TreeTraverse to
location
Create and monitor waypoints
Monitor est. temporal failure
Send turn command
Send nav/gotocommand
Monitor turn in place
Turn in place Monitor step completion
Abort goto
Abort monitor
Step to location
PP
Exec/FL Interface
If “step to loc” fails…
Task
Legend
Monitor
Task generatingFL command
18
Sample TDL Task DefinitionGOAL stepToLocation(TaskData *taskData, double destPosTol, int time_bound) { float targetX, targetY, targetZ, targetHeading, priority; …
if( (tdlVars[TIME].getCurrentValue() < time_bound) &&(!tdlVars[TASK_TEMPORAL_FAILURE].getCurrentValue() ) )
{ Spawn turnInPlace(taskData,time_bound) With Wait; if(!commandMap[(int)(tdlVars[CUR_TRAVERSE_TID].getCurrentValue())].isSucceeded()) { cout<<"stepToLocation::turnInPlace returned without completion. NOT proceeding with goto\n"<<flush; … } } if( (tdlVars[TIME].getCurrentValue() < time_bound) &&
(!tdlVars[TASK_TEMPORAL_FAILURE].getCurrentValue() ) ) { tid = sendNavToCommand(targetX, targetY, targetZ, targetHeading, destPosTol, position_update_frequency); Spawn monitorStepCompletion(taskData, tid, time_bound) With Wait; if(!commandMap[tid].isComplete())
{ Spawn abortCurrentGoTo(taskData) With Wait; //send an all-stop commandMap[tid].complete(FAILED); return; } …
19
Sample TDL Monitor Definition
MONITOR stepCompletion(TaskData *taskData, int tid, int time_bound) serial, period 0:0:2.0, maximum trigger 1 { if(commandMap[tid].isComplete()) { cout<<"stepCompletion: TRIGGER (task compl)\n"<<flush; TRIGGER(); } if(tdlVars[TASK_TEMPORAL_FAILURE].getCurrentValue()) { cout<<"stepCompletion: TRIGGER (temporal failure)\n"<<flush; TRIGGER(); } if(tdlVars[TIME].getCurrentValue() >= time_bound) { cout<<"stepCompletion: TRIGGER (time bound = …\n”<<,flush; TRIGGER(); } …}
20
Decision Layer Code Status and Documentation
21
Status of Code• System requirements
– Currently developed using Sparcworks compiler, Solaris 2.6 & 2.8– Have created working binary for Solaris 2.7 (telerobotics sparcs)– Currently porting code to g++ under Linux
• CLARAty Repository– Have not checked in yet– Holding on paperwork and porting code
• Model information– Have ASPEN and TDL models based on FY01 scenario
• Work for both R7 & R8 with small parameter changes• Currently maintain two separate models for ASPEN & TDL
– Model(s) primarily reason about traverses, comm and science activities, and power and memory resources
– DL designed to receives updates from FL for:• Position, memory & energy • Currently extending to receive map updates
– Model(s) will need to be extended for additional scenarios and/or as new rover components are added or tested (e.g., arm, mast, comm)
• System source code may require extensions as well (e.g., optimization)
22
Documentation
• Some documentation exists on CLARAty web page– http://claraty/Development/DL%20Documentation/index.html
– Will be extending this to have step-by-step instructions for running FY01 (and future) scenarios in simulation and on rovers
• ASPEN/CASPER documentation– http://www-aig.jpl.nasa.gov/public/planning/aspen/
– http://www-aig.jpl.nasa.gov/public/planning/casper/
– ASPEN User’s Manual can be found at:• http://www-aig.jpl.nasa.gov/public/planning/aspen/usersguide.pdf
• TDL documentation– http://www-2.cs.cmu.edu/~tdl/
– TDL Quick Reference Manual can be found at:• http://www-2.cs.cmu.edu/~tdl/tdl.html