11

A 2d simulation of the mars rover curiosity and its commandControl station. Pure java. The two components talk to each other via apache-kafka. Rover has its own operating system (kernel) and resource management. Hooked up some sensors to NASA API.

Project Type
Existing open source project
Summary

A 2d simulation of the mars rover curiosity and its commandControl station. Pure java. The two components talk to each other via apache-kafka. Rover has its own operating system (kernel) and resource management. Hooked up some sensors to NASA API.

Description
The MarsRover project is essentially an educational tool to help software developers try out new algorithms and technologies in a fun and challenging environment. The project has 2 essential parts viz. 1) The Rover, 2) Mission Control and Command Center The Rover is a softbot that you launch to the Mars surface and that you hope to control.Mission Control displays the messages received from the rover, such as any findings or status reports or diagnostic heartbeats. Command Center composes and forms properly formatted messages for the rover to act upon. Part 1 is this repository, part 2 is in a separate repository to help facilitate independent development. Rover The rover is a softbot or a software robot with predefined capabilities. It is operates on the Mars surface through a series of well defined states. These states are as follows: Listening StateHibernating StateMoving StateRecharging StatePhotographing StateSensing StateTransmitting StateSleeping StateWeatherSensingStateExploringState Following is the rover equipment list: Battery/ PowerUnit.Propulsion Unit + TelemetrySensor*Radio with transmitter and receiver*Camera*^Lidar*Spectrometer*WeatherSensor*^indicates that the equipment is supported with its own animationEngine. ^ indicates that the data returned is from curiosityActual - i.e. the actual curiosityRover on Mars.Mission Control: The MissionControl center operates as CommandAndControl for the rover. It gives the rover commands and duties to carry out and listens to the rover, collects its data and telemetry. Communication System: The two project modules, rover and missionControl communicate through apache-kafka - so setting up kafka is essential to getting the project to work locally. Logging: The rover logs all instructions it receives and all actions its performing. If the rover software crashes on a command, the logs will show you the stackTrace. You can tune logging to INFO or DEBUG and this is done by passing in a debugModeFlag at runtime. If debugMode is false, the logs will be saved at <HOME_DIRECTORY>/roverStatusReports, if its set to true, they will be saved at <HOME_DIRECTORY>/analysisLogs. Bear in mind that the kafka & zookeeper infrastructure generates a lot of noise when log is set to DEBUG mode - so its best to use the debug mode when you are trying to collect the logs during bugReproduction. Project Guidelines:Write Java code, learn design patterns and best practices for software development.Stay true to the underlying science of space travel and remote vehicle operation.Have fun incorporating newer sensors and capabilities for the rover.Learn everything you can about Mars.Morpheus, Neo and everything Matrix is cool! If you are not a Matrix fan - we wish you good luck and good bye.Project Contacts: Sanket Korgaonkar Email : sanket.korgaonkar@gmail.com GitHub: http://github.com/mo3pheus
Tech Stack
java,kafka,protobuf
Current Team Size
2
URL
Comments
Add Comment