# Presentation: 430919

## CLARAty: Coupled Layer Architecture for Robotic Autonomy

- Issa A.D. Nesnas
- Jet Propulsion Laboratory
- October 16, 2001
- Mars Technology Program Year-End Review  FY01

## Presentation Overview

- Quad Chart
- Background and Overview
- Relevance to the missions
- CLARAty Team and Collaborators
- Level I & II Milestones
- Accomplishments
- Functional Layer Accomplishments - Examples on code reusability
- Decision  Layer Accomplishments – Multi-target planning scenario
- Video Demonstration of the milestones
- Future Plans
- Publications and website

- CLARAty FY01 Review- I.A.N.

- October 16, 2001

## CLARAty: Coupled Layer Architecture 

_**Objective**_
- 	Develop and implement a comprehensive control architecture for autonomous mobile robots and capture the state of the art of robotics and autonomy software in this framework.
_**Milestones – FY01 through FY03**_
- Prototype end-to-end, limited scenario, single-rover autonomous control under the new architecture.  Add infrastructure to Rocky 8 to support autonomous operations.
- Develop the full capabilities of a single-rover autonomous control under new architecture.
- Demonstrate the 2007 Mission Scenario using this software.** **

**Task Manager**
- Issa A.D. Nesnas, JPLnesnas@ jpl.nasa.gov, 818-354-9709
**Participants**
- JPL Autonomy and Control Section
- JPL Artificial Intelligence Section
- JPL Mechanical Systems Science & Tech. Dev. Section
- JPL Mission Data System
- NASA Ames Research Center
- Carnegie Mellon University
**Facilities**
- JPL Long-Range Science Rovers, Rocky 7 & 8
- ARC K9 rover
- JPL Mars Yard
*http://claraty.jpl.nasa.gov/*

***CLARAty: Coupled Layer Architecture ***
***for Robotic Autonomy***

**Schedule and Funding**

**427**
**3.0**

**Funding ($K)**
**Non-civil servants**

- Sophistcated mission-like scenarios on all rover prototypes

- Sophisticated rover functionality with enhanced decision capability

- Basic rover functionality integ-rated with decision capabilities

- Design CLARAty and implement path planning in it.

**FY 00**

**Activity**

**DECISION LAYER**

**FUNCTIONAL LAYER**

**FY 01**

**FY 02**

**FY 03**

**1350**
**6.0**

**2000**
**8.0?**

**2000**
**8.0?**

- CLARAty FY01 Review- I.A.N.

- October 16, 2001

## Background

- Different implementations of basic robotic and rover functionality exist across projects
- Technology implementations are not readily portable  across robotic systems (very costly to do)
- Specialized robot infrastructure software tend to be single-point solutions that are not reusable across projects
- Absence of basic robotic infrastructure for new projects with limited funding
- Lack of a generic framework for implementing novel generic algorithms - technology implementations often not preserved

- CLARAty FY01 Review- I.A.N.

- October 16, 2001

## What is CLARAty?

- CLARAty is a unified and *reusable* framework that provides base functionality and aims  at facilitating the integration of new technologies on various rovers and robotic platforms

- CLARAty FY01 Review- I.A.N.

- October 16, 2001

## High-level Requirements

- Capture robot-specific domain knowledge within the framework
- Provide Robotic Components that are:
- Reusable, easily reconfigurable, modular, extendible, mature, easy to use by non-experts, platform independent, testable, scalable, maintainable, efficient, easily integrated, well-defined, and well-documented

- CLARAty FY01 Review- I.A.N.

- October 16, 2001

## Approach

- Two-layer design: Functional Layer and Decision Layer
- Functional Layer provides basic functionality for a robotic system
- Decision Layer provides decision making capabilities such as planning and execution.
- Decision Layer sends commands to Functional Layer and receives periodic state and resource updates.
- Functional Layer uses an object-oriented component-based design
- Decision Layer uses declarative model-based design
- Both are implemented using C++
- Components are validated in simulation and on real robotic platforms

- CLARAty FY01 Review- I.A.N.

- October 16, 2001

## A Two-Layered Architecture

**        **CLARAty = Coupled Layer Architecture for Robotic Autonomy

