Hybrid Terrain adaption

I’ve been adding terrain adaption functionality to the “phoenix”.

great work!

nice you have had a chance to play with the hybrid.

slightly jelous…

well done and cannot wait to see how you get around the processing speed for the feedback.

i take it you were using option “2” By sending the leg down in small bits, checking the input of the sensor?

Hi Xan,

Is that “Creepy Hybrid”? ;>)

If you move the tripods in a series of incremental commands (like the Powerpod generated code) by dividing up the requested move, then checking after each “sub move” for a tars down should allow you to abort the move for that leg, no? I can see that the other two legs could continue to move until they reach solid ground. By knowing where you stopped the leg in the incremental move, you should have that information. I’m not that familiar with your code yet, so maybe I’ve missed the point. But I think that’s close to what you’re doing.

What’s the hybrid aspect? And have you posted info on your microswitch leg?

Best regards,

Alan KM6VV

Have you experimented with making the steps slightly larger per say 2 times larger? “and see how that affects movement” …How sensitive are your foot switches…does it take more then a couple steps for the foot sensor to click?

Sound’s like to get that thing working faster you seem to be butting heads with the limits of your atom pro short of going 100% assembly… regardless you never cease to amaze me with the abilities you squeeze out of 16mhz.


In my foot contact testing using the V2 ssc-32 and my pc, I give the motion servo a timed move and then monitor the contact ~every 20ms using the analog function (no debounce delay). When the analog value drops, the stop command is given for the servo to stop, and the current servo position is then queried. It might be worth while to drop back to the very simplest method walking and study the issues to start developing solutions. Might also be easier to do the initial testing using a pc and then later move to the microcontroller control.

Hi Xan!

Thats awesome! Great progress on your code. One thing is for sure, small steps take time. But also sending stop command to all servos and then doing FK…

Btw. Have you considered using the balance mode when doing terrain adaption? That should make the hexapod beeing able to “adapt” the body to the terrain and make the body follow the leg when lifting.

Hi Guys,

Thanks for all the nice comments! I really appreciate it!

I’m indeed using option 2 at the moment.

LOL, nope the Creepy Hybrid if fully yours. This is one of Lynxmotions prototypes showed earlier in this post.

I’m doing this in some kind of way. But I’m not using the tripod at this moment since the tripod as got just 3 legs on the ground which makes it kinda self terrain adapting. So I’m using all legs except for the one in the air as reference point. This makes testing a bit easier since I can clearly see that one (or more) leg(s) are not on the ground. But it would also work with the tripod gait. Then again, this is just a first test :wink:

Here is the topic about the microswitches used in the hybrid. They really work great! This construction is very reliable and solid. Jim did some great work!

This is one of the tests that’s on my list. See how much hysteresis the micro switches are giving me. The hard thing is that this is gonna change when the leg is hitting the floor at a 90 deg angle or at a 60 deg angle. I have to say that the sensors work great under different kind of angles. But I defiantly need to do some more testing on this part.

I think you where using method 1 from my first post. Am I right? Did you noticed any delay before stopping? The stop command must be send once the switch is hit. If this takes to much time the leg shoots down to far and all pressure will be placed on that single leg. This is one of my next tests I want to do. This should give some interesting results.

I think that time and speed could be tweeked to make it run smooth. But I’ve no idea if there will be any speed left. But it’s defiantly something to try!

I would agree on this since debugging on the pc is much easier but since I’m so familiar with the code I can set up some test environment with the code in no time. Both V2.0 and the DIY RC give me a high accuracy on movement.

Yup it’s something that needs some experimenting so see what the best option is. Or maybe there is another option we didn’t think of.

Yes, Once I’m going to do some terrain adaption tests together with the gait it will defiantly improve this function a lot! You’re brilliant balance calculations will come in handy here!


Hi Xan,

Great work (as usual).

It would be great to see Option 1 in operation. My guess is that you should be able to get pretty good response.

