Litchi Mission Accuracy

I have a problem with accuracy. I made a mission for electric pole inspection, actually is to feed Ai with photos. Did Python script to creating CSV file. Imported it into Litchi Hub, and it looks ok for me:

But when it comes to fly, looks like there is lack of accuracy.
At start it looks ok:

But on the other side of the pole, there is a lot of side movement:

So I don’t know what is the problem.

And the best thing would be to start mission from the point and direction drone is actually hovering, because I have a lot of poles to photograph.

Cunsult the user manual of your drone (specifications) about horizontal & vertical hover (=position) accuracy.
and:

1 Like

While there is some inherent error in consumer GPS, if your second photo is supposed to be 180 degrees from your first photo, that does appear to be too far off. Is this repeatable? If it were me, I would examine the EXIF data in your photos (heading/yaw is captured) to see how well it corresponds to what was configured in your mission.

1 Like

Yes, second photo was supposed to be 180 degrees from first photo
Coordinates in waypoint:
51.97560815199425, 15.515266
Coordinates in file:
51.97569, 15.51514

The two sets of GPS coordinates you provided are 12.5m (41 feet) apart. I don’t know what those two sets of coordinates refer to but if one is from a Litchi waypoint and the other is from the corresponding photo, that distance is too great.

While there is some lack of accuracy in consumer GPS, 12.5m is significantly more than I would expect.

Your two photos are taken from almost opposite sides of an electric pole. The difference in orientation of the drone to take those photos looks like either around 170 or 190 degrees. While GPS is used to position the drone, the compass and IMU are used to orient the yaw/heading of the drone.

If those two photos are from opposite side of the mission with the heading/yaw configured to be 180 degrees apart, something is wrong.

If it were me I would:

  1. Examine the mission to make sure it is configured as expected.
  2. Examine the EXIF/XMP data of each image and compare that data to each corresponding waypoint.

Tools I would use include Google Earth Pro, ExifTool (to examine the image metadata), and my AirData to Litchi Mission converter. I would convert the flight log from AirData into a Litchi mission and then load both the original Litchi mission and the converted AirData mission into Google Earth Pro. Once overlayed, it will be easy to see any differences.

2 Likes

It’s strange, but coordinatef from pictures looks like this:
|DJI_0516.JPG|51.9756875|15.515397972222223|
|DJI_0517.JPG|51.9756895|15.5153795|
|DJI_0518.JPG|51.97568836111111|15.515365666666666|
|DJI_0519.JPG|51.97569027777778|15.515350222222223|
|DJI_0520.JPG|51.97574619444445|15.515358194444444|
|DJI_0521.JPG|51.975737055555555|15.515343444444444|
|DJI_0522.JPG|51.975732416666666|15.5153335|
|DJI_0523.JPG|51.975726305555554|15.515326555555555|
|DJI_0524.JPG|51.97577102777778|15.515267055555556|
|DJI_0525.JPG|51.97575916666667|15.515266583333334|
|DJI_0526.JPG|51.975749722222226|15.51526575|
|DJI_0527.JPG|51.97574177777778|15.515263277777779|
|DJI_0528.JPG|51.975746666666666|15.515173583333333|
|DJI_0529.JPG|51.97573752777778|15.515191277777777|
|DJI_0530.JPG|51.975731833333334|15.515198611111112|
|DJI_0531.JPG|51.975727472222225|15.515208472222222|
|DJI_0532.JPG|51.97569030555556|15.51513511111111| - photo with not streight lines
|DJI_0533.JPG|51.97568888888889|15.515158583333333|

Is it ok, some have less number of digits?

Waypoint for this secont not straight photo is configured like this

obraz

obraz368×702 22 KB

