# Presentation: 495209

## CLARAty: Improving Software Reliability for Robotic Space ApplicationsCoupled Layer Architecture for Robotic Autonomy

- Issa A.D. Nesnas
- Group Supervisor, Robotic Software Systems
- Mobility and Robotics Section
- Jet Propulsion Laboratory, California Institute of Technology
- In Collaboration with
- Ames Research Center
-  Carnegie Mellon University
- University of Minnesota
- 49th Meeting of the IFIP 10.4 Working Group on Dependable and Fault Tolerant Computing Tucson, AZ, USA, February 15-19, 2006

## Presentation Overview

- Historical Antecedents
- Application Domains
- Techniques used to Improve Reliability
- Rigorous Process
- Software Reuse
- Formal Validation
- Continuous Automated Testing
- Challenges for  Software Reuse and Interoperability
- Challenges in Technology Infusion

- Dependability Workshop - I.A.N.

- February 16-17, 2006

## Some JPL Robots / Rovers

- Dependability Workshop - I.A.N.

- February 16-17, 2006

## More Robots

- Dependability Workshop - I.A.N.

- February 16-17, 2006

## Historical Antecedents

**Late 80’s - Early 90’s:** parallel robotic developments
- RSI, MOTES, Satellite Servicing, Robby, Mircorover
- No shared *hardware* or *software*
**Mid 90’s:** Mars rover research centralized with Rocky 7
- First flight rover
**Late 90’s:** Expansion and diversification of rover work
- No software interoperability (Rocky 7, FIDO, Athena, DARPA)
- Autonomy demonstration of Remote Agent Experiment (ARC and JPL)
- MDS investigates reusable software for spacecraft control.
**‘****99-Early 00:** Exploration Technology Program develops concept for a unifying autonomy architecture
- Unifying autonomy and robotic control
- Started the CLARAty task
**Today:**
- Unification of several robotic developments at JPL, ARC, and CMU
- Two flight rovers with several new robotic capabilities

- Dependability Workshop - I.A.N.

- February 16-17, 2006

## Application Domains

- Navigation
- Target Tracking
- Single-cycle Instrument Placement

## Navigation with Different Rovers

**Complex Algorithms on different Platforms**
**I/O, motion control**
**Trajectory Generation**
**Rough Terrain Locomotion**
**Odometry Pose Estimation**
**Stereo Processing**
**Visual Odometry**
**Navigation (Morphin)**
**Obstacle avoidance **
**Path Planning**

- Dependability Workshop - I.A.N.

- February 16-17, 2006

## Navigation with Dynamic Simulator

- Dependability Workshop - I.A.N.

- February 16-17, 2006

## Application Domains

- Navigation
- Target Tracking
- Single-cycle Instrument Placement

## Visual Target Tracking

- Changes in FOV

- 1st Frame

- 37th Frame after 10 m

- Dependability Workshop - I.A.N.

- February 16-17, 2006

## FALCON Visual Target Tracker on Rocky 8

**Integration of Complex Algorithms**
**I/O, motion control**
**Trajectory Generation**
**Rough Terrain Locomotion**
**Odometry Pose Estimation**
**Stereo Processing**
**Visual Odometry**
***Obstacle avoidance ***
**Mast Control**
**Visual Tracking**

- Dependability Workshop - I.A.N.

- February 16-17, 2006

## Application Domains

- Navigation
- Target Tracking
- Single-cycle Instrument Placement

## Integrated Single-Cycle Instrument Placement

- Dependability Workshop - I.A.N.

- February 16-17, 2006

## Techniques We Use

- Some of the techniques that we have explored to improving software reliability are:
- Improved processes and procedures for software development
- Static code analysis and validation tools
- Increased software reliability through reuse
- Formal technology validation
- Nightly regression testing
- Fault-tolerant software and redundant computing

- Dependability Workshop - I.A.N.

- February 16-17, 2006

## Process

## Technology Development, Integration and Validation

- Tasks

- Technology Development, Integration and Validation

**CLARAty**

- Jet Propulsion Lab

- CMU

- NASA ARC

- U. Minnesota

- R&TD, MDS, DRDF

**Competed ****Mars Technology**
**Program**

**Other NASA Programs**

- Rover Simulation
- ROAMS

- Rover Hardware

**JPL Internal Programs**

**Flight Focused****Technology Programs**