- CLARAty FY01 Review- I.A.N.

- October 16, 2001

## Relevance to the Missions

- CLARAty is a technology infusion task
- Provides generic robotic infrastructure that can be adapted to various research and flight rovers in relatively short period of time
- Provides well-tested software that has been used by several researchers in the robotics community
- Makes rover research prototypes a viable platform for testing certain flight software (e.g. navigation)
- Provides a robust multi-platform infra-structure for testing autonomy software (e.g. ASPEN/CASPER)
- Provides a software infra-structure that is robust to changes in rover hardware designs

- CLARAty FY01 Review- I.A.N.

- October 16, 2001

## CLARAty Members & Collaborators

- Jet Propulsion Laboratory (CLARAty/Rocky8 Team)
- Edward Barlow (34)
- Caroline Chouinard (36)
- Hari Das (34)
- Tara Estlin (36)
- Dan Helmick (34)
- Stanley Lippman (Consultant)
- Darren Mutz (36)
- Issa A.D. Nesnas (34)
- Ashitey Trebi-Ollennu (35)
- Richard Petras (34)
- Paolo Pirjanian (35)
- Kevin Watson (34)
- Ames Research Center
- Anne Wright
- Mike Fair
- Clay Kunz
- Richard Washington

- Carnegie Mellon University
- Reid Simmons
- Chris Urmson

- CLEaR Team
- Forest Fisher
- Dan Gaines
- Steve Schaffer
- MER Team
- Mark Maimone
- ROAMS Team
- Abhi Jain
- Garett Sohl
- RE&E Team (Larry Matthies)
- Dan Katz
- Rober Tidsdale
- Won Soo Kim
- Paul Springer

- CLARAty FY01 Review- I.A.N.

- October 16, 2001

## Teaming and Collaborations

- JPL CLARAty/Rocky 8 Team:
- Developed basic infra-structure for Functional Layer
- Motion Control, Mobility and Locomotion, Position Estimation, Navigation, Rover Control, Behavior Control, Math and Transformations, Communications, Connectors, Vision, Manipulation, and Hardware Drivers
- Completed the Rocky 8 research rover for testing CLARAty software
- CLEaR & CLARAty Decision Layer Team:
- Provided an instantiation of the CLARAty Decision Layer, integrated, tested and debugged Level I milestone.
- MER Team
- Provided GESTALT navigation software
- Ames Research Center:
- Pro-active role in the design, test, and usage of the Functional Layer components.
- Close collaborations on the development and build infra-structure
- Provided adaptations of Functional Layer to K9 rover and K9 arm.

- CLARAty FY01 Review- I.A.N.

- October 16, 2001

## Teaming and Collaborations (2)

- Carnegie Mellon University:
- Exchanged design concepts for navigation package (contract was placed late in the fiscal year)
- ROAMS Team
- Close collaborations for the integration of the Functional and Decision Layers to the ROAM rover simulation
- Provided YaM development infra-structure for CLARAty
- REE Team
- Provided CLARAty communication and image transfer software infra-structure to REE to help future collaborations on an REE/Rocky 8 navigation demonstration
- MDS Team
- Participated in weekly meetings (total 3 months) with MDS team for technical information exchange.
- Others
- Continuous interactions with individuals interested in learning more about CLARAty and how to integrate their technologies onto a JPL/Ames rover prototypes

- CLARAty FY01 Review- I.A.N.

- October 16, 2001

## Level 1:  Prototype Functional and Decision Layers interacting with a real rover.
Level 2:  Prototype Functional Layer running on Rocky 8 and K9.
Use of Functional Layer on Rocky 7 for IS program CLEaR demo.
Integration of CMU/MER navigation software.
Prototype of Resource Query infrastructure in cooperation with ARC.
Decision Layer interaction with ROAMS through simplified Functional Layer.

**Level 2:**  Prototype Functional Layer running on Rocky 8 and K9.
- Use of Functional Layer on Rocky 7 for IS program CLEaR demo.
- Integration of CMU/MER navigation software.
- Prototype of Resource Query infrastructure in cooperation with ARC.
- Decision Layer interaction with ROAMS through simplified Functional Layer.

- Milestones for FY01

- CLARAty FY01 Review- I.A.N.

