Title: CLARAty: Coupled Layer Architecture for Robotic Autonomy
1CLARAty Coupled Layer Architecture for Robotic
Autonomy
Issa A.D. Nesnas Ames Research Center Carnegie
Mellon University Jet Propulsion
Laboratory University of Minnesota
(FY03) CLARAty Workshop - January 13,
2003 Sponsors Mars Technology
Program Intelligent Systems Program
2Presentation Overview
- Architecture Overview
- Challenges of Interoperability
- Software Implementation and Status
- CLARAty testbed
- Selected Examples
- Motion Control
- Locomotion
- Navigation
- Summary
3Background and Overview
4What is CLARAty?
- CLARAty is a unified and reusable software that
provides robotic functionality and simplifies the
integration of new technologies on robotic
platforms
A research tool for technology development and
maturation
5CLARAty Development Team
- NASA Ames Research Center
- Maria Bualat
- Clay Kunz
- Randy Sargent
- Anne Wright (lead)
- Carnegie Mellon University
- Kam Lasater
- Reid Simmons (lead)
- Chris Urmson
- David Wettergreen
- Andy Yang
- Jet Propulsion Laboratory CLARAty on FIDO Team
- Hrand Aghazarian (35/34)
- Terrance Huntsberger (35/34)
- Chris Leger (35/34)
- Matthew Robinson (35/34)
- CLARAty/Rocky8/Rocky7
- Max Bajracharya (34)
- Edward Barlow (34)
- Caroline Chouinard (36)
- Gene Chalfant (34)
- Hari Das (34)
- Tara Estlin (36)
- Dan Gaines (36)
- Mehran Gangianpour (34)
- Dan Helmick (34)
- Won Soo Kim (34)
- Michael Mossey (31)
- Issa A.D. Nesnas (34) (Task Manager)
- Ashitey Trebi-Ollennu (35/34)
- Richard Petras (34)
- Stergios Roumeliotis (Univ. of Minnesota)
- Kevin Watson (34)
Five Summer Students
http//claraty.jpl.nasa.gov/team
6Working Groups
- CLARAty Navigation Group (Lead Reid Simmons -
CMU) - CLARAty Vision Group (Lead Max Bajracharya -
JPL) - CLARAty Mobility Manipulation Group (Lead TBD
/ Hari Das (former)) - CLARAty Estimation Group (Lead Daniel Gaines -
JPL) - CLARAty Decision Layer Group (Lead Tara Estlin -
JPL) - CLARAty Test/Release Group (Lead TDB - JPL)
- CLARAty Rocky Rover Group (Lead Richard Petras -
JPL) - K9 CLARAty Developers (Lead Anne Wright - ARC)
- CLARAty Science Working Group (Lead Ted Roush
ARC/Meemong Lee - JPL) - CLARAty Simulation Group (Lead Gene Chalfant -
JPL) - http//claraty.jpl.nasa.gov/groups
7A Two-Layered Architecture
CLARAty Coupled Layer Architecture for
Robotic Autonomy
THE DECISION LAYER Declarative model-based
Mission and system constraintsGlobal planning
INTERFACE Access to various levelsCommanding
and updates
THE FUNCTIONAL LAYER Object-oriented
abstractionsAutonomous behaviorBasic system
functionality
Adaptation to a system
8Adapting to a Rover
Decision Layer
Rocky 8 Models/ Heuristics
Connector
Multi-level access Connector
Generic Functional Layer
Rocky 8 Specialized Classes Objects
Hardware Drivers
Simulation
9The Decision Layer
General Planners (e.g. CASPER)
Activity Database
Plans
Executives (e.g. TDL)
Rover Models
FL Interface
10ASPEN/CASPER System Architecture
Network Constraint Propagation
Activity, timeline, conflict info
Interface / GUI
Activity info Conflict status ADB
modifications (e.g., add, modify, delete)
Search commands
Activity Database
Goals Init State
Rover Model
Activities
Timeline updates
Activity permission updates
ASPEN
CASPER
Act, state resource updates
TDL Executive
11The Functional Layer
Adaptations
Rover
Behaviors
Simulation
Navigation
Rocky 8
FIDO
Manipulation
Path Planning
Locomotion
K9
Vision
Estimation
Science
Rocky 7
Transforms
Math
Sensor
Motion Control
Communication
Input/Output
Hardware Drivers
12Functional Layer Components
Rover
Instrument
CoordMotors
IO
Locomotor
Manipulator
Analog_IO
Digital_IO
Mast
WheeledLoc
LeggedLoc
RBLoc
Arm
VisualNavigator
VisualTracker
StereoGen
Connector
Motor
Socket
Camera
BBMotor
ControlledMotor
FeatureDetector
Correlator
SocketMsg
Specialized Data Structures
Location
Behavior
State
Path
ColorImage
Image
Camera Image
HTrans
Resource
Waypoint
General Purpose Data Structures
Array_2D
Database
Bit
LinkedList
Matrix
String
Container
Pixel
Vector
Location
Point
Standard Template Library
13Top Level Abstractions
Rover
Rover_Impl
Locomotor
Pose Estimator
Navigator
Sim_Rover
R7_Rover
R8_Rover
Mapper
Connector
Path Planner
Static or Object Owned
R8_Locomotor
Camera x N
R8_Power
Power System
D Planner
Gestalt_Nav
Optional
R8_Mast
Mast
R8_Arm
Arm
R8_Camera
14Architectural Traverse Example
Decision Layer
Commanding and State Updates
Rover
Path Information
K9 Rover
Navigator
Gestalt Navigator
Asynchronous e.g. Rate Set at 5 Hz
Global Cost Func
Path Planner
D Path Planner
Mapper
Asynchronous e.g. Rate Set at 8 Hz
Locomotor
Grid Mapper
K9_Locomotor
Asynchronous
Terrain Sensor
Pose Estimator
Stereo Engine
EKF Pose Estimator
Stereo Processor
JPL Stereo
Synchronous/or Asynchronous e.g. Rate Set at
10Hz used by other activities
Stereo Camera
Camera R
Camera L
15Architectural Traverse Example
Decision Layer
Commanding and State Updates
Rover
Path Information
K9 Rover
Navigator
R7/Soj Navigator
Asynchronous e.g. Rate Set at 5 Hz
Path Planner
Tangent Graph
Mapper
Asynchronous e.g. Rate Set at 8 Hz
Locomotor
Obstacle Mapper
K9_Locomotor
Asynchronous
Terrain Sensor
Pose Estimator
Stereo Engine
EKF Pose Estimator
Stereo Processor
JPL Stereo
Synchronous/or Asynchronous e.g. Rate Set at
10Hz used by other activities
Stereo Camera
Camera R
Camera L
16Navigation Architecture
Navigator
interface
Locomotor
1
Navigator Callback
1
1
1
0..
1
interface
State Estimator
Action Selector
Waypoint
1
1
Vehicle Model
Map Based Selector
Fuzzy Logic Selector
Rover Bug Selector
17Architectural Components
- Data Structure Components (DSC)
- Array, Vector, Matrix, Map, Container,
LinkedList, Bit - Image, Message, Resource
- Generic Physical Components (GPC)
- Locomotor, Arm, Mast, Spectrometer,
- Specialized Physical Components (SPC)
- K9_Locomotor, K9_Arm, R8_Mast, FIDO_Motor,
- Generic Functional Components (GFC)
- ObjectFinder, LayerDetector, VisualNavigator,
StereoProcessor, Localizer - Specialized Functional Components (SFC)
18Architectural Components Impl
- Defining base abstract classes for the generic
types - DSC - abstract Data_Obj class
- GPC- Device class
- GFC - Behavior class
- Additional core classes
- Template Mz for measurement
- Template Es for estimated values
- Template State for state handling
19Guiding Principles
- Use domain knowledge to guide design
- Make all assumptions explicit
- Use abstraction layers to help master complexity
- Use information hiding to protect implementation
variability - Use interfaces and documentation to define
behavior - Avoid ineffective over-generalization
- Encapsulate system specific runtime models
- Capabilities vary considerably across platforms
- Hardware and hence runtime models vary across
systems - Need for both cooperative and pre-emptive
scheduling - Least common denominator solutions are
unacceptable in hardware/firmware/software
interactions
20On Generic Algorithms
- Technologies that are generic by design should
not be constrained by the software architecture
implementation - Non-generic technologies should be accommodated
on the appropriate platforms - Example (Generic) if you are working in
navigation, you would not care about H/W
architecture difference among different rovers - Example (Specific) if you are doing
wheel/terrain interaction research, you might
require specific hardware which one of the
vehicles would support
21Software Implementation Status
22Software Development Process
AFS Backbone
Authentication
...
JPL
UW
ARC
CMU
Repository
Repository
CLARAty
VxWorks
K9
ATRV
3rd Party
Releases
Web
Repository
Some CLARAty Statistics 170 Modules (reusable
entity) 31 Packages (module grps) 3 rovers
250,000 lines of C code Java/scripts/ and
models
Rocky 8
FIDO
Rocky 7
Benchtops
Benchtops
Benchtops
K9
23Infrastructure Platform Support
- Object-oriented Architecture and Design Patterns
- C Implementation (with some Java)
- AFS backbone
- YaM for collaborative distributed development
environment - ACE for OS independence
- Qt for Graphics Display
- Operating Systems Architectures
24Levels of Software Integration
- Level I - Encapsulated
- Uses CLARAty components to interact with rover
- Does not support a CLARAty API
- Runs on at least one robot platform
- Level II - Encapsulated Integrated
- Conforms to a generic CLARAty API (or parent
class) - Level II - Integrated
- Has no unsupported 3rd party dependencies
- Runs on all applicable rover platforms
- Level III - Refactored and Reviewed
- Software reviewed by committee to ensure
internal/external consistency - Uses all applicable CLARAty classes
- Internally conforms to CLARAty conventions and
coding standards - Level - Reused
- Re-used by other modules in CLARAty - dependent
module - Provides access to all internal data products
25Challenges in Interoperability
26Currently Supported Platforms
K9
Linux
x86
Rocky 8
Rocky 7
Ames
VxWorks
x86
VxWorks
ppc
JPL
JPL
FIDO
FIDO
ROAMS
ATRV
x86
VxWorks
Linux
Linux
Solaris
x86
JPL
CMU
JPL
27Distributed Hardware Architecture
Sun Sensor
1394 Bus
RS232 Serial
Compact PCI
IMU
x86 Arch Wireless ethernet 1394 FireWire I2C Bus
Rocky 8
K9
- Rocky Widgets
- Single Axis Controllers
- Current Sensing
- Digital I/O
- Analog I/O
I2C / Serial Bus
- K9 Controllers
- PIC Servos
- Current Sensing
- Digital Analog I/O
Potentiometers
Actuator/Encoders
28Custom Architecture/Variability
Gyros
Accels
Video Switcher
VME Arch
AIO
m68k Arch Framegrabbers Digital I/O Analog
I/O Wireless ethernet
AIO
Rocky 7
Parallel Custom Interface MUX/Handshaking
Potentiometers
PID Controllers
Actuator/Encoders
29Centralized Hardware Mapped Architecture
Video Switcher
RS232 Serial
PC104
IMU
x86 Arch Framegrabbers Digital I/O Analog
I/O Wireless ethernet
Fido
PID Control in Software
Potentiometers
Actuator/Encoders
30Selected Examples
31Examples of CLARAty Reusability
ControlledMotor
Mz
Controlled_Motor_Impl
Linear_Axis
Joint
Non-Resuable Layer
Fido_Motor
R7_Motor
R8_Motor
Sim_Motor
Trajectory
PID Controller
Counter
HCTL_Chip
R7_MC_Board
MSI P460
Trajectory_Generator
Widget_Motor
DIO
MSI P430
LM629_Chip
ResuableHW reusable Non-reusable
Analog Out
Analog In
Widget_Board
MSI P430
MSI P415
32Code Reusability
33Capabilities of Wheel Locomotor
- Type of maneuvers
- Straight line motions (fwd / bkwd)
- Crab maneuvers
- Arc maneuvers
- Arc crab maneuvers
- Rotate-in-place maneuvers (arc turn r0)
- Driving Operation
- Non-blocking drive commands
- Multi-threaded access to the Wheel_Locomotor
class e.g. one task can use Wheel_Locomotor for
driving while the other for position queries - Querying capabilities during all modes of
operation. Examples include position updates and
state queries - Built-in rudimentary pose estimation that assumes
vehicle follows commanded motion
34Generic Reusable Algorithms
- Wheeled Locomotion works for Rocky 8, Rocky 7,
Fido, K9, ...
(f) Steerable Axle (e.g.Hyperion)
35Example collaborative development for locomotor
Version 2.0
Version 1.0
- Generalized design for wheeled locomotors
- Full and partially steerable vehicle
- Used generic motor classes
- Implements fixed axle model
- Developed continuous driving
- Adapted to Rocky 8, Rocky 7, and Sim
- Designed for Rocky 7
- Used Motor class
- Separated wheel control from locomotion
- Built-in pose estimation
Redesign/ mature
JPL - 1998
JPL - 2001
Version 3.0
Redesign/ mature
Version 4.0
Add
- Separated model from control
- Add separate locomotor state
- Add concept of wheel andsteerable wheel, Drive
Cmd, Drive Sequence - Adapt to ATRV, Sim, Rocky 7, Rocky 8
- Use device and telemetryinfrastructureAdd
adaptation to K9
FutureARC - 2003
CMU - 2002
36Code Resuability Results
Analysis of amount of resuable code across
implementations
37CLARAty Status and Future Work
38Base Package
- Developed Generic Physical Component Base classes
- Math and Data Structure modules
- Merging array/matrix between ARC/JPL. Added
support for sub-arrays STL iterators - Bits and I/O modules (JPL)
- New implementation of bits, DIO, AIO - more
consistent, reentrant efficient - Telemetry module (ARC)
- Added telemetry modules to represent data and
parameter sets, handles general
serialization/deserialization, provides
multi-threaded clients, increases efficiency - Device module (ARC)
- Provide base classes for all devices such as
cameras, arms, masts, locomotors, etc. Uses
telemetry classes and provides generic interfaces
for accessing telemetry - Power System module (ARC)
- Provides information on devices such as power
sources, batteries, and battery chargers.
Implemented specializations for K9 power hardware - Converge implementations and adapt for all
platforms - Add Mz, Es, and State logging capabilities
39Locomotion Package
Continuous Driving and Separated Model from
Control
- Developed algorithms for partially-steered and
fully-steered vehicles - Developed continuous driving capability (JPL)
- Demonstrated on Rocky8 Rocky7, and FIDO (JPL)
- Third generation redesign (CMU)
- Separated locomotor model from control
- Added wheels, drive cmds and sequences.
- Adapting R8, R7, ATRV, FIDO, and K9
- Tested on ATRV, R8, R7, ROAMS
- Converge with Device and refine APIand provide
models for estimation - Add ATRV adaptation to repository
(c) Steerable Axle (e.g.Hyperion)
40Vision Package
Developed generic Image and Camera infrastructure
- Developed generic infrastructure for vision
- Generic Camera, Stereo Camera, Camera Models,
Image, Image operations (e.g. rectification, edge
and corner detection), Image I/O, and Image
transport - Provided wrappers for vision algorithms
- JPL Stereo, CAHVOR models, ARC Stereo, SVS
Stereo, SLOG tracker - Adapted package to various rovers
- Rocky 8, K9, FIDO, Rocky 7 are currently using
the same vision infrastucture - Worked with Machine Vision Group to integrate
visual odometry - Worked with RMSA team, Olson, Roush, M. Lee
- Enhance operations/functionality for target
tracking and stereovision - Integration of Wide-baseline Stereo (U.
Washington) - Integration of Bundle Adjustment Techniques (JPL
Ohio State)
41Estimation Package
3DOF FIDO EKF integrated and tested in CLARAty
- Completed and tested FIDO-based EKF port to
CLARAty (JPL) - Two tier Kalman Filter
- Estimating heading (IMU odometry), x, and y
(odometry) - Created second generation design for the
Estimator module (JPL Univ. of Minnesota) - Handle non-EKF based estimators
- Designed to better integrate with Locomotor and
other model infrastructure - Assume filter primary functions are to propagate
state and update measurements
- Implement Framework for more general estimation
algorithm(6DOF) - Integrate FIDO/R7 sun sensing algorithms
42Navigation Mapper Package
Developed Generic Navigation Infrastructure
- New modular design for the Navigator (CMU)
- Based on generic action-selector - can be adapted
to support navigation technologies - Specialized action selector to Map-based selector
- Tightly integrated local and global cost
functions (D) - Navigator interfaces with Locomotor, Location
Estimator, and Terrain Map generator. - Refactored Gestalt to separate terrain evaluation
from action selection (JPL) - Developed infrastructure to process multi-tiered
panoramic images for terrain evaluation (JPL) - Acquired complete 3-D map of Mars Yard
- Integrate two navigation algorithms to exercise
navigation framework
43Manipulation Package
Dexter Manipulation platform now part of CLARAty
testbed
- Resurrected dexter platform and made part of
CLARAty testbed (JPL) - Upgraded manipulation modules to support
acquisition of multi-tiered panoramic images (JPL)
- Converge manipulation software between JPL and
ARC - Adapt to all manipulators (K9, R7 arm/mast,
FIDO/Rocky 8/Dexter arm/mast)
Dexter
44Simulation Package
CLARAty Locomotor talking to ROAMS via motor cmds
- Developed adaptation of the CLARAty controlled
motor classes to interface with ROAMS simulation
(JPL) - Tested Locomotor sending commands to wheels which
in, turn, send commands to controlled motors
(JPL) - Specialized Sim_Motors turn commands into streams
for socket-based communication - Drove Simulated Rocky 8 rover with new locomotor
(CMU) - Interface between DL/FL (rover-level and ROAMS)
is also available
- Provide adaptations for inertial sensors, I/Os,
cameras, and science instruments - Test functionality such as pose estimation,
navigation and planning using ROAMS. - Provide API for integration with MSF
45Science Package
Infrastructure for Spectrometer and terrain
analysis
- Interactions with T. Roushs team for integration
of science analysis and spectrometer
functionality - Analysis code checked in the repository
- Carbonate Analysis
- Edge Layer detection
- Interactions with Meemong Lees for interface
with science instruments, analysis, and
simulation. Code available in repository - Calibrated Reflectance Spectrum
- Uncalibrated Spectrum
- Spectrometer
- Provide adaptations to integrate with science
instrument simulator and possibly real
spectrometers - Continue integration of science analysis
46Communication Package
Interface between DLs and FL
- Decision Layer/Functional Layer communication
module - K9 (ITAR-free) communication interface
- Communication mechanism between adaptations of
CLARAty classes and ROAMS - Uses CLARAty socket module
- Provide easy and automated means for transporting
CLARAty data structures (Data_Obj serialization
and deserialization) - Modularize communication components and improve
reuse - Complete study regarding use of TAO for DL/FL
interaction
47Decision Layer Package
Decision Layer integrated D Path Planner
- Integrated D Path Planner with Decision Layer
- Developed infrastructure for sharing terrain map
with FL - Migrating a version of CLEaR (CASPER/TDL - Linux)
into CLARAty repository. Now available are - TCM - Task Control Management used by TDL
- Tangent Graph Path Planner (as used by DL)
- D Path Planner (as used by DL)
- TDL and Java utilities
- Unifying DL dependencies to use the CLARAty
modules (e.g. path planners - tangent graph, D),
etc.
- Converge more models between DL and FL
- Interface with WITS and enhance interface with FL
- Integrate another Decision Layer with Functional
Layer (pending)
48CLARAty Testbed
49CLARAty Testbed (1/2)
Rocky 8 Benchtop
Dexter ManipulatorsRocky 7 Benchtop
FIDO Benchtop
50CLARAty Testbed (2/2)
- 5 cPCI embedded targets (x86, ppc)
- 2 Linux and 5 Solaris hosts/targets
- AFS VxWorks installations (Tornado I, II, II.2,
x86, ppc) - Mockups for Rocky 8, FIDO, and Rocky 7
- Remotely accessible to CLARAty developers users
- Web-based target status and control
- Small lab sandbox built for indoor testing
- Several remote and local users exercising testbed
(MDS, CMU, ARC, JPL) - Online sign up for target/rover usage
- http//claraty.jpl.nasa.gov/testbed
51Summary
- CLARAty provides a repository of reusable
software components at various abstraction levels - It attempts at capturing well-known robot
technologies in a basic framework for researchers - It publishes the behavior and interfaces of its
components - It allows researchers to integrate novel
technologies at different levels of the
architecture - It is a collaborative effort within the robotics
community - It will run on multiple heterogeneous robots
52Acknowledgements
- CLARAty Team (multi-center)
- Jet Propulsion Laboratory
- ROAMS/Darts Team
- CLEaR Team
- Instrument Simulation Team
- Machine Vision Team
- FIDO Team
- Ames Research Center
- K9 Team
- Carnegie Mellon University
53Thank you for your Attention
54CLARAty Software Packages
55Decision Layer Package
Decision Layer Package
- General Planners
- Basic planner infrastructure
- Activity Database
- Generic Activity database structure
- Planner Implementations
- CASPER
- ASPEN
- Interfaces
- Functional Layer Interface
- ...
- Executives
- TCM - Task Control Management used by TDL
- TDL - Task Description Language
...
56Base Package
Base Package
- Share
- Common Definitions
- Math Constants
- Function Operators
- Display Functions
- Frame
- Coordinate Frames
- Locations (Poses)
- Numeric Solvers
- Newton Rhapson
- Nedler-Mede
- GPC GFC
- Device
- Telemetry
- Periodic Objects
- Array
- 1D Arrays
- 2D Arrays
- Sub Arrays
- Point
- 2-D Points
- 3-D Points
- Matrix
- 1D matrices (math)
- 2D matrices (math)
- Fixed size matrices
- Rotation matrices
- State
- State data logging
- Database
Greyed Out in progress Orange
non-JPL/non-CLARAty development Green
JPL-non-CLARAty development
- Transforms
- Homogeneous Transforms
- Quaternions
...
57Input Output Package
Input Output Package
- I/O
- I/O
- Digital I/O
- Composite Digital I/O
- Analog Input
- Analog Output
- Bits
- Bits data structure
- Bit manipulation/masking
58Motion Control Package
Motion Control Package
- Motor
- Open Loop Motors
- Controlled Motors
- Trajectory
- Trajectories
- Trajectory Generators
- Continuous Profiling
- Coordinated Systems
- Motor Coordinators
...
59Locomotion Package
Locomotion Package
- Wheel Locomotion
- Wheels/Steerable Wheels
- Locomotor models
- Locomotor State
- Drive Commands
- Motion Sequences
- 2-D Wheel Locomotion algorithms
- 3-D Rocker Bogie Locomotion
- Continuous driving modules
- Legged Locomotion
- Legged Locomotors
- Hybrid Locomotion
- Wheel/Legged Locomotors
...
60Vision Package
Vision Package
- Camera
- Framegrabbers
- Cameras (single, multi)
- Stereo Pairs
- Camera models
- Basic Image Processing
- 2-D Image processing
- Filtering smoothing
- Edge detection
- Blob detection
- Corner feature detection
- Stereo Implementations
- JPL Stereo engine
- SRI Stereo engine (commercial)
- Ames Stereo engine
- Data Structures
- Images
- Image Pyramids
- Image I/O
- Color Images
- Camera Images
- Point Clouds
- Meshes
- Visual Tracking
- 2-D Feature extraction
- 3-D Feature extraction
- Affine Tracking
- 2-D Tracking algorithms
- Shaped based tracking
- Combined 2-D 3-D tracking
- Visual odometry
- Stereo Vision
- StereoProcessor
- StereoEngine
...
61Estimation Package
Estimation Package
- Data Structure
- Measurements
- System models
- Generic Kalman Filter
- Kalman Filter Algorithms
- 3 DOF EKF pose estimation
- 6 DOF EKF pose estimation
- Pose Estimators
- Wheel-based Pose Estimators
- Legged-based Pose Estimators
...
62Navigation Package
Navigation Package
- Local Navigators
- Action Selectors
- Mapped-base Action Selector
- Waypoints
- Generic local navigator structure
- Path Planner
- Generic path planner structure
- Navigation Implementations
- MER/GESTALT Navigator
- Morphin (CMU) Navigator
- Fuzzy Navigator
...
63Manipulation Package
Manipulation Package
- Manipulators
- Joints
- Links
- Generic Manipulators
- Generalized Fwd Kinematics
- Generalized Inverse Kinematics
- Limited DOF manipulators
- Redundant manipulators
- End effectors
- Sensor-based Manipulation
- Stereovision based manipulation
- Vision/tactile manipulation
...
64Simulation Package
Simulation Package
- Simulator Connectors
- Interfaces to ROAMS simulation
- Rover Sim
- Navigator Sim
- Locomotor Sim
- Motor Sim
- I/O Sim
- IMU Sim
- Simulation Implementations
- ROAMS Rover Simulation (JPL)
...
65Sensor Package
Sensor Package
- IMUs
- Generic inertial measurement unit infrastructure
- Tilt Sensors
- Generic Electronic Tilt sensors
- Generic Accelerometers
- Rate Sensors
- Generic Gyros structures
...
66Science Package
Science Package
- Spectrometers
- Generic Spectra classes
- Calibrated Reflectance Spectrum
- Uncalibrated Spectrum
- Generic Spectrometer classes
- Analysis Algorithms
- Carbonate Analyzer
- Edge Layer detector
- Science Cameras
- Special science cameras (inherits for Cameras of
Vision Package)
...
67Communication Package
Communication Package
- Ethernet
- Socket Communication
- TCP Comm
- UDP Comm
- Messages
- Object serialization
- Socket messages
- Connector
- Client/server comm.
- Executives
...
68Path Planning Package
Path Planning Package
- Global Path Planners
- Generic path planner structure
- Path Planner Implementations
- D Path Planner (CMU)
- Tangent Graph Path Planner (JPL)
- ISE Path Planner (CMU)
...
69Behavior Package
Behavior Package
- Behaviors
- Basic rover behaviors
- Behavior Coordination
- Arbiters
- Behavior combinators
...
70Hardware Drivers
Hardware Drivers
Motor Controllers
I/O Boards/Chips
Custom Boards
VPAR10 Digital I/O Board
HCTL 1100 Motor Controller
Widget Board Motion Control
Widget Board Firmware
Sensoray S720 Digital I/O Board
LM 629 Motor Controller
...
VADC20 Analog Input Board
...
Framegrabbers/Vision
MAX186 Analog to Digital Conv.
Imagenation CX100 Framegrabber
MAX528 Digital to Analog Conv.
Imagenation PX610 Framegrabber
Other
1394 Camera Driver
...
VISA Vme to ISA Converter
I2C Master Controller
PCI Controller
...
Crossbow DMU Interial Measurement Unit
71Rocky 8 Package
Rocky 8 Package
- Rocky 8 Specialized Physical Components
- Rocky 8 Motors
- Rocky 8 Cameras
- Rocky 8 IMUs
- Rocky 8 Hardware Map
- Rocky 8 Digital I/O
- Rocky 8 Analog I/O
- Rocky 8 Specialized Functional Components
- R8 Locomotor
- R8 Contrained Locomotor
- R8 Navigator
- R8 Rover
...
72K9 Package
K9 Package
- K9 Specialized Physical Components
- K9 Motors
- K9 Cameras
- K9 IMUs
- K9 Hardware Map
- K9 Digital I/O
- K9 Analog I/O
- K9 Locomotor
- K9 Contrained Locomotor
- K9 Rover
- K9 Specialized Functional Components
- K9 Navigator
...
73Rocky 7 Package
Rocky 7 Package
- Rocky 7 Specialized Physical Components
- Rocky 7 Motors
- Rocky 7 Cameras
- Rocky 7 Accels
- Rocky 7 Gyros
- Rocky 7 Hardware Map
- Rocky 7 Digital I/O
- Rocky 7 Analog I/O
- Rocky 7 Specialized Functional Components
- R7 Locomotor
- R7 Contrained Locomotor
- R7 Navigator
- R7 Rover
...
74FIDO Package
FIDO Package
- FIDO Specialized Physical Components
- FIDO Motors
- FIDO Cameras
- FIDO Accels
- FIDO Gyros
- FIDO Hardware Map
- FIDO Digital I/O
- FIDO Analog I/O
- FIDO Specialized Functional Components
- FIDO Locomotor
- FIDO Contrained Locomotor
- FIDO Navigator
- FIDO Rover
...
75Map Based Selector
- Implements Morphin/D Gestalt type algorithms
- Enables easy exchange of terrain evaluation and
cost functions - Combine cost functions through arbitration or
summation
76GESTALT Navigator on Rocky 8
77Background Objectives
- Why are we doing this work?
- To capture and preserve robotics expertise from
JPL and other centers - To provide a framework for future NASA rover
technology development and integration - To reduce the cost of integrating new
technologies - To operate various robots from a unified
framework - To eliminate cost of redeveloping basic robotic
infrastructure
78Goals
- Capture and integrate a wide range of
technologies - Leverage existing tools
- Leverage experience and tools of the larger
software development community - Apply appropriate design patterns to the domain
- Provide an infrastructure that enables rapid
robotic development - Capture experience of technologists
implementations
79How?
- Study software implementation of various robots
- Study interactions of elements in various systems
- Identify reusable/recurring elements in robotic
systems - Identify implicit assumptions made
- Project potential advances to these elements
- Design a generic/flexible implementation of these
elements - Adapt to a number of robotic systems
- Test and study the limitations of the design
- Go back to design and iterate
- Modify/extend/redesign to address limitations and
variability across systems - Your generic base is reusable
80Approach
- Domain knowledge guides design
- Layers of abstraction help master complexity
- Abstractions also provide a classification of
various technology elements - Information hiding protects implementation
variability - Small modular components are more reusable than
monolithic blocks - Interfaces define behavior of various elements
81Things to be aware of
- Over-generalizing leads to ineffectiveness
- More general - less functionality - more work
for results - Number of abstractions vs. complex hierarchies
- Modular elements with strongly typed interfaces
- Algorithm generality influences abstraction
design - Runtime models vary across systems
- Challenges in combining hardware/firmware/software
architectures in most effective manner - Need for both cooperative and pre-emptive
scheduling
82Component Analysis
Generic Physical Comp
Public
Object Services
Creates
Links to
Sub-object
Queries
Objects
HW Object
Members
State Handler
Internal Implementation
Local Estimation
State Machines
Private
Estimator
- optional link
83Relationships with Other Components
CoordMotionSystem
_position Vector _velocity double _acceleration
double
Functionality encoded within the objects
change_position(Location loc) change_velocity(dou
ble vel) set_position(Location
loc) set_velocity(double vel) get_position() get_v
elocity() _compute_angles()
Provides trajectory planning based on a selection
criteria possibly by the Decision Layer
Locomotor
Manipulator
Leg
Wheeled_Locomotor
Wheel
Legged_Locomotor
Steerable Wheel
84R8 Specific Rover Implementation
Non reusable Code
Reusable Code
R8
CoordMotionSystem
Implements general fwd inv. kinematics joint
ctrl
Locomotor
Manipulator
R8_Rover
Mast
LeggedLoc
Wheeled Locomotor
Arm
R8_Arm
R8_Arm
R8_Mast
R8_Locomotor
R8_Mast
R8_Locomotor
- Specialized inv. Kinematics (overrides default)
- Attaches proper motors
- Attaches proper cameras for mast
- Adds filter wheel
- Attaches proper motors
- Restricts Steering to 2 wheels
Motor
BBMotor
ControlledMotor
IO
Analog_IO
Digital_IO
R8_Motor
Widget Board
Trajectory
Timers
Widget AIO
Widget DIO
Trajectory_Generator
HCTL 1100 Chip
Widget Motor
85R7 Specific Rover Implementation
Non reusable Code
Reusable Code
R7
CoordMotionSystem
Implements general fwd inv. kinematics joint
ctrl
Locomotor
Manipulator
R7_Rover
Mast
WheeledLoc
LeggedLoc
RBLoc
Arm
R7_Arm
R7_Arm
R7_Mast
R7_Locomotor
R7_Mast
R7_Locomotor
- Specialized inv. Kinematics (overrides default)
- Attaches proper motors
- Attaches proper cameras for mast
- Adds filter wheel
- Attaches proper motors
- Restricts Steering to 2 wheels
Motor
BBMotor
ControlledMotor
LM629Motor
IO
LM629Chip
Analog_IO
Digital_IO
VPAR10Board
Device Drivers
86Example Generic Controlled Motor
- Define generic capabilities independent of
hardware - Provide implementation for generic interfaces to
the best capabilities of hardware - Provide software simulation where hardware
support is lacking - Adapt functionality and interface to particular
hardware by specialization inheritance - Motor Example public interface command groups
- Initialization and Setup
- Motion and Trajectory
- Queries
- Monitors Diagnostics
S- Profile
Velocity
Time
Instantaneous Profile Change
87Locomotor Design
Original Design
New Design
88Vehicle State
- Contains 6DOF pose
- Mechanism state contains variable vehicle
parameters - Mechanism information encapsulated in a separate
class (bridging) - Potential for dynamical state or other descendant
state classes
89Estimation Package
90Navigator
- Public interface for navigation capability
- Provides a bridge between evaluation and
execution - Manages waypoints
- Multi-threaded
- Interface available while executing a task
- Callback provides hook to trigger non-navigation
events - Periodic science on the fly
91Action Selector
- Navigation algorithms provide this interface
- Used to determine the next motion the vehicle
should take
92Maps
- Generic base class extends matrix
- Iterators allow movement through maps in
arbitrary directions
93CLARAty Level I Milestone
DECISION LAYER
D Path Planner
Terrain Map from Laser
Path
Connector
FUNCTIONAL LAYER
Rover
R7_Rover
R8_Rover
Navigator
D Star
FUNCTIONAL LAYER
R7_Locomotor
JPL Stereo
Position Estimator
Stereo Engine
Locomotor
R8_Locomotor
Terrain Map from Laser
CameraPX610
Camera
Estimator
Wheel
Locomotor Model
Camera1394
Kalman Filter
Camera_Image
Motor
R7_Motor
R8_Motor
IMU
Widget Board
Nesnas/JPL
94Publications Website
- http//claraty.jpl.nasa.gov
- T. Estlin, F. Fisher, D. Gaines, C. Chouinard, S.
Schaffer, and I. Nesnas, Continuous Planning and
Execution for an Autonomous Rover, To appear in
the Proceedings of the Third International
Workshop on Planning and Scheduling for Space,
Houston, TX, Oct 2002 - I.A.D. Nesnas, CLARAty - An Architecture for
Reusable Robotic Software, CSMISS IT Spotlight
Series, June 19, 2002 - I.A.D. Nesnas, R. Volpe, T. Estlin, H. Das, R.
Petras D. Mutz, "Toward Developing Reusable
Software Components for Robotic Applications"
Proceedings of the International Conference on
Intelligent Robots and Systems (IROS), Maui
Hawaii, Oct. 29 - Nov. 3 2001. pdf (8 pages, 2MB)
- T. Estlin, R. Volpe, I.A.D. Nesnas, D. Mutz, F.
Fisher, B. Engelhardt, S. Chien, "Decision-Making
in a Robotic Architecture for Autonomy."
Proceedings of 6th International Symposium on
Artificial Intelligence, Robotics, and Automation
in Space (i-SAIRAS), Montreal Canada, June 18-21
2001. pdf (8 pages, 72KB) - R. Volpe, I.A.D. Nesnas, T. Estlin, D. Mutz, R.
Petras, H. Das, "The CLARAty Architecture for
Robotic Autonomy." Proceedings of the 2001 IEEE
Aerospace Conference, Big Sky Montana, March
10-17 2001. pdf (12 pages, 470 KB) - R. Volpe, I.A.D. Nesnas, T. Estlin, D. Mutz, R.
Petras, H. Das, "CLARAty Coupled Layer
Architecture for Robotic Autonomy." JPL Technical
Report D-19975, Dec 2000. pdf (116 pages, 904 KB)
95FY03 Plans
96CLARAty Collaborations (1/2)
- JPL - MDS Team
- Participated with MDS team on CLARAty/MDS
infusion task - Supported MDS by upgrading Rocky 7 to MSL-like
hardware and provided working version of CLARAty
software for migration to MDS - JPL - ROAMS Team (A. Jain)
- Close collaborations for the integration of the
Functional and Decision Layers to the ROAM rover
simulation - JPL - CLEaR Team (F. Fisher)
- Provided an instantiation of the CLARAty Decision
Layer, integrated, tested and debugged on Rocky 7
and Rocky 8 rovers - JPL - Instrument Simulation Team (M. Lee)
- Worked closely with instrument simulation team to
develop spectrometer and spectra infrastructure
for CLARAty.
97CLARAty Collaborations (2/2)
- RMSA Teams
- ARC - Science Analysis Team (T. Roush)
- Close interactions to support integration of
science analysis into the CLARAty environment. - JPL - Slope Navigation (L. Matthies)
- Collaboration for integration of visual odometry
on rover platforms - University of Washington (C. Olson R. Li)
- Close collaboration for integration of bundle
adjustment and wide baseline stereo - Carnegie Mellon University (A. Stentz)
- Integration of D path planner for long range
traverse - Ames Research Center (E. Bandari)
- Integration of visual tracking
- ALERT Team (former REE)
- Providing CLARAty communication and rover control
infra-structure to REE for a navigation
demonstration on Rocky 8
98CLARAty Collaborations (1/2)
- JPL - MDS Team
- Participated with MDS team on CLARAty/MDS
infusion task - Supported MDS by upgrading Rocky 7 to MSL-like
hardware and provided working version of CLARAty
software for migration to MDS - JPL - ROAMS Team (A. Jain)
- Close collaborations for the integration of the
Functional and Decision Layers to the ROAM rover
simulation - JPL - CLEaR Team (F. Fisher)
- Provided an instantiation of the CLARAty Decision
Layer, integrated, tested and debugged on Rocky 7
and Rocky 8 rovers - JPL - Instrument Simulation Team (M. Lee)
- Worked closely with instrument simulation team to
develop spectrometer and spectra infrastructure
for CLARAty.
99CLARAty Collaborations (2/2)
- RMSA Teams
- ARC - Science Analysis Team (T. Roush)
- Close interactions to support integration of
science analysis into the CLARAty environment. - JPL - Slope Navigation (L. Matthies)
- Collaboration for integration of visual odometry
on rover platforms - University of Washington (C. Olson R. Li)
- Close collaboration for integration of bundle
adjustment and wide baseline stereo - Carnegie Mellon University (A. Stentz)
- Integration of D path planner for long range
traverse - Ames Research Center (E. Bandari)
- Integration of visual tracking
- ALERT Team (former REE)
- Providing CLARAty communication and rover control
infra-structure to REE for a navigation
demonstration on Rocky 8