After building a number of indoor robots, we decided to build an outdoor robot capable of traveling through rough terrain. We call it “Trekker.”
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.
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
- 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)