- Science InstrumentsSimulation

- Operator Interface

- Legacy AlgorithmsFlight Algorithms

- NASA Centers
- andUniversities
- Technology Tasks

- NASA Centers
- andUniversities
- Technology Tasks

- NASA Centers
- andUniversities
- Technology Tasks

- NASA Centers
- andUniversities
- Technology Tasks

- TechnologyValidation Tasks

- TechnologyValidation Tasks

- Technology
- Tasks

- Technology
- Tasks

- Dependability Workshop - I.A.N.

- February 16-17, 2006

## Technology Component Flow

- Dependability Workshop - I.A.N.

- February 16-17, 2006

## Flight Software Processes and Tools

- List coding conventions, rules, and guidelines.
- Use only mission-proven or thoroughly tested technologies
- Hold formal design reviews
- Review designs before and after implementation
- Review interfaces, implementations, test plans, commands, and telemetry for each software component
- Use code buddy reviews
- Have someone other than the developer statically review the code and look for potential problems or violations of the coding conventions.
- Use automated tools for source code analysis to highlight suspicious code segments.  For example, MER used Code Wizard and Cleanscape on early versions of the flight software and Coverity on most recent versions.
- Review by internal and external teams.  Use validation and verification group expertise.

- Dependability Workshop - I.A.N.

- February 16-17, 2006

## Rigorous Flight Software Testing

- Unit Testing:
- Extensive testing of each module in isolation by the developer
- Regression Testing:
- Integrated module testing by a dedicated test team after new modules are integrated.
- System Testing:
- Project wide rehearsals of expected mission scenarios
- Can last several days where several different activities would be tested in the manner they would be used in the mission.
- All communication is done during communication passes.

- Dependability Workshop - I.A.N.

- February 16-17, 2006

## Flight Software Architecture and Implementation

- Assignment of one "owner" developer per software module
- Object-oriented style design, with emphasis placed on interfaces, encapsulation, and modularity
- Objects implemented as hierarchical state machines
- Asynchronous message passing as the principle means of communication between objects
- Severe limitations on use of dynamic memory allocation to avoid heap fragmentation
- Extensive use of diagnostics embedded throughout the software, including many design-by-contract assertions
- Reference:
- Glenn E. Reeves & Joseph F. Snyder "A Overview of the Mars Exploration Rovers' Flight Software" 2005 IEEE International Conference on Systems, Man and Cybernetics Waikoloa, Hawaii, October 10-12, 2005

- Dependability Workshop - I.A.N.

- February 16-17, 2006

## Historical Antecedents and Motivation

## Problem and Approach

- Problem:
- Difficult to share software/algorithms across systems
- Different hardware/software infrastructure
- No standard protocols and APIs
- No flexible code base of robotic capabilities
- Objectives
- Unify robotic infrastructure and framework
- Capture and integrate legacy algorithms
- Simplify integration of new  technology
- Operate heterogeneous robots

- Dependability Workshop - I.A.N.

- February 16-17, 2006

## Interoperability: Software & Hardware

- JPL_STEREO

- VxWorks

- Linux

- QNX

- CLARAty Reusable Software

- Robot Adaptation

- Pose Estimation
- MER_SAPP

- Obstacle Avoidance
- MORPHIN

- Obstacle Avoidance
- MORPHIN

- Obstacle Avoidance
- MORPHIN

- GESTALT

- Drivemaps

- Stereovision
- JPL_STEREO

- Stereovision
- JPL_STEREO

- Pose Estimation
- MER_SAPP

- Pose Estimation
- MER_SAPP

- Pose Estimation
- MER_SAPP

- SRI Stereo

- ARC Stereo

- Sojouner PoseFIDO 3DEKF
- 6D EKF

**CAPABILITY: Navigation**

- Dependability Workshop - I.A.N.

- February 16-17, 2006

## Challenges in Reuse

- Mechanisms and Sensors
- Hardware Architecture
- Software Algorithms

## Different Mobility Mechanisms

- Dependability Workshop - I.A.N.

- February 16-17, 2006

## Different Sensors and Appendages

- 4 DOF Mast

- Dependability Workshop - I.A.N.

- February 16-17, 2006

## Challenges in Reuse

- Mechanisms and Sensors
- Hardware Architecture
- Software Algorithms

## Centralized Hardware Architecture