- October 16, 2001

## Accomplishments

## Adapting to a Rover

- Hardware Drivers

- Generic
- Functional Layer

- Rocky 8
- Specialized
- Classes
- &
- Objects

- Connector

- Decision Layer
- (e.g. CASPER/TDL)

- Multi-level access Connector

- Rocky 8
- Models/
- Heuristics

- CLARAty FY01 Review- I.A.N.

- October 16, 2001

## Currently Supported Platforms

- Rocky 8

- K9 Rover

- Rocky 7

- SparcSol

- VxWorks

- Linux

- GNU C++

- SparcWorks CC

- Visual C++

- Motorola 68K

- Intel x86

- Rad 6000

- ARC

- JPL Robotics

- JPL AI

- CMU

**Rocky 8**

**K9**

**Rocky 7**

- ADL/PPC

- CLARAty FY01 Review- I.A.N.

- October 16, 2001

## The Functional Layer

- CLARAty FY01 Review- I.A.N.

- October 16, 2001

## Component Analysis

- Objects

- Members

*Generic Physical Comp*

- Estimator

- State Machines

- Object
- Services

*Creates*

***Private***

***Public***

*Links to*

- State Handler

- Sub-object

*Internal *
*Implementation*

- Local Estimation

- Queries

- HW Object

- - optional link

- CLARAty FY01 Review- I.A.N.

- October 16, 2001

## Adaptation Examples for Rocky 8 and Rocky 7

## Controlled Motor Adaptations 

- Controlled Motor Adaptations

*Controlled_Motor_Impl*

- ControlledMotor

- Linear_Axis

- Joint

- Non-Resuable Layer

- R8_Motor

- R7_Motor

- Fido_Motor

- Sim_Motor

- Trajectory

- Trajectory_Generator

- Mz<Type>

- HCTL_Chip

- LM629_Chip

- Widget_Board

- R7_MC_Board

- Widget_Motor

- PID_Servo

- CLARAty FY01 Review- I.A.N.

- October 16, 2001

## R8 Specific Rover Implementation

- Mast

- LeggedLoc

- Wheeled Locomotor

- Locomotor

- CoordMotionSystem

- Motor

- BBMotor

- ControlledMotor

- Analog_IO

- Digital_IO

- IO

- Manipulator

- Arm

- R8_Arm

- R8_Mast

- Implements general fwd &
- inv. kinematics & joint ctrl

- Specialized inv. Kinematics (overrides default)
- Attaches proper motors
- Attaches proper cameras for mast
- Adds filter wheel

- R8_Locomotor

- Attaches proper motors
- Restricts Steering to 2 wheels

- R8_Motor

- R8_Rover

- R8_Arm

- R8_Mast

- R8_Locomotor

***R8***

- Widget Board

- Widget AIO

- Widget DIO

- Widget Motor

- HCTL 1100 Chip

- Non reusable Code

- Reusable Code

- Trajectory

- Trajectory_Generator

- Timers

- CLARAty FY01 Review- I.A.N.

- October 16, 2001

## R7 Specific Rover Implementation

- Mast

- WheeledLoc

- LeggedLoc

- RBLoc

- Locomotor

- CoordMotionSystem

- Motor

- BBMotor

- ControlledMotor

- Analog_IO

- Digital_IO

- IO

- Manipulator

- Arm

- R7_Arm

- R7_Mast

- Implements general fwd &
- inv. kinematics & joint ctrl

- Specialized inv. Kinematics (overrides default)
- Attaches proper motors
- Attaches proper cameras for mast
- Adds filter wheel

- R7_Locomotor

- Attaches proper motors
- Restricts Steering to 2 wheels

- LM629Chip

- LM629Motor

- R7_Rover

- R7_Arm

- R7_Mast

- R7_Locomotor

***R7***

- Device Drivers

- VPAR10Board

- Non reusable Code

- Reusable Code

- CLARAty FY01 Review- I.A.N.

- October 16, 2001

## Code Reusability

**Controlled Motor Hierarchies for Rocky 8 and Rocky7**

**Rocky 8**

**Rocky 7**

- CLARAty FY01 Review- I.A.N.

- October 16, 2001

