Space exploration has become increasingly more complex over the years, with latest missions making used of spacecraft being assemblies of complex sub-systems. Such increase in complexity has made the creation of the necessary tools to provide mission planning, commanding and monitoring more and more complex and costly over the years.
After many projects at the Canadian Space Agency where such tools were created from the ground up, commons patterns emerged. We realized that most missions needed to define a system commands and telemetry, display telemetry to the operator, create and validate command sequence using simulation, track commands result, maintain context information with science data (time, location, etc), show the system in its environment (ex: a rover on the surface of Mars, a satellite on its orbit), etc.
The idea of reusable functionality started to become clear. The large number of hardware systems that had to be integrated together to function as an integrated system in simulated missions in the last few years just did not leave any other choice : a common framework providing the reusable functionality, without preventing customization, had to created.
This is how Apogy got started. After a few years of development and use, Apogy was found to simplify and speed up the creation of the ground tools required to support operations. In the last years, Apogy has been used in multiple deployments involving different types of rovers equipped with various sensors and instruments all operated through Apogy.
While Apogy initial target use was space robotics operation, the basics principles and functions are applicable to a wide range of systems and operations here on Earth.
Apogy provides a software framework and components to quickly assemble the required operators tools used to plan, validate, execute and monitor integrated operations of physical systems.
The Apogy open source project provides a set of frameworks, EMF models, and Graphical User Interface components that simplify the creation of the software required to operate a physical system.
Given our background on space missions, Apogy includes support to represent 3D topologies, interact with simple sensors, provides a plan editor that allows an operator to simulate or control a system, data displays to monitor system during operation as well as models of environment into which the systems are operated.
As an example, integrating a rover in Apogy is as simple as creating an EMF model that represent its interface (command and telemetry) and defined its topology (i.e. how the physical components are attached together and how the degrees-of-freedom are mapped to the telemetry). Once these two steps are completed, one can visualize the rover in 3D in its environment (showing cameras field of view in 3D, using the generic 3D tools to measure distance, record trajectory, measure sun angle, etc), create commands and display telemetry (camera views with overlays, filters and tools, recording and playback of data, etc) without having to write a single line of code ! This means that the operator can already start configuring his/her control station, even if there is no real rover to command at that point. Implementing the necessary interface between the generated EMF classes and the hardware (which is usually straightforward) is all that remain to complete the integration and benefit from the many tools already available in Apogy.
Apogy provides a single model that defines: command, telemetry, engineering units, limits, documentation, 3D topology and 3D representation. System assemblies can then be created from these models to build different spacecraft and instrument configurations. The mission target environment can also be defined to include maps (2D and 3D), locations, annotations as well as location specific and time dependent model of the sky (sun, moon and stars). Apogy provides basic operational plan editors that allow, through context switching, the tests and execution of plans in a seamless process.
Teleoperation is supported through flexible hand controller mapping, camera displays with customizable overlays and image filtering, and real-time map displays (2D and 3D). Apogy maintains rigorously contexts information such as the command and parameter used to generate the plan execution product, timing information and localization. Apogy then make use of this information to provide the overall context of the operations and their products to the engineers and scientists.
In its current form, Apogy includes, but is not limited to, the following:
System modeling support, including:
- 3D topology modeling as EMF models;
- Data bindings for system to 3D models (connecting telemetry to 3D model behaviors);
- 3D System viewer based on the JMonkeyEngine 3;
- Basics sensors EMF models (Camera, Field of View, etc);
- Generic Camera views that supports filters, overlays and tools;
- Limited Robot Operating System (ROS) interfacing support EMF models.
The System 3D Editor - Assembling the Mars Exploration Science Rover (MESR)
Environment modeling including:
- Earth Surface worksite EMF models and implementation;
- Earth Orbit and worksites EMF models and implementation;
- 3D Environment viewer based on the JMonkeyEngine 3;
- 3D Orbital environment viewer (Earth View) based on NASA World Wind;
- Basics 3D data EMF models (Point clouds, meshes, etc);
- Actual example of Earth Surface Worksites, including Digital Elevation Models (DEM).
The Environment 3D Viewer – DEM and projected images.
The Environment 3D Viewer - The rover and the worksite at night.
The Earth View - Predicted orbit for Radarsat-2 and CSA ground station field of view.
The Environment 3D Viewer – Display of a point cloud (in red) acquired by a LIDAR.
Basic operation call definitions, including:
- Basic command list and parameters;
- Game controllers to system model commands mapping ;
- Command to Data context models;
Supporting code, including:
- Various mathematical models and utilities;
- 3D data manipulation utilities;
- Image manipulation utilities;
- Path and Path planners EMF models and implementation;
Limited import/export functions from/to external models (ex : DEM).
Apogy being based on the Eclipse Platform, EMF and many Eclipse other technologies; it seems natural to us to open source it at the Eclipse Foundation.
The Apogy team wants to build a strong community of users, adopters and contributors around the project and the Eclipse Community is know to promote participation.
The Apogy team has been a fervent user of Eclipse and its tools for the past 10 years. The team feels it is now time to give back to the Eclipse community by contributing our work, provide support and encourage collaboration on such a project.
The Apogy project aligns well with the Eclipse Science Working Group charter as :
its allows the sharing of models of common instruments among space exploration;
contains software that overlap with a number of domains covered by the SWG (3D, scientific data, visualization).
The Apogy project aims at releasing updates twice a year. The team envision a release in April and one in October each year.
Currently, the following detailed technical work items are planned within the next year:
Improve the user experience by creating UI component (Wizards, Editors, etc) to simply the use of Apogy by operators;
Add the required EMF model and UI support to create operator displays at run time. Development on this item is not started.
Complete the development and integration of the Earth Orbital Worksite.
Creating on-line tutorial to help users and developers getting started with Apogy;
Creating an open source store of Apogy system models for widely available hardware (web cam, off-the-shelf LIDAR, etc);
The project team also wants to engage the Eclipse Community to address the following :
Investigating if some of the components / functionality in Apogy could be replaced by existing capability in other Eclipse Projects (ex: Eclipse Advanced Visualization Project, BIRT);
Evaluating if some of the components in Apogy could be moved to more appropriate Eclipse Projects;