Octopod First Test

After much soldering and programming I finally have the code base and electronics mostly setup for the Octopod.  As previously stated I’m using two Adafruit 16-channel servo controllers for handling the 24 leg servos.  I’m currently using an Arduino Pro Micro to handle the controlling of the breakouts.  I have a rudimentary Arduino library up on my Github.

I’m basically handling the control as a hierarchical set of libraries.  On the top level I have the Octopod class which will handle very abstract motion such as stepping, turning, rotating, and tilting.  The Octopod class has eight Leg objects.  The Leg class is responsible for, you guessed it, a leg!  It handles things such as forward and inverse kinematics, which is a topic for another post,  and some trajectory generation (e.g. arcs, lines, etc.).  Each leg consists of three Joints.  The Joint class handles the servos’ default positions and offsets and contains a Servo which is just the barebones implementation to control a hobbyist servo using the PCA9685.  I’ve done some basic testing on the Servo and Joint classes and am fairly confident that they work but I’ve been avoiding the Leg class since I don’t yet want to go through the nightmare of debugging my trigonometry.

Instead, I decided to create a walking program just to get a chance to see the robot in action.  However, this didn’t go nearly as well as I’d hoped and the Octopod collapsed in a jittery mess.  In my haste I decided to not include the decoupling capacitors on the Adafruit boards which turned out to be a mistake since I have 24 servos which can each draw several hundred milliamps.  Once added, the operation was a little better, though not by much.  Below is a video of the robot attempting to walk.

From the looks of things, either the capacitors were not enough or my code is incredibly messed up.  In the next couple of days I’m hoping to take a closer look at the problem.

Octopod Mechanics Complete

I’ve finally finished printing all of the mechanics for the Octopod!  Below is a pic of it all assembled.

2014-09-11 22.26.23


So the next step is to assemble the PCA9685 breakouts from Adafruit and test out some walking!  In the mean time I wanted to list a few improvements that I would make to the Mark II chassis.

  • Longer Body – If you look at the legs you can see that there isn’t much space in between them.  This means they don’t have a very large range and therefore won’t be able to take large steps.  I designed the chassis have 15 degrees between each leg, thinking that would be enough for a good range of motion, however I didn’t account for the bulky servos getting in the way.  One way to fix this problem would be to make the chassis longer, allowing for the hip servos to be spaced apart more.  I’ll have to investigate how much space I can add and still fit the body in my printer’s 6x6x6 inch build volume.
  • Add servo horn holes – The servo horns fit fairly snug in their printed holes, but tend to fall out if too much strain is applied.  I applied hot glue to better keep the servo horns in place, but a better solution might be to add holes to the 3D printed parts and bolt them into place.
  • Longer Legs – As previously stated, step size is going to be a key factor in the speed of the robot.  Another way to improve the step size would be to make the legs longer.  I also think longer legs would improve the spider aesthetic.  I’m currently unsure of the load bearing abilities of the 9g servos, so I’d like to experiment with this chassis so I can determine how much longer the legs can get without sacrificing too much torque.
  • Mounting Holes – Depending on what board(s) I end up using in the final product, I’d like to add mounting holes to firmly attach them directly to the body.

3D Printed Spider Robot

Since receiving my 3D Printer, I’ve done a few test prints as well as a few upgrades for the printer itself.  Now that I feel like I’ve tweaked the print settings to a point I’m happy with, I’ve decided to go ahead with a more ambitious 3D printed project.  Enter the Octopod.  I was fascinated by the T8 and wanted to make a cheaper version.  Servo and motion control is also a huge part of the field of robotics that I have little experience with so I thought this would be a good opportunity to gain experience with these skills.  More details on this project are on the Octopod page.