Author: akireeff

Alex’s Status Report 04/27

I’ve made a bunch of spare parts for everything we can. This is in preparation for the final demo this coming week. This week I mainly worked on integrating my subsystems with the pongpal robot. Specifically, I’ve been working on firing using the raspberry pi, integration testing that to make sure the accuracy is what we expect given our previous tests. It turns out that when I was testing last week I was adding a little bit of stochasticity to the pressure system (due to the bouncing of the wires when I connected them as I discussed during our final presentation) because it is now performing slightly better.

I am on schedule.

I look forward to finishing Pongpal next week!

Alex’s Status Report for 4/20/24

For the past 2 weeks I prototyped and finished making the launching subsystem. It was very rewarding to finally be able to shoot a ping pong ball out of the cannon (even though at the beginning it was going at a very high speed). I don’t really see many possible issues with our final bit of integration, something I was worried about at one point was how difficult it would be to move the pipe around, but after talking with Simon I am confident it won’t be an issue.

No major design changes this week. It is however, worth noting that we ended up only needing a thicker tube to fire the ping pong ball, so the problem we had firing the ping pong ball was indeed due to the resistance of the tube.

I also finished the cup detection. I take several 3d coordinate pictures (with the LIDAR), project these onto the plane that is perpendicular to gravity and then convolve a circle onto that image to get out the cup locations. Visually this works very well but I am having trouble extracting the precise cup location and will be finishing that up later tonight.

I’ve worked a bit on collecting data for ball detection and cup detection and am going to continue doing that next week. Next week I also plan on collecting data for the launching subsystem.

I had to learn a lot of stuff about piping and air pressure for this capstone project and I found a lot of useful websites explaining how to do projects that are similar to ours. But ultimately, I found a blog post explaining pressure and flow in terms of voltage and current and that proved to be very intuitive for me. I also learned a lot through trial and error of different computer vision algorithms for cup and ball detection. Something else I learned was how to apply my mathematical skills to write code that necessitates it (the ball dynamics and cup projection were especially enjoyable for me to finish).

No schedule changes this week and we will be focused on testing and integration for the rest of the semester.

Alex’s Status Report for 4/6/24

I used the demo this past week as a forcing function for my subsystems. I tested out the accuracy of the ball detection (admittedly this was right before the presentation) and found that it was worse than I expected because I was unable to capture as many frames as I had wanted. Later that day I refactored the code to take this into account. I also finally tested the motors we have and we found that we were lacking in power to launch the ping pong ball (more on this later). Finally, I got the cup detection working, but later this week I found that the code I wrote was not invariant to LIDAR rotation and have been debugging that for the last couple of days.

Next week I plan on ordering another round of parts for our pressure launching mechanism. The parts I am planning to order are larger tubes so that more air will be released when fired and also a larger motor. I also plan on finishing up the cup detection by making it invariant to the rotation of the LIDAR.

For verification you can see our group post for more details, but in essence we will be testing our ball detection by facing the camera up, throwing ping pong balls over the camera and measuring where they land by recording the ground with a camera and marking it. Then we will compare where the LIDAR thinks they land with where they actually land and find the difference. For verification of the cup detection we will be doing something similar where we place a cup and then measure out the distance of the cup from the LIDAR and compare that to the actual LIDAR reading. Finally, for the launching system we will test the precision by launching it multiple times (remember if we have issues with accuracy, we can just change the offset so it is accurate aswell).

Alex’s Status Report for 3/30

This week I got the CV camera working with the cup detection, I also polished off ball detection some more. What ended up working the best was getting all the points that the LIDAR generates and then projecting those onto a 2d plane that is perpendicular to the gravity vector. Then I go through all the planes from 2 meters below the camera to the same plane as the camera and I use a simple circle detection algorithm to find the top of the cups. From there, extracting the location and the plane that defines the cups is trivial.

This puts me behind schedule, but I am still confident in my ability to finish everything.

Next week I will be combining ball + cup detection and getting an MVP for the launching subsystem.

Team Status Report 03/23

Right now we think the biggest risk factor is having enough pressure to fire the ping pong ball. Alex is nearing completing of the CV subsystem and needs to write software for the launching subsystem, Mike has a working prototype of the website and Simon has assembled the aiming mechanism and written some initial software for it. Something else to consider is how the accuracy of the computer vision subsystem will affect the user experience and we hope to work on that once we have integrated our system.

No major design changes this week.

No changes to the Gantt chart, but we are currently running a bit behind our schedule.

Alex’s Report 03/23

This week I worked on finalizing the LIDAR for ball detection and cup detection. I have finished ball detection and I created a neat visualizer for it (from what I can tell the ball detection and trajectory detection work very well, but I am waiting to test it to make any statements about the accuracy). I am also almost done making the cup detection module, but I am struggling to figure out how to make debugging output for it.

