Nolan Arm

Steven Blair
Isaac Brown
Kevin Lipkin
Tim Sandy




Goal:


To construct a robotic arm capable of throwing a ball-sized projectile using a human-like throwing motion. This seemed like an amply difficult and practical task that would show a good understanding of humanoid robotics upon completion. Most robots designed to throw objects are simple catapults. Our task is unique in that it will need to include the complexity of the human upper body in the design.


Design + Construction Process:


Click on pictures to see larger version

The group began the design process by first making basic decisions about the arm's design. Before any design plans could be drawn up, the group had to examine a series of questions. How would the arm be powered? Springs, motors, servos? How many degrees of freedom should the arm have? How humanlike of a motion is feasible? What materials and motors do we have access to?

A lot of answers to these questions came after the group sat down and studied how an actual human threw a ball. The group recognized that a human throws by making use of the torso, shoulder, and elbow, and then decided that the shoulder could acceptably be represented as a 1-dimensional hinge joint. As for powering the joints, the group visited Professor Atkeson and obtained 2 large, fast motors. Firing the arm quickly was a large concern, so the group was pleased to have such powerful motors. The two motors given led the group to make decisions leading to the first design of Nolan: the arm was to have 3 degrees of freedom, with only the torso and elbow being powered, and the shoulder was to swing freely.

The group measured the actual arm of team member and baseball pitcher Tim Sandy, went to purchase hardware, and began construction on the joints of the arm. A pvc pipe was used for the torso, and hinges were screwed together to create the shoulder and elbow joints. This arm was then mounted into the slit of the pvc pipe and Nolan's skeleton began to come together.


Nolan's 3 degrees of freedom The robot's arm is human-sized.


Once the joints and link lengths had been determined, the group had to decide how to best manipulate the links to acheive a human-like throwing motion. After experimentation, the group decided it was best to start the motion by turning the torso, stopping the torso and allowing the momentum to carry the shoulder through, and then firing the elbow. The pictures below compared the proposed robot motion to group member Tim Sandy's throwing motion.

Tim SandyNolan the Robot


Next in the construction process came dealing with the 2 motors we had obtained from Professor Atkeson. We accessed a 24 volt power supply, and then ordered 2 motor control boards from jrkerr.com. Steve and Kevin, with help from Tristan Trutna, worked on getting the motors to interface with a pc for control. After a series of trials, errors, and tech-support emails, the group was forced to face the following:

Given these setbacks and with the due date fast approaching, such that the neccesary motor/IC chips would not arrive in time, the group faced the following reality: for the group's original goal to be accomplished, the group would have to engineer a way to have one lone motor power 3 degrees of freedom. Additionally, the motor could not be controlled via programming whatsoever. The group could only turn on (and off) the power supply which caused the motor to spin full speed in one direction.

The group had always planned to have the shoulder-mounted motor turn a spool, to pull a tension line, to fire the elbow joint. The group realized that this could still be accomplished by simply turning the motor on and allow it to pull the elbow closed. The group guided the tension line through eye-screws to the elbow, and then built a handmade spool to place on the motor. The group then confirmed that this setup was powerful enough to fire the elbow joint.

The motor is mounted to the pvcBack view of motor


The group soon realized there was a problem with this design. The motor would shorten the string by wrapping it around the spool, thus pulling the elbow down. However, once the elbow was fully down, the motor still tried to wrap the string but could not, potentially causing damage to both the motor and the arm. As a result, the group designed a mechanical solution, such that the motor would disconnect itself from power after it had fired the elbow. Power runs from the power source, down the arm, and through an alligator clip. When the motor straightens the elbow, the clip disconnects, and the motor shuts off, thus stopping the robot from breaking itself.


VIDEO: The motor disconnects itself from power after firing the elbow.


With the arm joint solution designed and implemented, the group next looked to solve the torso and shoulder joint manipulations. Given that the only available motor was already in use firing the elbow joint, the group designed a way to have this one motor also power the torso. The torso was mounted onto a turntable, which in turn was mounted to a large and stable base. Attached to the top of the turntable was a large lever arm, to which a spring was attached. The other end of the spring was secured to a corner of the base. To turn the torso, the group decided that the spring should be wound, and then released. On the opposite corner, the group built an anchor area, where the torso would be wound up and then secured with a bolt. Finally, the bolt was attached to the motor via string, such that the motor would pull the bolt out, and the spring would rotate the torso. As earlier decided, the group put a mechanical stop in, such that after some rotation, the torso would strike the stop, and the should would then bend due to the momentum.