And in CSV file I imported, whis W.P. is like this:
|latitude|longitude|altitude(m)|heading(deg)|curvesize(m)|rotationdir|gimbalmode|gimbalpitchangle|actiontype1|actionparam1|actiontype2|actionparam2|altitudemode|speed(m/s)|poi_latitude|poi_longitude|poi_altitude(m)|poi_altitudemode|photo_timeinterval|photo_distinterval|
|51.975689|15.51513475168293|15.5|0|0|0|2|-45|1|0|0|500|1|2|51.975689|15.515266|15.5|1|0|0|

I find it curious that all of the GPS coordinates you show have repeating digits. I’m not sure I would trust whatever software you are using that is showing those values. What did you use to get those coordinates?

The coordinates in your Mission Hub snapshot match those extracted from the photo.

Your calculated longitude values have much more precision than your calculated latitude values. Not that it matters. It’s just a bit of a curiosity.

I don’t see any significant problem with the data you are showing here. I would closely examine the coordinates and heading values from the photo you previously showed. Are you sure that the second photo was taken 180 degrees from the first photo? It sure does not look like it. The EXIF/XMP data in the photos should confirm either way.

1 Like

Looking at the 2nd photo (532) the drone is off to the left by about 1.5 times the distance between the 2 outer cables, guessing this is about 1.5m.

104 waypoints within a Ø12m area borders the SDK limits for the minimum 3d distance between 2 waypoints.
This mission is more suitable for a drone with RTK (Real-time kinematic positioning).

Also I wonder if the number of photos actually taken equals the number of photos that should be taken according to the mission (most likely 104 when each waypoint has a “Take Photo” Action).
If it does not, than it could well be that the second photo for instance belongs to WP88 instead of WP90.
Assuming the inner circel has a diameter of 6m, then the distance between the 16 waypoints on that circel (22.5° apart) is only 1.2m, and on the outer circel (Ø12m) 2.3m.
This (to me) seems a more logical explanation of what’s realy happening.

A plot of the list of chronological photos you provided in Google Earth seems to confirm this.
Also it seems that photo 533 is opposite of photo 516, not photo 532.


These values are directly from pictures. But I obtained them using exifread Python library.

And that’s why I’m curious.

It’s because of rounding. There are 4 photos from 8 sides, so there is

I’m sure. Anyway, You can see it in mission hub.

I needed this number of waypoints, because If there were only ones with photos, drone wasn’t able to head into POI. I needed to add some additional WP, even in the same coordinates, to make drone head into POI.

Here You are list of coordinates from pictures:
2025-07-14 DJI_0516.JPG → 51.9756875, 15.515397972222223
2025-07-14 DJI_0517.JPG → 51.9756895, 15.5153795
2025-07-14 DJI_0518.JPG → 51.97568836111111, 15.515365666666666
2025-07-14 DJI_0519.JPG → 51.97569027777778, 15.515350222222223
2025-07-14 DJI_0520.JPG → 51.97574619444445, 15.515358194444444
2025-07-14 DJI_0521.JPG → 51.975737055555555, 15.515343444444444
2025-07-14 DJI_0522.JPG → 51.975732416666666, 15.5153335
2025-07-14 DJI_0523.JPG → 51.975726305555554, 15.515326555555555
2025-07-14 DJI_0524.JPG → 51.97577102777778, 15.515267055555556
2025-07-14 DJI_0525.JPG → 51.97575916666667, 15.515266583333334
2025-07-14 DJI_0526.JPG → 51.975749722222226, 15.51526575
2025-07-14 DJI_0527.JPG → 51.97574177777778, 15.515263277777779
2025-07-14 DJI_0528.JPG → 51.975746666666666, 15.515173583333333
2025-07-14 DJI_0529.JPG → 51.97573752777778, 15.515191277777777
2025-07-14 DJI_0530.JPG → 51.975731833333334, 15.515198611111112
2025-07-14 DJI_0531.JPG → 51.975727472222225, 15.515208472222222
2025-07-14 DJI_0532.JPG → 51.97569030555556, 15.51513511111111
2025-07-14 DJI_0533.JPG → 51.97568888888889, 15.515158583333333
2025-07-14 DJI_0534.JPG → 51.97568808333334, 15.51517075
2025-07-14 DJI_0535.JPG → 51.975689361111115, 15.515184805555556
2025-07-14 DJI_0536.JPG → 51.97563341666667, 15.515174027777778
2025-07-14 DJI_0537.JPG → 51.975641805555554, 15.515189472222222
2025-07-14 DJI_0538.JPG → 51.97564866666667, 15.515200333333333
2025-07-14 DJI_0539.JPG → 51.97565627777778, 15.515212277777778
2025-07-14 DJI_0540.JPG → 51.97560936111111, 15.51526288888889
2025-07-14 DJI_0541.JPG → 51.97562275, 15.515266666666667
2025-07-14 DJI_0542.JPG → 51.97562994444445, 15.51526513888889
2025-07-14 DJI_0543.JPG → 51.97563986111111, 15.51526586111111
2025-07-14 DJI_0544.JPG → 51.97563202777778, 15.515358277777779
2025-07-14 DJI_0545.JPG → 51.975642972222225, 15.515345416666667
2025-07-14 DJI_0546.JPG → 51.975647555555554, 15.515335305555556
2025-07-14 DJI_0547.JPG → 51.975653111111114, 15.515326833333333
2025-07-14 DJI_0548.JPG → 51.975688500000004, 15.515388333333334
2025-07-14 DJI_0549.JPG → 51.97571702777778, 15.51538325
2025-07-14 DJI_0550.JPG → 51.975742805555555, 15.515354277777778
2025-07-14 DJI_0551.JPG → 51.97575944444445, 15.515314055555555
2025-07-14 DJI_0552.JPG → 51.975765305555555, 15.515266666666667
2025-07-14 DJI_0553.JPG → 51.97576052777778, 15.515219138888888
2025-07-14 DJI_0554.JPG → 51.97574372222223, 15.51518075
2025-07-14 DJI_0555.JPG → 51.97571852777778, 15.515152416666666
2025-07-14 DJI_0556.JPG → 51.97568952777778, 15.515142194444444
2025-07-14 DJI_0557.JPG → 51.97566030555556, 15.515151444444445
2025-07-14 DJI_0558.JPG → 51.97563572222222, 15.51517786111111
2025-07-14 DJI_0559.JPG → 51.97561913888889, 15.51521825
2025-07-14 DJI_0560.JPG → 51.97561291666667, 15.515265472222222
2025-07-14 DJI_0561.JPG → 51.97561894444445, 15.515312833333333
2025-07-14 DJI_0562.JPG → 51.975634750000005, 15.51535325
2025-07-14 DJI_0563.JPG → 51.975659472222226, 15.515379694444444
2025-07-14 DJI_0564.JPG → 51.975688222222225, 15.51534038888889
2025-07-14 DJI_0565.JPG → 51.975705805555556, 15.515333694444445
2025-07-14 DJI_0566.JPG → 51.975720305555555, 15.515317388888889
2025-07-14 DJI_0567.JPG → 51.97572983333333, 15.515293805555556
2025-07-14 DJI_0568.JPG → 51.975733777777776, 15.515267472222222
2025-07-14 DJI_0569.JPG → 51.97573041666667, 15.515237777777777
2025-07-14 DJI_0570.JPG → 51.97572097222223, 15.51521588888889
2025-07-14 DJI_0571.JPG → 51.9757065, 15.51520025
2025-07-14 DJI_0572.JPG → 51.975689305555555, 15.515193083333333
2025-07-14 DJI_0573.JPG → 51.97567227777778, 15.51519888888889
2025-07-14 DJI_0574.JPG → 51.97565847222222, 15.515214194444445
2025-07-14 DJI_0575.JPG → 51.97564852777778, 15.515237944444445
2025-07-14 DJI_0576.JPG → 51.97564477777778, 15.515265277777777
2025-07-14 DJI_0577.JPG → 51.975647583333334, 15.515292888888888
2025-07-14 DJI_0578.JPG → 51.975656444444446, 15.51531661111111
2025-07-14 DJI_0579.JPG → 51.975671500000004, 15.515332583333333

And here are coordinates from WP with take photo action:
|51.975689|15.51539724831707|16|180|
|51.975689|15.515379748541461|16|180|
|51.975689|15.515365165395119|16|180|
|51.975689|15.515353498878046|16|180|
|51.97574616817311|15.51535880657502|16|225|
|51.97573854575003|15.515346432365018|16|225|
|51.9757321937308|15.515336120523347|16|225|
|51.97572711211541|15.515327871050014|16|225|
|51.975769848005754|15.515266|16|270|
|51.97575906827165|15.515266|16|270|
|51.9757500851599|15.515266|16|270|
|51.975742898670504|15.515266|16|270|
|51.97574616817311|15.515173193424982|16|315|
|51.97573854575003|15.515185567634983|16|315|
|51.9757321937308|15.515195879476654|16|315|
|51.97572711211541|15.515204128949987|16|315|
|51.975689|15.51513475168293|16|0|
|51.975689|15.51515225145854|16|0|
|51.975689|15.515166834604882|16|0|
|51.975689|15.515178501121955|16|0|
|51.975631831826895|15.515173193424982|16|45|
|51.97563945424997|15.515185567634983|16|45|
|51.975645806269206|15.515195879476654|16|45|
|51.9756508878846|15.515204128949987|16|45|
|51.97560815199425|15.515266|16|90|
|51.975618931728356|15.515266|16|90|
|51.9756279148401|15.515266|16|90|
|51.9756351013295|15.515266|16|90|
|51.975631831826895|15.51535880657502|16|135|
|51.97563945424997|15.515346432365018|16|135|
|51.975645806269206|15.515336120523347|16|135|
|51.9756508878846|15.515327871050014|16|135|
|51.975689|15.515389956743899|16|180.0|
|51.97571822034833|15.515380521098605|16|202.5|
|51.9757429921635|15.515353650654186|16|225.0|
|51.975759544161214|15.515313436192221|16|247.5|
|51.97576535644988|15.515266|16|270.0|
|51.975759544161214|15.51521856380778|16|292.5|
|51.9757429921635|15.515178349345815|16|315.0|
|51.97571822034833|15.515151478901396|16|337.5|
|51.975689|15.515142043256102|16|0.0|
|51.97565977965168|15.515151478901396|16|22.5|
|51.97563500783651|15.515178349345815|16|45.0|
|51.97561845583879|15.51521856380778|16|67.5|
|51.97561264355013|15.515266|16|90.0|
|51.97561845583879|15.515313436192221|16|112.5|
|51.97563500783651|15.515353650654186|16|135.0|
|51.97565977965168|15.515380521098605|16|157.5|
|51.975689|15.515338915731705|17|180.0|
|51.97570618844019|15.51533336535212|17|202.5|
|51.97572076009617|15.515317559208345|17|225.0|
|51.975730496565426|15.515293903642483|17|247.5|
|51.97573391555875|15.515266|17|270.0|
|51.975730496565426|15.515238096357518|17|292.5|
|51.97572076009617|15.515214440791656|17|315.0|
|51.97570618844019|15.51519863464788|17|337.5|
|51.975689|15.515193084268295|17|0.0|
|51.97567181155981|15.51519863464788|17|22.5|
|51.97565723990383|15.515214440791656|17|45.0|
|51.97564750343458|15.515238096357518|17|67.5|
|51.97564408444126|15.515266|17|90.0|
|51.97564750343458|15.515293903642483|17|112.5|
|51.97565723990383|15.515317559208345|17|135.0|
|51.97567181155981|15.51533336535212|17|157.5|

Would you share two things:

  1. The Litchi mission
  2. AirData flight log for this flight.

