Advanced Robotics Final:
Card Playing Robot
September 2018 - December 2018
September 2018 - December 2018
For this assignment, our task was to design a robot that a child could play with. We wanted our robot to also have an educational aspect - to help children ages 4-5 years old learn how to count. Our goals were:
Create a robot that truly felt like it was interacting with the child
Use this project as an opportunity to both design a 4 Degree of Freedom robotic arm, and program it using inverse kinematics
Fabricate a "realistic" robot hand using a series of pulleys
How to Play:
The robot would hold up a random number of fingers on its left hand from 1-5. The player needs to find the corresponding number card and place it in the robot's right hand. The robot then brings the card up to its "eye," and reads the QR code on the card. If the card is correct, it nods in approval and gives a thumbs up. If the card is incorrect, it shakes its head, letting the student know that the card is wrong. The robot was programmed in Python using the embedded IDE on the camera, which was connected to a servo shield that controlled 16 servo motors.
Correct Answer -- Robot asks for 2 and receives 2, nodding its head "yes"
Wrong Answer -- Robot asks for 4 and receives 5, shaking its head "no"
Role:
For this project, I was responsible for the overall design and then fabrication of the parts in the articulated hand, the math behind the inverse kinematics of both arms, and assisting our CS team member in programming .
Reflections:
If I were to revisit this robot today, there are many chances to optimize it.
The articulated hand is very complex. The parts were difficult to 3D print and even more difficult to assemble, with tiny screws and strips of rubber acting as guides for the pulley string. Each part could go through DFM/DFA (Design for Manufacturing/Assembly) to make assembly easier, and the pulley system itself could be redesigned for simplicity
Each card has a QR code on it, which is what the camera is really reading. It would be fantastic if this robot could look at any card from any 52 card deck and be able to recognize what number it is. This would require refining the image recognition program.
If this were to become a product, we would need a "body" for the robot to hide the intern structure and all of the cables and boards.
Pulley system used to move fingers
Each joint of each finger was 3D printed and assembled by hand
Camera with OpenMV IDE mounted to two servo motors
Servo shield that communicates with camera using i2c communication protocol