New custom hexapod - Kodama!

Thanks Kurt! How do I know the min/maxes?

What I have done is use a protractor and move each of the servos to where they hit stops and figure out the angles. I believe they are in 10ths of a degree.

Kurt

Hey Zenta, thanks for checking out my robot! Your work was the biggest inspiration for me to dig in to this project, much appreciated!
I had the same worry regarding servo torque, but it seems to be working enough to stand up pretty strongly for the moment. The femurs are 12.5 cm from servo to servo. I am indeed using HS-485b servos for the coxa. The robot’s total weight is 4.6lbs.

I’d love to hear your insights!

You should upload the videos to your YouTube channel and embed them here. Looking forward to them. It’s reminiscent of the robots from the movie 9 (2009)

Thanks.

Your hex is about 2kg and each servo handle max torque of about 6kg/cm. It all depends what init positions you are using. Standing shouldn’t be a problem. The challenge start when walking, especially tripod walking. The least demanding position for the leg is placing the foot (tars) at the distance of (femurlength/2 + coxalength) from coxa center. In theory this position gives a capacity of (12,5/2)/6 = 1,04 kg per leg. That is plenty for standing though. But you might want a wider foot print. When dong tripod walking the middle leg get between 1/2 to 1/3 of the total body weight minus the weight of three tibia sections and servos.

I guess you just have to try and see. :wink:

Thanks Zenta, I will experiment with it soon. I just got the PS2 controller to work with the example sketch, so I’m pretty happy about that :slight_smile:
Now back to my normal job for a while…

@CBenson, I will post them shortly, good idea.

Quick video test of good/evil mode. I’ll post the standing video later.
This is just a test, but later the robot will use face-rec to determine if it knows you. Evil mode makes a mean face at people it doesn’t know.

Also, this was my first attempt at controlling a servo from Arduino to SSC-32. Turns out it was really easy.


youtu.be/Q8JNb_3IBsg

Hey Kurt, I’ve been very gentle with my servos up to now. Is there any harm in doing this by hand, or do you mean moving them using the serial connection?
[EDIT] Also, quick question, would you suggest I start tweaking your T-Hex code? It seems that’s the closest to my design, as I can’t find the actual Phoenix robot for Arduino in your examples.

Duane

Yep, I moved mine by hand, but very careful. (Or used values that Kåre (Zenta) or Robot Dude did with earlier).

You are right that I don’t have a Phoenix version up there yet as my Phoenix still has an Arc32 in it. Would not be hard to set one up. I usually just copy one of the projects, then in the case of existing shipping robots like the Phoenix, can then go up to the CFG for the Basic (BAP28) version and then can simply copy those values in. I should also look at my old C version that I had running on the Arc32 and see how much work it would be to fold it into my Arduino version (that is I have my own Arduinoish library for the Arc32), that I have not looked at in a long time… But that is a different subject.

Kurt

Thanks Kurt, I’ll get on that today and let you know my progress. With luck I’ll have some rudimentary motions going on today!

Super frustrated with Arduino now, it keeps timing out while uploading, no matter what sketch I try. Anyone have this experience?

Can you give us more informations ?
Be sure you have the right COM port and board sellected in the menu dropdown.

Of course. Everything is selected correctly, and I’ve just discovered that I can upload Blink, but not the Phoenix sketch. Any ideas?

[EDIT] Looks like I can upload my original sketch that controls the LED eye fading colors and one servo. Something about the THex_PS2_SSC32 sketch is plugging up the tubes.

Please post the error you have here

The error I’m getting is:

avrdude: stk500v2_ReceiveMessage(): timeout

And which code are you trying to load exacly

Found the problem!

On line 1608 in Phoenix_Code.h, is the following line:

DBGSerial.println(F("!!!"));

There is a known issue in Arduino Mega 2560 in which code with “!!!” will break your upload. I changed it to “!!” and it uploaded perfectly!

code.google.com/p/arduino/issues/detail?id=392

And MAN do I need to tweak this thing, press start on the controller and it curls up in a freaky ball like it’s dead.

Here’s a question for you Kurt, any chance you could give me a tip for it doing this?
I suspect it has to do with the [START POSITIONS FEET] section of the cfg file, but I’m not sure how these numbers are calculated. Any tips?

Duane

did you calibrate the servo for initial pos ?
lynxmotion.com/images/html/build159.htm

I sure did, and it actually jumps to the calibrated initial positions first. When you press start on the controller, it curls up into this terrifying ball.