BORIS the Biped for Beginners and Beyond

by Sebastian Coddington in Circuits > Robots

14008 Views, 156 Favorites, 0 Comments

BORIS the Biped for Beginners and Beyond

BORIS the Biped for Beginners and Beyond
Main image black background.jpg
front left and right image.jpg
left angle right angle image.jpg
BORIS CAD PHOTO.jpg
GOPR0452.JPG
main image.jpg

Ever wanted to learn how to program an Arduino but you just can't seem to find the project worth spending the time or money on in order to do so.

Ever wanted to own your own easily programmable,hackable,customizable robot but can't find one that fits your needs or price bracket .

Well oh boy do I have the project for you, for a little over 100$ and an access to a 3D printer you can buy yourself all the parts you need to build this bad boy:

BORIS the Bipedal Orientation and Radar Intelligent System.

So why did BORIS come to be?

As a former design engineering student I remember the days when all we had at University was an arduino with a bunch of wires and sensors pointlessly plugged in and flashing to learn programming. I designed BORIS as an educational Robot whose primary purpose is to teach anyone who has an interest in robotics and programming as a whole how to move a servo or get a light blinking or get a speaker buzzing all in a more interesting and neat little package

Why is BORIS the best?

  • He's fast!!! with a revolutionary new leg design BORIS is one of the fastest biped robots in his size and price category so gone are the days where you have to wait half an hour for your robot to travel a meter and film a robot walking at 10 times the speed to make it look good on video.
  • He's easy to assemble!!! With only the use of a screwdriver you can have your BORIS up and running
  • He's overflowing with add ons!!! This is not just a bipedal walking robot BORIS comes equipped full to the brim with extra features and add ons that all make the most of well documented open source software and off the shelf electronics hardware so as that even the newest of newbies can have a go at learning how to make the robot truly do what he wants it to do.
    1. Ultrasonic sensor for obstacle detection and avoidance
    2. 3 axis magnometer (digital compass) BORIS knows which way is up and what direction he is pointing
    3. OLED Display His mouth can move!!!
    4. Buzzer He can make sounds!!!
  • He's statically stable!!! Do not fear the programming of the walking sequence is dead simple there are no complex algorithms involved to get this Robot moving.
  • He's 100% 3D printable apart from the electronics and screws for the electronics BORIS is fully 3D printable this reduces his price and also makes spare parts easy to replicate with a 3D printer

What can BORIS do?
In this instructable we will:

  • Build a BORIS
  • Get BORIS set up for walking manually with a controller and set up for walking autonomously with obstacle avoidance and a fixed orientation (in other words BORIS will avoid obstacles and continue on a set trajectory)
  • Get BORIS set up for walking autonomously without the need for the controller with obstacle avoidance and a fixed orientation (in other words BORIS will avoid obstacles and continue on a set trajectory)

Is BORIS right for you?

Well I certainly hope so so without any futher ado let's get building!!!

Supplies

For this instructable you will need:

TOOLS:

Small cross head screwdriver

SUPPLIES FOR THE ROBOT:

  • 6x Genuine Tower Pro MG90S analog 180 deg servo (link here)

You can go cheap from china on a lot of things but servos aint one of them! After testing many differenet types especially cheap counterfeit towerpro servos I found out that the cheap counterfeit ones are so unreliable and often break a day after using so I decided that genuine towerpro servos would be the best!

  • 1x Sunfounder Wireless Servo Control Board (link here)

You can't find a better prototyping board than this one for wireless servo control. This board has a bulit in 5V 3A power converter and 12 servo input pins and pins for a wireless nrf24L01 transceiver module and Arduino NANO all in a condensed neat package so don't worry about messy cables all over the place anymore!

All the electronics can also be found on Amazon if you can't afford to wait for delivery but they will be a bit more expensive.

CONTROLLER:

To control this Robot manually you will need the 3D printed Arduino Controller (link here)

The Robot can also be purely autonoumous so the controller is not mandatory.

PLASTICS:

The parts can be printed in PLA or PETG or ABS.

!! Please note a 500g spool is more than enough to print 1 Robot !!

3D PRINTER:

Minimum build platform required: L150mm x W150mm x H100mm

Any 3d printer will do. I personally printed the parts on the Creality Ender 3 which is a low cost 3D printer under 200$ The prints turned out perfectly.

3D Printing the Parts

