Skip to content
Sanket Korgaonkar edited this page Dec 19, 2017 · 4 revisions

Welcome to the MarsRover wiki!

The MarsRover project is a 2D simulation of a rover on the planet Mars. The project has 3 components to it and is written purely in Java. The mission of this simulation is to get the rover to explore the planet as much as possible within the resource constraints and to optimize its scientific reward value.

The three components are as follows:

  1. Mars Rover
  2. The Command and Control center. and
  3. Live data analytics tool.

Rover Architecture Diagram: Rover Architecture

The Mars rover and surface - hereafter referred to as simply Rover, is responsible for the graphics display and operation of the rover. This creates the martian surface along with all the surface details and it is responsible for the rover itself. This is the biggest of the three components and most complex, it will be described in detail in later sections.

The Command and Control center hereafter referred to as MissionControl, is responsible for talking to and listening to the rover. Some of the rover's functionality and most of its operation is controlled via the MissionControl component.

The live data analytics tool is purely dedicated to processing the data sent from the rover in real time. This is a relatively new and undeveloped component and has the largest scope for expansion.


If you want to participate code towards this project it would be helpful to brush up concepts on the following technical areas:

  1. Java Design Patterns - State Design Pattern, Observer Pattern
  2. Apache Kafka
  3. Apache Storm
  4. MySql
  5. Java Utils Concurrent API
  6. Protocol Buffers