A spider called "Chopsticks"
I have seen a number of fantastic Hexapod style robots, most using laser cut parts and very expensive servos. Chopsticks is a robot Spider made from cheap standard servos, polymorph and yes you guessed it... Chopsticks!
Think of it as a Chinese version of Frits's paintsticks and hotglue philosophy.
I have added videos in YouKu as well as YouTube for my Chinese friends.
Detailed assembly instructions can now be found on Make Projects.
The disposable chopsticks are made from a very lightweight wood (Bamboo) that gives the chassis a good strength to weight ratio. The polymorph is much heavier by comparison but perfect for creating the custom shapes needed.
I am using 28 servos on this robot, 24 for the 8 legs, 3 for head movements and 1 for the mandibles. Because 28 servos are quite heavy and these are not heavyduty servos I cut the chopsticks in half to reduce the size of the legs and the strain on the servos. This should also increase the battery life.
The polymorph servo mount in the center of this leg piece slides along the chopsticks making it easier to get the servo in.
After some experimentation I now have one spider leg I am happy with. Just 7 more to be made :-)
Tues 5th of April 2011
I now have 4 left and 4 right legs made. This took a lot longer than I though largly because of waiting for the polymorph to cool. Occasionally the polymorph would be too hot and glue itself to the servo housings. Then I would have to pry/melt/scrap it off and start again. I rushed towards the end so if I ever need to replace a broken servo then I will probably have to rebuild half of the leg as well.
I've made a simple spine consisting of 2 whole chopsticks joined by 4 sections of polymorph. Now I need to work out how to mount the Spider controller and the batteries. Once I have it walking I will add the head and mandibles.
Sunday 10th of April 2011
I had a lot of problems when I had more than 16 servos connected at once. The power would "brown out" and the current indicated a short circuit. I built a sheild using some prototype PCB so that I could power the servos directly from the battery but I still had the same problem. This eliminated the Spider controller as a source of the problem.
If I connected the servos one at a time then I had no problems and the total current draw was only about 2A. I added 17x 220nF monolithic ceramic capacitors to suppress any noise being generated from the servos but the problem persisted. The servos I am using tend to twitch a bit when you apply power to them.
It seems that 28 servos twitching at once causes a current spike. Although my 2700mAH NiMh batteries should be able to handle the current surge I suspect that the battery holder is limiting the current. I switched over to a 7.2V, 4500mAH NiMh racing pack that I normally use for the Wild Thumper chassis along with the high power switch and heavy duty power cable.
This solved the brownout problem and allowed Chopsticks to stand under his own power. Since servos connected to an Arduino can twitch a bit while the bootloader is active I have added power FETs to my shield so that power to the servos is controlled by digital outputs D11 and D12.
I have wired my sheild so I have two banks of 16 servos that can be individually turned on or off. This further reduced the current surge and means that when the spider is standing still it can turn off the servos not used to support it's weight to conserve power. I did a quick test to see how much current is being drawn while standing still. At the moment there are only the 24 leg servos connected as I have not built the head yet.
Now that I have the robot powering up ok I can mount the battery and controller properly and tidy up the leg wiring. To begin with I need a frame to mount the PCBs on. Out come the chopsticks and polymorph.
Mounting the Frame was a bit tricky. The polymorph wanted to bond to the servos and the battery. I'm trying to keep this robot so that it can be easily disasembled for repairs which means NOT glueing everything together into one big lump.
After a bit of experimentation I got the high current switch mounted so thet the switch was easily accessible at the rear of the robot. The Spider controller is sitting high enough that the legs can fold up underneath.
After plugging in all the servos (24 for now) I tried to tidy up the cables a bit. I checked the weight. The robot is now 2.2Kg (4.85lb). At this point about 1/4 of that weight is polymorph. The rest is almost all servos and the battery. The chopstick weigh almost nothing.
Once I have the robot walking I can add the head and sensors.
Since it is a Spider robot it seems only right to use the IR compound eye but I am going to take things up a couple of notches. To begin with I will use multiple eyes to give the robot a wider range of view. Secondly I will increase the range of the eyes by increasing the maximum current that can flow throught the IR LEDs from 50mA to at least 250mA. As long as I keep the duty cycle down to 1% with a maximum on time of 100uS then the LEDs are rated for up to 1A of current.
Monday 11th of April 2011
My new heavy duty servo shield arrived today. I designed it specifically for robots like Chopsticks where the servos need a higher voltage and more current than the Spiders on board switch mode regulator can supply. I designed this PCB before the whole issue of switching power to the servos in groups came up.
Since my earlier problems were largely due to using batteries and wire that could not handle the current load I started off with some cable that had a 30A rating. I was not sure if these servos are 6V or 7.2V so I put some heavy duty diodes in series to drop the voltage to aproximately 6V. I use 4x 3A diodes in parallel to effectively make a 12A diode and put two of these 12A diodes in series to give me roughly 1.2V drop.
You can see this ugly lump of diodes cable tied to the frame.I am waiting to hear back from the servo factory as to the voltage rating of these servos. I'm hoping they are rated at 7.2V so I can ditch the diodes and increase the power of the servos.
I powered up the new servo sheild and everything worked fine. All my previous problems were due to underestimating the current requirements of 28 servos (I have seen the ampmeter spike above 10A on power up).
Wednesday 13th of April 2011
I now have the servo specifications from the factory and they are 4.8V - 6V servos. Good thing I played it safe. I decided to make a new sheild for the robot with a high current switch and voltage drop diodes mounted in the prototype area.
Now power to the servos is controlled by D12. When D12 is low the Pch FETs turn on. This allows the 7.2V from the battery to go through the diodes where it looses 1.2V and provide 6V to the servos. There is a 3mm yellow LED that lights up when D12 goes low to let me know the servos have power.
Saturday 16th April 2011
I am somewhere in China (Longnan City, JiangXi province) and I brought Chopsticks along to work on at night in the Hotel. I finally have him walking!
The gait I am using only lifts one foot at a time because he ways nearly 2.5Kg (5.5lb) and these servos are only cheap standard servos so they are struggling. If I replace 8 of the servos with stronger servos then I could change to a much faster gait that lifts 4 feet at once.
I managed to tweak the code to get a more reasonable speed. Added another video and attached the code for anyone interested in how I generate the gait.
Still a lot of work to be done, He needs a head, I wanted to add pan/tilt/roll and mandibles but unless I reduce the weight (LiPo battery would help) or replace 8 servos then I might have to stick with an array of compound eyes.
Sunday 17th April 2011
I am back in the office and had a chance to get Chopsticks doing basic maneuvers. Aside from moving sideways which I haven't had time for, the maneuvering code is mostly done. He sounds a bit like a drunken horse in the new video :D
I have attached the code as "RedBack4.zip". You will see that I had to break the walk sequence down into left/right legs for both forward and backward. In this case the speed for left and right legs range from -4 to +4 with 0 being stop. This allows gentle turns as well as turning on the spot.
Monday 18th April 2011
Now that I have the Chopsticks mobile I'm starting work on the head beginning with 4x IR compound eyes arranged as 2 pairs. I looked at photos of spider eyes on Google and decided that this robot should also have many eyes of which these are only the first 2.
On this robot I want to extend the range of the eyes to improve it's interaction with people. I am connecting more sensors in parallel which increases the amount of light being detected and the LEDs will be driven at higher currents. I hope to increase the range to around 1 meter.
To make this robot more interesting, these two "Primary Eyes" are on seperate pan/tilt kits mounted at 90 degees to each other. This allows the robot to track two objects simultaneously or use both eyes in stereo mode to determine distance with reasonable accuracy.
Tuesday 19 of April 2011
I upgraded the 8 "thigh" servos that support most of the robots weight from 5Kg/cm to 12Kg/cm servos. The robot now draws less power when standing still as the new servos are not struggling to support the robots weight.
This has allowed me to add a new faster walking gait. I've added a video showing the two gaits one after another for comparison.
Friday 22nd of April 2011
I've had a lot of trouble with the eyes. I'm not getting the range I hoped for. I've written some simple code just to get the robot to follow my hand which was complicated slightly by two very curious and completely independant eyes. I have attached the code as RedBack6.
I'm trying to keep the code for each eye relatively independant so that the robot is capable of playing with 2 children at once. Later I want to add personality to the robot. Planned personality features are:
- Boredom when no moving objects are present for a certain period of time - go and explore
- Fear when children have it trapped - curl up on the floor and play dead
- Annoyance if you do not play nice - avoid you until you leave it alone
- Sleepy if the batteries are getting low - avoid playing, move slowly to save power
- Happy when receiving a lot of attention - more tolerant of negative traits like fear and boredom
- Sad when ignored and cannot find a friend when exploring. May sulk or sleep.
To make the personality more realistic some traits will affect others, for example being sleepy will increase tolerance for boredom. A full battery will make it more eager to explore. Some traits will transform such as fear turning to anger if kept in that state too long.
Tuesday 26th of April 2011
I haven't had time to do much but I have begun on his personality. If something gets too close for comfort then he tries to hide. after a short while he looks about to see if it's safe. For anyone interested I have attached the code as version 9.
Friday 24th of June 2011