Planning & Scheduling for the Trevor Rover¶
Author: | Mathew Kallada |
---|
Change Record¶
Introduction¶
Purpose¶
In many cases, to perform simple tasks rovers should have the capability to operate on their own without needing an external operator. This document outlines the integration of NASA’s EUROPA ([2]) with the
Italian Mars Society’s Trevor Rover.
Applicable Documents¶
- [1] – C3 Prototype document v.4
- [2] – EUROPA
- [3] – Software Engineering Practices Guidelines for the ERAS Project
- [4] – ERAS 2013 GSoC Strategic Plan
- [5] – Marscape Scenario
- [6] – TANGO distributed control system
- [7] – Py4J
Glossary¶
P&S
- Planning and Scheduling
API
- Application Programming Interface
ERAS
- European Mars Analog Station
IMS
- Italian Mars Society
Overview¶
Design Considerations¶
Hardware Requirements¶
We will be using the Minoru3D Webcam and the RaspberryPi. In case of fast moving objects, we will need to optimize the speed of the Minoru+RPi.
Software Requirements¶
EUROPA-PSO¶
To give the Trevor rover autonomous capabilities we will be using EUROPA which has an API in Java and in C++. To gain full access to EUROPA from Python we will create a gateway to the Java API using Py4J.
Communication Channel Between Vision and Web Interface¶
Redis is used to share information between the vision side to the planning side and web interface side.
Hardware Interfaces¶
We will be using the Minoru 3D webcam and the RaspberryPi for computer vision processing and AI planning and scheduling.
User Interfaces¶
The WALDO interface which currently supports deleting/viewing details of plans created with this module such as the one previously generated here <https://bitbucket.org/italianmarssociety/eras/src/036539d82d656047de631a79251a7cc9ccc4bff0/servers/pso/src/log?at=default>.
pyEUROPA Sample Code¶
from pyEUROPA.psengine import makePSEngine, stopPSEngine
# Launch & connect to EUROPA europa = makePSEngine()
# Now we can interact with EUROPA like we normally would (just from Python) europa.start() europa.executeScript(“nddl”,”some_file.nddl”,True)
# Shuts down all PSEngine instances stopPSEngine()
Please see the README in the pyEUROPA python package for more information. This can be found in [servers/pso/pyEUROPA] of the ERAS repository.
Development and Progression¶
Standards Compliance¶
The guidelines defined in [3] should be followed.
Planning¶
A high level schedule is shown below.
- Milestone I: Create the pyEUROPA module
[Midterm Evaluation]
- Milestone II: Integrate with Trevor & Waldo Interface
- Milestone III: Finalize Integration with RaspberryPi