The Gadget Show: GPS Guided RC Car - Arduino Controlled

Dear all,

I'm posting from The Gadget Show, a technology and engineering based television show currently airing on Channel 5 in the United Kingdom. I'm posting in hope of getting in touch with fellow enthusiasts who might have experience with programming Arduino based devices for a very specific purpose we had in mind.

For an upcoming shoot we were hoping to try and build a GPS waypoint navigating RC car that would be controlled by a microprocessor such as the Arduino. The car should have the ability to be able to communicate with a computer wirelessly on site which will feed the unit a set of GPS destination coordinates as specified by a Google Maps style interface. Telemetry data and the like is not essential to be fed back, just have the car constantly updating it's destination data from a laptop.

If anyone has had any experience with this, or built such a project in the past, please get in touch - drop me a DM as would love to have a chat.

Otherwise would be keen to hear your thoughts, potential pitfalls and the like.

Cheers!

Chris Gadget Show.

Heh, one of my favourite shows :D

Navigating to waypoints is not too tricky but only if it's in a straight line (not following roads). So what kind of navigating is the car likely to be doing? Are these waypoints going to be close together? Objects in the way? What kind of accuracy do you require? How far away might the laptop be from the car?

Generally, if you're sending data one way, you can normally send data back so feeding back telemetry should not be an issue.

Mowcius

I'm not in England!!!! =(

mowcius: Heh, one of my favourite shows :D

Navigating to waypoints is not too tricky but only if it's in a straight line (not following roads). So what kind of navigating is the car likely to be doing? Are these waypoints going to be close together? Objects in the way? What kind of accuracy do you require? How far away might the laptop be from the car?

Generally, if you're sending data one way, you can normally send data back so feeding back telemetry should not be an issue.

Mowcius

Hi Mowcus,

The idea was that the RC vehicle in question would be an off road RC buggy capable of navigating through typical English field and countryside terrain. If the operator was standing in the center of a field with a laptop, potentially would need a range of somewhere between 50-100m? Following roads isn't important, purely point to point navigation data that can be fed to the Arduino unit on the fly. Wouldn't even need to be able to store waypoints, just constantly heading to a specified set of GPS coordinates and speed controlling the motors. i.e. it either stops at the final destination, or if the final destination changes mid route, corrects its course while moving etc.

Imagine being able to point and click on a Google Maps/Earth overlay and then the RC vehicle in question moving to the specified last destination marker. Also being in a field - obstacle avoidance is less of an issue.

I've seen various examples of similar things being built from blogs & YouTube videos, however typically I've found them to be US based. Was just wondering if someone in the UK had built anything similar....?

Cheers, Chris.

for those not in the UK - http://fwd.five.tv/gadget-show ;)

GadgetShow: Hi Mowcius,

The idea was that the RC vehicle in question would be an off road RC buggy capable of navigating through typical English field and countryside terrain. If the operator was standing in the center of a field with a laptop, potentially would need a range of somewhere between 50-100m? Following roads isn't important, purely point to point navigation data that can be fed to the Arduino unit on the fly. Wouldn't even need to be able to store waypoints, just constantly heading to a specified set of GPS coordinates and speed controlling the motors. i.e. it either stops at the final destination, or if the final destination changes mid route, corrects its course while moving etc.

Imagine being able to point and click on a Google Maps/Earth overlay and then the RC vehicle in question moving to the specified last destination marker. Also being in a field - obstacle avoidance is less of an issue.

I've seen various examples of similar things being built from blogs & YouTube videos, however typically I've found them to be US based. Was just wondering if someone in the UK had built anything similar....?

Cheers, Chris.

Well that sounds easy enough. Many people have made reverse-geocahe boxes which basically do half of what you're after - they have waypoints and work out how far and sometimes what direction it is to that waypoint, then the person with the box has to work out where the waypoint actually is.

I don't know of anyone personally why has built one but I'm sure there will be people who have.

That wireless range sounds easy enough, many people use XBee modules for wireless communication - they are easy to use and come in a range of module types with varying powers (the lowest power Series 1 modules will do 100m LOS - well I can't say I've tested that theory :P)

You I'd suggest you possibly want a magnetic compass on the car as although you can work out the heading of the car (while it's moving), as soon as it stops, you have a bit of an issue as to what direction it's pointing in.

Simple trig to work with the GPS position of the car and the GPS position that you want to move to will tell the car the heading it wants to follow and then the compass can be used to point the car in that direction. An update of 1Hz on the GPS should be enough to get up a reasonable speed on the car and still maintain the correct heading.

Regarding the car to use, I might suggest that you use something with four wheel drive and skid steer, this would mean it could move on the spot to get its heading more easily.

I look forward to what happens!

Mowcius

Using GPS, especially GPS on the fly, you will only have very basic accuracy, think +/-10m. this will translate into a very limited vehicle, unless you go for a much larger 'Play area', in which that sort of error is not important. I suppose this really has more to do with how fast the vehicle is going and whether it already knows its heading.

If it knows its heading relative to say, north, you can take the GPS values and interpolate them along the known trajectory(generated by extending a line from last known position?). If you are using some sort of distance measuring, like say an optical rotary encoder, you can improve this first as you would know the start coordinates, a distance and an angle, forming a nice vector that can be compared against a serial stream of the vector it should be on at the time, from an xbee/zigbee perhaps(higher power version?).

