Team ID: FE0901
Team Name: raffles institution team 3
Team Members
Welcome to the GitHub repository for Team FE0901
participating in WRO 2023. In this competition, we are building an autonomous robotic vehicle capable of completing 2 different challenges. This README provides a simple overview. If you wish to delve deeper into our engineering process, please check out our Engineering Journal or download it as PDF.
A demonstration video of our robot in action can be found on YouTube (or in the video.md file): https://youtu.be/pbWbQL5pThI
Open Challenge
Obstacle Challenge:
- Run 1: 03:40
For Code, Using Visual Studio Code:
- Clone this repository:
git clone https://github.com/PorridgePi/WRO-FE-2023
- Change directory:
cd ./WRO-FE-2023/
- Initialise Git submodule(s):
git submodule update --init --recursive
- Open the repository in VSCode:
code ./
- Install the PlatformIO plugin
- Select the appropriate PlatformIO Environment
- Use the PlatformIO plugin to compile and upload code onto the microcontroller (Raspberry PI Pico)
For Camera (OpenMV): Using the OpenMV IDE
- Open the camera code (
src/omv_main.py
) in OpenMV IDE - Upload code onto OpenMV by:
- Select
Tools
Menu - Click
Save open script onto OpenMV Cam (as main.py)
- Select
For Documentation, Using Obsidian:
- Clone this repository:
git clone https://github.com/PorridgePi/WRO-FE-2023
- Open the cloned directory as a Vault
For PCB, Using KiCAD:
- Clone this repository:
git clone https://github.com/PorridgePi/WRO-FE-2023
- Open the file
schemes/WRO_2023/WRO_2023.kicad_pro
.github/workflows/platformio-ci.yml
: GitHub Actions CI workflow for PlatformIO (Documentation).vscode/
: Folder containing VSCode workspace settingsextensions.json
: List of recommended and unwanted extensions (Documentation)
models/
: 3D modelsothers/
: Other filesschemes/
: Schematic diagram and PCBWRO_2023
: PCB files that can be opened in KiCAD
scripts/
: Scripts for PlatformIOci.sh
: Script for CI test
src/
: Main codelib/
: Libraries for components- Notably:
lib/private/Common.h
: Shared code betweenopen.cpp
andobstacle.cpp
lib/Mecha_QMC5883L
: Forked version of library for the QMC5883L magnetometer
- Notably:
test/
: Test codemain.cpp
: Placeholder fileobstacle.cpp
: Code for the Obstacle Challengeopen.cpp
: Code for the Open Challenge
t-photos
: Team photov-photos
: Photos of the vehicle (from many different angles!)video
: Contains video.md with the link to the video of the driving demonstration.clang-format
: ClangFormat code style file - to format code in VSCode.gitignore
: gitignore file (Documentation)platformio.ini
: PlatformIO configuration file (Documentation)README.md
: This file
- Calibrate compass(es)
- Ensure steering mechanism is tightened
- Clean wheels to ensure grip
- Motor: 1x GM25-12CPR
- Servo: 1x MG996R
- Motor Driver: 1x AT8236
- Microcontroller: 1x Raspberry Pi Pico
- Voltage Regulator (5V): 1x CKCS-BK-2
- LiDAR: 5x TF-Luna
- Camera: 1x OpenMV M7
- Compass: 1x GY-273 and 1x GY-271
- Battery: 1x Turnigy nano-tech 1300mAh 3S 45~90C Lipo Pack
We have a simple CI testing setup with GitHub Actions, using the scripts/ci.sh
script to automate the process of building our code for all different environments in platformio.ini
. It checks for build success and ensures that the code can be successfully compiled.
CI is a critical aspect of our development process. It allows us to detect issues and errors in our codebase as soon as they occur. This early detection is invaluable in preventing the accumulation of errors and simplifying debugging.
Besides, our project involves multiple team members working collaboratively. CI ensures that all code changes made by different team members do not introduce regressions or break existing functionality.
To check the status of our CI, go to the Actions
tab and view the workflow runs. If everything is going well, you should be only seeing green ticks. However, if you are seeing red crosses, something is up, but don't fret, we are definitely working hard to iron out the bugs!
(or alternatively, just look at the badge below for the CI status)