Code Monkey home page Code Monkey logo

josiahmendes / autonomous-rover Goto Github PK

View Code? Open in Web Editor NEW
7.0 2.0 2.0 405.84 MB

The Design and Implementation of an Autonomous Mars Rover that has full mapping, remote control and power management capabilities.

TeX 1.99% C++ 3.36% JavaScript 0.05% Python 0.08% HTML 0.74% CSS 0.13% MATLAB 0.16% Mathematica 0.02% Verilog 18.86% SystemVerilog 8.27% Batchfile 0.02% Shell 0.17% C 44.89% Makefile 8.73% Assembly 2.96% GDB 0.07% VHDL 9.50% Scheme 0.01%
mars rover autonomous-driving smps esp32-arduino de10-lite arduino optical-flow reactjs nodejs

autonomous-rover's Introduction

Engineering Design Project MARS Rover

This repository contains the work done by Georgios Chaimalas, Dimitrios Georgakopoulos, Edvard J. Skaarberg Holen, Hyunjoon Jeon, Josiah Mendes and Raghav Viswakumar for module ELEC50003/ELEC50008 - Computer Engineering / Engineering Design Project 2 (Summer 2020-2021) as part of the second year curriculum in Electrical and Electronic Engineering or Electronic and Information Engineering at Imperial College London.

Project Description

The aim of the Mars Rover Project as outlined by our organisers is as follows: β€œTo design and build an autonomous rover system that could be used in a remote location without direct supervision. The rover will have a processing unit that is capable to receive movement commands and send status data. In doing this it needs to detect and avoid obstacles in its working area. Over time the rover should be able to build a map of its local working area (including those obstacles) on an offsite data store. A charging station will be also designed and implemented to charge the batteries used to power up the rover."

To fulfil this broad goal, the design and development of the rover is separated into six distinct subsystems: Command, Control, Drive, Energy, Integration and Vision, each of which will be led by a single team member. These modules will work semi-independently to achieve the functional requirements as defined by the problem and eventually integrate their findings and goals to achieve the goals set out by the specification at hand. We will work under the main consideration that our rover is meant to be a proof of concept for one that could function on Mars. This repository contains our design process for the rover, how it was implemented and challenges that were faced. The diagram belows shows a high level overview of the design, including the main hardware components and the connections between subsystems.

Structrual Design

A short demonstration of the Rover working is also shown in the following video.

MarsRover2021Video_Group1.mp4

For more detailed information about how the Rover was designed and implemented, please refer to the Full Report.

autonomous-rover's People

Contributors

dimigeo22 avatar edvardjsholen avatar georgioschaimalas avatar josiahmendes avatar ragviswa avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

autonomous-rover's Issues

Resources + Ideas Thread for Vision

Just a thread for project management and recording how much time was spent for documentation in report.

Also to save ideas and figure out what functional and non-functional requirements there are for Vision.

Useful Links:

Functional Requirements

  • Ping Pong Ball detection (colour based) see 46 on Piazza
  • Terrain boundary detection, use optical sensor to map an area defined by command
  • Sending Commands to Drive (need more info on interfacing)
  • Receive commands from Command via ESP32?? (Need to clarify with Command and Control)

Resources + Ideas Thread for Control

A thread outlining the initial research and understanding process of the control subsystem as well as what may be some functional requirements that are expected.

Useful Links:

Functional Requirements

These are very vague at the moment and will likely be updated

  • ESP32 acts as the hub for data, receiving and transmitting data between all subsystems and acting as an access point for Command
  • ESP32 uses Wifi Access Point capabilities or Stationary capabilities in order to interface with Command website/app through socket level data communication

Resources + Ideas Thread for Command

The command subsystem, which is connected to the control subsystem, allows users to control the rover remotely through a web browser or an app. This thread is used for recording the process of the command subsystem.

Useful Links:

Functional Requirements

To be updated as time goes

  • Create a web or mobile dashboard to control the rover remotely and receive information from the different subsystems.
  • A web application using node js and mongodb as backend and react js as frontend to communicated with the rover.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.