MA4012 Ball_Fondlers
This repos is for the MA4012 Mechatronics Engineering Design Project. The task is to build a robot that collects the most tennis balls within an arena. The robot must run autonomously to carrying out its task. The robot is built on a VEX Cortex
and ROBOTC
platform. Key concepts that were kept in mind is good design philosophy on all fronts; mechanical, electrical, electronic, and software.
Navigation
roboC_ws | unitTests | meetingMinutesAndAgenda | sampleCode | dataSheets
Contents
- main workspace for the final code of the robot.
- all code is written in a functional manner.
main.c
- file to be opened to upload compile and upload code to robot.
- performs tasks in discrete time.
config.h
- file that contains all tunable parameters
- contains all constants
- organised into folder with
<folder_name>
with the function or feature to be tested.
<folder_name>.c
- the main code to be compiled and uploaded
<folder_name>.h
- constants and tunable parameters
<file_name>.c
- the supporting function to carry out tests or to provide functionality to the robot.
motor_control
- tests the motors motion
- tune the closed loop and open loop control of servo and drive motors
localisation
- tests the odometry functionality of the robot
- tune the filter gains for the alpha-beta filters
sensors
- tests the sensor readings of all sensors
- tune the cutoff frequencies of filters
- tune the threshold values of sensors
- contains markdown folder of meetings
About VEX
- ROBOTC doesnt play nice with structs 'invalid return type' link
- ROBOTC doesnt recognise the difference between source and header files.
- global variables within a file only exists within that file's scope.
- global variables within a file's scope are static i.e. they retain their value.
- pragma must be in the file that is selected to be compiled i.e.
main.c
.
GitHub Cheatsheet
Setup
- Install Github
- Download the repository
git clone https://github.com/bentjh01/MA4012_Ball_Fondlers.git
- Create your own branch
git checkout -b my_branch
- Update the repository with new branch
git push --set-upstream origin my_branch
- switch to your branch
git checkout my_branch
Saving and Uploading to github
- Update local repository
git pull
- Checking branch and changes
git status
- Stage changes
git add directory_of_changed_file
- Commit changes
git commit -m "some description under 5 words"
- Upload to the cloud
git push
Making Pull Requests
- Update branch with
main
branch. git merge main
- Resolve conflicts if any.
- Make a pull request on the github page.
Timeline
- Week 3 - Collector Design and Strategy
- Week 4 - Vehicle Design and Drive System
- Week 6 - Power supply and sensor strategy
- Week 7 - Software strategy for power, sensing, and navigation.
- Recess -
- Week 8 - independant/unit test ()
- week 9 - a moving thing
- Week 10 - Prototype ready, additonal strategies
- Week 11 - Testing, tuning and optimization
- Week 12 - Trial run
Members
- Benjamin Teh
- Bryan Galenius
- Eunice Ong
- Fan Zifu
- Kelvin Lee
- Chen Lee
- Timothy Liu
- Hong Wei Tan
- Wilsen Lotan
- Wilson