BODY FRONT.jpg
BODY REAR.jpg
FEET.jpg
FRAMES AND SQUARE PINS.jpg
ANKLES.jpg
BODY BOTTOM.jpg
BODY MIDDLE.jpg
BODY RECTANGLES.jpg
CIRCULAR PINS.jpg
CLIPS.jpg
HIPS.jpg
LEG 1.jpg
LEG 2.jpg
PISTON AND PISTON HOLDER.jpg
PISTON CASES.jpg

So now it's time for Printing...Yeay

I Meticulously designed all of BORIS's parts to be 3D printed without any support materials or rafts required while printing.

All the parts are available to download on Pinshape (link here) and MyMiniFactory (link here)

All the parts have been test printed on the Creality Ender 3

Material: PETG

Layer Height: 0.3mm

Infill: 15%

Nozzle diameter: 0.4mm

The parts list for BORIS is as follows:

  • 1x BODY BOTTOM
  • 1x BODY MIDDLE
  • 1x BODY FRONT
  • 1x BODY REAR
  • 2x BODY RECTANGLES
  • 4x BODY SQUARE PINS
  • 1x ELECTRONICS FRAME
  • 1x ELECTRONICS PIN
  • 1x OLED FRAME
  • 2x FEET
  • 2x ANKLES
  • 2x LEG 1
  • 2x LEG 2
  • 2x PISTON CASES
  • 2x PISTON CASES (Mirror)
  • 4x PISTON HOLDERS
  • 4x PISTONS
  • 2x HIPS
  • 8x CIRCULAR PIN L1
  • 2x CIRCULAR PIN L2
  • 2x CIRCULAR PIN L3
  • 10x CIRCULAR PIN L4
  • 16x SQUARE CLIP
  • 22x CIRCULAR CLIP

Each part can either be printed as a group or individually.

For Group printing all you have to do is print one of every single GROUP.stl file apart from the Group LEG 1.stl, file and the GROUP CIRCULAR PIN.stl files of which you have to choose one of them and you will have the entire set of parts required.

Follow the following Steps for printing all the STL files.

  1. Start by printing the LEG 1.stl files individually as these are the hardest to print they require a brim of around 5mm and one layer height around the part to avoid warping if for some reason the brim does not prevent warping print the LEG 1 WITH BRIM.stl file.
  2. Print the INDIVIDUAL CIRCULAR PIN .5mm L1, INDIVIDUAL CIRCULAR PIN .75mm L1 and INDIVIDUAL CIRCULAR PIN 1mm L1 once printed test the pins in the holes of the LEG 1.stl that you previously printed and select the one that fits the tightest without being to tight to not be able to push through the hole If possible use the .5mm one as the tighter the fit the faster the Robot will walk.
  3. Proceed to printing the rest of the GROUP.STL files

And there we have it about 2 days of printing later you should have all of BORIS's Plastic parts.

Step 2 complete!!!

Installing Arduino

arduino ide page.jpg

BORIS uses C++ programming in order to function. In order to upload programs to BORIS we will be using Arduino IDE along with a few other libraries that need to be installed in the Arduino IDE.

  1. Install Arduino IDE on to your computer

In order to install the libraries in to Arduino IDE you must do the following with all the libraries in the links below

  1. Click on the links below (this will take you to the libraries GitHub page)
  2. Click Clone or Download
  3. Click download ZIP (the download should start in your web browser)
  4. Open the downloaded library folder
  5. Unzip the downloaded library folder
  6. Copy the unzipped library folder
  7. Paste the unzipped library folder in to the Arduino library folder (C:\Documents\Arduino\libraries)

Libraries:

And there we have it you should be all ready to go In order to make sure you have correctly set up Arduino IDE follow the following steps

  1. Download the desired Arduino Code below (Robot Controller & Autonomous.ino or Robot Autonomous.ino)
  2. Open it in Arduino IDE
  3. Select Tools:
  4. Select Board:
  5. Select Arduino Nano
  6. Select Tools:
  7. Select Processor:
  8. Select ATmega328p (old bootloader)
  9. Click the Verify button (Tick button) in the left upper corner of Arduino IDE

If all goes well you should get a message at the bottom that says Done compiling.

And thats it you have now completed Step 1 !!!

Programing BORIS

Now it's time to upload the code to BORIS's brain the Arduino Nano.

  1. Plug the Arduino Nano in to your computer via USB cable
  2. Click the upload button (Right arrow button)
  3. If all goes well you should get a message at the bottom that says Done Uploading.

And that's it for Step 3.

Calibrating BORIS's Servos

Calibrating BORIS's servos

So now it's time to Calibrate and start assembling the servos to parts of BORIS...

All the following Steps are depicted in the Assembley Video above.

Electronic Parts needed:

  • 1x Arduino Nano
  • 1x NRF24LO1 transceiver (only if using BORIS with controller)
  • 1x Sunfounder Wireless Servo Control Board
  • 6x Genuine TowerPro MG90S 180 deg servos
  • 1x Battery Holder
  • 2x 18650 3.7V Li ion Batteries

Plastic Parts needed:

  • 4x Pistons
  • 4x Piston Holders
  • 2x Piston Cases
  • 2x Piston Cases (Mirror)
  • 2x Hips
  • 1x Body Bottom
  • 1x Body Middle
  • 4x Body Square Pins
  • 4x Square Clips

Screws and Servo Horns needed:

  • 12x long self tapering screws
  • 6x short screws for Servo Horns
  • 4x single arm Servo Horns
  • 2x dual arm Servo Horns

Assembling the Pistons Instructions:

  1. Place all 4 Pistons into the 4 Piston Holders
  2. Slide the 4 Piston Cases over the Piston Holders as shown in the Assembley Video above
  3. Position the 4 Pistons so as that the Pistons holes and the Piston Cases Holes are aligned
  4. Insert the 4 Servos through the 4 Piston Cases holes
  5. Fix the 4 Servos in place with 2 long self tapering screws per servo to the 4 Piston Cases (do not over tighten)

Assembling the Hips and Body Instructions:

  1. Insert the 2 Servos in to the Body Middle part (Make sure to place them the right way around cables facing outwards)
  2. Fix the 2 Servos in place with 2 long self tapering screws per Servo to the Body Middle part
  3. Insert the 2 Hips in to the Body Bottom Part
  4. Align the Body Bottom part with the Body Middle part
  5. Secure the Body Bottom part to the Body Middle part with 4 Body Square pins (as shown in the Assembley Video)
  6. Secure the Body Square pins with 4 square Clips

Electronic Instructions:

  1. Plug the Arduino and NRF24L01 transceiver (optional) into the Servo Cotrol Board
  2. Connect the Battery Holder wires (Red to Positive Black to Negative) to the Servo Control Board (Make sure the connections are the right way around)
  3. Connect the Servos to conections 4,5,6,7,8 and 9 in any order you want (Make sure to get the connections the right way around)
  4. Insert the Batteries
  5. Push the Servo Control Board Button to the pressed position
  6. Switch the battery Holder switch to the ON position
  7. The Board should light up and the Servos should move to their 90 degree home position

Assembling the Servo horns Instructions:

  1. Once the Servos have reached their 90 degree home position insert the Single arm Servo Horns in to the Pistons at a 90 degree angle (+- a few degrees of offset is not the end of the world) to all the Piston Cases as shown in the Assembley Video above.
  2. Insert the Dual arm Servo Horns in to the Hips so as that both servo arms are in line with each other. As shown in the Assembley Video above
  3. Secure all the Servo Horns to the Servos with 1 short screw per Servo
  4. Switch the battery Holder switch to the OFF position
  5. Disconnect the Servos from connections 4,5,6,7,8 and 9

And there we have it al the Servos are calibrated and the rest of the Robot is ready to be assembled.

Assembling BORIS's Legs

Assembling BORIS's Legs

All the following Steps are depicted in the Assembley Video above.

Plastic Parts needed for Left Leg:

  • 1x Left Foot
  • 1x Ankle
  • 1x Leg 1
  • 1x Leg 2
  • 2x Assembled Pistons
  • 4x Circular pins L1
  • 1x Circular pins L2
  • 1x Circular pins L3
  • 3x Circular pins L4
  • 9x Circular Clips