***FIDO***

- Actuator/Encoders

- Potentiometers

- PID Control in Software

- Video Switcher

- IMU

- RS232
- Serial

**PC104+**
- x86 Arch
- Framegrabbers
- Digital I/O
- Analog I/O
- Wireless Ethernet

- Dependability Workshop - I.A.N.

- February 16-17, 2006

## Distributed Hardware Architecture

**Compact PCI**
- - x86 Arch
-  Wireless E/net
-  1394 FireWire
- - I2C Bus

- Actuator/Encoders

- Potentio-
- meters

- I2C

- 1394 Bus

- IMU

- Sun Sensor

***Rocky Widgets***
- Single-axis controllers
- Current sensing
- Digital I/O
- Analog I/O

- RS232

- Distributed Motion
- Control and Vision

***Rocky 8***

- Dependability Workshop - I.A.N.

- February 16-17, 2006

## Challenges in Interoperability

- Mechanisms and Sensors
- Hardware Architecture
- Software Algorithms

## Software Challenges for Algorithm Infusion

- The *new* algorithms to be integrated may:
- Have architectural mismatches with the framework
- Include multiple orthogonal functionalities
- Make implicit assumptions about the platform
- Duplicate functionality in the framework
- Use incompatible data structures
- Are complex and hard to tune
- Require highly specialized domain expertise
- Are poorly implemented

- Dependability Workshop - I.A.N.

- February 16-17, 2006

## Architecture and Process

## A Two-Layered Architecture

_***THE DECISION LAYER:***_ Declarative model-based Global planning

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

***INTERFACE:*** Access to various levelsCommanding and updates

_***THE FUNCTIONAL LAYER:***__*** ***_Object-oriented abstractionsAutonomous behaviorBasic system functionality

**A Two-Layered Architecture**

- Adaptation to a system

- Dependability Workshop - I.A.N.

- February 16-17, 2006

## Adapting to a Rover

- Hardware Drivers

- Generic
- Functional Layer

- Rocky 8
- Specialized
- Classes
- &
- Objects

- Connector

- Decision Layer

- Multi-level access Connector

- Rocky 8
- Models/
- Heuristics

- Dependability Workshop - I.A.N.

- February 16-17, 2006

## The Decision Layer

- Executives
- (e.g. TDL)

- General Planners
- (e.g. CASPER)

- Activity Database

- Rover Models

- FL Interface

- Plans

- Dependability Workshop - I.A.N.

- February 16-17, 2006

## The Functional Layer

*<footer>*

*<date/time>*

- Transforms

- Motion Control

- Vision

- Estimation

- Input/Output

- Manipulation

- Navigation

- Communication

- Math

- Hardware Drivers

- Locomotion

- Rover

- Behaviors

- Path Planning

- Rocky 8

- Rocky 7

- K9

- FIDO

- Science

- Simulation

- Sensor

- Adaptations

## Multi-level Abstraction Model

- Use abstractions

- Interface at different levels

- Dependability Workshop - I.A.N.

- February 16-17, 2006

## Functional Layer Components

- Pixel

- Mast

- WheeledLoc

- LeggedLoc

- RBLoc

- Locomotor

- CoordMotors

- 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

- Waypoint

- Path

- Camera Image

- Location

- Connector

- Dependability Workshop - I.A.N.

- February 16-17, 2006

## Standardizing Base Abstractions

- Dependability Workshop - I.A.N.

- February 16-17, 2006

## Unify Mechanism Model

- Dependability Workshop - I.A.N.

- February 16-17, 2006

## Unit and Regression Testing

## CLARAty Test Bed for Regression Testing

- ATRV Jr.

- FIDO2 Stack

- Dexter ManipulatorBench top

- Rocky 8 PPC Bench top

- Dependability Workshop - I.A.N.

- February 16-17, 2006

## Summary

- Developed a unified and reusable software framework
- Deployed at multiple institutions
- Deployed on multiple heterogeneous robots
- Integrated multiple technologies from different institutions
- Delivered algorithms for formal validation
- Enabled new technology developments on multiple platforms
- Integrated flight algorithms for detailed performance characterization and operation on research rovers.
- Taking a technology from inception, to development in CLARAty, to validation, and now to integration into flight

- Dependability Workshop - I.A.N.

- February 16-17, 2006

## Current CLARAty Core Team

