Saturday, June 13, 2015

[HEX] Project Intro

Eight months ago, when I published a write-up of my Single Pixel Camera, I wrote that I was going to stop doing projects and blog posts so that I could concentrate on finishing up my PhD in astrophysics. As it turns out, spending 100% of my mental energy on Real Research drives me insane and lowers the quality of my work. Most of what I do might be considered advanced data analysis. While I enjoy finding and learning new algorithms and bits of math, trying them out on research data can often lead to overly-complicated and poorly-understood results. Instead, I've found that having a pet project at home allows me to keep on learning new things without sacrificing the quality of the work I do that matters most.

So here we are, at another project post. This newest project ended up being the biggest one I've done, so I've had to split the write-up into a series of posts. Fortunately, there's no danger of never finishing the series due to lack of time, because both the project and the write-ups were finished weeks ago! This first post will serve as a general overview / table of contents for the rest of the posts.

Project Description
    I built a 6-legged robot with custom electronics and software as a test platform for a variety of concepts including inverse kinematics, heterogeneous processing, LIDAR, and path finding. The robot's name is Myrmidon.



Table of Contents

Post 0: Introduction
    You are here.

Post 1: Heterogeneous Hardware
    I dive into the hardware and software architecture needed to create a general-purpose hexapod platform. Keeping to open source hardware as much as possible, I set up a series of connected processors to handle the various robotics tasks in parallel.

Post 2: Inverse Kinematics
    The hexapod is built and ready to move, but has nothing to do. I step through the process of building a six-legged gait from basic concepts to inverse kinematics.

Post 3: Come on and SLAM
    I use a LIDAR unit from a robot vacuum cleaner to allow the hexapod to 'see' its surroundings. I introduce a method for letting the hexapod know its position and trajectory using information about its surroundings.

Post 4: Navigating like A Star
    The hexapod can walk and avoid obstacles, now it's time to let it decide where to go. I go over setting goals for the hexapod and how it can figure out the best way to achieve these goals.

Post 5: Race Day  (will be posted sometime after June 20)
    With a hexapod capable of fully-autonomous locomotion, I enter into the Sparkfun Autonomous Vehicle Competition.