Gregory Kaiser is an engineer for STAT Health in Boston, MA.
Fast Robots - ECE 4960
Final Project - Fall 2020
In this class, I created a grid localizing and path planning robot which could determine its position
on a map, and plan a route to an end goal, using a variety of on-board sensors and off-board computer calculations.
After detecting wall distances around the vehicle using a time-of-flight sensor during a 360-degree rotation, the robot uses bluetooth communication
to transmit that data to a laptop. That laptop uses a Bayes filter to probabilistically determine the vehicle's position and
orientation on a known map.
Highlight Video
Because this was a lab course, more complete documentation is available on a separate site where each stage of the build process
was recorded for grading purposes. Please visit the Hot Wheels of Inquiry
website for more details.
Class Description
Fast Robots was a course designed to teach us principles of robotic mobility. It went beyond previous courses which centered on slower servo-based
wheeled robots. It also served as an introduction to aspects of control theory relevant to the field.
Its Dangerous to Go Alone - ECE 5725
Final Project - Fall 2020
My partner, Caeli, and I wanted to make use of a camera for our final project, so we taped one to the back of a Raspberry Pi
and made a video game which could recognize objects using TensorFlow-Lite. We also wrote the physics and logic for the game ourselves after
starting from a scaffold.
We were able to implement some basic game functions before the class ended, including environmental health effects,
equipping a weapon, and consuming a food item to regain health. In order to gain these items, you must switch to the live camera feed and place
a valid object in view. A couple of fruit options will spawn an apple on screen, various clothing items will spawn armor, and a pair of scissors or a
knife will spawn your character a sword from the side of the screen.
Final Demo
Class Description
ECE 5725: Embedded Operating Systems is a class dedicated to using the Raspberry Pi as a development platform for a
variety of projects. We were taught about the distinctions between single threaded microcontrollers and multi-core computers
like the one on the RPi and how to take advantage of them.
Flip It! - ECE 3140
Final Project - Spring 2020
My project partner, Alex, and I were forced to complete this final project remotely due to the onset of the COVID-19
pandemic. We decided early on to keep hardware to a minimum to make remote collaboration smoother. The class was taught using a
board that already had an inertial measurement unit and an LED, so we chose to combine those into a game that requires a
player to flip the microcontroller in mid air and catch it again. We detected these flips and award points at the end of a round.
"Flip It!" turned out to be a pretty difficult game to play, but I like that we made something interesting from so little at our disposal.
The player first aligns the microcontroller with Earth's magnetic field so that the flips can be detected accurately in each axis. The board
blinks a series of lights to indicate which types of flips the player must perform. Only two axes are allowed, since only two rotations are stable
for a rectangular prism like the device we taped together. A freefall detection is triggered when the board is in the air, and a full rotation
around the correct axis must fully complete before the board comes out of freefall and is caught. More details can be found in the final report.
Final Demo
Class Description
ECE 3140 - Embedded Systems is an introductory course that connects the hardware of a processor to the physical world.
It discusses assembly language considerations, real-time constraints, concurrency management, process scheduling, interrupts,
and I/O, among other factors required for successful embedded programming and design.
Ball Balancer - ECE 4760
Final Project - Fall 2019
My project partner, Sam, and I created a ball balancing platform using PD control across two axes of a resistive touch screen. The ball is made of steel
so that the touchscreen would register its position, and also to slow down its dynamics so that we could control it properly.
Two servos controlled the angle of the plate, which was fixed at its center, but allowed to pivot about that point. The PIC32 microcontroller was used to
drive the touchscreen for feedback as well as to control the servos.
In the end, we were able to keep the steel ball on the platform for about a minute at a time using PD control. Because the position wasn't stable at a single
point, we never bothered to incorporate integral control to correct for steady state offsets. We describe the project a bit for Bruce Land's ECE YouTube channel.
Short Demo:
A more in-depth report was generated for the class.
We also wrote a similar article describing the project for Circuit Cellar.
Hackaday also covered the project.
Class Description
ECE 4760 - Designing with Microcontrollers is a class devoted to "...microcontrollers as components in electronic design and embedded control."
Using the PIC32MX processor as a basis for all lab work, an understanding of real-time constraints is required to execute the digital systems design tasks.