## Generic Technologies & 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
- Assumptions are made explicit

- CLARAty FY01 Review- I.A.N.

- October 16, 2001

## Generic Algorithms

**Wheeled Locomotor Hierarchy – works for Rocky 8, Rocky 7, Fido, K9, and much more**

- CLARAty FY01 Review- I.A.N.

- October 16, 2001

## Capabilities of Wheel Locomotor

**Wheel_Locomotor Example**
- Type of maneuvers:
- Straight line motion in both forward and backward directions
- Crab maneuvers – i.e. straight line motions in any angular direction
- Arc maneuvers about any point in the plane (includes both forward/backwards arcs as well as crab arcs)
- Rotate-in-place maneuvers which are a subset of the Arc maneuvers with zero arclengths
- 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

- CLARAty FY01 Review- I.A.N.

- October 16, 2001

## Code Resuability 2

**Wheeled Locomotor Hierarchy – worked for Rocky 8, Rocky 7, Fido, K9, and much more**

- CLARAty FY01 Review- I.A.N.

- October 16, 2001

## Level I Scenario - Integration of Decision Layer & Functional Layer

## Decision Layer - Full Navigation  Scenario

*Courtesy of Fisher, Estlin  et al.*

- Unknown obstacle causes navigation s/w to take rover off course

- Goal discarded due to memory resource conflict

- Unknown obstacles causes obstructed path. Science targets are re-sequenced

- Goal discarded due to energy resource conflict

- CLARAty FY01 Review- I.A.N.

- October 16, 2001

## Initial Science Targets

- Start
- (0, 0)

- image4
- (-1.8, -2.2)

- spectrometer1
- (2.0, -2.5)

- image2
- (5.0, 1.5)

- image1
- (6.0, -2.2)

- dig1
- (10.5, -3.0)

- spectrometer2
- (14.3, -1.8)

- image3
- (12.5, 1.0)

- dig2
- (9.8, 3.0)

*Courtesy of Fisher, Estlin  et al.*

- CLARAty FY01 Review- I.A.N.

- October 16, 2001

## Initial Plan Generation

- Start
- (0, 0)

- image4
- (-1.8, -2.2)

- spectrometer1
- (2.0, -2.5)

- image2
- (5.0, 1.5)

- image1
- (6.0, -2.2)

- dig1
- (10.5, -3.0)

- spectrometer2
- (14.3, -1.8)

- image3
- (12.5, 1.0)

- dig2
- (9.8, 3.0)

- Goal discarded due to** projected **memory & energy resource conflict

*Courtesy of Fisher, Estlin  et al.*

- Initial plan generation balanced against resource constraints and hard time constraints

- CLARAty FY01 Review- I.A.N.

- October 16, 2001

## Spectrometer Read (1st Target)

- Start

- image4

- image2

- image1

- dig1

- spectrometer2

- image3

- dig2

*Courtesy of Fisher, Estlin  et al.*

- CLARAty FY01 Review- I.A.N.

- October 16, 2001

## Obstructed Path Detected

- Start

- image4

- spectrometer1

- image2

- image1

- dig1

- spectrometer2

- image3

- dig2

- Unknown obstacles causes obstructed path

*Courtesy of Fisher, Estlin  et al.*

- Requires decision making within context of global plan

- CLARAty FY01 Review- I.A.N.

- October 16, 2001

## Science Targets Re-Sequenced

- Start

- image4

- spectrometer1

- image2

- image1

- dig1

- spectrometer2

- image3

- dig2

- Unknown obstacles causes  obstructed path
- Science target are re-sequenced to maximize science return

*Courtesy of Fisher, Estlin  et al.*

- CLARAty FY01 Review- I.A.N.

- October 16, 2001

## Imaging Activity (2nd Target)

- Start

- image4

- spectrometer1

- image2

- dig1

- spectrometer2

- image3

- dig2

*Courtesy of Fisher, Estlin  et al.*

- Imaging Activity (2nd Target)

- CLARAty FY01 Review- I.A.N.

- October 16, 2001

## Replanning due to Projected Memory Resource Violation

- Start

- image4

- spectrometer1

- image2

- dig1

- spectrometer2

- image3

- dig2

