Perfect for RoboMagellan or teleoperated outdoor research fun!
Undoubtedly two of the most admired robots on this planet, or any other, are the Mars Rovers Opportunity and Spirit. Primarily telepresence robots, the Mars Rovers are rugged six wheel machines that remotely execute instructions wirelessly received from Earth. They truly are the ultimate in “outdoor” robots. I’ve been fascinated by their design and always planned to build my own, albeit much simpler, version. The complexity of building a six wheel robot has prevented me from proceeding with such an ambitious build. Well up until now that is. With the introduction of the MINDS-i Super Rover Kit my dream of a Mars Rover exploring the wilds of my back yard while I control it from the comfort of my easy chair can now be realized.
THE MINDS-I SUPER ROVER CHASSIS
The chassis for my robot was constructed from the new MINDS-i Two-in-One Super Rover Kit. This kit provides everything needed to build either a 4×4 Super Crawler or, in my case, the alternate 6×6 Rover. Using their patented system of interchangeable “quick-lock” construction elements I was able to build this rover in a single day. Although I was building a predefined design the kit enables users to create, modify and re-create robots of their own design.
The build instructions are presented in large pictorial book. There is no text, you just follow the pictures. The “quick-lock” system takes about five minutes to learn. The kit includes a special screwdriver-like tool for the easy insertion and removal of these quick-locks. There are several different size locks to select from depending on the number of “beams” that you wish to connect. Besides size, the locks also fall into one of two family types. There are locks for fixed joints and there are locks for pivoting joints.
The Super Rover has a six-wheel drive system each having its own independent suspension providing 2.5 inches of travel. The suspension system is ideal for navigation in the chaotic outdoor environment. The chassis provides ample space and carrying capacity to incorporate microcontrollers, sensors, cameras and other electronics.
The wheels are powered through differentials, one for each of the three sets of wheels. The differential is a device that employs a set of gears that transmit torque and rotation through three shafts. Each of the differentials receives input rotation on the centerline shaft from the motor. This input rotation is then transmitted to the wheels via two output shafts. When cornering, the inner wheel needs to travel a shorter distance than the outer wheel so the differential also allows the wheels to rotate at different speeds.
In addition to the sophisticated differential/suspension system, the rover sports a four-wheel steering system. Both the front and rear sets of wheels are steered by a servo. This allows the front and rear wheels to be turned independent of each other. The front and rear servos are connected to the microcontroller (more on this later) through a Servo Reverser. When a turn command is sent from the microcontroller the Reverser will flip the signal for the rear wheels and turn them opposite of the front. This reversing action allows for a tight turning radius. Plus it just looks cool.
The Rover Kit comes with one motor and ESC controller as standard equipment. This is enough power for the 4×4 version of the rover but is just barely adequate for the six wheel rover. For additional power I added the optional second motor and controller. The two motors and three differentials are connected together inline. In this configuration both motors are contributing power evenly to all three sets of wheels.
Rear facing Ping and Navigation Dome project box mount. Note the rear steering servo.
Each motor has its own R/C motor controller and 7.2 volt 3300 mAh battery. The motor controllers are connected to the microcontroller and respond to standard servo commands. The controllers come with their own power switches. When powering up, the controllers automatically search for the neutral point so it is important to have the microcontroller powered up first and providing a neutral servo signal. In actual use the controllers proved to be a bit finicky (like a cat) and have randomly commanded the motors to run at full speed. So keep a tight hold of the rover when powering it up!
Close up of the front steering system and servo.
THE ARDUINO BRAIN
For the microcontroller I choose to use the incredibly popular Arduino platform. For those not familiar with this new addition to the world of microcontrollers, the Arduino is an open-source microcontroller and is based on an easy-to-use hardware circuit board and software development environment. It’s intended for use by artists, designers, hobbyists, and anyone who is interested in creating interactive objects or environments. Equipped with 13 digital I/O pins and 5 analog input pins the Arduino can sense the environment by receiving input from a variety of sensors and in turn can affect its surroundings by controlling lights, motors, and other actuators.
The standard configuration Arduino allows the use of hardware plug-ins called “shields” which extends the capability of the Arduino. They include shields designed for displays, measurement, motor and servo control as well as generic shields for prototyping.
The two motor controllers and their associated batteries.
For software the Arduino is programmed in a simple programming language called Wiring (and its derivative called Processing). Anyone who is familiar with ‘C’, C++, C# or Java will recognize the lineage of this language. It is an object-orientated (OO) language and supports crucial OO features such as inheritance and polymorphism. But in keeping with its non-techie (and sometimes overly artsy) philosophy a software program written for the Arduino is referred to as a “sketch.”
Rear motors, motor controllers and motor batteries. Note the blue shock absorbers that are part of the suspension system.
For this rover I placed the Arduino in a 6 x 8in. project box enclosure and attached it to the front end using some extra quicklocks and beams. To simplify interfacing to the Arduino I used an SBGVS I/O Shield from Solarbotics. This I/O shield allows you to connect up to 18 peripherals to the Arduino using the popular Ground/Voltage/Signal interface and is perfect for connecting servo like devices. This shield comes as a kit but only takes about 15 minutes to build.
The Arduino, electronics and the steering servos are all powered by a dedicated 7.2 volt 2800 mAh battery.
Inside the main controller that houses the Arduino Uno, I/O Shield and XBee transceiver.
To receive commands and eventually send telemetry data my rover uses an XBee Pro RF module. The XBee modules provide two modes of communication. The first is a simple serial method of transmit/receive and the second is an advanced framed mode. XBees can be configured through a PC utility or directly from the microcontroller. These modules can communicate point to point, from one point to a PC, or in a mesh network.
As you may know all my prior robots use the XBee in the simple serial mode with my own communications protocol. All transmitted and received packets start with a three character header and end with an ASCII Return character. The first character of the header is always an “>” indicating a send operation and the second character is the Network ID such as “R” for robot. The third is the destination device (robot) ID. The special character “#” is used to specify a broadcast to all devices. Data following the three character header is device dependent.
NIGHT VISION VIDEO CAMERA
Mounted on top of the project box is a wireless night vision video camera from Smarthome (#76004). The camera is mounted on a Rotate Kit from Lynxmotion. This kit allows the camera to be panned a full 180 degrees from left to right. This video camera can transmit a standard video composite signal directly to a television or DVR up to 300 feet. By using a built-in IR illuminator it can see up to 45 feet in total darkness and is very effective. Because it is an infrared camera, colors will appear washed out and a bit strange. As an example green vegetation will appear white and an animal’s eyes will glow like a ghostly specter. A four channel 2.4 GHz receiver is included with the camera allowing you to expand the system with three other cameras.
IR video camera and forward facing Ping.
Forward and rear object detection is performed by two Parallax Ping ultrasonic sensors. One Ping is mounted on the project box just in front of the video camera. The other is rear facing and mounted on a small project box attached to the back of the rover just above the rear wheels. This project box is part of the mounting system that holds the Navigation Dome. The Pings connect to the Arduino via the I/O shield.
The Navigation Dome sits high above the rover mounted on a 19in. piece of ¾in. PVC pipe. The dome itself is a 6in. plastic bowl from IKEA. It is mounted with the bowl’s lid facing down and attached to the top of the PVC pipe. The bowl is somewhat transparent with a frosted interior and is water tight. The lid also serves as the platform for the mounting of various electronics.
Navigation Dome on mounted on top of a 3/4” PVC pipe.
This dome has two purposes. One is to provide navigation data to the main Arduino controller and the other is for visual signaling. Inside the dome is a Prototino (Arduino compatible) microcontroller from SpikenzieLabs. It is connected to an extra bright RGB LED array, a HMC6352 Compass Module, and a Hitec HM-55 servo. The Prototino receives commands and sends back responses to the main Arduino controller via a three wire serial cable and a very simple communication protocol.
For visual signaling the rover can communicate its current state by lighting various combinations of LEDs to create different colors. As an example, the rover turns on the green LED when moving forward, blue when in reverse, and red to indicate an error. Also used in visual communication is a bright red flag that is attached to the HM-55 servo. It is primarily used to indicate the current speed and direction of the rover by its position.
Inside of the Navigation Dome that contains the Prototino, RGB LED array, HM-55 servo. The Compass module is mounted forward on a separate breadboard.
The main reason for the navigation dome is to collect and relay position information back to the main Arduino controller. In the future I may want to use this platform to compete in RoboMagellan competitions. The dome currently contains an electronic compass to determine the direction of the rover and will eventually be equipped with a GPS module for more advanced navigation such as those needed to succeed in a RoboMagellan competition.
At this point my Super Rover is configured for telepresence operation. While sitting in the comfort of my home I can drive the robot through my back and side yards and around the house. Using my Remote Robot Control Console (Robot Issue 27) I can drive the robot while watching the live video feed on the monitor.
Poor Mona can’t eat in peace.
For protection the rover is equipped with two Parallax Ping sensors. These Pings are used to override any remote commands in the unlikely event of an obstacle. In other words, avoid a crash! While driving forward the robot uses the forward Ping to detect obstacles that are directly ahead in its path. If the Ping returns a distance less than 24 inches, an obstacle is assumed and the robot is stopped. The same is true when the robot is in reverse. The rear Ping will detect obstacles and stop the robot if an obstacle is within two feet.
The robot has four preset speeds programmed into the Arduino software. The lowest is a Crawl speed which is ideal for driving the rover indoors. Slow and Fast speeds are used for normal outdoor driving. Finally there is a “Ludicrous” speed for when you really want to impress your neighbors.
Since the video camera has a limited field of view the software will pivot it into the direction of the current turn using the pan servo. This greatly enhances drivability especially at the higher speeds.
As mentioned I intend to add a GPS module as well as additional obstacle avoidance sensors. This rover has proven to be an amazingly versatile and robust platform and I look forward to expanding it.
www.mymindsi.com, (509) 252-5767
www.parallax.com, (888) 512-1024
www.solarbotics.com, (403) 232-6268