Archive for the ‘CollectorBot’ Category

Puckbot – Collector Robot Post-Mortem

July 26, 2009 Leave a comment

Building and programming the Puckbot was a fascinating project.  I have attempted to build similar robots a few times over the past couple of years,  but I never really devoted the time toward creating a stable, reliable behavior-based framework first.  Earlier frameworks utilized different techniques that were weak in execution, difficult to debug, and unpredictable.  With my latest venture using RobotC, I spent some real time working on the framework.  The framework was the least of my worries on this robot.  It functioned as designed and is easy to add behaviors to, easy (easier) to debug, and certainly robust enough to create viable autonomous robots.

Implementing the collector robot with Lego Mindstorms NXT and my RobotC behavior-based framework was completely rewarding.  I still have to laugh a little when I watching the robot move around the arena, collecting pucks and delivering the successfully to the light.  Of course, I thought out the sensors and behaviors, of course there is a ton of information and study on the collector in my books, but to see it actually do the job for real was special.  I have to admit, I was a little unsure if I could pull it off.  There are a lot of behaviors working in concert, all with their own set of parameters to fiddle with, and so many things that could have gone wrong; They had in the past…

Wow!  Watching the robot in figure out what to do, and doing it by its self, is what it is all about. 

Read more…


Puckbot I – Collector Robot Success!

July 18, 2009 1 comment

The collector is a more complex robot building on concepts learns from AreaBot.  The robot covers are much area of a closed arena as possible collecting Mindstorms NXT foam pucks, and delivering them to a central home base (light source).  The following represents the sensors, drivers, and behavior hierarchy to accomplish the task.


See all of the collector robot articles here.
Download the Code: Download:
See the video here.

Read more…

Escape Sequence – A generic approach to getting away

July 14, 2009 Leave a comment

BumpEscapeStateDiaThe escape behavior is one of the more important behaviors implemented in my robots.  Any time the robot bumps into a wall, there is an opportunity to escape.  In response to a trigger (collision), the robot backs up, spins away, and nudges forward to execute the “escape sequence”.  I have detailed this sequence in articles about creating the AreaBot robot.

The reason I am blogging about it again, is that I believe the escape sequence is a generic action.

Download Sample Code:

What do I mean?

Read more…

Bumpers and Light – Combining Sensors into One Port

July 14, 2009 Leave a comment

TFR_20090713_0694_thumb.jpgSome of you may have noticed that my Collector Robot has more than two light sensors hanging off the sides…  There is an archaic bumper (design from the original Mindstorms 1.0 kit) and a legacy light sensor buried in the bumper.  There is also a couple of white arched technic pieces under the bumper.

I thought I would go into more detail on this design because the implementation was interesting.  This robot is designed to find and move Lego NXT pucks around.  It does not specifically search for pucks, but happens upon them because it is able to cover all areas of the arena.

Download the driver here: BumpLightCombo.h

Read more…

Differential Light Sensor – Two NXT Light Sensors as One

July 13, 2009 Leave a comment

 Collector Robot One of the goals of the Collector Robot is to push pucks to a light source “Home Base” and leave them there.  In order to accomplish this, the robot must be able to home in on a light source.  In order to home, the robot needs to have some method for finding the light, and adjusting its course to drive toward it.

I created a virtual differential light sensor using two NXT light sensors mounted on the robot facing forward, angled to the left and right.  This gives me a good starting point to read values from each sensor to determine the difference in intensity and therefore determining the STEERING value to drive the robot toward the light.

Download the driver: DiffLight-driver.h
Download this too: mathext.h

Read more…

Homing Behavior – Home in on a Light Source

CollectorLight My next robot is taking some time to build, code and  debug, so I thought I would create some quick posts about some of the behaviors I am implementing along the way.  Homing in on a target is a very useful behavior that can be broadly applied to many types of situations.

  • Finding a beacon
  • Finding a light source
  • Following a line

Finding Objects – A new robot idea for an autonomous robot

July 5, 2009 1 comment

glossy_3d_blue_orbs2_108 I started this blog about a month ago to share ideas and robot programs using behavior-based techniques.  I went back to one of my favorite books, “Robot Programming – A Practical Guide to Behavior-Based Robotics” by Joseph L. Jones to renew my ideas.

Read more…