Ryuu - Dragonbot Sympathetic Interface

Ryuu is a sympathetic interface (SI) for controlling Adam Setapen's "Kombusto", a Dragonbot platform for cloud robotics. A SI, coined by M.P. Johnson et al in the 90s, is a passive controller that can map direct movements to a 3D model. More importantly, this type of controller can control the motion of a robot, and the Personal Robots Group has been using this type of controller for many different projects. But it was time that Dragonbot had one as well.

I first started designing this controller by examining the original robot itself. After some discussions with Adam, the best way to have the motions directly translated were to use a similar 4-bar linkage for the arms. The robot itself is a unique configuration: a "Quattrobot" with rotation. So I decided to scale the linkages' dimensions, and develop them around a variable resistor popular with our lab. Since this resistor is a SMD, I also incorporated a 3D printed casing for it, with dimensions resulting from a previous experiment that provided a nice, snug fit. The casings were press fit into a platform, and the platform was uspended off a base that was 3D printed to incorporate the Dragonbot feet (and a tail I modeled). The linkages fastened with 4-40 screws to two bearing blocks; these blocks were connected to a top platform. The blocks rotated around two 1/4-20 screws that fastened into the top base from underneath. The top base was designed with two "wings" for holding the top steady, and an extra variable resistor for head movement. The head was also 3D printed witht the Dragonbot face and hands, and extensions off the back for resting the hand, and fastening to the head rotation shaft. The shafts are all custon milled 4mm Delrin rods flattened to fit the resistors. Springs were also incorporated to stabilize the the controller and return it to a home position. The plates were laser cut out of acrylic to give it an "invisible" feel, and was resilient enough for these light loads.

The electronics were very simple. I used an ATTiny44 to multiplex between 5 analog inputs. The output is sent over serial using an FTDI to USB cable. The microcode samples on one channel, then turns off the A/D conversion, switches channels, and then samples again. Once all 5 values are accounted, the results are sent as 8-bit integers. The data then gets sent over to our R1D1 codebase, and is converted using forward kinematics. For this initial demonstration, only one degree of freedom is displayed.

The Ryuu Sympathetic Interface