Also I wonder how close of a guesstimate you could do without asking the SSC-32 for information. That is for example if you told the SSC-32 that you wanted to complete the last operation in a certain time (T) and it was going to move Z degrees and the contact happened at a delta time of T2, could you reasonably calculate how far the servo probably moved during this time, especially for reasonably small delta degree changes. Just a thought. It might have to take some fine tuning as there may not be fully linear with ramp up and ramp down, but you might be able to get it close enough. Then when you have time you could ask the SSC-32 for the real angle…


You know… I think Kurte is onto something, lookup tables for server movement perhaps…

Although these numbers would have to be pre calculated for specific servos, the 645 and 475.

Move a servo at X speed and Y time and end up with Z result and Z wouldn’t have to be calculated it could be referenced from a table…

Not sure how “Accurate” it would be but If I had to guess… on a smaller scale like the phoenix it just might work

Great work deserves great comments.

I musta missed the microswitch stuff. So THAT’S what makes it a hybrid. I found a small joystick that I thought I might be able to incorporate into my aluminum tibias. Haven’t had time to try it yet. I probably spent half a day swapping around servos (I’m replacing the 475’s in my hexapod with 645’s). the 645’s are a little bit longer! I ended up having to do a little file work on the cutouts in the tibias. I considered adding microswitches to my tibias, but that contact angle didn’t really look good. That’s where a little joystick might work. And. you’d get ANGLE of contact. If it works…

Maybe I’ll try microswitches again…

I could see in your video that you weren’t really trying a tripod move yet. That would increase the pressure on a switch, possibly allowing it to react faster.

Thanks for the URL’s!

Alan KM6VV

The term Hybrid was chosen because the bot was larger than Phoenix, but smaller than CH3-R. The tibias are long, but the femurs are relatively short. This makes a pretty strong, yet still somewhat stylish hexapod. The ground contact switches didn’t really have much to do with the name. It’s likely to change with the production version anyway. :smiley:

We had a big storm and no power at the office yesterday. I apologize for not replying to this post yesterday. :blush:

Very nice first show of the hexapod becoming aware of its environment! Most impressive! 8) Good job Xan!

Oh, that makes a little more sense! I did watch the video (very nice), and I could see the legs looked a little different (like universal brackets back to back on the knees?), but couldn’t get a good look at it. Did you post a link to some stills somewhere? I’m always curious about new leg designs…

Yeah, I bet that storm interrupted a bunch of business back there! Something we don’t see that often in the summer out here on the central coast of California!

Alan KM6VV

Sure do… I put pretty much everything on the forum.

Oh I examined that link yesterday (I confess that I missed it when first posted). good work on the microswitches! I see that you’ve linked it before for requests for pix of the new legs. I thought I saw something different, the knees, in the video.

This thread too shows a “hybrid”, although it’s not what I thought I saw in the video.
lynxmotion.net/viewtopic.php … ght=hybrid]()

What I’m wanting is a few stills of the new legs/body of the hybrid!

Alan KM6VV

Ok I’ll try to shoot some new images, but I’ll post them in the other thread. Don’t want to spam up Xans thread here.

Hi All,

It looks like porting the forum to the new version messed up my First post in this topic. I can’t believe that I only posted one line… Ah well who cares, I’ve got some better news.

I’ve been working hard on this fella for the last 2 weeks. And with result! Yesterday the hybrid walked over the “Theory of applied Robotics kinematics, dynamics and control” by Reza N.Jazar. (Hardcover 695 pages). Robot beats Robot book! :stuck_out_tongue:

I’ll try to post a vid soon.


really Cool :slight_smile:

I would like to see how this looks. I hope you make a movie

greez t4ndu

Wow! 8) That sound awesome! Congratz Xan!
I’m really looking forward to see a vid of that. :wink:

Hi Guys,

As promised a video of the hybrid walking over an obstacle. Remember, this is just the first time it actually walks over an object so there is still a lot of improvement to do. Enjoy 8)


Hi Xan,

It is great to see the progress here. Looks like it is detecting the object very well :slight_smile: