Ryan’s Status Update for 10/10/2020

I finished gathering all the necessary parts and began prototyping the physical construction of the robot. For this week, I was focused on our tennis ball launching mechanism. First, I assembled a testing frame out of aluminum extrudes to attach and hold the motors in place. Then, I attached rubber wheels to each motor. Finally, I wired each motor to a L298N motor driver, and the motor driver to an Arduino Uno. For testing, I powered the motors with a variable DC power supply and set them to a relatively fast speed. I then adjusted the distance between the motors until they were reliably able to launch a tennis ball. Below is a video of the launching mechanism in action.

 

With a successful prototype of our ball launcher in place, I can now move on to building the final frame of the robot for next week. This includes starting construction of the arms, ramp, runway, top platform, and basket platform from a combination of wood an acrylic. I’ll be utilizing the wood working tools and laser cutter available in the maker space to help me build the robot frame.

Rashmi’s Status Report for 10/10/2020

As part of my individual work for this project, this week I spend some time applying the knowledge I had acquired last week on programming the iRobot create using opcodes. I worked on writing some code in python and TKinter that would use keyboard inputs to control the robot. This was challenging initially as I didn’t know how to use my laptop to interface with the robot. However, after figuring out how to establish a connection with the iRobot, using the open interface API [Open Interface Link] was not too difficult to figure out. The part that took the most time was figuring out how to change the velocity of the left and right wheels on the robot when the robot’s direction of movement was changing.

Now, using the keyboard, I can command the iRobot to go forward, backward, turn and beep! Running my code creates a popup that shows all the opcodes that are being run when using the hot keys on the keyboard. This feature will make it easier to debug code when interfacing with the RealSense camera and the Jetson Nano. Next week, I plan on using the Jetson Nano to interface with the iRobot instead of having the robot tethered to my laptop.

Rashmi’s Status Report for 10/3/2020

This week, most of my time was spent finalizing and ordering parts along with my teammates. While most of this process was straightforward, we did run into some issues with ordering the iRobot. Turns out that this is a popular item this year and was sold out pretty much everywhere. However, we were able to find a vendor and this issue was solved.

While waiting for the parts to arrive, I also spend some time learning about the iRobot create 2.

https://cdn-shop.adafruit.com/datasheets/create_2_Open_Interface_Spec.pdf

This link is for the iRobot programming guide I have been reading this past week. I leant about how to control the driving direction, speed, and turning angles of the robot. This link also talks about how to read in input from sensors. However, we do not plan to use this feature for in our final design.

Additionally, I also helped my teammates with the CV aspect of this project. It took a while to get OpenCV setup on my local machine and learn to use the OpenCV API for C++. However, we were able to create a basic program that could mask objects out within a specified color range.

The iRobot Arrived today!! So this week I will be testing out my newly acquired knowledge and try to get the robot to move around.

 

Ryan’s Status Update for 10/3/2020

This week I spent a good portion of my time ordering and receiving the final parts for the physical construction of our robot.  Most of this was pretty straightforward, except we were having trouble finding a vendor with the iRobot Create 2 in stock. We eventually found a vendor in Missouri, and ordered the robot base from them. The majority of the parts arrived Friday, so I spent most of the day testing for part-to-part compatibility. The motors, wheels, and mounts all fit together, and the battery we ordered was able to power the motors. Although we did look over our list many times, we realized that we’ll need some additional parts. The LiPo battery we ordered did not include a charger, so we’ll need to put in another order for that. Additionally, the mounting hardware that connects the wheels to the motors uses very small hex screws, so we’ll need to find a properly sized allen wrench.

Before the parts arrived, I spent some time with the rest of the group working on the computer vision algorithm. I built all the necessary drivers and development APIs on my linux machine (since we plan on using linux onboard the robot) and experimented with CV algorithms for detecting tennis balls. After some fine-tuning, we were able to use our Intel RealSense camera to track multiple tennis balls. Ishaan’s update should have more details regarding the CV algorithm used to do this.

Now that most of the parts have arrived, I can begin to work on prototyping the mechanism for collecting tennis balls. I’d first like to get an idea for the motor speed required to grip and launch tennis balls. Then, I’d like to assemble a prototype structure to hold the motors in place and test the launching mechanism. After this, I’ll move on to prototyping the robot’s arms and ramp.

Ishaan’s Status Update for 10/3/2020

This week, much of my time was spent finalizing parts lists and submitting orders. Along with my teammates, I found sites where we could get the parts we needed such as the motors, motor controller, and mounts for the motor. A few days after submitting the order form for the parts I was in charge of finding, we found out that the iRobot Create 2 we needed was out of stock on the main website as well as on Adafruit. I spent some time looking for a different site and we found a small business that was selling the robot at a discounted price.

While waiting for parts to arrive, I worked on the Computer Vision algorithm for detecting tennis balls. It took a while to learn the OpenCV API for C++ and see what functions were available to me. Along with the efforts of my teammates, we were able to create a basic program that could mask out objects within a specified color range. We also were able to interface with the Intel RealSense camera and read data from it.

We are not currently behind schedule and in the next week hope to obtain all our needed parts. Also, I plan on continuing to develop the computer vision algorithm to be more focused on detecting tennis balls. It is likely that I will need to deal with the challenges of detecting the tennis ball in different lighting conditions without too much noise. To deal with this, I want to implement noise filtering in the computer vision algorithm by next week.

Team Status Update for 10/3/2020

This week, we received feedback about our project proposal. Our design, technical and user requirements were deemed to be very detailed and our project was declared feasible. Luckily, we did not have to make any changes to the existing design of the system. All the parts were ordered and should arrive in the next few days.

While waiting for parts, we worked on the computer vision aspects of this project this week. We started learning the OpenCV C++ interface and were able to create a basic algorithm that masked out pixels outside of any given color range in the HSV space. Also, we were able to connect to the Intel RealSense camera and read data from the camera to use in the computer vision algorithm. As we continue to build this algorithm in the coming weeks, we anticipate facing the issue of the computer vision having to work in different lighting conditions. While this was an anticipated issue, we did not realize the degree of sensitivity light had on the image. We saw that the same objects in different lighting had very different colors. We are hoping that in the upcoming week, we can test this algorithm in outdoor lighting to see if the light is just as sensitive. If it is, then we might have to tweak the color parameters in the algorithm to make sure that light will not have much of an effect on the detection of tennis balls.

Schedule Update

Even though the parts were ordered slightly later than anticipated, due to all the hard work from the entire team, we are right on track or even slightly ahead of the planned schedule. This gives us a little more slack time for the upcoming weeks in case our parts arrive later than expected.