At the beginning of sprint 3 we again reviewed our learning goals for the sprint. For Andrew, he met many of his learning goals by doing website design, and other various design/mechanical tasks for the team. Connor gained a more well rounded engineering experience, and had a lot of fun. Grace learned about Raspberry Pi's, and various communication protocols. Sid designed the inside mount and wheelbase, and he iterated on previous mechanical designs.
For sprint 3, we came up with 3 kaizen goals. These goals were having the head move independently of the body, being able to control the sphere and drive it around, and finally having the robot recognize people and move towards them.
Between sprint 2 and 3, we changed our goals for the project slightly, and ended up coming up with these criteria for a minimum viable product. We wanted a BB8-esque robot structure and movement. We also wanted communication between the head and body of the robot. We wanted to include basic camera vision with OpenCV. We wanted a head that moves independently of the sphere.
During sprint 3, we also came up with some stretch goals that we wanted our robot to achieve. These goals included: BB8-esque movemnet, camera vision that is able to follow someone, and object avoidance.
In the image below, you can see a diagram depicting the changes that we made between sprint 1,2, and 3.
We made some updates to our sphere manufacturing process during sprint 3. The image below describes the changes that we made.
In addition to improving our sphere design, we also updated the driving mechanism inside of the sphere. The image below shows the changes.
During this sprint we also focused heavily on getting a head that moves independently of the sphere. The image below describes the mechanism we devised to do accomplish this task.
We also made some modifications to our method for communicating between the head and the body. We now have a Raspberry Pi that uploads motor speeds onto a web server via the MQTT communication protocol. The Wi-Fi chip then reads the information on the web server and sends it to the arduino on the robot letter by letter using I2C.