Left Leg Assembley Instructions:

  1. Slide the 4 Circular pins L1 through the Ankle holes (As shown on the Assembley video)
  2. Position one of the Assembled Pistons into the slot of the Left Foot select the Assembled Piston that makes the Servo cables face backwards (As shown on the Assembley video)
  3. Position the Ankle on the slot of the Left Foot and the slot of the Assembled Piston
  4. Slide 1 Circular pin L2 through the Ankle and Foot joint
  5. Slide 1 Circular pin L3 through the Ankle and Assembled Piston joint
  6. Slide 1 Circular pin L4 through the Foot and Assembled Piston joint
  7. Position the Leg 1 in place on the Ankle and Circular pins L1
  8. Position the Leg 2 in place on the Ankle and Circular pins L1
  9. Position one of the Assembled Pistons in between Leg 1 and Leg 2 select the one that makes the servo cable face outwards (As shown in the assembley video)
  10. Slide 1 Circular pin L4 through Leg 1 and the Assembled Piston
  11. Slide 1 Circular pin L4 through Leg 2 and the Assembled Piston
  12. Secure all the Circular pins with Circular clips

Plastic Parts needed for Right Leg:

  • 1x Right Foot
  • 1x Ankle
  • 1x Leg 1
  • 1x Leg 2
  • 2x Assembled Pistons (Mirror)
  • 4x Circular pins L1
  • 1x Circular pins L2
  • 1x Circular pins L3
  • 3x Circular pins L4
  • 9x Circular Clips

Right Leg Assembley Instructions:

Proceed the same as the Left Leg Assembley Instructions


Assembling BORIS's Body

Assembling BORIS's Body

All the following Steps are depicted in the Assembley Video above.

Electronic Parts needed:

  • OLED Display
  • Buzzer
  • Magnometer (digital compass)
  • Mini Breadboard
  • Assembled Battery Holder and Servo Control Board

Screws needed:

  • 9x Long self tapering screws

Plastic Parts needed:

  • 4x Circular pin L4
  • 1x Electronics Frame
  • 1x OLED Frame
  • 2x Body Rectangles
  • 1x Electronics Square pin
  • 6x Square Clips
  • 4x Circular Clips
  • 1x Assembled Body
  • 2x Assembled Legs

Body Assembley Instructions:

  1. Position the Assembled Left Leg on to the Hips of the Assembled Body (Make sure to put them on the right way around)
  2. Secure in place with 2 Circular pins L4 and 2 Circular Clips
  3. Repeat steps 1 and 2 for the Right Leg
  4. Screw the Buzzer in place on the Body. As shown on the Assembley Video above
  5. Pass the Servo cables through the holes of the Hips in to the Body and pass them in between the 2 Hip servos. As shown on the Assembley Video above
  6. Insert The Electronics Frame in to position on the Body (Make sure to Assemble it the right way around)
  7. Secure in place with the Electronics Square pin and 2 Square Clips
  8. Position the Mini Breadboard in place on the Electronics Frame
  9. Remove the Batteries from the Battery Holder
  10. Screw the Battery Holder to the backside of the Electronics Frame with 2 screws diagonally As shown on the Assembley Video above (make sure to screw it the right way around)
  11. Screw the Servo Control Board to the Electronics Frame with 2 screws diagonally
  12. Screw the Magnometer (digital compass) to the Electronics Frame with 2 screws
  13. Screw the OLED Display to the OLED Frame with 2 screws diagonally
  14. Slot the Body Rectangles on either side of the Body
  15. Secure them in place with 4 Square Clips

Wiring the Electronics

Board Connections.jpg

Now it's time to get playing with the Spaghetti!!!

  1. Connect all 6 servos to the Main Board connections 4,5,6,7,8 and 9 as shown in the picture above (make sure to connect them the right way around)
  2. Connect 3 female to female jumper cables to the Vcc, Ground and Signal pins on connection number 10
  3. Connect the other end of the 3 female to female jumper cables to the Vcc, Ground and I/O pins on the Buzzer module (make sure to connect them the right way around)
  4. Connect 2 female to female jumper cables to the Vcc and Ground pins on connection number 3
  5. Connect the other end of the 2 female to female jumper cables to the Vcc and Ground pins on the Ultrasonic Sensor(make sure to connect them the right way around)
  6. Connect 2 female to female jumper cables to the Signal pins on connections 2 (Echo) and 3 (Trig)
  7. Connect the other end of the 2 female to female jumper cables to the Echo and Trig pins on the Ultrasonic Sensor (make sure to connect them the right way around)
  8. Connect 2 female to female jumper cables to the Vcc and Ground pins on connection number 11
  9. Connect the other end of the 2 female to female jumper cables to the Vcc and Ground pins on the OLED Diplay (make sure to connect them the right way around)
  10. Connect 2 female to female jumper cables to the Vcc and Ground pins on connection number 12
  11. Connect the other end of the 2 female to female jumper cables to the Vcc and Ground pins on the Magnometer (digital compass)(make sure to connect them the right way around)
  12. Connect 2 female to male jumper cables to the Signal pins on connections 11 (SDA) and 12 (SCL)
  13. Connect the other end of the 2 female to male jumper cables to 2 different rails of the Mini Breadboard
  14. Connect 2 female to male jumper cables from the SCL rail on the Mini Breadboard to the SCL pins on the OLED Display and the Magnometer(digital compass)
  15. Connect 2 female to male jumper cables from the SDA rail on the Mini Breadboard to the SDA pins on the OLED Display and the Magnometer(digital compass)

