Wednesday, May 15, 2013

RIT Tigerbug


This is the RIT Tigerbug robot!  My partner, Andy Anthony and I designed, built and programmed this robot for our Advanced Robotics project at RIT.  The robot is built extremely solidly with 18 Roboard 1270 servos.  The body and legs are made of bi-weave carbon fiber and structural foam sandwich for added strength and reduced weight.  Currently it is being run by a windows PC communicating via serial cable, but we hope to implement an on-board computer such as the Roboard 100 Single Board Computer so that the robot will be completely wireless.  The robot is controlled by a wireless Xbox 360 controller and does a lot of processing.  Building this robot was a great experience, and I learned a ton about robotics.

CUPID Robot

So, it's been a while since I last posted.  I've been very busy working on my Master's degree.  Luckily, my degree is in robotics, so I have been working diligently on a few projects that I want to share.  During the winter quarter, I built a robot called the "CUPID" Robot.  It is a Nerf gun wielding autonomous robot, like those in Transformers.  It essentially finds the color red, aims at it and then shoots at it.  It uses a CMUCam4 to perform the color tracking, and has 2 little Hitec motors performing tilt/pan duties.  The onboard microcontroller is a Basic ATOM, so it is a little light on the processing.  However, the robot easily finds the color red and manages to hit it pretty accurately.  The toughest part was calibrating the color sensor to always find the color and not take in too much.  CMUCam4 is a cool little device that made it easy to do color tracking with the Basic ATOM.  I would love to use it in other projects with more advanced microcontrollers.  It's also a pretty good stepping stone to more advanced image processing techniques.

Here is a video of the CUPID robot:




Tuesday, September 25, 2012

What I Do at Work

This summer I have been working at a small company called Wells Research doing engineering design work. The company builds testing equipment for the optics industry.  The stuff that I am working on is really cool and I wanted to share a little about my experiences with the world.

Currently, I am working on a project to control a motor.  The motor controls the y position of a linear stage. Normally this setup is used to move a camera back and forth to adjust the focus.  Over the past month, I have been able to successfully model the position of the lens with MatLAB code.  The input of the system is kind of an odd function.  Instead introducing a force, the feedback control is done by inputting a trapezoidal or triangular velocity profile into the system's state space.  The input is essentially a curve that accelerates to a certain speed, holds that speed and then decelerates.  This tells the dynamic system to move a precise distance and then decelerate rapidly. It works quite well.

The biggest problem that I had was determining how the computer sends a signal to the motor.  There are constants that are defined in the program and the motor has a specific code developed by the company that gives it commands.  Determining what number to input in order to get a specific result was rather tricky, but eventually, after a lot of testing, I was able to get a suitable result.

The precise motor position was analyzed with an eddy current sensor.  I thought it was rather cool.  I attached a steel block to the top of the lens mount and then faced the sensor towards the block.  The sensor can read between 0 and 2 mm extremely precisely and the result can be measured with an oscilloscope and then converted to millimeters.  I really enjoyed testing and analyzing this system.  It was a lot of fun!

Sunday, July 1, 2012

We have movement folks...

So I finally got my autonomous robot code working! I would call this an alpha prototype, but it seems to work pretty well running around my kitchen. Take a look at the video below to see the DJ Ginobot in action.

This is an early prototype, but I am very pleased with my progress so far.  Eventually, I would like the robot to be scanning more frequently, so that it does not have to stop as much.  I am also having difficulty with the wheels turning at the same speed due to motor incongruity.  The best solution for this is encoders, which are a bit pricey.  However, for this project, they may not be necessary.

An idea that popped into my head yesterday about how I can take this project to the next level.  I have been reading about using MatLab to do mapping of space.  I could use my robot to perform mapping functions and send them wirelessly to the computer.  I could then use MatLab to interpret that data and make a map for me.  Imagine using this robot in a burning building where the firefighters don't know where to go.  They could send in the robot to map inside of the building for the firefighters outside.   Maybe this will be my next portion of the project.

Wednesday, June 6, 2012

Great Sites for Robot Enthusiasts

So, I wanted to add a list of sites that I find to be interesting, helpful and cool for robot lovers like me.  Here they are:

Tronixstuff - Great site for tutorials and reviews of kits.
Hackaday - Cool, new hacks and projects from around the web
DFRobot - Great for parts and tutorials
Let's Make Robots - Lots of awesome robots and a large forum
Yourduino - THE place to find parts on the cheap
RobotGrrl Blog - This girl makes a lot of robots and is quite good

These are just a few of the millions of sites out there for robotics.  A simple google search for robots will take you a long way.

Tuesday, June 5, 2012

Let's Get Moving...

This is a video of my robot taking infrared commands from an IHome remote that I rummaged from a pile of my junk.  I programmed the little guy in C and the code can be seen below.  I had to calibrate the motors to run at the same speed and they often don't go perfectly together.  If I used encoders, I could calibrate them much better, but that is a project for another day.

Monday, June 4, 2012

Arduino - The Do-Everything Microcontroller

In my wild hunt for robotic excellence, I came across the Arduino platform for robotics.  The Arduino is a microcontroller that is designed to be easy to use, program, wire-up and generally work with.  In search of a microcontroller, I ordered a version of the Arduino from dfrobot.com, called the DFRduino Romeo.  This particular version comes with two motor controllers built onto the board for easy access.  Otherwise, I would have had to build an H-Bridge circuit to control the motors.  Here is a picture of the Romeo in all of its glory:
Along with the Romeo, I ordered a robot platform called the Magician Chassis.  It is a small two wheeled chassis with motors included and an omni-wheel in front.  It is made with hobbyists in mind and is therefore perfect for my application.  Here is a picture of the Magician Chassis:
After everything arrived, I decided to put it all together and wire it up.  I have run some programs on it, but I will talk about those later...  Here is a picture of what my robot looks like now:

Working with Google's Cartographer SLAM Package

At my current position, at Canvas Construction, I have worked with a number of SLAM and localization packages. In the past few years, my wor...