Otto DIY - opensource biped robot that you can build

Who is Otto?

An interactive robot that anyone can make!
Otto walks, dances, makes sounds and avoids obstacles.
Is completely open source, Arduino compatible and 3D printable

Otto was inspired by another robot BoB the BiPed and programmed using code from another open source biped robot Zowi.

CC-BY-SA

Otto's differences are in the assembled size (11cm x 7cm x12cm), cleaner integration of components and expressions. Using off the shelf and 3D printed parts, simple electronics connections (almost no welding required), and basic coding skills, you will be able to build your own cute Otto friend in as little as two hours!

Otto is designed using Autodesk 123D Design software you can modify it for customization or further improvements!

Gather all the off the shelf parts that you'll need for this assembly.

List of parts:

  1. Arduino Nano; preferable with the pins already weld it
  2. Arduino Nano Shield I/O Extension Board Expansion XD-212
  3. Mini usb cable. (most Arduino dealers provide the cable)
  4. HC-SR04 Ultrasound sensor.
  5. Mini servo SG90 9g x4 (each one should come with 2 pointed screws and one small screw).
  6. 5V Buzzer.
  7. Female to Female breadboard connectors cable 10cmx6.
  8. 4 AA Battery case
  9. 1.5V AA batteries x4.
  10. Mini cross screwdriver. important magnetized

And then you only need to 3D print 6 parts in total:

  1. 3D printed head.
  2. 3D printed body.
  3. 3D printed leg x2.
  4. 3D printed right foot.
  5. 3D printed left foot.

Print in A6 sheets or download to your device the manual

For the programming:

  1. Download & Install Arduino IDE:
    https://www.arduino.cc/en/Main/Software

  2. Copy Oscillator libraries to C:\Users\user\Documents\Arduino\libraries (or wherever your library folder is installed):

  3. Finally open & upload OTTO_smooth_criminal.ino code to your Arduino Nano for dancing Otto.

More codes in https://github.com/OttoDIY/

Version 3 update!

Place in the body for a 8x8mm switch

Place in the body for buzzer

Better snap, shorter leg option, new codes and dance moves

Version 4 update!

Use the key horns from servos for easy assembly so you don't need a high precision 3d printer to make it functional.

Otto walks, dances, makes sounds and avoids obstacles, is completely open source, Arduino compatible, 3D printable.

  • Actuators / output devices: SG90 micro servos
  • Control method: Arduino, Semi-Controlled / Autonomous (Bluetooth)
  • CPU: Arduino Nano 328
  • Operating system: Arduino
  • Power source: 4 AA batteries, USB power for Arduino
  • Programming language: Arduino
  • Sensors / input devices: HC-SR04 ultrasonic sensor
  • Target environment: Indoor or outdoor

This is a companion discussion topic for the original entry at https://community.robotshop.com/robots/show/otto-diy-opensource-biped-robot-that-you-can-build

Simply adorable!

I know most guys don’t like to hear that word, but the robot is just really cute! Really looking forward to a video. I like the use of accent colors. It’s the type of robot that would need a personality.

Indeed Cute!

We actually love when people think is cute thanks!, because that is the idea of the design :). Just updated with a video, any recomendations of how to add more personallity? in a LMR way. :stuck_out_tongue:

Camilo

Personality

You can do a lot with an ultrasonic sensor and the right code…

  1. If the distance detected changes rapidly from far to close, the robot can be “scared” or “surprised” and fall backwards
  2. If the distance detected changes from close to far (slowly) it can try to "follow"
  3. If no distance is detected (or beyond a certain value), it can “look around”.
  4. You can program in a certain distance pattern to detect, at which point it does a little “dance”

Great Ideas!

Thanks man i did not think about, already working in the code distance easy to meassure. How to detect rapid changes?

RobotShop Accelerator

With some refinement and nice code: https://www.robotshop.com/en/accelerator

"Personality"

Some ideas:

- If it senses a sudden change in distance, it shakes and falls over (“scared”)

- If it senses a gradual change in distance (moving closer), it rocks back and forth more and more until a certain distance is reached, then it behaves differently (“happy”)

- If it senses the offosite - an object moving away, it gets “bored” and turns and walks away.

BoB?

Been a while since i’ve seen a BoB!

Indeed inspirend in BoB

Yes Bob has been out for out while, with new boards and algorithms, a remake was needed.

Girly Bob ?!?

 

 My 10 year old daugther made her own “Bob” in tinkercad and it came out cute too :slight_smile:

|x

difference between “Pedro” and other .stl

What are the differences between the .stl files with “pedro” in it and the others?

Great built!

Hey good job first time i see a girls Otto, you should share in social media and as a remix in thingiverse.

Pedro

Pedro is an Otto builder that made an interesting version of Otto it has different switch you can see in the .stl files the difference.

cool!

hello,

I created Otto, great DIY project. A couple of questions:

- Do I always have to calibrate the servo’s after I turn of the power of the arduino?
- In the source code and also on some photo’s I saw that you can make a mouth with LEDs. How is this done? I didn’t see that in your DIY document.
- Is there a complete program where Otto behaves totally autonomous? The source code on github has only examples.

Thanks again for sharing this cool DIY project!

Github Otto DIY

Calibration depends of the quality of your servos.

Try this repository for the mouth https://github.com/OttoDIY/DiyPlusByLev

There are examples of Otto autonomous for ultrasound, what level of autonomy are you looking for? if you need more autonomy need to add more sensors and behaviours but some Otto builders already did some.

You are welcome looking forward to see your Otto

otto doesn’t walk in a straight line

My Otto doesn’t really walk in a straight line.

What could be the problem? Servo’s not good calibrated?

Doesn’t need to be perfect straight

If you want a perfect walk need to calibrate meticulous all the servos and balance the weight in the head and even all parts.

My otto seems to work OK, but the servos drift, so they gradually get skewed and run into their end-stops. I’m pretty sure they move 1 degree too far (or don’t move back enough). This happens using the stock OTTO code. Calibrating didn’t do anything. I tried multiple servos and multiple Arduinos. Has anyone experienced this before?

Try to get better quality servos that is the difference for a perfect calibration