This solution, however, presented a problem. After the bolt pulled out, the motor still spun, swinging the bolt around quickly and wildly. This was dangerous, so the group engineered a solution. A "string guide" was built to allow the string, but not the bolt to go through. On the end of the string attached to the motor, a clip was attached. The clip was strong enough to lift the weight of the bolt, thus releasing the spring, but once the bolt hit the string guide, the alligator clip would release, preventing it from flinging around everywhere.


VIDEO: The motor pulls a bolt which releases the spring, turning the torso and shoulder. The elbow is not powered.

Now that the two motions (torso/shoulder + elbow) were working off of 1 motor, we were close to our goal. To finish the throwing motion we needed to sync up the torso and elbow motions to create throwing. Initially, the group had hoped to time the two motions with programming, putting a delay between the two motors firing. However, since our servo controller didn't work, our "programming" took the form of trial and error with different amounts of slack in the two strings. We attached our hand-made webbed hand and started testing. This proved to be a daunting task because of all of the motions we had to coordinate onto just a couple of rotations of our servo output shaft. We found that the line that extends Nolan's elbow had to have about eight inches of slack in it in order for the ball to be consistently projected in the desired direction. The tension line between the output shaft and the spring-release mechanism also had to be adjusted to just the right tension for the pin to be pulled at the correct time. We also found that with the shape of our "hand," the ball tended to remain stuck to the arm until the hand was facing the ground, thus spiking the ball into the ground. To solve this problem we put some tape around our stringing to pull the strings back and make the hand into less of a cup.

Our output arm also proved to be insuffeicent. Because of the high torque applied to the output shaft, our metal fitting bent, allowing the shaft to rotate freely inside of it. We built a second output shaft out of wood that we forced on to the shaft with a lot of pressure, but the frictional forces created were not enough to withstand the torque. Our final output arm design involved a bolt that we used as a set screw to push against the flat end of the output shaft, forcing the shaft and output arm to rotate as one. This design worked very well. Below is a video of a few different attempts with different timings, both in the lab and in the hallway trying to throw a raquetball.

VIDEO: Different trial timings between torso and elbow motion - with and without ball.

After much trial and error, tinkering, and repairs, we finally acheived a throwing motion that threw the ball straight, hard, and a good distance. The 2 motions were synchronized well to create a powerful, yet still smooth and human-like, motion. Below are a few of our best throws, including a failed throw of a can (fell out of Nolan's hand) and a successful throw of a raquetball. The videos feature a slow motion view of the arm's motion, so you can really see the different motions coming together smoothly to throw.


VIDEOS: Nolan throws a can, Nolan throws a raquetball.




Conclusion:


The group acheived it's goal of designing and constructing a humanoid robotic arm capable of throwing a ball. The group had initially hoped that by programming the servos, we could throw the ball at different speeds, in different directions, and to different heights, by manipulating the speed, torque, and the timing of the motors. However, we view the project as a success, given the last minute setback of having only one working motor and having no way at all to control it. The group was comprised entirely of mechanical engineers, and clever bits of engineering allowed us to overcome our obstacles and complete our goal with only one motor. Were the group to have either more time, more motors, or a working way to control them, we beleive our arm could be improved. That said, we put a great deal of effort into Nolan and are pleased with our making due with what we had and still completing the project successfully.

From our project, we learned about the complexity of working with servo motors. The motors we used were far from plug-and-play and needed a lot more tinkering then we ever imagined. We also learned about the difficulty in coordinating seperate motions to carry out a task. This made us appreciate the complexity of the human body.




Thanks:


-Prof. Chris Atkeson, for helping us obtain materials/giving advice/running the class.
-Tristan Trutna, for helping try to get the motors to work.
-Dan Cartoon, for letting us into Professor Atkeson's lab.
-Dr. Howie Choset's biorobotics lab, for granting us space and tools to complete the project.