Jump to content
corosplat

marking waypoints automatically

Recommended Posts

Greetings,

I have been messing around with R/C aerial photography and live video for some time and just recently had my first GPS-equipped flight.

I was thinking it would be really useful to mark a GPS waypoint every time you take a photo so you can position them on a map later. You could maybe use the same chip that triggers the camera to control the GPS.

I use a Garmin geko201 and had a quick look through the garmin communication protocol but couldn't find a simple way to do it. So the question is if anyone has done this already, and if there is an undocumented command that marks a waypoint at the current location?

Cheers

Share this post


Link to post
Share on other sites

Communication into a gps is a lot more tricky then reading what is coming out of a gps. My best suggestion is to program a microchip so that it will read in the GPS information and watch the gear channel and every time the gear channel is tripped to take a shot the chip will record the GPS information. When you get on the ground you can hook the chip up to a laptop and get a list of the locations where shots were taken.

I have seen someone else that did this but he didn't do it commercially. AUAV can make one of these it is just a matter of finding the time to do it.

How many shots do you take on an average flight?

Matt Klarich

www.auav.net

Edited by mklarich

Share this post


Link to post
Share on other sites

Thanks for the suggestion Matt. I had wanted to avoid a separate storage device and make use of the GPS's memory to store the waypoints. But I'll take your word for it that it is tricky to control the GPS from the outside with a simple microchip. I might be able to get away with just recording the time a photo is taken and synchronize with the GPS clock somehow.

Share this post


Link to post
Share on other sites

I haven't looked into how to do it, but yes I'm sure it could be done. I'll tell you why I am sure. I have a Kenwood TM-D700A VHF/UHF amateur radio. It has a built in TNC and provides APRS support (like the tinytrak but better). One of the options is that it can set waypoints from APRS stations that it hears.

So everytime an APRS station sends out a beacon, it places a waypoint for it on my GPS screen with the call sign of the station.

This is using NMEA4800.

So if it's really not documented anywhere, I could simply tap into that signal and take a look at what it's sending.

See if you can find how this is done, if not I will tap into it for you to see how they do it. I think it is a great idea. I've sent my plane up before for "Rescue" missions (trying to find downed aircraft) and even if you do see it in a photo, it is really hard at times to distinguish one area from another. Especially when your point of view is the ground.

Mike

Edited by mikep

Share this post


Link to post
Share on other sites

I haven't tried this, and I'm not sure the Geko will take it, but try sending these to the GPS in NMEA4800. From where I found this it should work with the GPS12 and other Garmins.

$GPWPL,5346.17,N,00030.15,W,M1BLR *5C

$GPWPL,5342.91,N,00027.05,W,N TOWE*36

$GPWPL,5344.03,N,00025.68,W,G0VRM*6B

So basically I would simply tie this in to whatever trigger you are using for the camera. If you are using a PIC get one with a UART and set the baud rate to 4800.

I'm about to make a new trigger for my Toshiba Camera. I think I will incorporate this into it.

Mike

Edited by mikep

Share this post


Link to post
Share on other sites

Well just for the fun of it I tried sending those sentences using HyperTerminal. But nothing shows up on my GPS. So I started to question the format. So I went out to my car and tapped into the TM-D700 and here are the sentences that it is sending out.

$GPWPL,4536.32,N,07334.69,W,VE2WMG-9*38

$GPWPL,4536.32,N,07334.69,W,VE2WMG-9*38

$GPWPL,4536.32,N,07334.69,W,VE2WMG-9*38

$GPWPL,4536.32,N,07334.69,W,VE2WMG-9*38

$GPWPL,4536.32,N,07334.69,W,VE2WMG-9*38

$GPWPL,4530.50,N,07347.78,W,VE2SIL-2*3E

$GPWPL,4530.50,N,07347.78,W,VE2SIL-2*3E

$GPWPL,4530.50,N,07347.78,W,VE2SIL-2*3E

$GPWPL,4536.32,N,07334.69,W,VE2WMG-9*38

$GPWPL,4536.32,N,07334.69,W,VE2WMG-9*38

$GPWPL,4536.32,N,07334.69,W,VE2WMG-9*38

$GPWPL,4536.32,N,07334.69,W,VE2WMG-9*38

$GPWPL,4526.85,N,07341.02,W,VA2TBB-9*37

$GPWPL,4526.85,N,07341.02,W,VA2TBB-9*37

$GPWPL,4533.35,N,07333.11,W,VE2RIO-3*31

$GPWPL,4631.34,N,07245.00,W,VA2PBK*26

$GPWPL,4631.34,N,07245.00,W,VA2PBK*26

