Starting off the REU my group went to a shareholder meeting to learn about the requirements for Project VASCI. The next day we were tasked with learning JavaScript using YouTube videos and a react tutorial for Tic-Tac-Toe. While the videos were basic and more about the general how to code while the Tic-Tac-Toe tutorial was way above me. The next day I was tasked with learning to use Grommet. At first I did not accomplish anything but after some help from my mentor I was able to accomplish the weekly goals he had set for the week.
Week 2
This week I mainly focused on working on the website and spent sometime learning about tensorflow. Working with the website I was able to make head way into storing, passing and displaying data for the website. For TensorFlow I worked with a few machine learning tutorials that dealt with learning layers composition.
Week 3
This week we worked on integrating a camera into our web pages. The first thing we had to do was learn about opencv and how it worked. After that we had to set out and fulfill tasks. My partner's job was apply filters to the image and my job was to find out how to draw on the image. However I soon found that with the way the page was setup I could not draw to the original feed put had to copy it and draw to that one. Then I had to analyze the image to make sure that what was being shown was correct. Finally we had combine our code into one file and link it the other one. This proved to be an annoying task as it was a lot different from connecting Java files together. However we were able to figure it out and finished all the tasks we were assigned. This week I felt the most comfortable because this was more coding than development and the web development we did this week was as crazy as previous weeks.
Week 4
This week we started off with taking the work we did with the camera and converting it into react. This was interesting as some of the code went one-to-one and worked while other pieces just did not work. Again linking the pages gave us trouble, but this time some methods in the file would be linked correctly while if we tried calling others the code would fail to run. The problem as it turned out was that the version of JavaScript we were using somehow complied even when it had methods that did not exist and as long as we did not use a certain parameter the pages would work. Knowing this knowledge we were able to complete our project and start to work with drones.
Week 5
.This week we were tasked with connecting some robots to ROS. The first thing we had to do was setup ROS on the computers and go through the set up. I was tasked with connecting COZMO to ROS. After many hardships dealing with ROS I was able to connect Cozmo to ROS. I was also able to control Cozmo using code and the next step was to get Cozmo communicate with ROS. At the end of the week we had a meeting with the stake holders. While they were impressed they had a few more requirements that they wanted us to meet.
Week 6
This week I ran into a wall as nothing I seemed to do really got any progress. Every command I did through either resulted in errors or the command line getting hung up. This has been really frustrating as I am staring a black screen and robot that is doing nothing or spitting many lines of red text at me that google has no clue about. This week I have gotten all to familiar with the no results page on google. However on Friday I was able to make some progress as one the undergraduates came in and helped me out. However I will not be able to build on this until we finish the first project for the stakeholders as our meeting is coming up next week.
Week 7
This week we had stop using ROS to go back to the first project. We needed to finish before the web pages before the next meeting at the end of the week. We ran into many problems dealing with saving user input. This problem arose from us using a web style which made thing much more complicated. Eventually we did all the hard stuff in vanilla html as it both worked and looked good. This change allowed us to get everything done and really impress the stakeholders. However we were unable to put a few features that we had wanted to leave in because of the issues we ran into.
Week 8
This week we again went back to working with ROS and again I felt as if i was not making any progress. It was not until Dr.Crawford showed us a tutorial on the ROS website that things started to fall into place. After that we were able to read and send data to the robot by subscribing and publishing. After this breakthrough we also learned how to do the same thing over a web browser. By the end of the week I was able to control Cozmo the robot speech function using a website. I had both example buttons (current date, current time, hello, etc) and a type to speech that cleared the users input after the robot spoke. This felt good to finally accomplish something after weeks of very little progress.
The first edition of the website
Week 9
This week was on the most accomplished weeks I had in a while. This week i was able to fully map out most of Cozmo's functions to the website. This meant I was able to control the movement, LEDs,head angle and lift movement using the website. The website even displayed the battery status for Cozmo in three states (good, low and charging). The only feature that I did not add to the website was the was the current picture that Cozmo was seeing.
Week 10
This week to wrap up the program I was tasked with documenting both of the projects that I had worked so that my successors could smoothly transition. This was a little challenging for some parts because they had only made sense because of my trial and error so it was a little difficult to explain why and how they worked to someone who would have little or no experience with the project. However this process was not too bad as I had been taking notes through out the process which helped to expedite the process.