Let's Make Robots!

Project ELROY

Robot Torso

Update - 23/02/11

The hardware for elroy is almost complete, only the stretch sensors for the head to make and mount.  I can now control the elbow, shoulder and head joints manually from the pc. Ive added a new video to show the operation of all joints. Ive also added a picture of the 5 motor control boards used to control the 10 motors.

Elroy circuit boards 

Ive also been working on a computer model of Elroys arm, which im hopefully going to use to generate the information necessary for Elroys real arm to move to a given position.

 

Update - 10/6/10

I've made a new video showing the latest progress on Elroy.  He has a new design head with a webcam and lcd display mounted in the head to give him eyes and a mouth! I have redesigned the motor control circuit with signal conditioning for the stretch sensors, and built and tested one of them, 4 more to make! Check out the video for more info!!

 

 


 

Update - 8/5/10

Elroy has a head!!! I have fabricated a new base for Elroy which the motors for the shoulder and the head are mounted to.  I have also built another ball and socket joint for the head to be mounted to.  The head at the moment is just a metal hoop but it will soon have a webcam mounted on to it, possibly driven by servos to allow the 'eye' to move.  I have also mounted the LCD to the base and I am now powering the motors with a 12V SLA battery.

 I am currently designing the improved motor control board, of which ill need 5 to control the 10 motors.  I have the current monitoring working with the help of a low pass filter, and have designed an amplifier circuit to amplify the signal from the stretch sensors.  The I2C code is now working and allowing me to collect data from the stretch sensors and the motor currents and send to the pc and be displayed, I can also control motor speed from the pc.

 


 

 

Update - 16/3/10

I have finished fabrication of the shoulder joint.  I found the original shoulder design had a few flaws so decided to build a ball and socket joint.  This is complete and the motors to drive the shoulder are mounted, check out the video for more information.

I have also been working on the I2C comms for the two controller boards which is going well.  The next step is to re-wire the motors on the elbow joint, along with the stretch sensor and see if i can get some data to and from the pc to control the joint.


 

Hi everybody,  

Up until now i have only built mobile robots, a few of which are posted on this site.  I started reading up on AI and wanted to try and explore some ideas myself.  I decided that mobile robots did not provide the type of test platform i required and so decided to start work on a robot arm.  I wanted to use the human body and brain as the starting point of my research and so decided to build a robot arm that mimics the actuation and sensing capabilities of the human arm.  So i give you Project ELROY! This is going to be a long term project, and a tough challenge.  Up to now i have constructed a robot arm with a shoulder joint and an elbow joint, the elbow being the only one that is driven at the moment.  I am using dc motors to drive the arm, but using a technique i haven't seen used anywhere else on a robot arm, some one please correct me if im wrong!! I am using the motor to turn loops of string between the motor output shaft and the robot arm, the theory being that as the string is wound up the length of it gets shorter.  So far this technique seems to be quite strong and fairly controllable, with the added function of the arm joint being able to 'limp' when the string is loose, a biologically lifelike characteristic that is uncommon in many other actuators.  I am using a stretch sensor from Merlin robotics as a position sensor for the robot arm, here is a link to their website http://www.merlinrobotics.co.uk/merlinrobotics/merlin-stretch-sensor-p-72.html

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 I have designed and built a dual motor driver, with an on-board ATMEGA8 to control the motors and read the stretch sensor.  The motor current can be monitored aswell allowing the force that each motor is applying to the joint to be controlled.  The motor control board will communicate via the I2C bus to an ATMEGA32 control board that will interface to the PC.  I intend to use 4 more motors to control the 3 degree of freedom shoulder joint, which means another 2 motor control boards.  Ultimately i plan to build another 3 DOF joint to make a neck joint and give ELROY a head!  Theres more info in the video so enjoy and id welcome any feedback!!

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

This idea is not original. I knew I saw it somewhere, done with Polymorph (first time I have heard of it), curtain rods, rings and balls and of course, string and motors. The guy did not make an arm, but the legs and torso. All he needs to do is add the arms and head (but I think he does not work on this project anymore). Take a look at his progress here:

http://www.xrobots.co.uk/android10.htm and also look at his other projects.

The robot you have posted there, it looks like the cords attached to robots joints are wound round the motor shaft, kind of like a winch. My approach is a bit different in that i am twisting the string, causing it to shorten and move the joint.

Hey Bigface. Are you starting a new video club on LMR? The SY*B*FLV Club?

What material is the rubber in your stretch sensor? That is a new sensor idea to me. How well does it work?

The stretch sensor rubber is this stuff, from merlin robotics, I am using a 4 - 4.5cm length and it gives a resistance change of around 500Ω as it stretches.  Ive got it attached in a wheatstone bridge and then to a differential amplifier, this way im getting good resolution for the elbow joint which is the only one ive tested so far. 

Thats a very neat idea, using wound up string as triceps and forceps.  Also I like the use of the stretch sensor.  How will you incorporate the AI? 

That is a neat idea (re:- rotational shortening - this i have to try maybe with stepper-motor ) .

Check this comment - it may help with a realistic movement - looks like you are heading in this direction anyway......

Mr Big Face.

Your arm looks good!

 I would like to give you my 2 cents. lol. Your positioning in the joint could be done by mounting a potentiometer at the joint which would give you a specific number when ran through the ATD converter. This is the same thing that is used inside a servo for positioning. I am building a walking robot which uses servos for muscles (Blog: Humanoid). Like you mentioned they are not the best choice and will be replaced with linear drives once I get the whole system working properly. The point I am making with this is that for me to make the movement and the feel more realistic I will have a spring component mounted in series with the drive. This will give the legs a more realistic and softer movement with the bounce that one would expect.

Good luck with the rest of your project.

Cheers for the feedback, i thought of using pots to monitor joint positions and did infact order several for just that reason.  I decided against using them due to the shoulder joint, i would have had to fit several of them in a very small space and the pots themselves would have restricted the movement of the shoulder.  The stretch sensors seem to be quite accurate and give a good biological feel i think!
Hey Big Face, interesting project you've got going there. Always good to see people trying some a little different =)
Have you thought about testing different materials for the string 'tendons'? If it works IRL like it does in my head, then I'd imagine you could vary the actuation speed (and other properties no doubt) by using different thicknesses of string. No doubt changing the string itself for fishing line or plastic-coated string would also yield some interesting variations.
It look like the mechanical build and driver circuit are very robust, I'll be watching to see how this progresses.
thanks for the comments, the string im using at the moment is quite thin and ive got about 5 'loops' between the motor and the arm.  I haven't really fully tested what difference the number of loops and hence the overall thickness makes to the speed of actuation, although i think i will need more loops to add strength as the motors are powerful enough to snap the string as it is at the moment!! When ive got the I2C comms working and a program running on the pc to monitor the motor currents and speed its defo a test im going to carry out.