Shop OBEX P1 Docs P2 Docs Learn Events
OTTO / ZOWI / BOB biped robot with Propeller — Parallax Forums

OTTO / ZOWI / BOB biped robot with Propeller

Cluso99Cluso99 Posts: 18,066
edited 2016-12-31 03:37 in Propeller 1
I found an article on the robot OTTO BOT recently.
http://otto.strikingly.com/

It is under CC-BY-SA V? license and was derived from Zowi which was derived from Bob.

A friend of mine in New Zealand 3D printed the plastics in ABS (print files from github). He (and wife) were visiting relatives in Sydney over the holiday period. So yesterday we put the plastics, servos, speaker and Ultrasonic sensors together. While I have the Arduino Nano and Expansion boards, I have decided to go straight to using a Prop (in my case one of my P8XBlade2 boards). I plan on getting my grandsons interested and building more, including adding a rotating head and arms.

Here are a couple of pics of my assembled OTTO bot... (A pen is used for size reference)

«1

Comments

  • Cool, when do we get to see a video of it doing the Erco figure 8 challenge?
    Jim
  • yetiyeti Posts: 818
    edited 2017-01-01 15:25
    His son (daughter is in background) has arms and could play The semaphore version of 'Wuthering Heights' now!

    Ok... even if not 'Wuthering Heights', that makes some more ways to express herself.
  • RaymanRayman Posts: 13,797
    Was just looking at ZOWI and OTTO... I'm going to try to scale up the size of OTTO to a little bigger than ZOWI.
    With some full size metal servos, maybe we can get a version that can hold an Activity Board sized PCB in it's head...
  • RaymanRayman Posts: 13,797
    BTW: I wasn't sold on these robots until I saw video of them walking forward...
    Still not sure how that is possible...


    Sure, side to side is easy to see, but how do they walk forward?

    Anyway, I think this 4-servo approach must be simplest for walking robot, right?
  • Cluso99Cluso99 Posts: 18,066
    They lean over to the left until the right leg is off the ground, then the body rotates on the left leg, moving the right side and right leg forward. Then the right leg is moved onto the ground until the left leg is off the ground, and the body rotates on the right leg. etc.
  • RaymanRayman Posts: 13,797
    I'm working on a full-size servo version of Otto that can house a Parallax Activity Board (or equivalent). Working title is Botto:
    580 x 582 - 55K
  • RaymanRayman Posts: 13,797
    I think it's ready to print!

    It's almost 2" taller than ZOWI somehow.. Almost 8" tall...
    645 x 685 - 50K
  • Cluso99Cluso99 Posts: 18,066
    Rayman,
    Have you seen the two variants with arms?

    I never did get mine running. I did buy the arduino mini boards but they didn't work properly - presume it was the USB power but at the time the AA battery holders were MIA in the post. Since ordered new ones but never fitted them to see if this was the problem. Always planned to use my prop board CpuBlade7 (a P8XBlade2 with some workarea) but again got distracted.
  • RaymanRayman Posts: 13,797
    Thought I saw some with arms that didn't move. Rotating arms may be possible. Servo would probably have to be in the arm though...
  • Rayman wrote: »
    Thought I saw some with arms that didn't move. Rotating arms may be possible. Servo would probably have to be in the arm though...
  • Cluso99Cluso99 Posts: 18,066
    Yes, the servos need to be in the arms as there is no room for them in the body.
    Depending on the servo mounting, flapping arms like yeti's post, or rotating arms if the servo is rotated 90 degrees to mount to the body side face.
  • RaymanRayman Posts: 13,797
    Got the parts printed!

    Unfortunately, the spacing between board retainers was just a hair too small and some broke putting in the Activity Board...
    Have to fix that and print again. May wait to see what else might be wrong first though...

    1632 x 1224 - 728K
  • Cluso99Cluso99 Posts: 18,066
    Might be worth putting the arm brackets on the body when you reprint (rather than the head like others do) ;)
  • RaymanRayman Posts: 13,797
    Arms is a good idea for later. Right now, going to borrow from code and phone app of Zowi.... Would just need to add Bluetooth module.
  • RaymanRayman Posts: 13,797
    Finally got bot together... Found more design flaws though... Had to modify legs in order to insert servos...

    Also, I think the feet are too weak. Had to epoxy them back together after breaking them both where the vertical parts meets the bottom.

    Anyway, now I can work on porting the Arduino code over to Spin now while printing out revisions....

    Also, need to find my Ping module...
    1632 x 1224 - 464K
    1632 x 1224 - 512K
    1632 x 1224 - 561K
  • Cluso99Cluso99 Posts: 18,066
    Ah! There is a trick to the way to mount the servo in the leg without applying pressure on the leg plastic.
    Sorry, cannot remember what it was. I think it may have been the instructions on the otto website.

    Anyway, its looking good. Interested to see it working :)
  • RaymanRayman Posts: 13,797
    Recently noticed that there is a new version of ZOWI (for sale now) that has legs like OTTO.
    So, I guess it's actually close to my version...

    Also, I see they are using something called "Bitbloq" to program it.
    I looked it up and I think it is actually Blockly...

    Blockly was also my plan...
    So, now I see I'm just doing a copy instead of anything really new...

    Still, this will let people use a Parallax board to control it.
    I've got other plans too, like arms and LCD display...
  • RaymanRayman Posts: 13,797
    New hardware revision works much better...

    Got it sorta walking forward:


    Think I've decided that the feet need to be a bit wider on the bottom. This should help it walk better.

    On the software side, need to copy the way zowi updates servo positions. It moves them like a sine wave. The walking is actually sorta a repeated wave motion... I'm using the servo32 "Ramp" function, but it doesn't seem to work as nicely.
  • Nicely done!
    Rayman wrote: »
    On the software side, need to copy the way zowi updates servo positions. It moves them like a sine wave. The walking is actually sorta a repeated wave motion... I'm using the servo32 "Ramp" function, but it doesn't seem to work as nicely.

    So, they're more "moonwalking" than "walking". :D
  • Cluso99Cluso99 Posts: 18,066
    Nice job Rayman!

    Looks like the left leg is sliding rather than lifting. Perhaps the body needs to move weight more onto the right leg to lift the left leg. Ie it doesn't look symmetrical.
  • RaymanRayman Posts: 13,797
    yes, I can make it lift the feet up, but then it's a little unstable...

    Still testing, but I think I need slightly wider feet to make it better.
  • Cluso99Cluso99 Posts: 18,066
    Perhaps because you have increased the body, maybe the centre of gravity has moved higher ???
    I guess once you have a 3D Printer working, its easy enough to print new feet. Worth a try :)
    Keep us updated, thanks.
  • RaymanRayman Posts: 13,797
    edited 2017-08-17 13:49
    I've copied the sinusoidal movement from Zowi and found a combination of settings that make it walk while lifting feet:



    It took more work than I thought to implement sin and cos inside Spin. Maybe there's an easy way? I had to write an assembly driver and use a cog to serve up sin values...

    BTW: It turns out that speed is also a factor. Only one foot gets lifted if slowed down...
    Anyway, I'll print out new feet soon and it should be even better...
  • Rayman wrote: »
    It took more work than I thought to implement sin and cos inside Spin. Maybe there's an easy way? I had to write an assembly driver and use a cog to serve up sin values...

    Were you using the ROM sine table?
  • RaymanRayman Posts: 13,797
    edited 2017-08-17 16:23
    Yes. Used the example in manual, but it's assembly only... I guess I could have just translated it to spin... Maybe should do that...

    Hmm... Just noticed the Zowi code also includes an offset that I don't have yet...
  • Cluso99Cluso99 Posts: 18,066
    Looking so much better!
  • RaymanRayman Posts: 13,797
    Ok, I think we have it now! Should have looked closer at the ZOWI code... There's an offset on the feet that helps a lot:



    Might not need new feet after all...
  • Cluso99Cluso99 Posts: 18,066
    Magnificent work Rayman :)
    Would you like to post your code? Perhaps I can find the time to try it out ;)
  • Funky shuffling there!

    I've used this Spin code before for sine, the argument is in units of pi/4096 I think, and the output is 65535 * sine (a*pi/4096)
    [probably]
    PUB  computeSIN (a) | revs, sign, val
      revs := a & $800
      sign := a & $1000
      a &= $7FF
      if revs
        a := $800 - a
      val := word [$E000][a]
      if sign
        result := -val
      else
        result := val
    
Sign In or Register to comment.