Mission: I named it “Electric Pole Trapez” and unchecked private, but don’t know You will find it this way.
AirData: Jul 14th, 2025 10:54AM | General / Overview | DJI GO log 5.15.0 | Poland | Airdata UAV

But anyway, even with good accuracy it won’t feed my client needs. They want to have photosin with parallel lines, like it is on the first photo. So I would need dynamic POI with dynamic direction. Without this I need to do it manually.

I looked at your flight log. It has data corresponding to 363 photos. My guess is that this flight log contains several attempts at this mission. Or, are you really capturing 363 photos?

In order for me to access your Litchi mission, you would have to copy the URL and post it here.

Here is a top-down view of the AirData data with the mission clamped to ground. Each red dot represents a photo location.

Next is a side view of the mission in 3D. What I want to do is overlay this data with your Litchi mission to see how well they correlate.


You can also view this AirData mission where photos are taken using the new Litchi Mission Hub (v2):

I don’t think so. This day I did this mission twice, but this will be 128 and manually did 40 photos.

Url to this mission: Mission Hub - Litchi

Link to mission in csv file on my Google Deive: https://drive.google.com/file/d/1FNrSVPjvfomHY2QVA0Lb9QVv9pbigh2-/view?usp=sharing

Your flight log did indeed have multiple missions in it. I converted your flight log to a Litchi mission taking data points only where a photo was captured. I then only extracted data to match the number of photos taken and the headings in the original, programmed Litchi mission you provided.

I then overlayed the flight paths of these two missions in Google Earth Pro. This way I can compare in 3D the original flight design and the actual flight path. The result is shown below:


In the above screen capture, the yellow line represents your programmed Litchi mission. The orange line represents the actual, flown mission from your flight log taken from AirData.

After comparing these two, my conclusion is that your drone successfully flew this mission with the expected accuracy. In my opinion, the drone faithfully executed this mission with great accuracy.

Things to note:

  1. The orange line (AirData flight path) contains some diagonal lines that don’t seem to match the computed/yellow path. This is because the original, computed path, contained a number of waypoints where no photo was taken. I only extracted GPS coordinates where a photo was taken so the AirData (orange) path skipped the non-photo waypoints of the original, computed mission.
  2. There are some slight deviations in the radial portions of the flight path. The waypoints along the radial yellow lines are computed to be completely straight. The actual flown path along the radial orange lines are slightly crooked, which is expected.

The only major error I see in this mission is in its placement. See the image below:


As you can see, the POI (and the entire mission) is centered on the upper tip of the electrical pole. Because of parallax, this mission is not actually centered on the pole. When trying to place a POI (or any type of point) directly on top of a tall object shown in Google Maps, the base of that object should be used as the reference. This mission should have been placed roughly 3m to the south and slightly to the east.

From this data I can tell that the two images posted earlier in this thread were not captured 180 degrees from each other. The metadata in those images could be used to confirm that.

2 Likes

Thank You, this is reasonable explanation for me. The first photo confused me and I thought I had set the PIO correctly.
Here is the whole set: https://photos.app.goo.gl/qR1vL2AcGdSacCzi8

I have moved this discussion to its own thread since it was not directly related to Litchi Pilot.

I extracted the yaw angles (headings) from the 16 photos around the outer rim of your mission. They correspond pretty closely with the programmed values.

Programmed Heading Actual Heading Error
-90 -88.7 -1.3
-112.5 -112.3 -0.2
-135 -133.7 -1.3
-157.5 -156.3 -1.2
-180 -179.5 -0.5
157.5 158.4 -0.9
135 136.6 -1.6
112.5 114.4 -1.9
90 91.9 -1.9
67.5 68.6 -1.1
45 46.4 -1.4
22.5 24.3 -1.8
0 1.9 -1.9
-22.5 -21.3 -1.2
-45 -44.3 -0.7
-67.5 -66.1 -1.4
1 Like