- Philipp Hagenlocher
- Hendrik Möller
- Matteo Nardini
- Congnan "Jonas" Wang
The goal of this project is to build a micromouse from scatch and solve the maze challenge offerred by TUM.
- 22. Febuary: board design review
- 1. March: board design fixed
- 10.March: board ready
- 31.March: project finshed
The micromouse maze shall comprise 16 x 16 multiples of an 18cm x 18cm unit square. The walls constituting the micromouse maze shall be 5cm high and 1.2cm thick.
According to UK Micromouse Maze Solver Rules: https://www.cs.york.ac.uk/micromouse/Rules/Maze_Solver_Rules.pdf
- PCB Design
- Hardware Design
- HAL
- Closed Loop Control
- Maze-solver
- Communication and UI
- Understand voltage regulator thermal details and pick the one that are actually needed
- Pick the distance sensors
- Pick the HBridges
- To be filled
- Classify controll scenarios
- Straight: 3 scenarios
- corridor
- one side opening
- both sides opening
- Turn: switch off distance sensors
- Spin: switch off distance sensors
- Straight: 3 scenarios
- Determine controller types
- PI controller
- Determine motionControl APIs
- move (rawVelocity)
- turn (rawVelocity)
- spin (rawVelocity)
- update (xxx)
- Coding controllers in c#
- connect controller to HAL
- build PI controller
- impliment control logic
- distance controller
- velocity controller
- Lookup table for pwm
- update()
- upper limit for accumulated error of controllers
- Error notification in error.h
- wire motionControl.h API with controllers
- Theory for tuning controller parameters
- Debug controller on board
- Classic Flood Fill
- To be filled
* Name Formatting:
- functions: camelCase - getSomething()
- `#define: CAPSLOCK_WITH_UNDERSCORE - CONFIG_H`
- Variables: camelCase - timerInterruptFrequency
* Use "init" instead of "setup" (if there is no difference)
* Use in-line brackets only for "} else {" or similiar lines
* Code-Comments in-line for single important statements (or declarations)
* Code-Comments before function headers in c-file
* One empty line between sections of code, ordered as follows:
- Header file:
Guard condition,
includes,
`#defines (namespace)`
extern variable declarations
function headers
- C file:
includes,
`#define (for constants)`
member variables
function implementations