- Image activity takes more memory than anticipated
- Science target eliminated to maximize science return

- Goal discarded due to memory resource conflict

- Replanning occurs to maximize science return
- (Optimize Plan Based on Science Target Prioritization)

- CLARAty FY01 Review- I.A.N.

- October 16, 2001

## Obstructed Path Detected

- Start

- image4

- spectrometer1

- image2

- dig1

- spectrometer2

- image3

- dig2

**Obstructed path detected**

*Courtesy of Fisher, Estlin  et al.*

- CLARAty FY01 Review- I.A.N.

- October 16, 2001

## Reactive Reasoning Resolves Problem

- Start

- image4

- spectrometer1

- image2

- dig1

- spectrometer2

- image3

- dig2

**Reactive reasoning component finds new path to goal**

*Courtesy of Fisher, Estlin  et al.*

- No Negative Impact to Overall Schedule

- CLARAty FY01 Review- I.A.N.

- October 16, 2001

## Dig Activity (3rd Target)

- Start

- image4

- spectrometer1

- image2

- image1

- spectrometer2

- image3

- dig2

*Courtesy of Fisher, Estlin  et al.*

- Dig Activity (3rd Target)

- CLARAty FY01 Review- I.A.N.

- October 16, 2001

## Replanning due to Projected Energy Resource Violation

- Start

- image4

- spectrometer1

- image2

- image1

- spectrometer2

- image3

- dig2

- Dig activity takes more energy than anticipated
- Remaining dig activity removed from schedule to free up needed energy for future Communications Activity

- Goal discarded due to energy resource conflict

*Courtesy of Fisher, Estlin  et al.*

- Replanning Occurs to Ensure Enough Energy for Comm. Activity(Increased Mission Reliability)

- CLARAty FY01 Review- I.A.N.

- October 16, 2001

## Imaging Activity (4th Target)

- Start

- image4

- spectrometer1

- image2

- image1

- dig1

- spectrometer2

- dig2

*Courtesy of Fisher, Estlin  et al.*

- Imaging Activity (4th Target)

- CLARAty FY01 Review- I.A.N.

- October 16, 2001

## Previously Skipped Imaging Activity (5th Target)

- Start

- image4

- spectrometer1

- image1

- dig1

- spectrometer2

- image3

- dig2

*Courtesy of Fisher, Estlin  et al.*

- Previously Skipped Imaging Activity (5th Target)

- CLARAty FY01 Review- I.A.N.

- October 16, 2001

## End of Day Communication

- Start

- image4

- spectrometer1

- image1

- dig1

- spectrometer2

- image3

- dig2

- Resource profiles are preserved throughout the scenario to **ensure adequate power** for communication and overnight** rover health**

*Courtesy of Fisher, Estlin  et al.*

- CLARAty FY01 Review- I.A.N.

- October 16, 2001

## Integration with Simulation (ROAMS)

- Goal
- Provide simulation components at all levels
- Easily attach to a simulator (e.g. ROAMS)
- Status
- Integrated framework with ROAMS rover simulation
- Decision layer provides initial plan
- Goals sent to the Functional Layer
- Functional Layer interacts with ROAMS simulation
- Synchronous and asynchronous updates from ROAMS  to Functional Layer and Decision Layer
- ROAMS has implemented  obstacle avoidance

- CLARAty FY01 Review- I.A.N.

- October 16, 2001

## Integration with ROAMS

- CLARAty
- Decision Layer
- CASPER/TDL

- ROAMS Rover
- Simulation

- CLARAty
- Functional Layer

- CLARAty FY01 Review- I.A.N.

- October 16, 2001

## Presentation of CLARAty Video

## Status

- Basic and robot specialized data structure available
- Several generic physical components used
- Integrated with ROAMS simulation
- Running various releases of the packages on Rocky 8, K9, and Rocky 7 rovers
- MER navigator integrated on Rocky 8 in 3 weeks
- DL (CASPER/TDL) running on R7 and R8 & ROAMS
- Detailed status cannot be covered in one slide
- Continuous detailed status of development available on the CLARAty website

- CLARAty FY01 Review- I.A.N.

- October 16, 2001

## Future Plans

