We discussed the idea of algorithms and libraries in the "How Computers Work: Software" lecture. We had an in-class assignment about a little robot that was trying to light up all the blue tiles on the floor and needed your help to complete this task. Let us assume we wanted to build a real-life version of this robot, where you are able to input the same actions to it to complete many different tasks. Please answer the following questions based on the idea of a real-life version of this robot. (Note, when answering these questions, please simply list them out using bullet points instead of in paragraphs in order to make grading faster and easier). You may work in pairs or alone for this assignment. Please put both your and your partner's name when submitting the assignment and make sure that BOTH you and your partner turn in a copy of the completed assignment.
1. What is acting as the API between you and the robot? List all API instructions that are available to you.
2. What major hardware components would be needed to achieve the actions available? Make sure to think about everything needed to complete each action, e.g. it needs to "see" the blue tiles (or where it's going), it needs to walk, propel itself to jump, etc. (You do not need to list low-level components such as motherboards, servos, etc., just the high-level idea of each major necessary piece)
3. While you have an API to input certain instructions, behind these APIs there would need to be MANY libraries and frameworks implemented. Please list out as many library packages that you can think of that would be needed to perform the API instructions. Please give a name or basic description of general "packages" of libraries, e.g. it will need to be able to walk so it will need libraries to: calculate distance, move servos and limbs, correct for imbalance (or imperfections in the floor), etc.