Another approach is to use a high speed two way radio link and merely upload all the telemetry and gps etc from the vehicle to the computer, write a nice app that converts it to simple instructions and sends these down to be acted upon by the arduino. In it's simplest form, a serial stream of gps waypoints are uploaded, and motor/servo commands are downloaded.

Whatever you choose, I would suggest that provided you do not go overboard with sensors, the more the better, especially in as small an area as 100m/sq.

To expound further on fliggygeek's comment about GPS accuracy: i've been working with a LS20031 GPS receiver. I did an experiment where I left it in place for eight hours and logged it's measurements. Over that time the longitude varied by .0060 minutes and the latitude varied by .0085 minutes. At my latitude that's equivalent to 11 meters and 12 meters. So for navigating along a 100m course the GPS is not going to be terribly useful.

hii guys i am also working and planning the exact project so if any one has any information about gps interfacing with the arduino can plz reply to me… i am using the gps which has a serial output from a Max232 and the o/p port on the gps module is a serial com port. so can anyone plz tell me how to interface it with arduino…

The car should have the ability to be able to communicate with a computer wirelessly on site which will feed the unit a set of GPS destination coordinates

Communicating wirelessly with a computer will be fairly easy. If the computer has bluetooth, you can use the arduino BT : http://arduino.cc/en/Main/ArduinoBoardBluetooth Otherwise, you can consider the Xbee shield. It uses wireless zigbee communication to talk wirelessly. A second arduino could pick up the signals and send them to the USB port on a computer. http://uk.rs-online.com/web/search/searchBrowseAction.html?method=retrieveTfg&binCount=1&Nty=1&Ntx=mode%2bmatchallpartial&Ntk=I18NAll&Ne=4294957561&Nr=AND%28avl%3auk%2csearchDiscon_uk%3aN%29&N=4294615747&Ntt=Xbee

The shield connects to something like these: http://uk.rs-online.com/web/search/searchBrowseAction.html?method=retrieveTfg&binCount=22&Nty=1&Ntx=mode%2bmatchallpartial&Ntk=I18NAll&Ne=4294957561&Nr=AND%28avl%3auk%2csearchDiscon_uk%3aN%29&N=4294767503&Ntt=xbee Remember to find the right module though!

Onions: Communicating wirelessly with a computer will be fairly easy. If the computer has bluetooth, you can use the arduino BT : http://arduino.cc/en/Main/ArduinoBoardBluetooth Otherwise, you can consider the Xbee shield. It uses wireless zigbee communication to talk wirelessly. A second arduino could pick up the signals and send them to the USB port on a computer. http://uk.rs-online.com/web/search/searchBrowseAction.html?method=retrieveTfg&binCount=1&Nty=1&Ntx=mode%2bmatchallpartial&Ntk=I18NAll&Ne=4294957561&Nr=AND%28avl%3auk%2csearchDiscon_uk%3aN%29&N=4294615747&Ntt=Xbee

The shield connects to something like these: http://uk.rs-online.com/web/search/searchBrowseAction.html?method=retrieveTfg&binCount=22&Nty=1&Ntx=mode%2bmatchallpartial&Ntk=I18NAll&Ne=4294957561&Nr=AND%28avl%3auk%2csearchDiscon_uk%3aN%29&N=4294767503&Ntt=xbee Remember to find the right module though!

I can assure you that the arduino bluetooth will not happily do anything near 100m.

Mowicius is correct.

fliggygeek: Mowicius is correct.

sp. :D

A second arduino is also completely un-necessary, just use a USB XBee board.

I you are after serious range and reliable coverage, I think Digi make a 900mhz data modem similar in spec to the xbee setup, but with 500mW output power. These are awesome if they work for you and the budget you are on.

fliggygeek: I you are after serious range and reliable coverage, I think Digi make a 900mhz data modem similar in spec to the xbee setup, but with 500mW output power. These are awesome if they work for you and the budget you are on.

Well they do, yes but that's completely un-necessary as only ~100m is required and 900MHz is also illegal to use in the UK so those modems are out of the question anyway.

TIL UK law prohibits ~900mhz devices.

I guess the GPS accuracy does not matter too much as, it will be basically pointing to one corner of the field or another, and watch it bounce off to that corner.

The alternative would be triangulation with beacons. But that's not nearly as neat.

A variation on this project could be to have the robot go to a 'beacon-in-a-ball' that you throw to somewhere in the field, and then have he buggy play 'fetch' but without the bringing it back bit ;)

I guess the GPS accuracy does not matter too much as, it will be basically pointing to one corner of the field or another, and watch it bounce off to that corner.

Well based on the obvious budgets of some of the gadget show's other projects, I wouldn't say that a decent accurate GPS would be out of the question.

I mean they're a bit pricey for us mere hobbyists but a few hundred quid might not be so much of an issue for a project like this.

An accuracy of 1-5m or so should be acheivable which for navigating a field is probably close enough.

Also, I'd forgotten about the 868MHz XBee modules. These are similar to the 900MHz XBee modules but are legal in the UK.

Range of up to 25 miles LOS.

Hmm, I need to get myself a couple.

They're a bit power hungry at 500mA (800mA max) transmit current.

My general rule is: theres no such thing as overkill, just a budget.