- Improve current software infra-structure
- Complete development of several packages
- Fully document all packages and technologies
- Provide navigation infra-structure to support and compare  different navigation technologies
- Extend packages to fully support Rocky 8, K9, Fido and Rocky 7 rovers
- Enhance Manipulation package and adapt to Rocky 8 & Rocky 7
- Provide Basic Vision and Stereo Vision Packages using JPL and Ames Stereo Technology
- Provide simulation components at various levels of granularity
- Provide automated means for accessing Functional Layer from Decision Layer.
- Provide richer functionality to the Decision Layer
- Provide resource queries at various levels

- CLARAty FY01 Review- I.A.N.

- October 16, 2001

## Publications & Website

**http://claraty.jpl.nasa.gov**
- 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 6**th** 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)

- CLARAty FY01 Review- I.A.N.

- October 16, 2001

## Bottom Line

- If we provide a service that is enabling for technologists
- If we significantly reduce integration time of software onto real robotic systems
- If we can easily test autonomy software on rovers
- If we simplify the development/integrate/debug/test cycle for current and next generation NASA rovers
- If people other than the developing team are using and “like” the system
- If we can support multiple platforms with different hardware architectures

*We succeed*

- CLARAty FY01 Review- I.A.N.

- October 16, 2001

## Acknowledgements

- CLARAty Team, Ames K9 Team, CLEaR Team,
- ROAMS/Darts Team

- CLARAty FY01 Review- I.A.N.

- October 16, 2001

## Thank you for your Attention

## Summary

- CLARAty provides a repository of reusable software components
- 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 will result from collaborative efforts of the robotics community
- It will run on multiple heterogeneous robots

- CLARAty FY01 Review- I.A.N.

- October 16, 2001

## Example: Generic Controlled Motor

- Define generic component 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

*Time*

*Velocity*

- S- Profile

- Instantaneous Profile Change

- CLARAty FY01 Review- I.A.N.

- October 16, 2001

## Motor Run-time Operation

- Multiple threads can use a single system object
- Implementation must be re-entrant and multi-thread safe

- _Single-thread Operation_

- _Multi-thread Operation_

- motor.change_position(2PI)
- motor.wait_until_done(45%)
- motor.get_current_position()

- motor.change_position(2PI)
- do other things

*Thread Execution Blocks*

- Thread 1 (controls)

- Thread 2 (monitors)

- based on watchdog
- position = motor.get_position()
- if (position > x) motor.stop()

- aControlledMotor

- CLARAty FY01 Review- I.A.N.

- October 16, 2001

## Functional Layer Components

- Pixel

- Mast

- WheeledLoc

- LeggedLoc

- RBLoc

- Locomotor

- CoordMotionSys

- Socket

- Motor

- Camera

- Instrument

- BBMotor

- ControlledMotor

- Analog_IO

- Digital_IO

- IO

- VisualNavigator

- VisualTracker

- Array_2D

- Vector

- Location

- Point

- Matrix

- Image

- ColorImage

- HTrans

- FeatureDetector

- Correlator

- Behavior

- State

- Database

- Bit

- Resource

- Rover

- SocketMsg

- Manipulator

- Arm

- StereoGen

*Specialized Data Structures*

*General Purpose Data Structures*

*Standard Template Library*

- String

- LinkedList

- Container

- CLARAty FY01 Review- I.A.N.

- October 16, 2001

## Adaptations

**Robotics Branch**

- Mobility & Navigation

- Motion Control

- Vision & Perception

- Manipulation

- System Control

- Input/Output

- Sensor & Instrument
- Processing

- Communication

- Resource Management

- Fuzzy Logic

- Neural Nets

- Behavior Ctrl

- ...

**Hardware Branch**

- ISA

- PCI

- Motion Control
- Chips

**Application Branch**

- HCTL_Chip

- LM629_Chip

- Parallel I/O

- Analog I/O

- Framegrabbers

- Converters

- VME

- Parallel I/O

- Analog I/O

- Framegrabbers

- Converters

- I2C

- Rocky 7

- Rocky 8

- Nanorover

- Wheeled Locomotion

- Manipulation

- Resource Management

- ...

- ...

- CLARAty FY01 Review- I.A.N.

- October 16, 2001