Over the course of 4 semesters I was a part of a research project exploring the capabilities and usefulness of robots. Specifically the Nao robots. In the first semester I learned that the robots had their own software application called “Choreograph.” This application had pre-programmed boxes that you could drag and drop to have the robot do things. I used Choreograph to test the hearing, eyesight, object learning, and joint movement of the NAO bots and successfully got the robot to hear and respond to me as well as to throw a ball.
For the next semester I wanted to focus more on programming the robot myself instead of using choreograph so that I could have the robot perform more complex tasks. It was then that I learned about ROS and ROS2. ROS is an operating system with libraries that are meant to help build robot applications. During that semester I spent the first quarter of my time getting ROS to successfully run on my windows laptop. When I realized that ROS was more compatible with a linux operating system I used virtual machines to run linux on my laptop. This semester was particularly difficult as ROS was no longer supported and ROS2 was just born which meant that people were constantly working on ROS2 and dependencies were updated constantly. I never got it to work and ran into so many issues, not just with ROS but also with the virtual machine running out of space all the time.
The third semester I ditched ROS and turned my attention to hard coding the robot using Python. Through hard coding I was able to learn more about the specific limitations of the robot and managed to get it do a full squat! In order to do this I did have to program each movement the joints made to the exact decimal place.
By the last semester the robots were old and their batteries were dying which only let me work on them for 30-minute intervals max. Due to that I decided to use 3D simulators for my project. Since I had worked on just researching the robots capabilities for the previous semesters I aimed to have the robot do something functional for the last semester so people could use it if needed. My goal was to have the robot be able to walk upstairs with people and to carry some books for the person. Webots had an already built model and library for the NAO robots that I was using which made it easier for me to work with. By the end of the semester I was able to get it to get up one very small step but realized that the robot is too short to get up a full human step.