Objectives

CLARAty, which stands for Coupled-Layer Architecture for Robotic Autonomy, is an integrated framework for reusable robotic software. It defines interfaces for common robotic functionality and integrates multiple implementations of any given functionality. Examples of such capabilities include pose estimation, navigation, locomotion and planning. In addition to supporting multiple algorithms, CLARAty provides adaptations to multiple robotic platforms. CLARAty, which was primarily funded by the Mars Technology Program, serves as the integration environment for the program's rover technology developments.
CLARAty is a domain-specific robotic architecture designed with four main objectives:
- To promote the reuse of robotic software infrastructure across multiple NASA-related research efforts
- To promote the integration of new technologies developed by the robotics community onto rover platforms
- To mature robotic capabilities through reuse and enable independent formal validation
- To share the development with the robotic community to promote rapid advancement and leveraging of capabilities

CLARAty is a collaborative effort among four institutions: Jet Propulsion Laboratory, NASA Ames Research Center, Carnegie Mellon, and the University of Minnesota. Robotic researchers from universities and centers nationwide contribute algorithms through the Mars Technology Program, the ASTEP (Astrobiology Science and Technology for Exploring the Planets), and the Computing, Information and Communications Technology (CICT) Program. CLARAty builds upon decades of robotic expertise at these centers and a large code base of robotic software.
The majority of the software is developed using state-of-the-art software engineering techniques such as model-based design, design patterns, generic programming, object-oriented design, and component models. The software is predominantly written in C++. Currently, CLARAty is operating on the Rocky 8, FIDO, K9, Rocky 7, Dexter and the ATRV robots. Small portions of CLARAty have been uploaded to the MER rovers.
Description
CLARAty is a two-layer architecture with a Decision Layer and a Functional Layer. The Decision Layer provides a framework for declarative-based programming while the Functional Layer provides a framework for procedural-based programming. The layered model enables users to interface their software at the appropriate level of abstraction.
The Functional Layer
The Functional Layer provides both low- and mid-level autonomy capabilities. It serves as a robotic operating system that provides generic abstractions of such capabilities. The modular organization of these capabilities enable applications to selective use the services that are relevant to their implementation. Capabilities of the Functional Layer include: navigation, mapping, terrain evaluation, scientific analyses, path planning, pose estimation, locomotion, manipulation, motion control and coordination, vision, and digital and analog I/O. Control algorithms such as vision-based navigation, sensor-based manipulation, and visual target tracking that use a predefined sequence of operations are also available in the Functional Layer.
The Decision Layer
The Decision Layer provides a framework for global reasoning about system resources and mission constraints. It includes general planners, executives, schedulers, activity databases, and custom heuristics.
The Decision Layer interacts with the Functional Layer using a client-server model. The Decision layer receives its information by querying the Functional Layer for predicted resource usage, state updates, and model information. The Decision Layer plans, schedules, and executes activity plans. It also monitors the execution and modifies the sequence of activities dynamically when necessary.
The architecture allows for overlap in the functionality of both layers. This intentional overlap allows users to elaborate the declarative model to lower levels of granularity. But it also allows the Functional Layer to build higher level abstractions (e.g. navigator) that provide mid-level autonomy capabilities. In the latter case, the Decision Layer serves as a monitor to the execution of this behavior, which can be interrupted and preempted depending on mission priorities and constraints.
Rationale
Developing intelligent capabilities for robotic systems requires the integration of various technologies from different disciplines. It also requires the interaction of various software components within a real-time system, and the management of uncertainties resulting from the interaction of the robot with its environment. The uncertainties from the environment, the complexities of software/hardware interactions, and the variability of the robotic hardware make the task of developing robotic software complex and costly. Hence, it has become increasingly important to leverage robotic developments across projects and platforms. Because a number of the algorithms developed for robotic systems can be generalized, it is possible to use these algorithms on various platforms irrespective of the details of their implementations. It is such algorithms that CLARAty is trying to provide a framework for, while maintaining the ability to easily integrate platform-specific algorithms.
With the increased interest in developing rovers for future Mars exploration missions, a significant number of rover platforms have been designed and built over the past decade. Several NASA centers and university partners use these platforms to test their newly developed technologies in order to improve the autonomous robot capabilities. Because of isolated software development efforts, exacerbated by differences in the mechanical and electrical designs of these vehicles, they have historically shared little in terms of software infrastructure. As a result, transferring capabilities from one rover to another has been a major and costly endeavor. Furthermore, because robotics systems cover several domain areas, researchers of a single domain also needed to integrate their newly developed technology into the complex robotic environment. Proper integration requires an in-depth understanding and characterization of the behavior of various components of the system, which may vary from one platform to another.
Milestones
- 2000
- Define scope, identify relevant domains and define the robotic architecture
- Peer review the proposed architecture with participation from external institutions
- Document the architecture
- 2001
- Extend effort to a multi-center collaboration with participation from other NASA centers and universities
- Prototype the proposed architecture
- Develop adaptations for at least two rovers: Rocky 7 and Rocky 8
- Test and validate the software system on these rovers in the JPL Mars Yard
- 2002
- Establish a distributed development process
- Implement different domain frameworks (navigation, pose estimation, mobility, manipulation) and capture legacy algorithms
- Demonstrate integrated capabilities such as long-range navigation and path planning, Decision Layer/Functional Layer interaction, and interoperability with high-fidelity ROAMS simulators
- Extend adaptations to include the FIDO and K9 rovers
- 2003
- Demonstrate interoperability of multiple algorithms for these domains: navigation, estimation, and stereo processing
- Demonstrate integrated functionality such as visual odometry pose estimation with navigation, obstacle avoidance, and path planning
- Extend adaptations to include the ATRV rover
- Deliver technologies for formal validation in support of Mars Science Laboratory mission
- 2004
- Refine implementation of domain packages
- Capture and integrate technologies developed under the competed Mars Technology Program
- Deliver integrated technologies for formal validation under the Mars Science Laboratory Focused Technology Program (MSL FT)
- Pursue open source release
- 2005
- Integrate technologies from other centers: Morphin navigation from CMU, mesh registration and stereovision from ARC.
- Deliver technologies for validation: visual target tracking, target tracking with navigation
- Integrate technologies from the MER mission: GESTALT navigation and stereovision
- Support second round of participants in the competed Mars Technology Program
- Prepare modules for open source distribution: review software, reduce inconsistencies, improve documentation
- 2006
- Support the last set of technology deliveries for MSL FT formal validation: visual odometry, single cycle instrument placement, navigation with visual odometry, target tracking with visual odometry, and navigation, visual tracking and visual odometry
- Restructure the build system and imrpove the multi-target nightly build system
- Clear all website, source code and documentation for external public release
- 2007
- Establish public repository to reduce complexity and prepare portion of the software for external release
- Release first open source portion of CLARAty
- Extend adaptations to include K10 and Athena rovers