Overview:
Our Senior Design Project was originally going to be about evaluating and prototyping different open source robotics platforms. The bigger picture was to create a proof of concept for a new CyBot for CPRE 2880. Our Faculty Advisor was Diane Rover, who teaches CPRE 2880, and our client was Brandon Beavers. We began researching SCUTTLE and Waveshare platforms. SCUTTLE seemed to be a decent platform so we started trying to source components for it. This led to us contacting Matt Post at ETG as we had heard that they had been working on a new robot for CPRE 2880 as well.
Our original intent was simply to ask for advice and see what components they would recommend. Matt Post saw it as an opportunity to have us help create the new CyBot alongside himself and ETG, so he set up a meeting with the other CPRE 2880 professor and Diane Rover. They worked together to create a new project for our Senior Project and give us the information we would need to decide if that was the route we wanted to go. We decided to do the new project which means we are now responsible for writing the software required to make the new CyBot work. This CyBot will be used by hundreds of students over the course of multiple years.
Part I: Open Source AI Robot
For our original project of evaluating SCUTTLE or Waveshare I took the lead on hardware and testing. We began by doing a deep dive into each platforms capabilities and drawbacks. I got a lot of practice with hunting through wikis and datasheets to find the relevant information. I liked that SCUTTLE could be put together with whatever components you had access to and that it was compatible with multiple boards. I already had a Raspberry Pi 4, so I could test SCUTTLE without spending any of our budget. I installed the provided fork of Raspbian and configured the Cloud9 and NodeRed services to run correctly. I cloned the SCUTTLE GitHub repository so that I had their libraries and example code. Using the provided libraries I was able to test some of the basic functions using my oscilloscope and multimeter. This served as a good proof of concept, so I started to look into what hardware I should use. I found it difficult to find a motor controller that had the exact features I wanted so I started looking at PCB files so that I could just make my own motor controller. This led to me learning KiCAD and researching different components to use for it. Around this time we decided to reach out to Matt Post and our project changed quite a bit.
Part II: New CyBot for CPRE 2880
After hearing from Matt Post and our Faculty Advisor we decided to accept the new project they proposed for us. We would now be responsible for writing the software that would enable the CyBot to work. ETG is going to handle most of the hardware and mechanical design of the CyBot. We could potentially help with the selection of sensors and the testing of them. We will also need to design a custom interface and decide on the package structure to communicate between the boards. ETG is currently planning to use an STM32 for controlling the robot and the Tiva board from the current CyBot for the sensors and for students to program on. This change in the direction of our project happened recently, so we haven’t had a chance to start doing much work. We are trying to set up a meeting with Matt Post and the ETG students we will be collaborating with. I have also begun looking through the old libraries to refamiliarize myself with how it worked. I researched the STM32 they are planning to use and how to interface it with the Tiva. This is about as far as we can go currently while we wit for a meeting with the hardware designers. We also need to figure out if we should buy the hardware for us to test out implementation, or if we can use the hardware ETG has.