When you take a picture from a UAV how do you go about figuring out the GPS coordinates of the area in the photo - I don't want/need the GPS of the UAV but want the coordinates in the photo itself? I'm not quite sure where to find more information about this - any pointers?
Tags: coordinates, gps, ground
Permalink Reply by Adam Haggerty on February 14, 2012 at 10:18am If you're using a standalone camera, perhaps matching photo timestamps with your telemetry log? This isn't a fun answer but it might be the quickest route.
Permalink Reply by Lee Wenger on February 14, 2012 at 11:08am Hey Adam,
The issue is not about getting the GPS coordinates of the UAV at the time of the snap shot - thats easy - what I'm after is calculating the actual photo boundary when it may be at a distance from the UAV. just for sake of argument lets say the UAV is flying at 60,000 feet and the camera angle from the plane is 45degrees of compass angle and 45 degrees down angle. Assuming that the picture in the image is of the ground the image would be several miles away from the UAV itself - but if I know the GPS coordinate and dead reakon position of the UAV I should be able to also calculate the dead reakon alignment of the camera and from there it should be possible to calculate the geoboundary of the patch on the ground - but thats where the math gets more complicated as you have a 3d line in space that passes through the ground at some distance away from the UAV - that distance can be used to calculate the width of the picture at that distance as well as the skew angles at the corners, etc - I would just think that all of these calculations had already been worked out somewhere as its all really just basic 3d trig. So far I haven't been able to find anything in google searches probably because I don't know how to describe this particular problem is something different than basic photo mapping - but even basic photo mapping has some of the same problem - i'd define basic photo mapping as those where the camera is pointing directly down so as long as the pitch, yaw and roll of the UAV are 0 the GPS of the UAV is the center coordinate of the picture - but you'd still need to know both the altitude of the plane and altitude of the ground to calculate the boundary coordinates unless you could get a reading that was your altitude above the ground which seems unlikely.
I don't plan on flying a UAV at 60,000 feet but even at 500 feet its easy for a UAV to take a picture of something that is several hundred meters away from the location of the UAV - again its that location that I want not the GPS location of the UAV. Any ideas how to do that or is there any software that does this?
Hey Lee,
Latest MP does something like this, in camera button, but its easy to calculate it yourself:
As you said you have to Know the camera focus angle and sensor ratio, the relevant hight (using baro), GPS Position, and roll pitch heading, offcourse its a lot easier if you are using a fotogrametry soft (erdas etc)
but lets test it with any cad soft:
u draw a line on Y axes (baro height)
then a triangle with camera angle and place the uper corner to the upper point of line,
extend the two sides to the baseline, now we have one side of our rectangle.
-multiply this side with your camera ratio ( lets say 3/4)
-draw the rectangle.
-rotate it (compass) to face north..
if roll and pitch arent near zero, thinks come a little tricky, u have to rotate the triangle for pitch and roll individualy and then extend
after that using the extended lines change veiw to 3d and try find the skew to calculate the final polygon.
but its pain....
if cant find the lens specs, just measure 50m from a bulding, shoot it and then measure the photografed boundaries, draw the perpendicular triangle and find the angle.
Permalink Reply by Mike M on February 15, 2012 at 12:06pm I think your problem is going to be AGL vs AMSL. Using trig to calculate picture position from altitude determined via barometric pressure will only give you the right coordinates at sea level. Not only would you need to know AGL altitude, you would need to know it for the terrain you're shooting (i.e.some distance ahead of your aircraft) which is going to be impossible. I think your only option is to shoot straight down.
Permalink Reply by Lee Wenger on February 15, 2012 at 5:08pm Thanks for response Mike - yeah its been obvious I guess that folks are making a few unlikely assumptions that include that the elevation of the target photo is at the same elevation as the take off point - in mountainous areas of Colorado, which is my interest area, this is a completely unlikely and essentially impossible assumption. This assumes that you subtract off the starting altitude from your calculations as opposed to using the altitude directly which as you've indicated would only work for giving you a location at sea level. Even if you subtract it off there are still problems as it assumes that your starting elevation and the picture elevation are the same which is still not realistic (at least for my needs).
Right now what i'm trying to do is to use google earth API to get what I think of as a topo elevation vector where I start with the gps coordinate of the uav (but reflected to ground - call that the UAV earth point or UAVEP) and then continues up to 10 miles out on the compass vector of the camera. Vector is misleading as its not a straight line but rather a series of short line segments formed by GS Quad topo lines along the linear vector - every time the linear vector crosses a topo line we can define that crossing point with the elevation of the topo line. From theses points I can interpolate the elevation all the way along the camera's vector. So now taking the cameras angle I calculate where the camera line crosses the topo elevation vector line. That at least gets me the gps coordinate of the center of the picture and is at the elevation of the actual terrain. From there I can calculate the distance and then use that to calculate the boundary and skew angles - so thats all the stuff I'm trying to work through right now - will post up more (if anyone's interested) if I'm able to get further on the math. The nice thing is that all of the trig is actually 2d after you get the topo vector. This is all obviously stuff that I have to do off UAV after flight - and or after receiving photo over telemetry network because I need access to google earth.
Does anyone know if there is a database of topo lines anywhere? Thats all I really need as opposed to all of google earth. As an alternative maybe someone's already written an elevation vector rest service or something along those lines that would do this.
I figured the meaning of your terms AGL to be Above Ground Level and AMSL to be something about above sea level - but what do those terms actually stand for?
Permalink Reply by Lee Wenger on February 16, 2012 at 10:51am I'm finding some cool resources
here is a general page for finding big "repositories" of gis information:
http://serc.carleton.edu/research_education/geopad/topographic_data...
Web Services available from USGS:
http://seamless.usgs.gov/app_services.php
Here are some specific ones for getting elevation at a specific location:
Permalink Reply by Mike M on February 16, 2012 at 11:32am AMSL (sometimes just ASL) is Above Mean Sea Level which simply accounts for sea level differing depending on which sea and atmospheric conditions. Don't ask me where the official datum is - I'm sure there are probably 20 of them.
Permalink Reply by JP on February 17, 2012 at 7:36am I don't know if this will help or not but here is a PHP script which will query the USGS elevation service for LAT/LON and report back. Their service is very unreliable and usually experiencing downtime. Hope it helps, Thanks
JP
function checkEle($lat, $lon) {
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://gisdata.usgs.gov/xmlwebservices2/elevation_service.asmx/getElevation?X_Value=" . $lon . "&Y_Value=" . $lat . "&Elevation_Units=METERS&Source_Layer=-1&Elevation_Only=true");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HEADER, 0);
$retValue = curl_exec($ch);
return $retValue;
curl_close($ch);
}
Season Two of the Trust Time Trial (T3) Contest has now begun. The third round was a reliablilty/aerial photography round for both planes and copters, which is now closed. Stay tuned for the next round, beginning soon.18 members
58 members
26 members
41 members
1 member
© 2012 Created by Chris Anderson.
