BH3 Based Project

Hello,

I have recently purchased at BH3 Hexapod and in the process of making it do stuff.

My aim is to have a robot that is able to do useful things like get me beer, transport things around the house, etc.

I am intending to program the robot using Labview running on a nanoITX based PC onboard the hexapod. Labview has some good features as far as vision processing is concerned and I am too lazy to research/learn about more suitable solution. At the moment I am using a laptop until I gather funds to purchase the PC.

Reading through the forum I can see that you guys have done some good work. I hope to contribute where I have the time (most of my time is taken up with work – which is ok as I work with robots, eating and sleeping).

What I have completed so far (as at 12/02/2009):

  • Build the thing (after a couple of legs I was sick of putting them together!)
  • Developed a kinematic solution for the leg.
  • Developed an inverse kinematic solution for the leg.
  • Simulated the solutions to confirm their accuracy.
  • Developed a gait algorithm.
  • Written the serial communications for the servo driver.
  • Got it walking.

Next things to do:

  • Get a wireless serial interface and get rid of the RS232 cable.
  • Write a program to generate the movement vector based on target robot position data.
  • Generate position data from some sort of house map and what I want it to do (e.g. walk to the fridge, get beer, walk to lounge, drop beer).

I will add pictures and videos soon…

Thanks for reading,
Iop098

Hi,

Welcome to this great forum!

I’m looking forward to see more of your project, it sounds interesting. Do you have any youtube link for video?

An onboard nanoITX! Wow, that sound even more interesting. Have you calculated the total weight including all batteries? I hope you invested in some strong servos :wink:

BTW: Have you considered the PicoITX board?

this backs up the reason for this robot…

no on a serious note, your project sounds interesting!

i have never heard of Labview before but ill be looking it up after this post. i have found that LM have a range of software, (most free) that work extreamly well.

i like the sound of vision processing is a nice touch.

would be really cool to see this!

its always interesting to see new project and ones that use different features, software, etc.

… DROP BEER…NOT GOOD :slight_smile:

Here is a picture:

http://idisk.mac.com/nathan.larkin-Public/Forum/Robot.jpg

And a video:

youtube.com/watch?v=JZJ-74LwJd0

After recording the video I noticed that one of the back legs is loose - Making the robot a little unsteady. I have only done a quick calibration of the servos as well. I hope that I can get the motion really smooth with a little more work.

The robot can move in 6-DOF: X-Dir, Y-Dir, Z-Dir, X-Rot, Y-Rot, Z-Rot (where Z is the vertical axis) although the X and Y rotations are pretty useless. The pose can also be controlled in 6-DOF, X,Y,Z position offset and rotation around X,Y,Z axes.

In the video the leg position algorithm is running at 50Hz. The gait shown is around 65 steps in total. 10 down, 40 moving, 5 up, and 10 raised (or something like that). I still send a “T20” command to the servo controller, but I am thinking of doing away with it (when running at 50 Hz).

I’m not sure what will result in the best motion, a fast algorithm with lots of steps, or a slow algorithm with a few steps letting the servo controller interpolate each position. The fast speed will allow more flexibility when it comes to controlling the vertical position of each foot using a force sensor (similar to what Xan is doing) such that each foot has equal pressure. I want to do more testing with this after I convince myself that the servo positioning is as accurate as possible.

Ah yes… I got them mixed up - The PicoITX form factor is what I am intending to use.

I liked the BH3 as the servos are supported at both ends. Although other designs do look better.

Hi,

The walking part was great!
That you are able to run the SSC32 at 50 Hz sound impressive and would give you benefits when doing terrain adaption. 65 steps per walking cycle! WOW 8) thats alot of calculations , and it seemed pretty fast too. For normal walking on flat surface you could try a 12 step ripple gait and let the SSC32 group command take care of the time sync for each step. That would give you a pretty fast hexapod :laughing: Have you tried the tripod gait?

…have to go.

Keep up the good work!

great work, looks really cool

i see you have 475’s on this robot! how do you find their proformance?

well done

Thanks, alot of the programming has been done after watching the videos you have created. I am still envious of how smooth the motion of your robot is.

They are ok I guess, these are the only servo motors that I have used so I don’t have anything to compare them to. If I really get into this I would use a servo with a customisable controller (Such as what is being developed by the OpenServo guys). That way the control loop can be tuned to match the mechanical properties of the leg (inertia etc.)

the only reason i ask is on my old hex i have 475’s and i shredded two servos at the knee. different times.

who much does your robot weight?
my old hex:
Weight (w/out batteries) = 3lb 8oz.

It weighs 2.0Kg - which according to google is 4lb 7oz, including the battery.

I have had it walking around with 2 bottles of beer sitting on top of it (1.2Kg - 2lb 10oz) with a tripod gate. Each time a set of legs lifted, the body of the robot sank 10mm… I might stop doing that.

I came to the conclusion that I will be able to carry the beer bottle if I only lift one leg at a time and offset the body back to improve the COG.

I have only started using them (they have only had 30 minutes of running) so maybe after a while they’ll fail. One day I’ll calculate the torque on each servo to see exactly how much it can carry.

Hi iop098,

Welcome at the forum!

I’m impressed with the refresh rate that you’re using. Like Zenta said, this will really help when your building terrain adaption. Forget me if I’m wrong but your controlling it with your PC now right? Are you planning to start on terrain adaption with your pc or will do you it after you placed the pico-ITX? I’m asking this because sending the sensor data wireless to the pc, process it and sending it back could take to much time. Haven’t tested it though :wink:

Are you planning to read them analog or digital?

Keep us posted!

Xan

On the pico-ITX. National Instruments (the company the make labview) make some small USB input cards. I have an 8-channel analogue input card that will sample at 48 kHz (so fast enough for this). I’m planning on using it to read the analogue value and a control loop to position the height of the feet.

It’s a while off yet, I have just programmed the gait engine so it is easy to incorporate it in the future.

Thanks for the interest,
iop098.

Nice project! 8)

I managed to find a couple of hours to work on the robot and have accomplished the following:

  • Keyboard control (so I can drive it around like you guys with playstation controllers).
  • Preliminary gait testing.
  • Started some navigation work.

Keyboard Control

There isn’t much to write about. I wanted to “driveâ€

Pressure sensors on the feet will not help much with the tripod gait as the pressure on all three supporting legs would equal out naturally. But it will easily allow equalizing the force on all legs if more than three legs are down.

If your goal is to maintain a perfectly level body when walking it may be better to attach an accelerometer to the body and adjust the legs position to compensate. BTW a 5mm sag is actually pretty impressive for this large bot with only 475 servos. 8)

We would love to host a project page for this purpose. You’ll be famous!

I really like the work you are doing on this. I am not sure why the inline hex isn’t as popular as the round ones. Very impressive work here.

[size=75]note: you will not be famous. [/size]

LOL Always read the small letters on the end of the contract :smiley:

Let me know what you need and I will send it to you.

Really cool project!

I have worked a little with LabVIEW in the past an would really like to take to take a look at your code. Do you think it would work for a round hexapod with some modifications?

Lots of people ask about matlab, so anything that would help them out would be great. I guess we would need the code and an explanation of how to use it. Thanks!

It will work with any hexapod robot with a similar leg design as the BH3 (which I think is most, if not all of them). I have just replied to Robot Dude regarding hosting the code on the Lynxmotion site so hopefully it will be up soon.

There are a bunch of constants in the code which basically tell the program what shape of robot it is running. It just calculates everything from that.

How is going with the project page? Any progress? Looking forward to it :slight_smile: