How jacob-sauve/ripper works
This repository implements software for the Ripper EV3/BrickPi robot. Its primary workflow loads a command script, parses recognized commands, queues them for the multiprocessing controller, and coordinates sensor-guided motion and actuator behavior until the touch sensor triggers shutdown. The excerpts show the entry point, parser, hardware adapter, and portions of the controller; some command internals and worker wiring are therefore represented only where the excerpts support them. Remote brick control is a separate optional capability.
Main entry points: main.py Robot entry · multi_process_drive.py Megamind · command_parser.py Command parser · remote.py Remote brick client
Components 17
Command control
- Command script
src/commands.txt - Robot entry
src/main.py - Command parser
src/command_parser.py
Robot runtime
- Megamind
src/multi_process_drive.py - Sensor and motor workers
src/multi_process_drive.py - BrickPi adapter
utils/brick.py - Touch stop
utils/brick.py
Robot features
- Color classification
src/colors.py - Jingle playback
src/musical.py - Audio synthesis
utils/sound.py - Startup titlecard
src/titlecard.py
Remote control
- Remote brick client
utils/remote.py - Remote brick server
utils/remote.py - Remote invocation
utils/rmi.py
Other components
- Operator
- EV3 robot hardware
- Remote controller
Connections 19
- Operator → Command script: edits
- Robot entry → Command parser: parses via
- Command parser → Command script: reads
- Command parser → Robot entry: returns commands
- Robot entry → Megamind: creates and queues
- Robot entry → Touch stop: polls
- Robot entry → Startup titlecard: shows
- Robot entry → Megamind: shuts down
- Megamind → Sensor and motor workers: dispatches work
- Sensor and motor workers → BrickPi adapter: reads sensors and drives
- BrickPi adapter → EV3 robot hardware: accesses
- Touch stop → EV3 robot hardware: reads touch input
- Megamind → Jingle playback: invokes jingles
- Jingle playback → Audio synthesis: builds and plays
- Remote controller → Remote brick client: controls remotely
- Remote brick client → Remote invocation: uses
- Remote brick server → Remote invocation: uses
- Remote brick server → BrickPi adapter: registers brick
- Remote brick client → EV3 robot hardware: controls through brick