Team Hassenplug's Green Monster

This robot was designed to be able to compete in a RoboMagellan competition.  I hope to document the design, and the tools I used to create it.  The history log (below) starts with the most recent entries.  So, if you want to read from the beginning, start at the bottom.

Basic Green Monster information
Robot Name: Green Monster Approx. Cost
Goal: Compete in RoboMagellan competitions
Parts: Robot is constructed using LEGO MINDSTORMS parts
Controller: one LEGO MINDSTORMS NXT $250
Motors: three standard NXT motors inc
Wheels: Exo-force Mobile Devastator (set #8108) $5 ea
Sensors: LEGO Ultrasonicinc
HiTechnic Compass sensor $60
QStar 818 eXtreme Bluetooth GPS (up to 5hz)$60

Camera - The camera came from Mindsensors, but I wouldn't recommend it due to the poor functionality, and lack of technical support from the company.  It took around 10 months (and two replacement cameras) before it worked almost like I wanted.


First pbLua, then RobotC

Power Source:

6 AA batteries


4-wheel drive; The two back wheels are on a single long axle, and are driven by one motor


Two front wheels use Differential-Drive (like a tank)

Total Cost:


May 12, 2009

Mapping a path with Google Earth

Rick Brooks showed me some cool stuff that can be done with .kml files.  They are a form of xml files that are used by Google Earth.

I didn't want to post the coordinates of MY house, so I went to my in-laws, and recorded some data to post on the web.

Here are two kml files.  They can be loaded into Google Earth, or Google Maps.  (cooler in Google Earth)

kml1 - view file in google maps
kml2 - view file in google maps
kmlSimple - view simple file in google maps

August 3, 2008

Group of outdoor robots

(left to right) Voyager, Tom/Chad, Try-Crawler, Green Monster

I got together with some other members of the Robotics Posse and we drove our outdoor robots around a large "square" I mowed in my yard. (I didn't measure it, but it looks square)

John's Voyager was the first to complete the lap (navigating using GPS) followed closly by my Green Monster (using GPS) and my Try-Crawler (using dead reckoning).  Tom/Chad's robot used timing to attempt the course, but didn't complete the lap.

Try-Crawler Prototype 

I built this robot to test out a navigation scheme.  This is a very early version, so the finished robot may look much different.  But it shows that the steering system should work very well.


June 7, 2008

Chibots RoboMagellan 

The Green Monster won Chibots first RoboMagellan competition  by completing the 500 foot course and touching the cone in under 7 minutes.

This video clip shows GM exercising many of its abilities.


May 25, 2008

Obstacle Test

I've made many software changes, and a couple hardware changes to GM.  This video shows it driving around our yard, avoiding a couple pallets of landscaping blocks (the same thing I was doing this day).

The US sensor works very well, but the camera does not.

March 12, 2008

Spring Test

The weather was finally nice enough to go outside and test.  This is a video of the robot driving around my yard, driving to 6 points, before it wanders away.  The video is about 5.5 minutes.

I've rewritten much of the code, to change how it actually navigates.  Now, instead of doing all the calculations on GPS points, the GPS points are converted to cartesian coordinates, and all calculations are done on those points. 

That should make it easier to incorporate distance calculations from the wheels.

September 22, 2007

Actual competition

I took the Green Monster to Robothon in Seattle.  It actually did much like I expected.

Here's a map of the course, with a couple waypoints, and other things marked on it.

View Larger Map

In the first clip, the robot does fine for about the first 50 seconds.  Then, it got stuck in a loop, because of some untested code I threw in at the last minute.  The code was designed to detect when it was stuck.  But, I actually forgot to reset the values, and they rolled over, causing it to think it actually went backwards.

Don't bother watching the while 2 minutes.  It never gets unstuck

I like this clip, because you can see how many people are following us.

In the second run, it did a little better, until it ran into the wall around the fountain.

It actually got stuck on the tree stump, but it freed itself after a few seconds.

Even if it had been able to detect the motors being stalled, that wouldn't have worked, because the course was very slick, so the rear wheels would not stall...

September 15, 2007

Automatic Connection

Thanks to RobotC, the robot is able to create the bluetooth connection to the GPS from within the program.

This clip shows me turning on the NXT, downloading the program, running the program, and watching the BT get connected.

RobotC has the ability to show the NXT display on the PC screen, which makes debugging even easier...

September 14, 2007

It works!

I cleaned up the code a bit and found a boundary-condition bug, which prevented it from stopping.

In this clip, you can see it actually stops when it gets close to the final checkpoint.  Of course, at the same time, it runs into the awning.

The robot starts at point A, drives to point B, then C, before returning to point A.

It still has a long way to go before it's finished, but this pretty much shows that it can work.

This is a second trial run.  Same course.

Ok, so there are many problems that still need to be resolved.  Right now, (today) it doesn't have the ultrasonic sensors, which detect obstacles.  (like tires)

I think one problem that it's running into is that the robot moves faster than the GPS updates.  So, once it finds out where the target GPS waypoint is, the robot is in a new location.  That's why it's overshooting it's target.  I may need to adjust it so when it gets within a specific range, the robot will pause for a few seconds, then continue.

Next week, I plan to take it to Robothon in Seattle.  I think it's working well enough to make a respectable showing.

September 13, 2007

A couple days ago, I got a version of RobotC that can read data coming in from Bluetooth.  This has been a problem for most software, because the NXT requires data to be in a very specific format, and the GPS has it's own output format.
It just took me a short time to convert the code from Lua, but now I have working code in RobotC.  Last night, I was able to take the robot out in the yard and let it drive around.  I discovered a couple things.  There were a few bugs in the code I still have to work out, and there are parts of my yard that I need to mow.
I made a couple quick changes (my array was going beyond the bounds, and crashing the program) and there are other things that are yet to be resolved (like when the robot gets to the end of the pre-programmed course, it should stop)
I don't know if you can see much in this video.  It was shot at about 11:00 pm.  I had to run out and test it, because it was working...  :)
I still have a couple things on my to-do list:
Function to determine if robot has stalled
Function to calculate distance traveled over ground
Ability to store GPS points in a file, for later play-back.

September 05, 2007

I did some more "yard" testing.  I think the hardware is fine.

With the pbLua software, I can:
Read the GPS via BT
Parse and reformat the data into a Lat & Long float.
Convert the current Lat/Long and target Lat/Long into a distance & direction (direction formula not complete)
Read the Compass & compare direction
Determine when a waypoint has been reached & start looking for next point

Target direction calculation
Function to move robot in given direction (just untested)
Function to determine if robot has stalled
Function to calculate distance traveled over ground

I also want the ability to store GPS points (read GPS & store Lat/Lon) to read them out later (to a PC).  This way, I could "mark" GPS points, and have the robot follow them at a later time.

August 31st, 2007

I have some videos from testing the robot. These were done by simply controlling the robot with a remote (another NXT)

August 28th, 2007

I did some testing in my yard.  The GPS readings appear to be pretty stable, and accurate.  Right now, it will display on the NXT, the distance and direction the robot must travel to arrive at the target coordinate.  Now, I just have to put it into the robot, and make it move...

August 24th, 2007

I've been working hard on the software for the Green Monster this last week.  I've ran into a few problems.  First, the final step in the equations I was using required me to multiply a very small number by 20,000,000 (20m) and the resulting value would be in the range of a few hundred.  However, I realized the precision for pbLua only goes to 6 decimal places, so that set of equations wouldn't work.

Next, I found other Great Circle equations, but again ran into problems with precision.  My current plan is to convert the coordinates into a flat plane, and run calculations based on that.  Over large distances, the calculations will not be accurate, however, as the robot approaches it's target, the accuracy of the distance and direction will improve.

August 2007

Indoor test

Here's a clip of the Monster driving around my basement.  I was driving it around inside to see how well the steering works.  I think it will function well.

The tail does move back & forth.  Both the head and the tail can easily be removed.

August 20th, 2007

Over the weekend, I rebuilt the Green Monster.

I plan to take GM to various RoboMagellan events, and I expect to have to take it on a plane.  That means it will have to be able to travel.  I took the first version on a trip to Texas a week ago, and found it didn't travel well.  I had to take a lot of things apart to pack it.  The current version actually has better ground clearance, is a little longer,  but easily breaks down into smaller pieces.

I didn't get any new pictures with the head or the tail, but they both attach. I'll post pictures sometime.

August 17th, 2007

Created web page.

Current Status: Version 1 of the robot design is complete.  I've tested the robot, and it runs well outdoors, in the grass.  I programmed it to record a compass heading, and follow that heading.  It drove over grass & rocks, and corrected itself to follow the original compass heading.

The robot has three motors (all used to drive the robot), a compass, 2 ultra-sonic sensors, 4 large wheels, and a Bluetooth GPS.  And, a dragon head...

HERE is the program I wrote in NXT-G to test out the compass, and make sure the robot could drive through the grass, and continue going the same direction.  It includes some other junk, but worked fine for testing.

The main software is pbLua, which (at the time I did this) is the only software able to communicate with a bluetooth GPS.

Previous History

I think all robots need a good name.  I toyed around with a few names for this.  I was thinking about the Green Machine.  But then I picked up a Dinasour set, and decided the head and tail would make good additions (removable accessories) to the robot.  That turned it into something of a monster...


Robo-Magellan Links



David Anderson

Ted Larson

Dave Hylands


This page is not associated with The LEGO Group in any way.