CJ’s Status Report

This week was a bittersweet one as we wrapped up our final presentation.

I presented for our group and I felt as thought it went very well. We have a few remaining tasks but it was a really great feeling to present and see how far we have come from the beginning of the semester.

We have a few final tasks for the upcoming week. First, we have to anchor the hole in place along with the rest of our electrical components. Then we have to felt the green and test end to end putting with everything in place.

I spent some time this week testing the accuracy of the LiDAR further than the initial test we had planned. I wanted to verify that the webapp will update in real time while also tracking the ball and not changing too much once the ball is in place.

Shoutout to Seaver who had some big breakthroughs in the world of IMU. We were successfully able to transmit the spin rate through bluetooth using a program written to the IMU.

Overall, I th

CJ’s Status Report fro 4/22/2023

Best ball is rollingggg. This week we began to reach the end game and also work toward finalizing the project.

I personally spent some time integrating our lipo batteries with our IMUs. At first I was skeptical but I was able to unplug the unit and maintain a bluetooth connection which was great. Once we have our IMU’s code finalized, we are planning to do a full length test of the battery life. From our calculations, it seems like this should last over an hour.

Secondly, I submitted some updated balls to be 3D printed. We need these balls to not be black because we found out that the black material actually absorbs that LiDAR? Not certain, however, when we use the black 3D printed balls they no longer appear on the LiDAR.

Lastly, I worked to refine the LiDAR to be better at detecting the balls location particularly around the edge. Currently, the LiDAR needs to spend a cycle or two measuring and then saving the edges of the frame. This allows for the LiDAR to tell the difference between the ball and the edges. What I modified was how this is done, some of the more parallel edges are hard to get enough samples from, so, for those areas only, I added 10 more cycles of the LiDAR and that seems to do the trick.

Overall, we are on schedule, however, I would have liked to have more done for our final presentation. Looks like some modifications will be made over next week and we will be finished and best balling come next week. Excited (and mildly stressed) for the next week!

CJ’s Status Report For 4/8/2023

This week went very well as well. For our demo we wanted to have was a full demonstration of the putter setting up their ball, taking their putts, and tracking the distance with the webapp. We then wanted to demonstrate the sensor system to tell when a putt is made. Finally, we wanted to have a demo of tracking spin rate and putter speed with the IMU.

After a laborious Sunday, we were able to achieve most of these goals. It started out for me by walking the entire course down Forbes with a few of my friends after realizing the 10 foot by 5 foot course wasn’t going to fit in the back of my car. Going to call that walk my workout for the week, grabbed some food and it was off to the lab. We set up the course and configured the LiDAR. Leveling the course was harder than expected as the LiDAR needed the entire course to be very level in order to properly find the outline. Once that was done, I finished implementing an algorithm to calibrate based on the course outline and search for “ball-sized outliers”.

Now that we had this performing, we set up a small LED system to represent the RFID and the pressure sensor being triggered before trying to configure them with the webapp. Seaver spent some serious hours getting the webapp to work and deployed.

Finally, we threw some post requests into our codebase for the LiDAR and Arduino based sensors to communicate with the webapp. Our downfall pre-demo was the operating the IMU. Unfortunately, we did not receive our batteries in time so that made it impossible to communicate with the IMU while it was in the ball. We were pretty burnt out by this point anyway, so we set up a small sub-demo of the IMU where it was still wired up.

Overall, we are set for the coming month and have some work ahead of us. Next big tasks are working with the IMU once we receive the batteries and putting the felt on the green to slow the roll of the balls. Regardless our schedule is on track, but we will need to make a push this week with testing.

The next tests for me to perform are verifying the distance measurement of the LiDAR and the accuracy of the IMU.

Our LiDAR test is quite straight forward, we plan to place the ball in  25 different spots that vary both distance and angle to the hole, measure the distance with a tape measure, then measure the distance with the LiDAR. From there we can continue to calibrate or verify that it is within our specification of 3 centimeters from the true distance.

The IMU test is a bit trickier, for this we will roll the ball along a path of length 3 feet and time it. This will give us the average speed over that distance. We can then extrapolate the spin rate as this will be based on the speed and circumference of the ball. Comparing this to the measurement of the IMU will tell us if we are within 5 revolutions per minute as per our specification.

CJ’s Status Report For 4/1/2023

This week was another productive week.