**NASA Ames Research Center**
- Clay Kunz
- Eric Park
- Susan Lee
**Carnegie Mellon University**
- David Apelfaum
- Nick Melchior
- Reid Simmons
**University of Minnesota**
- Stergios Roumeliotis

**Jet Propulsion Laboratory**
- Antonio Diaz Calderon
- Tara Estlin
- John Guineau
- Won Soo Kim
- Richard Madison
- Michael McHenry
- Mihail Pivtoraiko
- Issa A.D. Nesnas
- Babak Sapir
- I-hsiang Shu
**OphirTech**
- Hari Das Nayar

- Full Credits for all Developers and Contributors at:http://keuka.jpl.nasa.gov/main/project/team/index.shtml

- Dependability Workshop - I.A.N.

- February 16-17, 2006

## Thank you

## Back-up Slides

## NASA/JPL Develops Various Rovers

- For research & flight

- Dependability Workshop - I.A.N.

- February 16-17, 2006

## Would like to support ...

- Dependability Workshop - I.A.N.

- February 16-17, 2006

## Different Mobility Mechanisms

- with different sensors

- From wheeled Rocker-
- bogies with different
- steering

- From three wheelers

- To inflatable
- wheels

- To wheels on
- articulatedlinks

- From wheeled to legged

- To four, six and even eight

- Dependability Workshop - I.A.N.

- February 16-17, 2006

## For Example: Wheeled Locomotion

**Rocky 7 **

**Rocky 8 **

- Dependability Workshop - I.A.N.

- February 16-17, 2006

## Reusable Wheeled Locomotion Algorithms

- General flat terrain algorithms and specialized full DOF algorithms

- Dependability Workshop - I.A.N.

- February 16-17, 2006

## Manipulators and Sensor Suites

- 4 DOF Mast

- Given different capabilities, how much reuse can be achieved?

- Dependability Workshop - I.A.N.

- February 16-17, 2006

## Semi-centralized Hardware Architecture

**Compact PCI**
- PPC 750 Arch
- Framegrabbers
- Digital I/O
- Analog I/O
- Wireless Ethernet

***Rocky 7***

- Actuator/Encoders

- Potentiometers

- Parallel Custom Interface
- MUX/Handshaking

- Video Switcher

- Gyros

- Accels

- AIO

- PID Controllers

- Dependability Workshop - I.A.N.

- February 16-17, 2006

## One Approach

- Use the best attributes from each system
-  and build a common platform

- OR
- Develop a model to deal with the variability

- Unfortunately this is not always possible

- Dependability Workshop - I.A.N.

- February 16-17, 2006

## One Approach

- Develop
- Common data structures
- Physical & Functional Abstractions
-  E.g. motor, camera, locomotor. Stereo processor, visual tracker
- Unified models for the mechanism
- Putting it together
- Start with top level goals
- Elaborate to fine sub-goals
- Choose the appropriate level to stop elaboration
- Interface with abstractions
- Abstractions translate goals to action
- Specialize abstractions to talk to hardware
- Hardware controls the systems and provide feedback

- Dependability Workshop - I.A.N.

- February 16-17, 2006

## Putting it All Together

## Navigation Example - Swapping Algorithms

- Stereo Camera

- Stereo Engine

- <<active>>

***Navigator***

- Gestalt Navigator

- Grid Mapper

***Mapper***

- JPL Stereo

***Terrain Sensor***

- Locomotor

- R8_Locomotor

- Global Cost Func

- D* Path Planner

- Stereo Processor

- Camera R

- Camera L

- Synchronous/or
- Asynchronous
- e.g. Rate Set at: 10Hz
- used by other activities

- Asynchronous

- <<active>>

- Asynchronous
- e.g. Rate Set at: 5 Hz

- <<active>>

- Asynchronous
- e.g. Rate Set at: 8 Hz

- EKF Pose Estimator

- Pose Estimator

- Path Information

- Path Planner

- K9 Rover

***Rover***

- Decision Layer

- Commanding and State Updates

- Dependability Workshop - I.A.N.

- February 16-17, 2006

## Navigation Example - Swapping Algorithms

- Stereo Camera

- Stereo Engine

- <<active>>

***Navigator***

- R7/Soj Navigator

***Mapper***

- JPL Stereo

***Terrain Sensor***

- Locomotor

- ROAMS_Locomotor

