Category Archives: Felix

Step by step assembly guide

This is a short step by step assembly guide for those of you who have downloaded (https://pinshape.com/items/27304-3d-printed-quadruped-robot) and printed Felix the quadruped robot.

You will need the following parts:

parts

First, press-fit the four hip elements into the two body parts:

step_1

Next, join the two body subassemblies using the belt piece:

step_2

Now take the servos and press them into the thighs. If they are too loose, shim them up with some tape.

step_3

Connect the thigh subassembly to the hip using the servo horn, add the horn screw but don’t tighten it just yet. Repeat for the four legs.

step_4

Attach all the shin in the same way:

step_5

Your robot should now look like this:

step_6

The next post will guide you through connecting the electronics and the initial calibration of the servos.

 

Printing Robots

To get to know my 3D printer I decided to embark on a redesign of Felix, a small quadruped robot.

I settle on the following set of constrains for this project:

  • It should be a bolt/screw free assembly
  • The actuators should be housed on the body, not on the legs
  • It should be possible to print it on an entry level printer with a relative small printing area – like mine =)

Screen Shot 2016-03-09 at 17.40.36
My first iteration was based on a previous parallelogram design.

But I wanted the robot to be able to crouch and lay down, and this kind of lever system restrict the range of possible movements. Besides early versions have pinched my fingers more than once, so I wanted to try some sort of enclosed mechanical transmission.

 

Screen Shot 2016-03-09 at 17.28.31

I start experimenting with other means of transmission. First, an elastic tension belt. But the belt slipped under weight. Increasing the tension on the belt provided more traction but gave the servos a hard time controlling the leg.

Next, I try a timing belt printed with Ninja Semiflex. It kind of worked but not reliably enough. Though playing with Semiflex was a great learning experience. Changing the timing belt with a peg/hole belt system didn’t help much either.

Screen Shot 2016-03-09 at 17.35.56Screen Shot 2016-03-09 at 17.36.44

 

Then I tried gears. I found a public OnShape project with a parametrised and well documented Gear generator by Brett Sutton (https://cad.onshape.com/documents/b768ab9bbb5c47e881285b7e/w/abab17d3a48c4dc989fd19d6/e/363c6baca1cb4ab8848b2c54).  To avoid complicating the gait controller I kept all ratios equal. I use tree gears to control the shin and two gears to manage the femur.

IMG_0516

To hold the leg on to the chassis I manage to print a usable threaded collar.
To make the collar I followed one of the tutorials from the OnShape learning guide:  https://www.onshape.com/cad-blog/tech-tip-creating-a-thread.

IMG_0542Screen Shot 2016-03-13 at 22.07.54

IMG_0549

Complete hind legs assembly with servo casing

 

When the femur servo moves the shin angle changes accordingly. The software controlling the leg has to take that into account and manage the position of the shin by adding a delta calculated from the existing femur angle.

Having the possibility to print and test parts allows me to try subsets of a given design or a mechanical concept. I can go through several iterations at a quick pace and learn about tolerances of the material, and how part orientation affects structural integrity and print quality.

IMG_0538

Multiple design iterations side by side

IMG_0541

Prototyping the transmission for the shin through the femur

 

Heads-up

Sus Hinton (@noopkat) released a couple of months ago a library to control OLED screens from Johnny-five:  https://www.npmjs.com/package/oled-js, so I ordered a SSD1305 from Adafruit.

I will like to add a screen to Felix to eventually give some status feedback, but mostly to display/animate eyes. Sort of the way Baxter from Rethink Robotics does it.robot05-1347552663347

To mount the screen I designed two head pieces and cut them with on the laser-cutter.

Face3

The head is controlled by two HXT900 servos. One servo rotate the head from left to right and the other to tilts the head. The rotation is to allow the two SHARP 2Y0A21 proximity sensors to scan the room. The tilt is just cute.

Besides the screen and sensors I also added a small piezo speaker.

I’m happy with the result, now time to do the wiring.

FaceA

FaceB

Working on a tutorial

Mini Felix is a noisy and jittery fellow. Walking is ok, but doing animations with it is quite annoying. Instead I decided to assemble a new chassis using the latest design and use it to test the animation tool. At the same time I wanted to document the assembly so I can write a step-by-step tutorial.  Putting it all together took about 4 hours and there are a couple of things I can do to improve the design to ease this process. Today I did the soldering and connected the servos and was able to start playing with the animation editor. More on that later.

knolling

Say hello to my little friend

This week I got a bunch of 9G servos and some PMW motor shields from my local Adafruit pusher m.nu. I want to use them in a smaller (more affordable) version of Felix.

The redesigned chassis is just a scaled down version of the current geometry, but I have to work on the casing for the electronics. There is not much space available for a Uno, a shield and a battery pack. If I lay the electronics down flat, Felix looses it’s slender figure and looks more like a turtle. Currently I’m working on a vertical arrangement, which gives him a unflattering hump, but he seems to prefer that.

Before I settle/refine the design, I have to test how it affects Felix balance during the gait.

felicito2

CAD, templates and a couple of glamour shots

I’ve been working today on the design for Felix,  trying to tidy up the space for the electronics. The new body template is designed to fit an Arduino Uno board and an Adafruit 16×12 servo shield.
I’m trying to get up to speed with Autodesk Fusion 360. It’s great software, but to do this sort of stuff I keep coming back to OpenSCAD.

In order to get some “Fusion time”, I exported the template from OpenSCAD to STL format and uploaded it to Fusion 360. I also downloaded 3D models of an Arduino and a HiTech Servo from GrabCAD.com. Then I spend some time playing with the render:

FelixGlamourShotWhiteFelixGlamourShotTransp

You can grab the OpenSCAD files from the repo:
https://github.com/Traverso/JSFelix/tree/master/Hardware/CAD

and the DXF and SVG templates as well:
https://github.com/Traverso/JSFelix/tree/master/Hardware

I still need to add a license file to the repo, but it’s a regular MIT license.

And speaking of CAD, I recently wrote a post for Makezine: http://makezine.com/2015/04/20/understand-1700-mechanical-linkages-helpful-animations/. It’s a short highlight of Mr. Đức thắng Nguyễn’s YouTube Channel. The channel is an amazing collection of complex animated mechanism he has documented with Autodesk Inventor over the last 10 years.

Dashboard and GitHub Repo

Felix is a NodeBot (http://nodebots.io). A NodeBot is a JavaScript powered robot. One of the benefits of using JavaScript and Node, is that it makes it trivial to create a  web based dashboard for your project. My dashboard has a simple joystick that controls Felix using Socket.io.

You can see a clip of Felix and the dashboard here:

The code is now on GitHub: https://github.com/Traverso/JSFelix
I will add the template files for the design to the repository as well.