This week i personally spent my time working on the course itself and the LiDAR. I spent many hours building our wooden course. After building it, I recruited a few fellas to carry it down to campus with me.

I also worked on the LiDAR and was able to consistently track a ball. I ran into an issue where balls that were behind each other were unable to be tracked. We may consider re-scoping our project to only allow for one ball to be on the course at a time so that the LiDAR can accurately track the ball. However, the LiDAR implementation was vastly improved to track not only the ball but the hole and the distance to the hole. The LiDAR now also makes  POST request to the webapp to send the distance to the hole.

I think we are on schedule and plan to have an amazing Sunday to prepare for our demo where we want to have IMU data with the putter and ball as well as the hole, LiDAR, and RFID all working well with the webapp.

CJ’s Status Report for 3/25/2023

This week was quite productive.

After our ethics lecture we sat down to figure out the remaining details of the project. All our materials have been gathered and we ordered the last of our components. These included some felt for our putting green, a few more IMUs, and the RFID tags.

Personally, I spent some time working with the LiDAR sensor to create a better ball detection program. So far so good, however, the testing has limitations in the space I was in. Last week I started building the course but we are meeting at my house on Sunday as team to finish the frame of the course and bring it to campus Monday. Once we have that complete, we will be able to begin integration.

The remainder of my week was spent on bluetooth debugging. Turns out, bluetooth is quite difficult. The built in package that was supplied to us from the manufacturers of the MCU with BLE and the IMU was deprecated and was unable to compile, after some head scratching and some stack overflowing, I decided to just start from scratch. I created my own implementation and was able to successfully pair with both my phone and a computer.

Small change in our implementation is due to some of the things I discovered with the bluetooth, it does not send data very fast, so, we are now planning to do a lot of the IMU preprocessing on the MCU to generate a quick and easy JSON output that can be fed into either a laptop or a raspberry pi. This JSON will take the data from the IMU and convert it into velocity to send to the laptop or pi.

We also were able to mount an IMU on the putter and hope to do detailed tests this upcoming week.

Overall, we are on schedule, but we sure have some testing to do. I think these coming weeks will be fun, challenging, and long, however, I am ready to attack this project with a sight at the finish line.

CJ’s Status Report for 3/18/2023

This week we have hit the ground running. I gathered some materials to build the frame for our golf course and I am planning to start building this on Sunday. We have a bunch of wood to build a frame and to set up the course.

Personally, I spent most of my time working with the IMU. Configuring the blue tooth turned out to be harder than expected but after a bit of trial and error, I was able to successfully transmit some Bluetooth data from the IMU to my phone via a bluetooth app. (Not one that we created, just a developer bluetooth setup).

I was also able to write some code to utilize the IMU. With some tape I fixed it to a putter and was able to track the swing path as I brought the club back and then forward. I am hoping that by Monday I can have a program to say whether the user accelerated, decelerated, or stayed constant through the ball with their putt.

I would say overall that our progress is on track but we definitely missed Erik this week. This upcoming week will be a big one with the build of the course plus the integration of the bluetooth into the webapp. Another goal for this upcoming week is to have a working version 1.0 of the ball, we have identified a 3D model that we are printing to allow us to have a hollow shell that we will fill with sensors. For now making this ball mimic a real golf ball will be a nice to have in the future, but, with our schedule we may end up with a ball that does not roll perfectly.

As stated above, our biggest risk area is going to be the ball, we unfortunately had a long period of correspondence with a supplier of rubber ball shells that did not work out. The 3D printed model provides a bit of uncertainty with durabliity but I am confident we can test and find out how to maximize that balls performance.

CJ’s Status Report for 3/11/2023

A bit late on this one with some travel to finish up my spring break.

This week I worked on validating our sensors. I used an arduino as the MCU for all of this testing. Beginning with the RFID sensor, I was able to create a simple program to read a MIFARE compatible RFID tag and then map the UID values to a given “golf ball”. Using two of the provided RFID cards when one is tapped the program registers and reads back “Golf Ball 1 Detected!” and likewise with the other golf ball

An issue I did run into was with our tags that are used for the ball itself. This are not MIFARE compatible so they didn not register any data when scanned by the RFID sensor. However, I was able to track down another set of tags that are stickers that can be placed in or outside of the ball to provide the same function.

This week I also wrote part of the design documents. Particularly, the implementation and the design trade studies.