- Tangent Graph

- Stereo Processor

- Camera R

- Camera L

- Synchronous/or
- Asynchronous
- e.g. Rate Set at: 10Hz
- used by other activities

- Asynchronous

- <<active>>

- Asynchronous
- e.g. Rate Set at: 5 Hz

- <<active>>

- Asynchronous
- e.g. Rate Set at: 8 Hz

- EKF Pose Estimator

- Pose Estimator

- Path Information

- Path Planner

- K9 Rover

***Rover***

- Decision Layer

- Commanding and State Updates

- Obstacle Mapper

- Dependability Workshop - I.A.N.

- February 16-17, 2006

## Navigation with Path Planning on Two Rovers 

- Navigation with Path Planning on Two Rovers

**Complex Algorithms on different Platforms**
**I/O, motion control**
**Trajectory Generation**
**Rough Terrain Locomotion**
**Odometry Pose Estimation**
**Stereo Processing**
**Visual Odometry**
**Navigation (Morphin)**
**Obstacle avoidance **
**Path Planning**

- Dependability Workshop - I.A.N.

- February 16-17, 2006

## Designated Target Tracking for Single-Cycle Instrument Placement

- Designated Target Tracking for Single-Cycle Instrument Placement

**Integration of Complex Algorithms**
**I/O, motion control**
**Trajectory Generation**
**Rough Terrain Locomotion**
**Odometry Pose Estimation**
**Stereo Processing**
**Visual Odometry**
***Obstacle avoidance ***
**Mast Control**
**Visual Tracking**

- Dependability Workshop - I.A.N.

- February 16-17, 2006

## And with a Simulated Rover

- Dependability Workshop - I.A.N.

- February 16-17, 2006

## Acknowledgements

- CLARAty Team (multi-center)
_**Jet Propulsion Laboratory**_
-  ROAMS/Darts Team
-  CLEaR Team
-  Instrument Simulation Team
-  Machine Vision Group
-  Robotic Systems Group
_**Ames Research Center**_
-  K9 Team
_**Carnegie Mellon University**_
_**University of Minnesota**_

- Dependability Workshop - I.A.N.

- February 16-17, 2006

## Thank you for your Attention

## Connecting Bodies and Joints

- Dependability Workshop - I.A.N.

- February 16-17, 2006

## Some Results on Reusability

## Some Software Inter-operability Statistics 

| Algorithm Description | 1st Adaptation |  | Subsequent Adaptations (time in days) |  |  |
| --- | --- | --- | --- | --- | --- |
|  | On | Time | On | Adapt.Time | Tuning Time |
| 3D Extended Kalman Filter for Rover Pose Estimation | Rocky 8 | 60  | FIDO (JPL) | 1 | 3 |
| 3D Locomotion for wheeled vehicles | Rocky 7 | 30 | Rocky 8 (JPL) | 10 | 12 |
|  |  |  | FIDO (JPL) | 1 | 1 |
|  |  |  | K9 (ARC) | 4 | 1 |
| Morphin Navigator  | Rocky 8 | 75 | FIDO (JPL) | 1 | 1 |
|  |  |  | K9 (ARC) | 4 | 14 |
|  |  |  | ROAMS (JPL) | 1 | - |
| Mast Control Software | Dexter | 21 | Rocky 8 (JPL)  | 7 | 7 |
|  |  |  | FIDO (JPL) | 4 | 1 |

- Dependability Workshop - I.A.N.

- February 16-17, 2006

## Code Reusability for Motion Control 

- Code Reusability for Motion Control

- Dependability Workshop - I.A.N.

- February 16-17, 2006

## Code Resuability for Locomotion Example

- Dependability Workshop - I.A.N.

- February 16-17, 2006

## Conclusions

- Use abstraction to master complexity
- Encapsulate and abstract hardware variations
- Provide multi-level access through Decision Layer for fault diagnosis and recovery
- Use domain expertise to guide design
- Make all assumptions explicit
- Stabilize external interfaces rapidly
- Document processes and products well
- Avoid over-generalization - define scope
- Encapsulate system specific runtime models
- Do not comprise performance - least common denominator solutions are unacceptable in hw/sw interactions
- Standardize Hardware

- Dependability Workshop - I.A.N.

- February 16-17, 2006

## Examples of CLARAty Reusability

*Controlled_Motor_Impl*

