Week 1
The first day of my REU experience was spent meeting the 3 students and 2 professors I would be sharing the lab with this summer, setting up my University of Alabama accounts and emails, and exchanging communication information and paperwork. Later on that week, Dr. Crawford, Kareith, and I met with the UA College of Nursing to discuss the requirements and stakeholders of a collaborative project (project VASCi) we are creating with them. I also finished my IRB online qualification training. The end of the week was spent using Node.js and NPM to learn HTML, CSS, and JavaScript to develop sample websites and layouts for Project VASCi.
The first day of my REU experience was spent meeting the 3 students and 2 professors I would be sharing the lab with this summer, setting up my University of Alabama accounts and emails, and exchanging communication information and paperwork. Later on that week, Dr. Crawford, Kareith, and I met with the UA College of Nursing to discuss the requirements and stakeholders of a collaborative project (project VASCi) we are creating with them. I also finished my IRB online qualification training. The end of the week was spent using Node.js and NPM to learn HTML, CSS, and JavaScript to develop sample websites and layouts for Project VASCi.
Week 2
My second week of REU was spent learning how to use TensorFlow with JavaScript. I learned how to create a basic Tensor Model that can take user inputs and machine learning techniques to indicate an output. The first tutorial I completed trained the model to predict the coefficients of a trinomial function that needed to fit the curve of some given synthetic data. The second tutorial I completed used a layered model that was able to recognize handwritten digits with a neural network, while using machine learning to increase the accuracy of the digit predictions. The most challenging part of this week was trying to figure out the correct ways to apply TensorFlow's preexisting functions to the tutorials as well as the project I'm doing with Dr. Crawford.
My second week of REU was spent learning how to use TensorFlow with JavaScript. I learned how to create a basic Tensor Model that can take user inputs and machine learning techniques to indicate an output. The first tutorial I completed trained the model to predict the coefficients of a trinomial function that needed to fit the curve of some given synthetic data. The second tutorial I completed used a layered model that was able to recognize handwritten digits with a neural network, while using machine learning to increase the accuracy of the digit predictions. The most challenging part of this week was trying to figure out the correct ways to apply TensorFlow's preexisting functions to the tutorials as well as the project I'm doing with Dr. Crawford.
Week 3
This week I learned how to use OpenCV to integrate computer vision into our project. One of the challenged we faced was trying to figure out how to implement OpenCV in React Native Web. We did some research and found that very few people had tried this before, so there were instruction tutorials for us to use. Once we got OpenCV working in React Native Web, my job was to find the correct combination of Linear Filters that would work for images we are using in Project VASCi. Once I finished the filters, I wrote a JavaScript class that can analyze our project images and give unique outputs for each image. One of the challenges I faced while writing this program was figuring out how to make variables created in separate classes accessible to each other when they are both called by Main. At the end of the week, I created more pages for Project VASCi's sample website and figured out how to link them together while saving the input from previous pages.
This week I learned how to use OpenCV to integrate computer vision into our project. One of the challenged we faced was trying to figure out how to implement OpenCV in React Native Web. We did some research and found that very few people had tried this before, so there were instruction tutorials for us to use. Once we got OpenCV working in React Native Web, my job was to find the correct combination of Linear Filters that would work for images we are using in Project VASCi. Once I finished the filters, I wrote a JavaScript class that can analyze our project images and give unique outputs for each image. One of the challenges I faced while writing this program was figuring out how to make variables created in separate classes accessible to each other when they are both called by Main. At the end of the week, I created more pages for Project VASCi's sample website and figured out how to link them together while saving the input from previous pages.
Week 4
During my forth week of REU, my project partner and I fully integrated the final components of Project VASCi and finished the demo version for the College of Nursing. We ran into a few challenges when trying to put the OpenCV classes into the project pages, but once that was done we were able to make two similar versions of the website for the Nursing College to choose between. With our first project done, we then moved on to robotics with Dr. Crawford. We learned how to run and operate the programs he created for the Brain Drone Race equipment, and he showed us a few other interactive robots that we later used in a short demonstration with a potential student and his family.
During my forth week of REU, my project partner and I fully integrated the final components of Project VASCi and finished the demo version for the College of Nursing. We ran into a few challenges when trying to put the OpenCV classes into the project pages, but once that was done we were able to make two similar versions of the website for the Nursing College to choose between. With our first project done, we then moved on to robotics with Dr. Crawford. We learned how to run and operate the programs he created for the Brain Drone Race equipment, and he showed us a few other interactive robots that we later used in a short demonstration with a potential student and his family.
Week 5
This week we had a demo for our first project and started our second. The demo went well and all of our programs worked correctly, so the professor from the Nursing College gave us a few things to add to the project and said she would like to continue our work with more applications. I began our second project by installing and learning the Robot Operating System (ROS) that we would be using to make the robots in the lab all connected under one system. I completed the first level of Core ROS Tutorials and then began using ROS to work with the Nao robot. The Nao SDK and documentation installation presented many challenges. I had to use a combination of several different tutorials and NAO/ROS packages to get Python to even recognize the existence of the NAOqi software. Once I completed that, I ended the week by starting the process of connecting the Nao hardware to a Linux laptop.
This week we had a demo for our first project and started our second. The demo went well and all of our programs worked correctly, so the professor from the Nursing College gave us a few things to add to the project and said she would like to continue our work with more applications. I began our second project by installing and learning the Robot Operating System (ROS) that we would be using to make the robots in the lab all connected under one system. I completed the first level of Core ROS Tutorials and then began using ROS to work with the Nao robot. The Nao SDK and documentation installation presented many challenges. I had to use a combination of several different tutorials and NAO/ROS packages to get Python to even recognize the existence of the NAOqi software. Once I completed that, I ended the week by starting the process of connecting the Nao hardware to a Linux laptop.
Week 6
My sixth week was mainly spent working with ROS and the robots in the lab. First, I was able to setup Nao's wifi network pull up its website provided by the SDK. I then installed the packages for ROS Visualization (rViz) and MoveIt! to be able to control Nao's motor skills. I ran into a few challenges with the terminal commands used to open those programs, but once I was able to figure out the correct way to get the programs running connecting and controlling Nao happened smoothly. I then began working with the Tello Drone on the app provided for iPhones, but I also was able to find and install some ROS packages to allowed me to control the drone with the terminal command line or keyboard commands. Hopefully I will be able to find a way to intercept the camera feed from the drone to be able to completely control Tello from my laptop. We ended the week by setting up the hardware for the HTC Vive Virtual Reality headset and exploring the different activities provided by the included software. I was very surprised by how easy it was to get immersed into the system using the VR headset.
My sixth week was mainly spent working with ROS and the robots in the lab. First, I was able to setup Nao's wifi network pull up its website provided by the SDK. I then installed the packages for ROS Visualization (rViz) and MoveIt! to be able to control Nao's motor skills. I ran into a few challenges with the terminal commands used to open those programs, but once I was able to figure out the correct way to get the programs running connecting and controlling Nao happened smoothly. I then began working with the Tello Drone on the app provided for iPhones, but I also was able to find and install some ROS packages to allowed me to control the drone with the terminal command line or keyboard commands. Hopefully I will be able to find a way to intercept the camera feed from the drone to be able to completely control Tello from my laptop. We ended the week by setting up the hardware for the HTC Vive Virtual Reality headset and exploring the different activities provided by the included software. I was very surprised by how easy it was to get immersed into the system using the VR headset.
Week 7
In the seventh week, my partner and I created the second prototype for Project VASCi. We met the new project requirements given to us during our first demo with the College of Nursing and added several components to the project to basically doubled the size of the first prototype. We didn't run into that many issues but the second prototype took most of the week because of all the added components. At the end of the week we gave a second demo to the College of Nursing and they were really impressed with the new work. They also gave us several pieces of hardware that we will later incorporate into the project. This felt like a relatively short week because we were given the 4th of July off on Wednesday.
In the seventh week, my partner and I created the second prototype for Project VASCi. We met the new project requirements given to us during our first demo with the College of Nursing and added several components to the project to basically doubled the size of the first prototype. We didn't run into that many issues but the second prototype took most of the week because of all the added components. At the end of the week we gave a second demo to the College of Nursing and they were really impressed with the new work. They also gave us several pieces of hardware that we will later incorporate into the project. This felt like a relatively short week because we were given the 4th of July off on Wednesday.
Week 8
This week I was able to make some major breakthroughs for Project 2. I started out the week by doing a series of ActionLib and RosLib tutorials to figure out how to communicate with the Nao robot through JavaScript. After the tutorials I found ROS documentation for nao_apps, which is a collection of node applications for Nao using the NAOqi API, that could be used using RosLib through terminal. I was able to launch the speech node in nao_apps and rostopic to control Nao's speech in terminal. Once that was done, we created an html file that used RosLib and a websocket server that allowed us to use the nao_apps speech node through the console of the html website. We then created a function that would simply take in any typed text and program Nao to repeat it. At the end of the week I began designing the basic outline of the html website that would use the function to control the robot's speech. I felt really accomplished at the end of this week because all of the roadblocks and errors I had to overcome while trying to set up Nao were to be able to make this website.
This week I was able to make some major breakthroughs for Project 2. I started out the week by doing a series of ActionLib and RosLib tutorials to figure out how to communicate with the Nao robot through JavaScript. After the tutorials I found ROS documentation for nao_apps, which is a collection of node applications for Nao using the NAOqi API, that could be used using RosLib through terminal. I was able to launch the speech node in nao_apps and rostopic to control Nao's speech in terminal. Once that was done, we created an html file that used RosLib and a websocket server that allowed us to use the nao_apps speech node through the console of the html website. We then created a function that would simply take in any typed text and program Nao to repeat it. At the end of the week I began designing the basic outline of the html website that would use the function to control the robot's speech. I felt really accomplished at the end of this week because all of the roadblocks and errors I had to overcome while trying to set up Nao were to be able to make this website.
Week 9
This week I wrapped up my work for my Robotics Project. I designed a simple prototype for the web-based server that controlled Nao's speech and I explored the other nao_apps that could be used to control Nao's functions. For the speech website, I created a text input line that allowed for the user to type whatever message they wanted Nao to say, and I also added various buttons with predetermined text that Nao would be likely to say, like "Hello my name is Nao!" I faced challenge when trying to design the website in React Native Web because the JavaScript file didn't want to recognize RosLib, so decided to keep the server in simple HTML and JavaScript files and add design features with Bootstrap tools. At the end of the week, I demoed the website to Dr. Crawford and he was very happy with the outcome.
This week I wrapped up my work for my Robotics Project. I designed a simple prototype for the web-based server that controlled Nao's speech and I explored the other nao_apps that could be used to control Nao's functions. For the speech website, I created a text input line that allowed for the user to type whatever message they wanted Nao to say, and I also added various buttons with predetermined text that Nao would be likely to say, like "Hello my name is Nao!" I faced challenge when trying to design the website in React Native Web because the JavaScript file didn't want to recognize RosLib, so decided to keep the server in simple HTML and JavaScript files and add design features with Bootstrap tools. At the end of the week, I demoed the website to Dr. Crawford and he was very happy with the outcome.
Week 10
My last week of DREU was spent making organized and detailed documentation for the two projects I worked on while at the University of Alabama. Both projects reached good stopping points and I was proud of the things we were able to accomplish. Dr. Crawford also asked Kareith and I to write a detailed job description that could be used to hire replacement undergraduates for Project VASCi. Once all of the documentation was done, I spent my last day at working taking pictures and short videos of the robotics softwares we used and created in the lab.
My last week of DREU was spent making organized and detailed documentation for the two projects I worked on while at the University of Alabama. Both projects reached good stopping points and I was proud of the things we were able to accomplish. Dr. Crawford also asked Kareith and I to write a detailed job description that could be used to hire replacement undergraduates for Project VASCi. Once all of the documentation was done, I spent my last day at working taking pictures and short videos of the robotics softwares we used and created in the lab.