Overall our team is on track, I wish we had finished more this week before break, however, we are aiming to have a prototype of each of our subsystems by the end of next week and I believe we can achieve this. The biggest part of the upcoming week will be validating the IMU. I have begun to use the Arduino IDE to communicate with the IMU chip and all seems well. Our goal is to have a simulation by Wednesday that can show the orientation of the IMU as someone moves it around.

CJ’s Status Report for 2/25/2023

This week was another good one in the world of best ball.

This week I was able to improve upon the LiDAR system and begin to compile and mess with some library’s to work with our other sensors. Our LiDAR is now able to differentiate between feet, balls, and putters. This will allow us to accurately detect the ball. I have also added a script to measure and display the distance from the LiDAR to the ball, this will need to be edited to tell the distance from the ball to the hole but that should be simple linear equations.

I was able to find raspberry pi library called mfrc522 which is a library to control our RFID sensor through GPIO connections and a SPI interface. I booted up an old raspberry pi and configured it to have SPI connections ready to go when the sensor does arrive and I began work on code to detect ball ids when a ball is placed on the RFID sensor.

Lastly, I began to work on the actual green. I have begun work on a design for the green to allow for confined walls for the LiDAR to make an outline of the course. The green will need to be slightly elevated in order for sensors to live under the course. To accomplish this, we will create a wooden base with cut outs to fit our sensors where they are needed. On top, the wooden base will be covered with green felt. The green will need to be at least 6cm off the ground to fit all our sensors and to fit a golf hole with the right depth.

Overall we are slightly behind schedule as our sensors did not arrive when we expected, however, we have a few that arrived yesterday and we will be able to begin testing them as a team on Monday.

Team Status Report for 02/18/2023

This week we were able to make a lot of progress with Seaver and Erik returning home from their swim meet. We mainly finalized our design and ordered parts/sensors to begin testing with.

We had a breakthrough this week where we were able to verify that the LiDAR sensor that we got through the ECE inventory was able to successfully detect a golf ball. A few risks still with this component will be reliably detecting the golf ball and the distance to the hole while not becoming confusing by other objects such as the putter or golfers feet.

One change that we have decided to make it to line the putting green with a boundary wall. Mini-Golf Course with 9 Holes | A Fun and Challenging Event Rental

As shown here, the golf holes have barrier walls around them. This will allow us to do two things, first we will be able to embed the LiDAR sensor slightly lower as currently a golf ball passes just under the plane of vision for the sensor. Second, this will allow the LiDAR sensor to begin a calibration phase in which it measures and stores data about the hole with no other objects. This will yield more accurate object detection and distance measurement on the course.

Some of the final items to iron out are how we are building the hole itself, what components will it have, and what materials will we be using. We plan to finalize and begin building sometime mid next week as we want to verify each component of the system first before building the green itself.

Overall we are on track for our project and following the schedule. We should be able to build component prototypes for every subsystem in the entire project by the end of next week putting us well on track to have our plan verified before spring break.

CJ’s Status Report for 02/18/2023

This week was very productive. With Seaver and Erik back from their swim meet we were able to meet up and really iron out some of the details of our design. We went ahead and selected a pressure sensor for the hole, an RFID sensor and tag for the ball, a bluetooth enabled IMU for the ball, and the LiDAR sensor to detect the balls distance.

I primarily spent the week messing with the LiDAR sensor. First thing was finding a suitable library to control the sensor. After messing with the poorly documented one on the manufacturers website, I found another implementation that was much easier to understand and was written in Python which I personally enjoy better than C++. After some messing around I was able to have the LiDAR scan across an entire room and scan with a golf ball in it’s field of view. The next challenge was slowing down the motor, this sensor comes with a USB chip to control it, however, the chip sets the spin rate of the LiDAR sensor to a set rate. This rate does not allow for the angular resolution that we are looking for and need to properly detect a golf ball. To get around this, I used an Arduino to highjack the PWM MOTOR_SPEED control pin and was able to slow down the spin rate successfully.

From there, I began to write some code to try and detect the ball edges. Below is a photo of the LiDAR output. I was able to write a ball detection program that highlights the ball in red. For a standard golf ball, this worked up to 10 feet away which is within our requirements.    

Our project is on track and we are expecting the rest of our sensors next week. From there, we are going to test each individual component. Next week we hope to have developed a prototype of the hole and proper distance measurements. Once these have been completed we will move into designing and building the golf hole.