$GPWPL,4545.18,N,07216.68,W,VE2RHP-3*29

$GPWPL,4545.18,N,07216.68,W,VE2RHP-3*29

$GPWPL,4545.18,N,07216.68,W,VE2RHP-3*29

$GPWPL,4537.63,N,07423.93,W,VE2BNE-13*16

$GPWPL,4537.63,N,07423.93,W,VE2BNE-13*16

$GPWPL,4537.63,N,07423.93,W,VE2BNE-13*16

Basically the same thing. I took these and tried to send them using HyperTerm to the GPS and still nothing. So now I'm thinking perhaps it has to to with the string termination or something similar.

I will have to write a little program to try it that way so I can control each byte going out.

I'll let you know when it works, but I'm definately close.

Mike

Share this post


Link to post
Share on other sites

Mmm... I think I'm talking to myself! ;-)

OK Well SUCESS with the Garmin GPS 12 MAP. I don't have my Geko handy at the moment but I created a quick app to test it out. So if you want to try it simply download http://pages.infinit.net/mikejp/GPSTest.zip

(Tested under Windows 2000 only)

Start it, select the comm port and click on Write Waypoint. You will need to click on it a couple of times. Just ignore the error you will get on the first one. I think I need to clear out the buffers first but will never use this again so I won't bother fixing it.

Basically what I was missing is that you MUST end the line with a CR LF. I was ending it with only a LF.

Once this is done it works very well.

The waypoint it will create is called VE2WMG.

Let me know how it goes for the Geko. Or if anyone else wants to try it out with other GPSs I would be curious to know which ones support this.

So it is actually not very tricky at all to create a waypoint in the GPS. It is quite simple in fact. What is a bit trickier, is that you will need to capture the current output from the GPS to know where you are to be able to write the waypoint.

Garmin recommends not more than 3 devices that their GPSs can send info to and listen from just 1. I don't know about you guys, but I'm starting to go over that 3 device limit. ;-)

What we really need to make this easier is a way to say create a GPS waypoint HERE. But if not I think the way to do this is a seperate PIC that will do this job.

Simply listen in on the GPS, and on a high transition of a PIN send out the waypoint.

Cheers,

Mike

Edited by mikep

Share this post


Link to post
Share on other sites

Whoa Mike.. you're way ahead of me here :lol:

OK, I didn't get your program to work on XP, but no matter. I confirmed pretty much the same thing with another program I had. that is, the GPS in NMEA mode will listen to a $GPWPL sentence and mark a waypoint at that location.

Great, that's a start, but as you say,what we really need is a NMEA command to say "mark waypoint at current location". I think they call it a 'man overboard' function. But I don't see anything like that in the NMEA protocol (or the garmin protocol).

A little device would have to listen to the gps, keep a current position in memory, and then feed it back into the GPS as a waypont on command. You might be able to get a bit fancy and interpolate between two records to get a more accurate position.

cheers

Share this post


Link to post
Share on other sites

I will write off a quick e-mail to Garmin to see what they say. But I'm not very confident about their answers. In the past I got the feeling the person responding to my questions was not very knowledgable.

I already have all the routines for calculating the checksums and reading the GPS from working on my autopilot. So putting together a project that listens to the GPS and records waypoints would not take very long. And you do need a cable connected between them anyways for writing. But I would rather not have to listen to the GPS.

I will see what Garmin says. Right now I'm having a problem getting to their site.

As for MOB, I don't think that would work. Generally I don't think there can be more than one MOB at a time.

P.S. That sucks that it doesn't work on XP. I will have to try my daughters laptop to see why. I am using an old version of Visual Studio (6.0). I just can't get myself to take the hit for their .Net studio.

Edited by mikep

Share this post


Link to post
Share on other sites
Generally I don't think there can be more than one MOB at a time.

I guess that means the second guy to fall out is screwed :D

Sorry, I couldn't resist.

Bill

Share this post


Link to post
Share on other sites

Mike, what program are you using to calculate checksums?? I have wondered how to do that myself and never really investigated due to being tied up with so much other stuff.

Thanks much,

Matt Klarich

Share this post


Link to post
Share on other sites

I don't use a program. I have incorporated it into my GPS stuff.

Mostly I use it to make sure the sentence is complete and not corrupted before my autopilot uses the sentence for navigation. If the checksums don't match I disregard that sentence for navigation.

And if I just need a one off, I use the calculator in windows with a character map to get the hex values. A bit slow, but it works.

I suppose I could write a quick utility to do this in Windows but I really haven't needed to do it that often.

Checksums are actually quite simple... when you start getting into CRC routines life gets somewhat more complicated!

Cheers,

Mike

Edited by mikep

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×