
Engineering Portfolio: Chris Berthelet
Nanobot Swarming Simulator
Description
This project was for my Advanced Programming in MATLAB course, in which we learned about Object Oriented Programming, data structures, interrupts (events), and GUI programming. The goal of the project was to make a program to simulate nanobots working under swarming control.
The collective goal of the nanobots is to autonomously clean up a pile of garbage and return it to the home base or nest. The simulation environment includes a nanobot nest, piles of garbage, static obstacles, searching nanobots, returning nanobots, as well as dynamic predators. A detailed GUI allows the user to fully customize quantities and sizes of various simulation parameters. Also, a display window relays real-time data during simulation.
The autonomous control of the nanobots is done via a simple implementation of Markov Chains, in which the nanobots transition from state to state based on a probability matrix. The probability of each move only depends on the previous state, and thus the control is memoryless. Interrupts (events) serve as the means of communication between nanobots and can bias probability matrices for the next move. For example, probability matrices will be positively biased if a garbage pile and negatively biased if an obstacle is found.
Gallery
![]() | ![]() | ![]() |
---|---|---|
![]() | ![]() |
Personal Contribution
My main contributions included:
-
Design of overall code scheme and flow
-
Programming of individual object classes (Static, Dynamic, Bot, Obstacle, etc.)
-
Programming of interrupts (events)
-
General code integration and testing
Technical Development
The technical skills that I developed included:
-
Object Oriented Programming in MATLAB
-
GUI Programming
-
Implementation of simple Markov Chain control