Archive for July, 2009

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…

AreaRover III – Video

July 13, 2009 Leave a comment

Sorry this video took so long to post.  Some time in the past two weeks, my microphone/Windows 7 combination started acting up.  The voice was recorded choppy and awful.  I sounds like two drivers are competing for control of the microphone processing, but I can’t tell for sure.  I guess those are the breaks with release candidate software…

Any way, here is the missing video.

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…

New Pages – My Bookshelf & My Code Library

glossy_3d_blue_i I added a couple of new pages to the blog where I posted a list of my robot books, and my Mindstorms behavior-based framework code (RobotC).  I found that as I posted more articles, the code was getting lost.

I plan to add a change log for the framework, so you can all get the latest versions and know what changes were made (and why…).

I also created sections for behavior code to be posted, but I am not exactly sure if that makes sense because each robot requires certain sensors and structure in order for a given behavior to make any sense. 

I think I will summarize each robot project and post zipped code for each experiment for you to download in this one place.  This way you can see the robot, and view the sample associated code.

WordPress Tags: Code,Library,robot,Mindstorms,behavior,framework,RobotC

Categories: Information Tags: , , ,