4dof Quadruped robot (T-Hex type) AXIS

Well i have been thinking and i have also mentioned to some of you that i will be building another quad based on the T-Hex leg design. mainly out if interest!
here are some pictures before adding servos.
the chassis is hand cut from some Black PVC with a Stanly blade. i would love to have the tools to do things like this properly. :neutral_face:

anyway


you will also notice in the last picture, just above its right front legs i caught a “fly” in the picture. 8)

http://i531.photobucket.com/albums/dd355/innerbreed/100_2351.jpg
http://i531.photobucket.com/albums/dd355/innerbreed/100_2354.jpg
http://i531.photobucket.com/albums/dd355/innerbreed/100_2355.jpg
http://i531.photobucket.com/albums/dd355/innerbreed/100_2358.jpg
http://i531.photobucket.com/albums/dd355/innerbreed/100_2359.jpg
http://i531.photobucket.com/albums/dd355/innerbreed/100_2360.jpg
http://i531.photobucket.com/albums/dd355/innerbreed/100_2357.jpg

Thats no fly, thats a helicopter dropping off a squad of elite comandos sent to sabatage your robot. :astonished:

That looks really nice. Something like this would make a nice kit for a lynxmotion quad. Of course lots of your projects look like they would make nice kits. :laughing: In my opinion anyways.

Looking good Jonny!
I’m very impressed that you managed to cut out the parts using only a stanley knife :open_mouth: How do you plan to design the head?

Seriously, how did you manage that with a box cutter?

I’ve been using a scroll saw, I’m curious how other people have been cutting out their non-standard plastics parts.

robo1340,
thanks for that comment. :wink:

zenta,
i havent thought as far as the head yet but i will keep you posted. id like to use mini servos and create a Pan/Tilt/Roll head. 8)

Jefe,
Hi yes i have done it before with just a blade. the best way is to drill holes all the way around the shape, as close as you can. and then remove the shape by cutting the excess pvc. then i UNSAFELY trimmed off the excess plastic surrounding the shape.

a light sand after. not a great finish but ok for prototyping.

Compared to a skill saw that stanley knife looks pretty SAFE if you ask me, you should know that though
 :wink:

Lol
 skill saw
 [shiver] :exclamation:

That Stanly knife would be unsafe in my hands. I prefer a band saw or scroll saw.

I’ve even been known to cut out plastic shapes on a mill (actually my favorite way)!

But that stuff is thick! And you’re going to make the cutout too?

Alan KM6VV

hi alan. yes it a massive 6mm think. i after i ordered it i wish id order 3mm.

the cut out has already been made and you will see in the next pictures.
I may even remake the chassis as it is a bit small and i have a nice 6v 3100 battery id like to use. it doesn’t fit the frame. :frowning:

i do have a smaller one that will fit so all its not wasted.

The chassis looks good! When I saw the picture of the outline of the chassis next to the razor blade, I said “no way.” But I went back and read your description and wow! You are skilled with your hands


I’m working on a robot project myself, but I am kinda keeping it on the down-low
 I’ll reveal it when it’s closer to fruition
 :slight_smile:

thanks. i found that drilling out around the shape and then cutting off excess plastic is safer and better for time.
when working on projects i have found it far more beneficial posting early as it allows it to be “evaluated by other” and there for improvements can be change easily. That’s me just trying to justify my inability when it comes to ideas.
i cant help posting early. lol.

this quad is all servo’d up now and i hope ill get some time next week to program it. :wink:

look forward to your project.

just some images after adding the servos,
It is great playing about with Zenta’s code for the 4dof t-hex. Although only having four legs (and i will need to add a few lines of code to get the COG to shift for the balance), the code really brings out the magic of the leg design.
all credit to Zenta.

http://i531.photobucket.com/albums/dd355/innerbreed/100_2372.jpg
http://i531.photobucket.com/albums/dd355/innerbreed/100_2373.jpg
http://i531.photobucket.com/albums/dd355/innerbreed/100_2374.jpg

i still have a few tweaks to make to the servos but so far so good.

i have implemented a 28step wave gait that looks to work really well. In fact its the same gait used in previous projects like Iron Wolf, who sadly sits now with no power and servos. terminated you might say. lol

Wait just one second, what’s that red/black wire pair I see coming out of the front (?) of the 'bot? ;>)

Does look good 'tho.

And it looks like you’ve made the cutout as well.

Which 4DOF leg did you say it was? T-Hex??

Alan KM6VV

Yes those wires are its leash. Just in case it runs off. Lol. The battery i was just was a bit big for this. Yes,The legs are the same as zentas T-hex.

Very impressive legs! I need to study them as well, although I’m still partial to the 4DOF legs I came up with. That project, regrettably, is on a hold. The HBRobotics club (SF bay area) is having table-top challenges, and I really want to have a 'bot ready.

Do you remember, are those legs detailed in a build (tutorial) yet?

Yeah, I always have trouble getting the battery I want mounted on the 'bot where I want!

Alan KM6VV

They’re right here:

Front/Middle Legs
Rear Legs

Thanks for the URLs.

I’m not seeing much difference between the front and rear legs.

I did notice that the bearing position in assm13 (rear) is different from that of assm09. But I haven’t found it yet in the legr and legf JPGs. Unless it’s up in the shoulder? That could be it.

OK, assm10 and assm12 are different also, reflecting this shift of the bearing. It looks like this shift is to make the legs symmetrical fore/aft?

Also, is there a “build” number associated with this tutorial? Just for tracking purposes.

Alan KM6VV

i was working on the Center of mass body shifting last night. i believe i have cracked it! just need to tweak it slightly and also re-calibrate the legs for better precision, but its nearly here. ill post the code too. :wink:

i was just about to test my code but my battery’s didn’t get charge as the plug was pulled out! but before i share a video etc i thought id post the shifting code for others to look at just in case you see a problem.

If you are familiar with the phoenix codes Gait Engine then this should make sense. if not then all will come clear shortly.

Firstly we have the bytetable that flows along side the gait for the body shifting.
im using a 50 step wave gait for this.

[code]'Walking comp tables:
; GaitLegNr(cLF) = 3
; GaitLegNr(cRR) = 15
; GaitLegNr(cRF) = 28
; GaitLegNr(cLR) = 40
; (cLF) (cRR)
'-15=113 15=143 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24

Xcomp bytetable 100,100,100,100,100,105,110,115,120,128,128,140,145,150,155,155,155,155,155,155,155,155,155,155,155 |
155,155,155,155,155,150,145,140,128,128,120,145,110,105,100,100,100,100,100,100,100,100,100,100,100,100,

; 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50
; (cRF) (cLR)[/code]

[code] IF (GaitType = 1) THEN ;Wave 48 steps test
GaitLegNr(cLF) = 3
GaitLegNr(cRR) = 15
GaitLegNr(cRF) = 28
GaitLegNr(cLR) = 40

NrLiftedPos = 3
HalfLiftHeigth = 0
TLDivFactor = 40
StepsInGait = 48
NomGaitSpeed = 150
ENDIF[/code]

[code];[GAIT]
GaitCurrentLegNr var nib
Gait [GaitCurrentLegNr]

BodyPosX = (Xcomp(GaitStep))-128

;Clear values under the cTravelDeadZone
IF (GaitInMotion=0) THEN
TravelLengthX=0
TravelLengthZ=0
TravelRotationY=0
ENDIF

;Leg middle up position
;Gait in motion Gait NOT in motion, return to home position
IF (GaitInMotion & (NrLiftedPos=1 | NrLiftedPos=3) & GaitStep=GaitLegNr(GaitCurrentLegNr)) | (NOT GaitInMotion & GaitStep=GaitLegNr(GaitCurrentLegNr) & ((ABS(GaitPosX(GaitCurrentLegNr))>2) | (ABS(GaitPosZ(GaitCurrentLegNr))>2) | (ABS(GaitRotY(GaitCurrentLegNr))>2))) THEN ;Up
GaitPosX(GaitCurrentLegNr) = 0
GaitPosY(GaitCurrentLegNr) = -LegLiftHeight
GaitPosZ(GaitCurrentLegNr) = 0
GaitRotY(GaitCurrentLegNr) = 0
ELSE

;Optional Half heigth Rear
IF ((NrLiftedPos=2 & GaitStep=GaitLegNr(GaitCurrentLegNr)) | (NrLiftedPos=3 & (GaitStep=GaitLegNr(GaitCurrentLegNr)-1 | GaitStep=GaitLegNr(GaitCurrentLegNr)+(StepsInGait-1)))) & GaitInMotion THEN
  GaitPosX(GaitCurrentLegNr) = -TravelLengthX/2
  GaitPosY(GaitCurrentLegNr) = -LegLiftHeight/(HalfLiftHeigth+1)
  GaitPosZ(GaitCurrentLegNr) = -TravelLengthZ/2
  GaitRotY(GaitCurrentLegNr) = -TravelRotationY/2
ELSE
  
  ;Optional half heigth front
  IF (NrLiftedPos>=2) & (GaitStep=GaitLegNr(GaitCurrentLegNr)+1 | GaitStep=GaitLegNr(GaitCurrentLegNr)-(StepsInGait-1)) & GaitInMotion THEN
    GaitPosX(GaitCurrentLegNr) = TravelLengthX/2
    GaitPosY(GaitCurrentLegNr) = -LegLiftHeight/(HalfLiftHeigth+1)
    GaitPosZ(GaitCurrentLegNr) = TravelLengthZ/2
    GaitRotY(GaitCurrentLegNr) = TravelRotationY/2
  ELSE  	  

  	;Leg front down position
  	IF (GaitStep=GaitLegNr(GaitCurrentLegNr)+NrLiftedPos | GaitStep=GaitLegNr(GaitCurrentLegNr)-(StepsInGait-NrLiftedPos)) & GaitPosY(GaitCurrentLegNr)<0 THEN
      GaitPosX(GaitCurrentLegNr) = TravelLengthX/2
      GaitPosZ(GaitCurrentLegNr) = TravelLengthZ/2
      GaitRotY(GaitCurrentLegNr) = TravelRotationY/2      	
      GaitPosY(GaitCurrentLegNr) = 0	;Only move leg down at once if terrain adaption is turned off

  	;Move body forward      
  	ELSE
      GaitPosX(GaitCurrentLegNr) = GaitPosX(GaitCurrentLegNr) - (TravelLengthX/TLDivFactor)     
      GaitPosY(GaitCurrentLegNr) = 0  
      GaitPosZ(GaitCurrentLegNr) = GaitPosZ(GaitCurrentLegNr) - (TravelLengthZ/TLDivFactor)
      GaitRotY(GaitCurrentLegNr) = GaitRotY(GaitCurrentLegNr) - (TravelRotationY/TLDivFactor)
    ENDIF
  ENDIF
ENDIF

ENDIF

;Advance to the next step
IF LastLeg THEN ;The last leg in this step
GaitStep = GaitStep+1
IF GaitStep>StepsInGait THEN
GaitStep = 1
ENDIF
ENDIF

return[/code]

Yeah! Looking forward to the video, and a full picture of the code.

48 step gait! Edit: make that 50 step.

Good work!

Alan KM6VV