New custom hexapod - Kodama!

LOL…
I prefer them in French… so any other name need to be learn… :slight_smile:

Your 3D drawing showing the lengths inspires the idea of building-in some flex / dampening / spring action into the shape (like the new airless tire designs).

This is an image i quickly Google search to actual show the names.
Not from me… :wink:

But yes could be nice to have damper, just not sure how the code can handle the “Play” related to a damper.

That would give your hex a “spring in his step.”
Sorry, couldn’t resist.

It does seem that your bot would be bouncy though, eh? I’ve been trying to come up with ways to reduce the slight jiggle as tension is put side to side against the tibia servo horn. I suspect having solid double-connected joints like the A-Pod is the answer.

Last night I got my new SSC-32 in the mail. It took 3 hours to get it set up inside the robot (working from belly up), along with remaking the power circuitry. Now if I could just get those last 2 servos we’d be in business.

Hi, Kurte,

At the risk of trying to put out the fire with gasoline at which I am somewhat adept, or at least of adding to confusion:

I must admit that I am also having difficulty learning the terms. But I get further confused by terms like “Hip Vertical”. By that do you mean where the axle of the servo lies in the vertical plane but moves the attached part in the horizontal plane, or vice vera? The same reversal is possible with “Hip Horizontal”.

But then I’m the kind of guy who gets visual concept reversal with many universal or international graphic symbols. For instance, the symbol for an elevator door close button is two triangular arrow heads pointing toward each other like |X|. My mind interprets that as the vertical bars representing the edges of the doors which have been moved outward or apart from each other. I know it is wrong, but I have to think about it every time. Of course the door open symbol, triangular arrow heads pointing outward, looks to me like two door where the edges have just closed together.

I almost got into real trouble when I first saw a symbol marked women’s room without a nearby men’s room for comparison. The “skirt” length was much too short, reaching only to the bottom of her arms. I saw it as a properly tailored man’s suit jacket which should reach down to a man’s curled fingers. Her long legs below the skirt looked like properly fitted men’s trousers. I would have been much safer if they drew those signs in profile.

RoboTed, I’m a designer, I will take your concerns into consideration :slight_smile:
You must live in a constant state of paranoia! Ever see Mr Yuck and think he looks like he just ate a delicious lemon?

Now that we have had this discussion, I see what is meant by coxa, femur and tibia. Originally, I saw these associated with a picture of a bug’s leg, and it wasn’t clear which direction the coxa moved the leg, it was just another segment. Now I know!

It’s easy to think of it now though. The servo that moves each joint is called that joint. For example, only one servo moves the hip, that’s the coxa. The femur and tibia are the same.

Hi Ted :smiley:

Yep, I hear you and have to think about some of those things as well… :laughing: Which is of course why I don’t always follow the names I mentioned above. For example for the joysticks, instead of naming the variables like: LJoyHorizontal and LJoyVertical for the two values coming from the left joystick, I end up calling them something like:
LJoyLR and LJoyUD (For left/Right and Up/Down). Yes I know this has the same confusion as am I talking about the pivots of the joystick or the direction the joystick is actually moving, but… It worked for me… But then again I am always in a persistent state of confusion :laughing:

Kurt

It’s a little grisly to take off the head every time I want to communicate with it.

Now I have a few questions.

  1. I’ve installed my new SSC-32 and configured the registers appropriately. I have enabled “Initial Pulse Offset”, which I assumed would apply the offsets at startup. When I start the bot with the Phoenix code however, the alignment seems off (see image Figure 1) and some of the legs don’t touch the ground. I have specifically corrected for this using the offsets, but it doesn’t seem to apply.

  2. More importantly, in Figure 2 you can see the way the bot stands by default. In this situation the legs are too far away from the body, and it doesn’t have enough torque to walk. I would like it to stand closer to Figure 3, but a little higher off the ground. Can anyone give me some pointers on how to accomplish this? [EDIT: Is this because I set it up this way in the SSC-32?]



Not 100% sure which code base you are currently using. If it is one that Zenta played with there could be code that has initial offsets built-in to the code… If so you should disable this… I don’t think any of my Github code has this in it, but…

Double check the SSC-32 register values. You need to have your offsets in the correct registers and you have to have that option set in register 0. In particular bit 15 can not be on and bit 2 must be on…

As for lower down and closer in. You need to play with the Initial X, Y, Z values… Back in the config file there will be something like:

//[START POSITIONS FEET]
#define cHexInitXZ	 111 
#define CHexInitXZCos60  56        // COS(60) = .5
#define CHexInitXZSin60  96    // sin(60) = .866
#define CHexInitY		 65 //30

To get it lower try decreasing the value in CHxInitY… You may run into issues when you get too low, as you probably remember from before. Also if the feet position you wish to have when walking is farther in than you can get and have the body sit on the ground with the feet hitting at the desired location, than you may need to use the stuff for multiple positions…
That is where the next stuff in some of my config files comes into play. Something like:

// Lets try some multi leg positions depending on height settings. #define CNT_HEX_INITS 3 #define MAX_BODY_Y 90 #ifdef DEFINE_HEX_GLOBALS const byte g_abHexIntXZ] PROGMEM = {cHexInitXZ, 99, 86}; const byte g_abHexMaxBodyY] PROGMEM = { 20, 50, MAX_BODY_Y}; #else extern const byte g_abHexIntXZ] PROGMEM; extern const byte g_abHexMaxBodyY] PROGMEM; #endif
The code checks to see if the Y value asked for is below some values if so it set the XZ value… So as the body gets off the ground the idea is that it can then pull it’s legs back in…

Kurt

Thanks Kurt. This is what I’ve got so far, you can see that it has trouble keeping itself off the ground. Any suggestions? I could probably make shorter legs…

Also, for some sad comedy…

Others can answer much better than I can, but if it were me, I would try some random things, like does it work any better if you put the 645s on the Tibias instead of femurs. My guess is you need at least 645s on both. Else shorter legs…

Kurt

Hi,

Good to see it moving!

The reason is that there is a big difference between a servos holding torque and the moving stall torque. It won’t help moving the 645’s to the tibia only. For a hexapod this big (read long leg segments) you need more power, probably more than what you get from the 645’s. Decreasing the length of the leg segments is probably the cheapest way.

EDIT: Or decreasing the overall weight. I guess removing the head isn’t an option… :wink:

Yes I agree. Looks like the servos are just not powerful enough for those legs. For me it’s the long tibia. The femur should be ok but I guess if you scale down the tibias you may want to do the same with the femur for cosmetic reasons.
I had the same issue when I built this…

youtube.com/watch?v=UL1l63c … ata_player
I used 645s but my femur measured 80mm and the tibias measured 130mm. I personally wouldn’t build larger than that due to experience. But again the total body weight played a factor.

Yep :blush: As I said I would try random things that were long shots… (But I should have added while waiting for additional servos to arrive :laughing:). The other random thing I might be tempted to try is to use the 6 better servos on 3 legs. That is on a Tripod of legs use them for the Coxa and Tibia. Use the 485s for the other 3 legs. Then see if the robot can stand up… This might give you some useful information like will ordering 6 more 645s work or do you need something stronger… Just a thought

Kurt

Thanks for the support everyone! Looks like I need to plan another trip to the hacker space to reduce leg length :slight_smile:

I’d love to reduce weight as well, this thing weighs about 4.4lbs. I’m pretty sure I want to keep the head though, Zenta!

Innerbreed, what was the weight of your bot? My femurs are way too long I guess - 125. Tibias are 170.

Any idea what would be a reasonable length?

Humm… I built that a while ago. Think it was about 3.5lb.
http://i531.photobucket.com/albums/dd355/innerbreed/SDC12505.jpg

Quick question, in a number of the hexapod videos it looks like the bots stand up slowly when the start button is pressed. With my bot, he leaps up at maximum speed. Is there a setting to slow this down a bit?

No you are mistaken. When start button is pushed the robot snaps to its initial position. Usually crouched. Then (on ps2) use the up button on the d-pad to raise the body. That’s what your seeing.