I have assembled the launching mechanism and plan to do some math next week to see if we will need larger tubes to launch the ball. If time permits, I plan on testing it, but I am unsure about how much time I will have as I am trying to finish the CV subsystem as we have our interim presentation next next week.

I also helped Simon debug the raspberry pi’s wifi issue and I looked into how to get it working on CMU wifi (as I had to do this with my laptop). To get it working on CMU wifi I believe we just have to register it as a personal device and add the cmu wifi certificate to it.

Next week I plan on finishing CV, helping to get the system integration going and (if time permits) writing software for the launching subsystem. I am currently behind schedule. I also plan on helping mike setup the DDNS.

Alex’s Report for 3/16

This week I worked more on the trajectory prediction, with the ping pong balls, I finished the filtering of unrealistic trajectories and am now considering working on getting the trajectory that traveled the most distance. I don’t think that this component will be strictly necessary since filtering out unrealistic trajectories already works quite well. I also need to think about how to test this component of the system as well.

I thought a lot about cup detection this week because it feels harder to do than ball detection. I am going to try mapping the 3d point cloud into a 3d “pixelated” space and then go layer by layer searching for circles. Alternatively, if that doesn’t work I could use a computer vision model to detect the cups based on the rgb vision rather than LIDAR vision, but I’m trying to get LIDAR vision to work properly.

I’m almost done with the first iteration of the launching subsystem, I only need to obtain a 2 liter soda bottle to use as a pressure chamber and hook that up to our current pressure system.

Next week I think I’m just going to focus on trying to get as much as I can done with the computer vision subsystem and I might ask one of my groupmates to look for/buy the pressure container (a 2 liter soda bottle).

This puts me around where I expect to be on the schedule.

Alex’s Report for 3/9

Over the last 2 weeks I have spent considerable time working on the ball detection part of the computer vision subsystem. As seen on the design report, we can now pretty reliably detect ping pong balls that are flying through the air. I have also finished the trajectory prediction with the ping pong balls, I still need to filter out unrealistic trajectories, but that shouldn’t be too bad and I am looking forward to testing that component soon.

I have also spent considerable time working on the design document.

Over spring break I was able to retrieve some of the parts for the launching system and I began assembling the launching subsystem with the parts that I had available. I am looking forward to receiving the remaining parts and then I want to finish building the first iteration of the launching mechanism.

This leaves me on track with the schedule.

Next week I plan on finishing construction of the launching mechanism and getting some progress on the computer vision subsystem (I will probably focus on trying to finish the computer vision subsystem).

Team Status Report 02/24

This week our team members have worked on implementing the individual subsystems. As such, more possible risks are being discovered – in the mechanical system, especially in the vertical aiming side, the amount of torque that we initially thought that was enough may not be enough when attached to larger physical parts. More research into the materials that are lightweight, or redesigning the arm to be shorter may slow down our progress. In the vision system, the Pi’s processing power could potentially become a bottleneck at which point we might need something like Jetson Nano or send all the visual data to the cloud. The frontend might need some overhaul if the users find the UI un-intuitive. We will find out if these risks will actually hinder our progress as we work on these subsystems.

We have no major design changes, except a minor tinkering here and there. The radial aiming system will now include a stepper motor driver in between the motor and the Pi, and the UI is going through minor changes (such as color and layouts) to fit everything nicely.

Most of us are still on schedule and have not made any major schedule changes. Alex is ahead on ball/cup detection, but behind on the pressure subsystem as the parts are taking longer than expected to arrive.

Alex’s Status Report for 2/24

Time Breakdown:

  1. Class time (4 hours)
  2. Ordering Parts (2 hours)
  3. Design Document (2 hours)
  4. LIDAR (4 hours)

This week I was in class for 4 hours watching presentations.

This week I ordered a good portion of the parts I need for the pressure subsystem. Additionally, I’ve looked into some alternative parts that we can buy and am considering buying them just to see if they can be used to improve our base design. These include buying a simpler solenoid valve for the firing mechanism and weighing some options on different PVC pipe radii/thicknesses that I can buy.

This week I also worked on writing up some of the back of the napkin math that was used for our design process to include in our design document. This mainly involves the pressures necessary to launch the ping pong ball with sufficient velocity.

Finally, this week I worked on the LIDAR system. First I verified that it can indeed track a ping pong ball at the distance we require (it can). Then I began working on the software to interface with the LIDAR, I was having some trouble on this front, but I will be finalizing the software for this subsystem over the coming week.

This leaves me behind schedule on ordering parts, but ahead of schedule on getting the LIDAR to work.

Next week I plan on working on ball detection with the LIDAR as well as beginning assembly of the pressure subsystem.