3 min read
Robot Hand

This was my third robot project with the kids. Inspired by a Mark Rober video about a rock-paper-scissors robot that never loses, my kids wanted a robot hand that would never win against them.

After researching all the 3D-printable, easy-to-assemble robot hands out there, I decided to build the beautifully designed InMoov Hand by Gael Langevin.

The hand is actuated by six MG996R hobby servos and fishing line. I used an ESP32-C3 SuperMini connected to a PCA9685 PWM servo driver to control the servos. The brains fit right in the forearm of the robot, wedged between the servos.

I left it open so folks can see the motors moving
Custom breakout board for the ESP32C3 with pin outs for the servo driver and a 3.3v power converter

The ESP32 connects to an iOS app running on an iPad. The iPad runs a machine learning model trained by the kids using CreateML and hundreds of sample images of their hands playing rock, paper, scissors.

After the kids learned an important lesson that winning all the time is boring, we added two more play modes to the iOS app: Mimic and Program.

Mimic detects the hand position in front of the camera and tells the robot hand to copy that pose. Detecting the hand pose was made easy by Apple's built-in Hand Pose detector. However, trying to mimic that position consistently was challenging. The servos didn't have the range to curl fingers all the way, the servo response was slow, and the line had trouble staying taut. Needless to say, the novelty quickly wore off and this mode only kept the kids entertained for a couple of minutes.

Program was more engaging. With Program mode, the kids could create sequences of finger actions to build custom handshakes, gestures, and hand movements. We even tried to make the robot hand crawl across the floor like a severed zombie limb. I added a loop and bounce mode so the hand can dance and spell out different messages in sign language over and over again.

If you'd like to do the same project with your kids, you can head over to the InMoov website and download the STL files for 3D printing. Once printed, follow the instructions on the website for assembly.

You can find the source code for my firmware and iOS app at phmagic/robot-hand.

Tips for those trying at home:

  • This project is pretty easy for the kids to assemble. Let them help you build the arm and hand.
  • The pin needle in between each finger joint (to keep the spring at the right tension) was the hardest part.
  • If you can, use a 300º servo, or even 270º, for full finger range of motion. I couldn't find the servos recommended by the creator of InMoov, so I opted for 180º.
  • I hand-soldered a custom board for the ESP32 with just enough pinouts to connect to the PCA9685.