Let's chat!
michael [at] michaelfatemi.com
Or connect with me on LinkedIn
I'm Michael Fatemi, a software developer and machine learning enthusiast. I'm currently an undergraduate studying Computer Science and Mathematics at the University of Virginia/UVA.
I am researching robotic intelligence with the UVA Collaborative Robotics lab, with a specific focus on semantically-grounded motion planning and human-robot interaction.
Enabling 3D object detection with a visual fiducial system (AprilTags). We're using a set of 2 Microsoft Kinect cameras and a Franka Panda arm. The green cube represents a 0.5m x 0.5m x 0.5m volume. Our goal is to enable motion planning that works purely through vision models.
I am also a member of UVA's Autonomous Racing Team, where I work on algorithms to detect and overtake opponents in real-time. Recently, I trained a YOLO-based computer vision model to detect opponents, and cross-calibrated our camera setup with LiDAR sensors to enable depth estimation.
We got second place at the Indy Autonomous Challenge at CES 2024 in Las Vegas!
I cross-calibrated our cameras with our LiDAR sensors to enable us to estimate the distance of opponent vehicles. Notice the opponent vehicle in light orange on the left image.
I also developed robotic path planning techniques using deep reinforcement learning with graph neural networks as part of a summer program with the University of Maryland and the US Army Research Lab. I improved upon a prior version of a robotic path planning algorithm by enabling inference at a 30x higher speed on 100x larger environments. I will be presenting this as a poster at AAMAS 2024 (International Conference on Autonomous Agents and Multiagent Systems).
The agent learns to generate paths that can are ambiguous about the ultimate goal when given different "budgets" for deceptiveness.
Previously, I was a student researcher at Dartmouth's Emerging Diagnostic and Investigative Technologies lab, where I used deep computer vision and statistical techniques to predict cellular activity using spatially-resolved transcriptomics for colorectal cancer tissue slides.
Additionally, I worked as a contractor with Kyron Learning, where I developed methods to improve the factual accuracy and tutoring capabilities of language models. This included creating a Python API and React website to demonstrate novel language modeling techniques, and the implementation of pipelines like ReAct/chain of thought and decomposing lessons into subgoals to improve an LLM's ability to adhere to a coherent lesson plan.
I collaborated with several educators to create a pipeline where students could watch along with videos and be asked questions at AI-suggested interaction points.
I am currently an undergraduate at the University of Virginia, graduating in 2026. I am majoring in computer science and mathematics. I went to the Thomas Jefferson High School for Science and Technology.
In this project, I sought to create a way to use language models for research-oriented writing. It provided the following primary features:
text-davinci-003
model for text generation. I eventually reached 10 paid users (yay!), and I shut down the project when ChatGPT was released.For a year-long student research project in high school, I made a "sound camera" with a Raspberry Pi, an embedded webcam, and a microphone array. It is capable of detecting the locations of sounds within 8º of accuracy purely through a grid of microphones, and displaying them in real-time.
To handle conflicting sounds from multiple frequencies, I improved upon an existing algorithm (Steered-Response Power Phase Transform/SRP-PHAT) by using a Discrete Fourier Transform to separate a measured signal into segmented frequency bounds and then convert those back into the time domain with an inverse transform. This was helpful because loud, low-frequency sounds (such as ambient noise) would sometimes drown out higher-frequency, meaningful sounds (such as voices).
I then created an algorithm written in C to assess potential directions of arrival and connected a webcam to enable visualization . Most of my code is on my own repository, sound-camera
, but I also added some tools I created to another open-source library, ODAS
, which has 700 stars.
If you want to read more about how I made it, see this document or this video.
We are competing in the Indy Autonomous Challenge, where teams from around the world (UVA, MIT, CMU, KAIST, TUM) put their algorithms head to head in an autonomous Indy 500. We're using LiDAR sensors, cameras, and GPS to navigate the track. I am implementing algorithms to accurately detect other cars and plan methods to overtake opponents in real-time.
Working to develop a solar-powered car. Recently, I contributed to the development of a regenerative braking system to improve the car's battery efficiency. I mostly developed embedded software using Mbed OS and C++. I also gained experience using Docker as a simulated build environment.
I help organize events and workshops to help maintain a strong and dense community of builders at UVA.