- ControlledMotor

- Linear_Axis

- Joint

- Non-Resuable Layer

- R8_Motor

- Fido_Motor

- Sim_Motor

- Trajectory

- Trajectory_Generator

- Mz<Type>

- HCTL_Chip

- Widget_Board

- Widget_Motor

- PID Controller

- Counter

- DIO

- Analog Out

- Analog In

- MSI P460

- MSI P430

- MSI P415

- MSI P430

- ResuableHW reusable
- Non-reusable

- R7_Motor

- LM629_Chip

- R7_MC_Board

- Dependability Workshop - I.A.N.

- February 16-17, 2006

## Supported Platforms

**Solaris**

**x86**

- Ames

- JPL

***Rocky 8***

**x86**

**VxWorks**

**Linux**

***Rocky 7***

***K9***

***ROAMS***

***FIDO***

- CMU

**Linux**

***ATRV***

**x86**

- JPL

***FIDO***

**VxWorks**

**x86**

- JPL

**ppc**

**VxWorks**

- JPL

**Linux**

- Dependability Workshop - I.A.N.

- February 16-17, 2006

## CLARAty Team

**NASA Ames Research Center**
- Maria Bualat
- Sal Desiano
- Clay Kunz (*Data Structure Lead*)
- Eric Park
- Randy Sargent
- Anne Wright *(Cog-E & Core lead)*
**Carnegie Mellon University**
- David Apelfaum
- Reid Simmons *(Navigation lead)*
- Chris Urmson
- David Wettergreen
**University of Minnesota**
- Stergios Roumeliotis
- Yukikazu Hidaka

**Jet Propulsion Laboratory**
- Max Bajracharya (34) *(Cog-E &  Vision lead)*
- Edward Barlow (34)
- Antonio Diaz Calderon (34)
- Caroline Chouinard (36)
- Gene Chalfant (34)
- Tara Estlin (36) *(Deputy Manager & Decision Layer lead)*
- Erann Gat (36)
- Dan Gaines (36) *(Estimation Lead)*
- Mehran Gangianpour (34)
- Won Soo Kim (34) *(Motion lead)*
- Michael Mossey (31)
- Issa A.D. Nesnas (34) *(Task Manager)*
- Richard Petras (34) *(Adaptation lead)*
- Marsette Vona (34)
- Barry Werger (34)
**OphirTech**
- Hari Das Nayar

- Dependability Workshop - I.A.N.

- February 16-17, 2006

## Summary

- 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

- Dependability Workshop - I.A.N.

- February 16-17, 2006

## 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

- Dependability Workshop - I.A.N.

- February 16-17, 2006

## Example: 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

*Time*

*Velocity*

- S- Profile

- Instantaneous Profile Change

- Dependability Workshop - I.A.N.

- February 16-17, 2006

## Example: collaborative development for locomotor

- JPL - 1998

- CMU - 2002

- FutureARC - 2003

- Designed for Rocky 7
- Used Motor class
- Separated wheel control from locomotion
- Built-in pose estimation

- 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

_**Version 1.0**_

_**Version 2.0**_

- 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

_**Version 3.0**_

- Redesign/ mature

- Redesign/ mature

_**Version 4.0**_

- Use device and telemetryinfrastructureAdd adaptation to K9

- Add

- JPL - 2001

- Dependability Workshop - I.A.N.

- February 16-17, 2006

## 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

- Dependability Workshop - I.A.N.

- February 16-17, 2006

## Capabilities of Wheel Locomotor

- Type of maneuvers:
- Straight line motions (fwd / bkwd)
- Crab maneuvers
- Arc maneuvers
- Arc crab maneuvers
- Rotate-in-place maneuvers (arc turn r=0)
- 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

- Dependability Workshop - I.A.N.

- February 16-17, 2006

## 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

- Dependability Workshop - I.A.N.

- February 16-17, 2006

## Why is robotic software “hard”?

- Software:
- Software is large and complex
- Has lots of diverse functionality
- Integrates many disciplines
- Requires real-time runtime performance
- Talks to hardware
- Hardware:
- Physical and mechanics are different
- Electrical hardware architecture changes
- Hardware component capabilities vary

- Dependability Workshop - I.A.N.

- February 16-17, 2006

## What 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*

- Dependability Workshop - I.A.N.

- February 16-17, 2006