All-Terrain GPS Robot

All-Terrain GPS Robot

After building a number of indoor robots, we decided to build an outdoor robot capable of traveling through rough terrain. We call it “Trekker.”

TREKKER ROBOT. Six wheels. Six motors. Batteries below deck. Electronics above deck.

First, we put together a six-wheel independent suspension with a separate motor on each wheel and large knobby tires. Each wheel moves up and down separately, which allows this little beast to climb up and over just about any obstacle (rocks, slopes, cats, whatever gets in its way). Here is a video of Trekker going over a large pile of books.

 

This is by far our funnest robot to drive via Remote Control, but this true magic of Trekker is his navigational capabilities.

We wired Trekker with a GPS chip and a tilt-compensated magnetometer (an electronic compass that works even when the robot is tilted). When Trekker first comes on, he automatically looks for and synchs with as many satellites as he can find in the sky (usually about 10-15). We programmed Trekker to determine his exact latitude and longitude position using the GPS as well as his directional orientation using the magnetometer. He then travels on his own to a series of latitude and longitude waypoints (that we get from Google Earth). Trekker’s navigational algorithm was one of our most ambitious software challenges to date. Our favorite test run is to put him in our backyard and give him instructions to drive around the big tree, down to the barn, drive around the goat pen, and return to us. He does it beautifully, all on his own, moving systematically from one waypoint to another. We also equipped him with a forward-facing sonar, which swivels back and forth on a pan servo, to avoid trees and other large obstacles along the way.

Trekker Robot – Top View – The white square in the middle is the GPS, which is used for navigation. When traveling between waypoints, the Longitude and Latitude display on the little LCD screen.

Trekker – Front View – This provides a nice view of the sonar at the front of the robot, which is used for obstacle detection and avoidance when traveling in automated mode. The magnetometer (compass) is mounted on a tall shaft at the back of the robot to keep it clear of interference from the other electronics, especially the radio.

This picture of Trekker’s underside shows how each wheel connects to a separate motor (black t-shaped things). Each motor housing is on springs and swivels so that it moves separately from the other motors.

Thanks to the shock-absorbing independent suspension of each of its six wheels, Trekker rolls over pretty much anything

Software Modes

We programmed Trekker with a several different modes he can operate in:

  • Navigate autonomously to a series of user-provided Longitude/Latitude Waypoints
  • Roam autonomously using swiveling front sensor to avoid obstacles and find best path
  • Radio Control (RC) – display commands and motor speeds on LCD
  • Radio Control (RC) – display longitude, latitude, and heading on LCD

Technical Specifics

  • Microcontroller: Arduino Mega
  • IO Shield: DFRobot
  • Motor Controller: Pololu Trex
  • Radio Control Software: Beatty Robotics
  • Automated Navigation Software:  Beatty Robotics
  • GPS: Parallax
  • Sonar: Ping
  • Sensor Servo: Hitec
  • Chassis Parts: Dagu
  • Magnetometer: Devantech
  • Radio: Xbee
  • Batteries: NiMH (electronics) + LIPO (motors)