Team status report 4/12

These past two weeks, we have been working on getting the robot to pick up a box every time. We integrated the vision/control algos with the robot kinematic algorithms and were able to reliably pick up multiple boxes in a row. Physically, we updated the arm to have both arm and electronic controllers on the same 3d printed structure/piece. We were able to sync the main PC program’s axes/commands almost perfectly with the arm’s angle quirks to maximize accuracy. We were able to test the system on example boxes running on the treadmill and achieve 80% pickup success (8/10 runs). We have already started experimenting with different pickup move paths / command sequencing, as well as experimenting with different refresh rates and power ramping for the servo. Next week we are going to work on dialing in arm movement and test our system with real drop-off bins.

Marcus Status Report 4/12

The last two weeks Ive been testing and rebuilding the robot arm to make it more reliable. I have updated system to have both arm and electronic controllers on the same 3d printed structure, and revised pieces to make wires internal. I tested some pwm ramping functions, and am still revising control software.

I had difficulty threading the wires through the structural components, and adjusting calibration for each new iteration.

Next week we are going to work on dialing in arm movement.

Raunak’s Status Report for 4/12

This week, I worked on integration testing with the QR code scanner system and the robotic arm. We realized that the robotic arm was sometimes too slow and sometimes too fast at picking up the packages, so we had to make sure that it was reliable. After tweaking the code, I tested the robotic arm’s pick up reliability and 9/10 times it was able to pick up the moving box. In addition to this, I worked extensively on the final report. We received a lot of constructive feedback for our midway reports, so I wanted to start early on the final report to work on the areas that need improvement. I wrote about half of the report so far including the introduction, use-case requirements, design and implementation sections.

Next week, we plan on doing more testing with the entire system. Specifically, we 3D printed a few boxes of different heights and we want to verify that the system picks up all three boxes reliably. I will also continue working on the final report, taking the feedback from the midway report into account.

Our testing mostly includes integration tests with the entire system. This involves running an end-to-end test by placing a box on the treadmill and seeing if the robotic arm is able to pick up the box correctly. We prefer this over software-only tests because they tell us more information about what we need to improve. Our measured results include the number of times the box is able to be picked up reliably. For example, we test the end-to-end process 10 times and see how many times the robotic arm does its job. Initially, it was only getting it right 1 or 2 times out of 10, but now it gets it right pretty much every time.

Team Status Report 3/29

This week we were able to initially integrate all of our components (Arduino arm/kinematics code, Python vision/kinematics/control code). We were able to integrate the CV with the robot arm to track qr codes and determine box position/speed/height, send the robot arm sequential commands, and pick up the moving packages. We were able to pick up multiple packages in a row.

Our current biggest risk is that inaccuracies/imperfections in each submodule will add up to make our end-to-end system insufficiently accurate and/or reliable. Currently our vision module is not perfectly accurate, and our arm and kinematics are also slightly imperfect / idiosyncratic. We are ramping up our unit testing to ensure that these issues are minimized. We are also working on optimizing the PC->Arduino command sequencing to minimizing these risks.

Next steps are adding better move selection and qr tracking. We also plan to more definitively test and map out the arm’s exact angle idiosyncracies. Similarly, we plan to do more robust testing of the vision module’s real-world mappings. Best case, by the end of the week, we hope to have the entire box-grabbing system working in a reliable and decently accurate manner.

Marcus status Report 3/29

This week I wrote more code to control the robot arm, and designed a clamp to connect the camera to our treadmill in a robust non moving manner. I isolated the vacuum from the sensors to help with keeping steady voltage feedback. We were able to get the robot to pick up multiple packages in a row. Next steps are adding better move selection and QR tracking.

Matt’s Status Report for 3/29