Finishing Assembling BORIS's Body

Finishing Assembling BORIS's Body

All the following Steps are depicted in the Assembley Video above.

Plastic Parts needed:

  • 1x Front Body
  • 1x Rear Body
  • 6x Square Clips
  • Assembled BORIS

Body Assembley Instructions:

  1. Slot the OLED Frame in to the Body
  2. Secure with 2 Square Clips
  3. Slot the Ultrasonic Sensor in to the Front Body
  4. Slot the Front Body over the Front side of the Body Rectangles
  5. Secure with 2 Square Clips
  6. Place the Batteries and Battery Holder cover on the Battery Holder
  7. Slot the Rear Body over the Rear side of the Body Rectangles
  8. Secure in place with 2 Square Clips

How to Use BORIS

So there we have it we have finaly finished assembling BORIS now it's time to play

Here are a few User Instructions:

  • BORIS without Controller:
  1. Switch BORIS on
  2. Spin him around to calibrate the magnometer (digital compass) you have 10 seconds to do so
  3. Position him in the direction you would like for him to go forward
  4. Watch him go and avoid any obstacles that are in his path
  • BORIS with Controller:
  1. Switch BORIS on
  2. Switch the Controller on
  3. Spin him around to calibrate the magnometer (digital compass) you have 10 seconds to do so
  4. Use the Joystick to steer
  5. Press the up and down buttons for Dance moves
  6. Press the left and right Buttons for Left kick and Right kick
  7. Press the Joystick Button for 2 seconds to activate autonomous mode
  8. Press the Joystick Button untill the Robot stops moving to deactivate autonomous mode

Understanding BORIS's Code the Basics:

So now you've got BORIS up and running lets say you want to change the way he behaves.

Let me help you out a little bit on understanding the way Boris is Programmed:

  • Changing the way BORIS is programmed when walking Autonomously:

Here is the list of preprogrammed commands that BORIS can do:

Frown();

Smile();

HappySound();

SadSound();

RobotForward();

RobotBackward();

RobotLeft();

RobotRight();

RobotLeftKick();

RobotRightKick();

RobotDance1();

RobotDance2();

This is the part of the code you will want to modify:

//If Sensor detect wall      

      if (distance > 2 && distance < 20 && buttonJoystickPushCounter == 1)
      {
          Frown();
          SadSound();
          RobotBackward();
          RobotBackward();
          RobotLeft();
          RobotLeft();
          RobotLeft();
          RobotForward();
          RobotForward();
          RobotForward();
      }    

//If Sensor detect no wall and the Orientation = Desired orientation +- 30 degrees 
      if (distance >= 20 && buttonJoystickPushCounter == 1 && OrientationError <= 30 && OrientationError >= - 30)
      {
          Smile();
          HappySound(); 
          RobotForward();
          RobotForward();  
      }     

//If Sensor detect no wall and Orientation > Desired orientation +- 30 degrees
      if (distance >= 20 && buttonJoystickPushCounter == 1 && OrientationError < 0)
      {
          Smile();
          RobotLeft();
      }      

//If Sensor detect no wall and Orientation < Desired orientation +- 30 degrees
      if (distance >= 20 && buttonJoystickPushCounter == 1 && OrientationError > 0)
      {
          Smile();
          RobotRight();
      }

BORIS to the Future and Beyond

Well now that we've finished building BORIS lets talk about BORIS's future.

The truth is, I don't really know what to do with BORIS now it all depends on the feedback I get from you right here on this Instructable.

So I hope you enjoyed this Instructable and Please let me know what you think.