Octopod

Description

An eight-legged robot mimicking the anatomy of a spider with 3DOF legs using 24 servos total.

Inspiration

I’ve always had a fascination with biomimicry and with hexapods becoming more popular, I thought this would be a good project to combine the two.  I also noticed that despite there being thousands of hexapods on Youtube, there were far fewer octopods.  I also thought the T8 was awesome and thought it would be fun to make one that didn’t cost the same as a cheap car.

Design Goals

Primary Goals

  • 8 legs
  • 3D printed body
  • Arduino library
  • 4/4 natural gait and turning

Secondary Goals

  • Control over USB/Bluetooth
  • PC Software for “Puppeteering”
  • Store and Playback motion macros
  • Distance sensor for collision detection

Tertiary Goals

  • Inverse Kinematics libraries
  • Camera for computer vision

Resources

3D Printed Design Files

PCB Board

Mechanical Design

The mechanics for the Octopod are primarily 3D printed and the design and object files are hosted on Thingiverse.  I had very little to do with the design, as the Thing was a derivative of a quadruped robot.  However, I did end up taking a crash course in OpenSCAD so I could make the following improvements:

  • Tweaked the servo arm to fit more snugly.
  • Modified the coxa (shoulder) so the screw holes lined up correctly.
  • Replaced hip file with an entire body consisting of 9 servos.
    • Each servo along the body is rotated 15 degrees from the previous (e.g. the front servo is rotated to 45 degrees and the back servo is rotated to -45 degrees).  This, in my opinion, makes it easier to center the axes as you can command each servo to 90 degrees (the center of the 180 degree range) and line up the servo horn so it is pointing directly outwards.
    • There is a 9th place for a servo on the back in the event I decide to add an abdomen to the spider.
  • Added notches to parts that held the servo for the servo cable.  I ended up with a lot of stripped servo wires when I tried to force them in.

// servos being used

Electrical Design

While I’d eventually like to create my own 32 axis Arduino/Servo controller, I’m starting off by using two of Adafruit’s 16 channel servo controllers.  These are basically breakout boards for the PCA9685 which is a 16 channel PWM controller that is controlled over I2C.

Firmware Design

// Want to create and arduino library for using commanding legs

// Maybe create an inverse kinematics library for Arduino

Software Design

// Create a python interface to visualize octopod motion, create macros, and command motion

Progress

3 thoughts on “Octopod

Leave a comment