This week, I tested the entire software system with the robotic arm. This involved running the main function, which relied on the QR scanning and kinematics modules to send commands to the Arduino controlling the arm. I was able to successfully verify the general logic of the main function and send accurate, fast commands to the robotic arm’s Arduino. I extended the main file this week, as it needed to be updated with the new additions I made to the QR scanning file and supplemented with the greater understanding I gained of the Arduino control inputs. I also spent a lot of time this week tweaking and improving the main and QR scanner files, as there were numerous issues with the accuracy and precision of predicting the box’s movements and converting the camera readings into real world coordinates relative to the arm (pixels -> centimeters).

I hope to continue testing the software system that runs on PC (vision, kinematics, and command modules) with the arm. I plan to do some more robust testing of the vision module’s real-world mapping as well by placing boxes of different heights at specific locations on the treadmill running at specific speeds. Hopefully I’ll be able to verify that the real-world position/speed mappings are accurate now that I’ve revamped that code. I also hope to at least gain a better understanding of the exact arm angles relative to the command inputs. Best case, by the end of the week, I will have the entire box-grabbing system working in a reliable and decently accurate manner.

Raunak’s Status Report for 3/29

This week, I worked on integrating the QR code detection algorithm with the robotic arm. Previously, we had to send commands manually to tell the robotic arm when to pick up a box. But, this week, we got hooked up the QR code system with the arm, so now it picks up the box when the QR code is detected. I worked on debugging some of the code that was causing the arm to be too delayed in picking up the box. I also worked with the rest of the team to test our system with real boxes moving on the treadmill. We were able to get the arm to reliably pick up moving boxes based on the QR code detection.

Next week, I plan on working on getting the robotic arm to place boxes in different containers based on the QR code. Currently, the robotic arm places all objects in the same location. So, I need to add a bit of logic to tell the arm to place the robotic arm in different locations. Once that’s done, all of our main goals for this project should be covered. I also want to get a good chunk of the final report drafted since we have a good sense of what we need to include at this point.

Team Status Report 3/22

This week we put it all together and got our robot to pick up packages off a moving conveyer belt. This was accomplished by wiring up the robot fully, troubleshooting a lot of angle sensor / actuator issues, and programming the Arduino to run multiple to-position moves. This serves as a big milestone for us as we have achieved a working robot that can complete tasks. We also tested the CV code for getting the QR value, determining the box height, and determining the box speed/position on our complete system with boxes on the conveyor belt. We also tested our timing/speed/latency, and we definitely should have enough time to successfully scan/track/calculate box variables and move the arm into position to pickup boxes before they fall off the belt.

Our next steps are fine tuning our control algos over the coming weeks to pick up multiple packages quickly. We need to dial in our time tolerances and create bins for the robot to put boxes into. We also plan to finish linking our Python and Arduino code, which will enable us to test the QR scanning software and the robotic arm together. Hopefully we can also start testing the entire system next week, since the scanning system can currently acquire all the necessary metrics, and the robotic arm can currently pick up, move, and drop boxes.

 

Marcus Status Report 3/22

This week I finished up wiring the robot and wrote code to run and send angle feedback position moves. It took alot of trouble shooting to get all three angle sensors accurately measuring 0-180 of the three main actuators but luckily it wasn’t to hard to get the vacuum to turn on and off.  I spent alot of time this week wiring, troubleshooting, and programming the robot arm. Luckily all the work paid off and we had a successful package pick up and move. I was able to get the robot to run to 7 diffrent positions in a row using a command sender app and a Arduino control sketch. I got the robot to pick up a moving package on its 15th try.

Matt’s Status Report for 3/22

This week, I tested the QR scanning code for getting the QR value, determining the box height, and determining the box speed/position on our complete system. Creating physical boxes and attaching various QR codes to them, I then ran them on the conveyor belt on different speed settings with our Brio3000 webcam mounted above. I was able to successfully verify the correctness and accuracy of the code to determine the box value, height, speed, and position.

I hope to finish linking our Python and Arduino code, which will enable us to test the QR scanning software and the robotic arm together. Hopefully we can also start testing the entire system next week, since the scanning system can currently acquire all the necessary metrics, and the robotic arm can currently pick up, move, and drop boxes.