pyesonekyaw / CZ3004-SC2079-MDP-Showcase

CZ3004/SC2079 Multidisciplinary Project (MDP) Showcase/Guide

Home Page:https://mdp.pyesonekyaw.com/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool


Logo

About The Project

2023 Semester 1 Update: At least from what my juniors told me, this repository, along with my other MDP-related ones, are entirely reusuable. The only exception is that you will need to retrain the YOLO model since the fonts/colors were changed. That is a 1-day thing. If you are using these repositories and you don't have a functioning, fully-integrated system by end of Week 4, reconsider your life choices.

CZ3004/SC2079 Multidisciplinary Project is a notorious module in the computer science curriculum of Nanyang Technological University. A rite of passage, if you will. It solely comprises of a group project where students are supposed to create a 'robot car' with the hardware provided. The robot is supposed to perform two tasks:

  1. 4-8 10cm x 10cm x 20cm (W x L x H) obstacles are placed in a 2m x 2m area. The area can be divided into 10cm x 10cm squares, and the obstacles will be placed in one of those squares. One of the four sides of the obstacle has a symbol card pasted on it (refer to the symbol recognition section to find out more). The objective is to navigate the robot to each symbol card and recognize it successfully in the shortest time possible.
  2. Two obstacles, one standard sized from (1) and one longer obstacle, are placed directly in front of the robot, spaced apart. There is either a left or right arrow pasted on the obstacles. The robot's starting point is in a 'carpark', an area that is enclosed by obstacles on three sides (like a U shape). The objective is to navigate the robot based on the arrow, and return the robot into the carpark in the shortest time possible.

I took this module in AY22-23 Semester 2, for those who are planning to reference the repositories. Typically, very small things change every semester, so do not take the repositories as the absolute truth.

About This Repository

I was responsible for the algorithm, image recognition, and Raspberry Pi subtasks, which can be summarized as:

  • Image Recognition - YOLOv5 to detect various symbols (letters, numbers, arrows, etc)
  • Raspberry Pi - Orchestrator and message passing between different components
  • Algorithm
    • Pathfinding algorithm to navigate the robot to the symbols and arrows
    • Simulator to simulate the robot, obstacles, and pathfinding algorithm for the first task

For whatever I have done to be easily accessible, I created a website to showcase the various subtasks.

The website is built with Next.js and TailwindCSS, and is hosted on Vercel. The website is available here, and this repository is basically for the website (and simulator, since that's in the website too). It was more of a fun project to see what Copilot and Code Whisperer can do, and more than half of this site was generated by either tool.

Other Repositories and Resources

Acknowledgements for the works I referenced can be found in the respective repositories.

About

CZ3004/SC2079 Multidisciplinary Project (MDP) Showcase/Guide

https://mdp.pyesonekyaw.com/


Languages

Language:JavaScript 98.8%Language:CSS 1.2%