Skip to content

Commit

Permalink
Update README and TODO for Nov 2024 release
Browse files Browse the repository at this point in the history
  • Loading branch information
mackorone committed Nov 24, 2024
1 parent b24c450 commit b4ae935
Show file tree
Hide file tree
Showing 2 changed files with 61 additions and 44 deletions.
71 changes: 45 additions & 26 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -43,22 +43,29 @@ For information about Micromouse, see the [Micromouse Wikipedia page](http://en.
## Download

You can download pre-compiled binaries from the
[releases](https://github.com/mackorone/mms/releases) page. Simply download the
asset corresponding to your platform:
[releases](https://github.com/mackorone/mms/releases) page.

- Windows: Download and unzip `windows.zip` and run the "mms" exe
- Note: you may get a warning like "Microsoft Defender SmartScreen prevented
an unrecognized app from starting. Running this app might put your PC at
risk." To get past that warning, click "More info" and then "Run anyway"

- macOS: Download and unzip `macos.zip` and run the "mms" app
- Note: you may get warnings about running an application from an
unidentified developer. To get past those warnings, control-click on the
app and select "Open" (as opposed to simply double-clicking on the app).
- Linux: Download and unzip `linux.zip` and run `mms-x86_64.AppImage`
- macOS: Download and unzip `macos.zip` and run `mms.app`
- Windows: Download and unzip `windows.zip` and run `mms/mms.exe`

If pre-compiled binaries for your platform are unavailable, you'll have to
[build from source](https://github.com/mackorone/mms#building-from-source).

> [!IMPORTANT]
> The macOS version fails with the following error:
> > "mms.app" is damaged and can’t be opened. You should move it to the Trash.
>
> To get past the error, manually remove the quarantine attribute:
> ```
> xattr -d com.apple.quarantine mms.app
> ```
> [!NOTE]
> On Windows, you may get a warning like:
> > Microsoft Defender SmartScreen prevented an unrecognized app from starting. Running this app might put your PC at risk.
>
> To get past that warning, click "More info" and then "Run anyway."
## Quick Start
Expand Down Expand Up @@ -96,9 +103,10 @@ before issuing additional commands.
int mazeWidth();
int mazeHeight();
bool wallFront();
bool wallRight();
bool wallLeft();
bool wallFront(int numHalfSteps = 1);
bool wallRight(int numHalfSteps = 1);
bool wallLeft(int numHalfSteps = 1);
bool wallBack(int numHalfSteps = 1);
// Both of these commands can result in "crash"
void moveForward(int distance = 1);
Expand Down Expand Up @@ -136,20 +144,29 @@ int/float getStat(string stat);
* **Action:** None
* **Response:** The width of the maze

#### `wallFront`
#### `wallFront [N]`
* **Args:**
* `N` - (optional) Check for a wall this many half-steps away, default `1`
* **Action:** None
* **Response:** `true` if there is a wall, else `false`

#### `wallRight [N]`
* **Args:** None
* `N` - (optional) Check for a wall this many half-steps away, default `1`
* **Action:** None
* **Response:** `true` if there is a wall in front of the robot, else `false`
* **Response:** `true` if there is a wall, else `false`

#### `wallRight`
#### `wallLeft [N]`
* **Args:** None
* `N` - (optional) Check for a wall this many half-steps away, default `1`
* **Action:** None
* **Response:** `true` if there is a wall to the right of the robot, else `false`
* **Response:** `true` if there is a wall, else `false`

#### `wallLeft`
#### `wallBack [N]`
* **Args:** None
* `N` - (optional) Check for a wall this many half-steps away, default `1`
* **Action:** None
* **Response:** `true` if there is a wall to the left of the robot, else `false`
* **Response:** `true` if there is a wall, else `false`

#### `moveForward [N]`
* **Args:**
Expand Down Expand Up @@ -515,14 +532,14 @@ qmake && make
../../bin/mms
```

## Related Projects
## Related Works

- [@zdasaro](https://github.com/zdasaro) wrote a proxy for the Priceton University Robotics Club: [mms-competition-proxy](https://github.com/zdasaro/mms-competition-proxy)
- [@P1n3appl3](https://github.com/P1n3appl3) created an Arch Linux package: [mms-git](https://aur.archlinux.org/packages/mms-git/)
Feel free to open a pull request if you want your work listed here!

## Citations
#### Projects

Feel free to open a pull request if you want your work listed here!
- [@zdasaro](https://github.com/zdasaro) wrote a proxy for the Priceton University Robotics Club: [mms-competition-proxy](https://github.com/zdasaro/mms-competition-proxy)
- [@P1n3appl3](https://github.com/P1n3appl3) created an Arch Linux package: [mms-git](https://aur.archlinux.org/packages/mms-git/)

#### Papers

Expand All @@ -536,12 +553,13 @@ Feel free to open a pull request if you want your work listed here!
- <https://www.technologyx2.com/proj_robot_rover/2020/6/15/project-micromouse-robot-simulator>
- <http://iamsudharsan.com/maze-solver-robot/>
- <https://www.instructables.com/Micro-Mouse-for-Beginnersth/>
- <http://micromouseusa.com/?p=2288>
- <https://projects.ieeebruins.com/micromouse/floodfill-module>

#### Videos

- <https://www.youtube.com/watch?v=6y4nrnfZ1k0>
- <https://www.youtube.com/watch?v=-r8a8aPRYAQ>
- <https://www.youtube.com/watch?v=0YId4SPJrWo>

#### Repos

Expand All @@ -551,6 +569,7 @@ Feel free to open a pull request if you want your work listed here!
- <https://github.com/nalindas9/enpm809y-final-project>
- <https://github.com/james-ralph8555/DrexelMicromouse2020>
- <https://github.com/darshit-desai/Maze-Solver-simulation-using-Wall-Following-Algorithm-OOP>
- <https://github.com/omkarchittar/Wall_Following_Robot>


## Acknowledgements
Expand Down
34 changes: 16 additions & 18 deletions TODO.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,23 @@
Wishlist
========
- Add a version number somewhere to make it easier to provide user support
- Display better error messages for invalid commands
- Write an app/algorithm for manually running commands
- Add a standalone CLI for quickly checking stats on many mazes:
- Solved or not, how many steps, ave # of steps, etc.
- https://github.com/mackorone/mms/issues/35
- Add a "new algo" wizard to make it easy to bootstap a new algo
- Auto-populate build and run commands
- Add more builtin mazes, rename them
- Edge-based movement
- Fix stats for non-standard movements
- Support curve turns and other fancy movements
- https://github.com/mackorone/mms/issues/31
- Update all templates to include new methods
- Make it possible to accelerate the mouse
- Make it possible to draw lines connecting semi-positions

Cleanup
=======
- FPS optimizations
- Use one buffer for static attributes, one for dynamic
- Static: tile xy-coords, tile corner color, texture v-coords
Expand All @@ -11,22 +26,6 @@ Wishlist
- Memmap for better attribute streaming
- Use unsigned char for texture v-coord
- Use index buffer objects
- Make a system for quickly checking stats on many mazes
- solved or not
- how many steps
- ave # of steps
- Add more builtin mazes, rename them

Cleanup
=======
- Edge-based movement
- Fix stats for non-standard movements
- Make it possible to check for walls a full step away
- Support curve turns and other fancy movements
- Update all templates to include new methods
- Update the README and explain edge-based movements
- Make it possible to accelerate the mouse
- Make it possible to draw lines connecting semi-positions
- Fix mack algo assertion failure on Windows when reset pressed
- Add unit tests
- Lint the codebase
Expand Down Expand Up @@ -65,4 +64,3 @@ Cleanup
- Rename the whole texture vs polygon thing
- Rename TriangleTexture and VertexTexture
- Position vs. location vs. coordinate, direction vs. rotation vs. angle
- Shrink icon file size

0 comments on commit b4ae935

Please sign in to comment.