Let's Make Robots!

Chopsticks V2


Originally Chopsticks was simply a variation of Frits's hot glue and paintstick philosophy intended on showing students that household objects such as chopstickss can be use to build a robot.

Now I am developing a kit version for those who do not want to mess around with polymorph and chopsticks. The body parts are CNC machined from 3mm (aprox. 1/8th inch) thick polycarbonate and incorporate the unique feature of an adjustable suspension system in the leg pieces. This protects the servo gearboxes from damage due to sudden impacts and even poor coding.

The new videos show my robot carrying a 1.15Kg payload of polymorph and in the second video it is trying to drag a chair! You can see the polycarbonate legs twisting under the load but no damage is done!

The new robot is similar in design to the original Chopsticks robot but is slightly larger and designed to accept either 1 or 2 Spider controllers. I am developing sample code that will allow 1 processor to deal with eyes, personality, navigation and mapping while the second Spider controller acts as a slave processor controlling the leg movements and accepting inputs from the leg sensors.

Two Spider controllers means 140 I/O pins which includes 32 analog/digital pins. I plan to use as many of these I/O pins as possible for touch sensors and close range IR sensors so that the robot can detect sudden drops and objects not in range of the navigation sensors.

The three oldest videos show some simple test I did with the prototype. I am developing a new walking routine that should be easier to use and with a greater range of movements. No inverse kinetics are used. I use a relatively simple algorithm and integers only. This allows the processor to calculate the servo positions much quicker although with less precision.




Currently my robot is overweight. As such the thigh servos are struggling to support the weight. The main reasons this robot is heavier than the original Chopsticks is the use of metal geared servos for all the servos and the fact that unlike the polymorph version, this robot is held together by a few hundred steel nuts and bolts.

I can reduce the weight of the robot by changing to servos with plastic, aluminium or titanium gears. I can also replace most of the steel bolts with nylon and use a lithium battery rather than the NiMh battery I have now. All up I can reduce the weight by at least 500g (1.1lb).

For now I have been taking advantage of the weight to test various walking gaits. Basically the more legs you have on the ground at any one time, the more weight your robot can support but sometimes it can reduce the maximum speed of the robot.

The newest video shows a gait where 6 legs are on the ground at all times while 2 legs are lifted and moved forward. This gives good support for the bodyweight and I have managed to acheive the same speed as my earlier gait where 4 legs were lifted at once.


Comment viewing options

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

I'm glad you like it. I will try and add video tomorrow. By the time I had calibrated all the servos for all of the robots standard positions (sit, stand, curl up) the battery was flat so I did not get much more done today.

I have added a new standing / walking position where the robot rises to it's full height. This will alow the robot to step over obstacles up to 150mm (6inches) high. Combined with switches on the feet to detect when the foot has contacted the ground the robot should be able to cross reasonably rough terrain.

nice desighn

Wohoo~ Nice and clean shape!! Polycarbonate is pretty strong material and I like to know more about the suspension system.

Two spider controllers!? Wow, now I really wanna see the final verion of V2 with all these sensors you mentioned. Also, IK programming is the hardest part for me to build such multi-leg robot. I have seen the code for chopstick V1 but still confusing. Any idea where we can find the good source to learn the foundation? 

As you can see in the second photo, the suspension is just two fingers of polycarbonate either side of a screw in servo horn. When the joint receives a sudden jolt the polycarbonate fingers flex and absorb a lot of the shock.Changing the position of the screw allows you to adjust the leverage that the fingers have against the servo horn.

One great thing I found with the polycarbonate was that if you did manage to stress enough to cause a permanent deformation then gentle heating would allow it to return to it's original shape without any permanent damage being done.

As for the code, I want to implement a new routine for the leg movements that will prevent leg entanglement when the robot changes speed or direction suddenly. My previous code had problems with this forcing me slow down the robots response to hand movements. I will post the new code here when it is working along with video and an explanation of how it works.

Most animals use hair as a form of touch sensor. For example the hairs on our arms allow us to detect the slightest touch. I am planning on using micro switches on the legs in a similar way with the internal pullup resistor holding the digital inputs high and the switch pulling the pin low when touched. This should help the robot from getting it's legs tangles in things.