Event hero background image

GrotShotPro: The open source launch monitor for golfers

GrotShotPro began as an experiment to build a launch monitor at home. With costly commercial launch monitors often running on buggy software that deliver mixed results, the goal was to open source and democratize launch monitor technology in the golf space.

Armed with nothing but a Claude subscription, the project went from a crazy idea to a reality, building a sizable social media following and a growing open source repository. This hackathon project integrates golf simulator software into Grafana and connects it to an open source launch monitor, OpenFlight.

It’s a fully featured launch monitor. Fore!

Coleman Rollins (00:00):

Hey, everybody. Thank you very much for sticking around for the last slot of the day. I promise it's worth your time. Yeah. So I'm Coleman. I'm a staff engineer at Grafana, and this is my Science Fair project GrotShotPro. So I know I met a few already today, but show of hands, any golfers here? I see a couple. Great. So I've been a golfer my whole life. It's one of my oldest passions. I grew up working at a golf course, and in the past three or four years I've gotten really serious about getting better. And that comes with a lot of stuff like drawing lines on the videos of your swing, FaceTiming my coach for an emergency lesson, and also involving a lot of gadgets in your practice to get better. And one of those gadgets is called a launch monitor. And, you know, these are really important things as a golfer and as a player to get fit for the right clubs, to understand the metrics of your swing and your ball flight.

(01:16):

And I found myself every few months kind of going through this cycle of, "Maybe I should get one of these. I think it's time." But there's problems with the launch monitor ecosystem.

(01:32):

If you want a really good one, it's gonna cost $30,000. And I know there's someone here who works for a company, and I'm sorry to call you out on that, if you want a cheap one, it's not gonna work that well. It sometimes might hallucinate, it might kind of estimate your numbers. That's no good. Do you want one right in the middle? Well, they're gonna charge you a subscription to actually use the device, which is crazy. And all of them have subpar software. So I thought, I'm an engineer, I have a Claude subscription, maybe I can try to build my own. And so that's how my project OpenFlight was born. So I started from scratch. I knew nothing about hardware, I knew nothing about radars, but I started posting my journey on social media, all the successes that I had, all the failures, everything that I was learning.

(02:30):

And it turns out that people were really into a project like this. I got invited on a podcast, I did a Q&A for a golf news site, and TikTok started paying me some pretty big money.

(02:47):

Watch out, Grafana. And so yeah, OpenFlight was born, and it's this totally open source launch monitor, and the idea of open source is totally novel to the golf community, which is really cool. It's got over 300 stars, almost 400 now, and I've got some contributors from all over the world, which is pretty cool. I'm at, like, 30,000 followers now over a couple different platforms, which is something I would never hear myself say. So it's been a really cool journey that kind of just popped up for me. So real quick, I'm gonna give you a primer on how launch monitors work. So there's two kinds. Radar-based and camera-based. Radar-based watches the ball fly for a longer time, and it relies on signal processing and something called beam-forming, which I don't fully understand yet, but it's really powerful. Then there's camera-based, which relies on a high speed camera to capture just a few frames while the club is hitting the ball, and it estimates the rest of the flight after that initial impact.

(04:05):

So open flight uses radar, and it's powered by a Raspberry Pi. All the code running on it is Python, and it's got three radars total, two different ones. And I'll explain the difference in a minute here. And it's got a new cool 3D-printed enclosure that was contributed by someone in the repository. So there's two different kinds of radar: one large Doppler radar on the right, and two radars on the left that are called FMCW, which I'll get to in one second. And I tried using a camera but it didn't work that well because you need a lot of computing power, and, you know, from the position of the radars, you can't see the ball that well. It didn't work. So the Doppler radar relies on something called the Doppler shift. If you've ever been standing on the side of the road and a police car goes by you and the sound changes, this is the Doppler shift.

(05:06):

It uses continuous radio waves. And when the radio way is bounce off of something and come back, that difference in frequency tells us how fast something's moving. Doppler does not have a concept of direction, but it does know speed, and it has one transmitter and one receiver, which is important information for later. Something really cool that I learned during this project is that you can also measure spin with Doppler. And this is also how we observe planets spinning in space, which is pretty cool. When when an object is spinning in the air, it kind of wobbles or it kind of vibrates, and you can pick that up with the radar.

(05:50):

Okay, bear with me on this one. Trust me, it's not that complicated. The other radar is called frequency-modulated continuous wave. And the main difference is that it has one transmitter and two receivers. That physical difference in the receivers, how they're positioned physically on the board, will give us enough data to create a vector to where the golf ball is. So we transmit one radio wave up, it comes back, is received by two different receivers, now we have a vector to the golf ball. This is how we understand direction and the trajectory of the ball. So how do we do this with Grafana? So, after you hit a shot, we crunch all the numbers, we go through all the radio waves, we go through all the radar data, and a shot becomes a JSON log. These are all the metrics we collect, and then we ship it off to Loki.

(06:51):

Alloys running on the Raspberry Pi, and then the logs become ball flight. I have an app plugin running in Grafana that pulls Loki every few seconds. We used a Claude special physics engine, and you get a nice simulator right in your backyard. I know some people tried it out today and that was super fun to watch. I really wanted to do a live demo on stage, but no one would let me, so I think there's a video here.

(07:30):

Come see me tomorrow. If you didn't get to try it out, it's pretty cool. Thanks, everybody.

Speakers