Gordon’s Status Report for 9/28

This week I met with Varun the FPGA TA, and he helped me a lot in figuring out exactly what I needed to do for setting up the board and getting started. Specifically he pointed me to his github repository that contained a guide for setup. I briefly read through the guide, and as the KRIA board arrived from the ECE inventory, I shifted my attention to setting up the actual board. I had learned from Varun that there were quite a few wires and ports that I had to setup, so I looked into what came with the KRIA from inventory and determined that I needed to get a display port cable and microSD’s from amazon. The KRIA came with the power supply, ethernet cable, and micro-usb, and I could bring a USB mouse and keyboard from home. I sent those orders off, grabbed a lock from receiving, and chose a box in 1307 to store the KRIA overnight.

 

The rest of the week I was helping the team execute the trajectory testing, and writing the design review presentation slides. I was talking with Jimmy about the camera and KRIA connection, and specifically where the CV would be done. We had decided to use the OAK-D PRO camera, and it turns out the camera is capable of doing the CV, so the KRIA usage was adjusted in our project plan to not have the CV. This is a better decision choice, as now all the camera needs to do is to send the identified coordinates over, and the KRIA can handle the calculations. Since we still don’t know the full capabilities of the OAK-D and if it can actually do the CV, we still have the idea of doing CV on KRIA as backup. 

 

It took the combined effort of the three of us to setup and execute the trajectory testing, as we had to use a ruler to mark up a white board grid, capture video, and parse through it to get coordinate estimations. The results of that are explained in the team status post. 

 

For the design review, I took on the role of redoing our block diagram, adding colors and taking inspiration from the guidance post on canvas. I was pretty proud of how it turned out, and we ironed out a lot of the vague terms as now we had identified what hardware we are using. I also added similar style blocks to other sections of the presentation, and contributed greatly to the content of those slides. 

 

Next week, besides listening to presentations and giving feedback,  I am hoping to get a chance to receive the parts I ordered and test the setup and connection to the Vivado and Vitis software that I need for KRIA use. I need to figure out how the microSD’s work, and get the KRIA up and running.

Team Status Report for 9/21

Week 1, Sep 21

 

We are still debating between using the cartesian gantry/robot or an omnidirectional robot for our receiving system. This is a big decision for the project as a big portion of the design rests on which type of robot we choose, so we took some more time to look into the pros and cons of both but this time on a more technical level. We thought through exactly what we would need for the gantry and the omnidirectional robot, looking up numerous guides online for how other people used both systems. Despite our research, we still could not make the big decision of committing to either one. We’re trying to make a decision soon, and build a small prototype of whichever model we choose and verify the feasibility. 

 

For the cartesian gantry, there are a number of existing guides available online, some more detailed than others, that detail hobbyist implementations of cartesian robots. However, when reducing the scope by affordability and complexity, a couple guides remain, which are both XY plotting/drawing robots. Assuming the bill of materials are correct for these guides and assembly doesn’t turn out to be horribly difficult, we would need to modify the existing arduino code for our purposes, which is heavily reliant on GRBL. Alternatively, if we can manually generate a g-code file that instructs the machine to move to position (X,Y), we can use the code as is.

 

For the omniwheel robot, there are two especially intriguing guides that show the construction of a 4 and 3 wheeled drawing robot respectively, both by the same creator. A cursory look at the attached arduino code suggests it would require less re-tooling than the XY drawing robot’s, as there are already functions for GOTO XY position written. This would involve interfacing the Kria so that it can communicate the landing position of the robot to the arduino, and then it can run this GOTO. To return the robot, run GOTO 0,0. This also begs the question of whether the robot can be controlled directly by the kria, or if we have to add an arduino to control the robotics.

 

In any case, I think it should be feasible to pursue one method, determine if it’s promising, and if not, return to the other robot. Both are within the budget.

 

Another avenue that we are considering to take for the robotics side of things is to obtain our microcontroller first (probably arduino) and mess around with that to ensure that the latency of integration will not be a huge issue. Getting our hands on the microcontroller portion of the receiving system early could be good, as if any unforeseen problems pop up we can solve sooner. It’s also important to check the latency requirements so we can make adjustments to other parts of our system if needed, and it’s easier to make adjustments earlier in the design process. 

 

Regarding the camera / CV system, we are deciding between the exact camera to use. The most significant risk in this part is that the camera system cannot accurately calculate the landing coordinate of the ball, therefore this week we are spending time to design and choose a system that can achieve this using the most appropriate array of sensors. A close second risk is regarding latency of getting the calculations out in real time. Therefore, more research was also done this week regarding the exact sensor requirements, the sensor output information we can acquire (e.g depth, velocity measurements) and combine that with the appropriate system of algorithms and CV models so we can actually calculate the ball’s landing coordinate position. Further considerations are made to reduce the total amount of latency of the algorithm portion so that we can optimize for anything computationally expensive to be offloaded to be implemented on the Kria board. 

 

We haven’t made any changes to the design of the system. However we did change our schedule, as our original gantt schedule did not include fall break and thanksgiving break.

Gordon’s Status Report for 9/21

Week 1, Sep 21

This week we mainly focused on finishing and presenting our proposal. We put a lot of effort into making the proposal presentation slides, and we decided that I would be the one to present it on Monday. Through the weekend I practiced presenting the slides numerous times, and became extra familiar with the slides and our project as a whole. Besides presenting, in class on Monday and Wednesday we listened and gave feedback to all the proposals, and it was very useful to see how other people are approaching their project, and gave us ideas on how we could improve ours.

After the proposal presentations, we gathered to brainstorm a big decision that we would need to make soon, and that is whether to use the gantry or the omnidirectional robot as our receiving system. We looked into how each system has been used in other projects, and tried to determine which one we could use. This was mainly Josiah’s delegation but we all chipped in since it was a big decision affecting everyone.

We also split off into our own areas and started the design and development process for each component. I booked a time with Varun, the FPGA specialist TA, to talk through how the KRIA integration would work. Prior to this meeting with Varun, I am planning to look into more details about exactly how the KRIA would need to be used, so I can arrive at the meeting with quantitative questions. Wrote up points that I need to look into about KRIA integration, and will be looking into it before I meet with Varun.

We are in the design phase of the schedule, and this is week 1 so the ball is just getting started to roll. We are on pace, doing a lot of research into feasibility and how to get started. For next week, I am hoping to figure out how to secure the KRIA KR260 board from Varun, as well as developing a plan to start working.