-
Notifications
You must be signed in to change notification settings - Fork 13.5k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Payload mission log file / metadata #10189
Comments
Some thoughts:
|
This is somewhat externally based but what about how some of the companion computers do it. I have a Event38 companion computer that geotags the images in real-time, I connect it (it's a rpi) to telem2 (and my sony cam) and it pulls over all the geo info and adds it to the actual images as I take them (no post processing). I know that means there is an external board in the plane but maybe if we break it down a bit and see if there is something that can be done similarly since I think it's just a python script. Maybe no geotagging in real-time but at least the txt file for post processing. I might be off base here since this isn'y my forte but this definitely takes the headache out of it. |
Only certain models of Sony cameras allow you to write metadata to the image files from an external source. Most off-the-shelf cameras don’t let you do this. Of course, there are mapping cameras on the market that are specifically designed for drones and automatically geotag the images in real time, but not everybody uses those cameras. |
@FringerRinger event38 CC is not available anymore... I like the idea to have PC on board to take care for some tasks like this. But I'm not sure if there are any benefits in draining 2A for something that is not needed in real time. I agree that Pi could do tremendous work but rather for more complex tasks like visual analysis etc. In every survey workflow I've seen so far, there is always, a transfer of files from Cam solid state storage to PC and then to Stitching software. The idea is to make it as simple as possible and at the same time fast and convenient to make the parsing procedure.
In mapping we always have the copy process and transfer of files from a solid state medium to PC. We just make QGC do the copy process and at the same add its value to the transfer procedure. |
Is the concept here to create two log files for each flight?
I suppose both types of files would be viewable and downloadable in the QGC log download interface? |
Yes that is the idea... And yes both types of files should be downloadable from QGC. the ulg file for flight analysis purposes, which should happen relatively seldom given the PX4 is well set and the craft performs its regular duties. And the CSV file for everyday use for Mapping and other purposes if there are other events in the future. |
Update on this: @bkueng is starting to look into it. |
Here are some more thoughts on requirements/desirements from my perspective. I put the need for this into 2 categories:
If the log contains both categories of information, the Geotagging tool (e.g. the one in QGC) will need to know how to parse the image triggers and metadata. These logs should be a simple readable format, like .csv These logs will be used after the flight so real-time downloading (or background downloading) during flight isn't critical. However, it might be nice for a number of reasons, for example it might be nice to just have the logs available right there on the laptop/tablet in an immediately accessible folder location. If downloading during flight is the approach, lossy datalinks must be considered, also what happens to the logs in a loss of commnuications RTL event, etc. Logs should always be stored on the SDcard and be available to download over the datalink upon request (e.g. via QGC). Download time of a 1000 event log should be < 1 minute with 57kbaud serial modems (few seconds with megabit class datalinks). The image triggers and metadata should contain (at a minimum):
|
@Antiheavy Very accurate description thanks. I could give some ideas on top. Information Formatting for Pix4DHere is what we need for the Pix4D. Omega,Phi,Kappa are the oriantation angle of the camera lens plane. IE in perfectly aligned camera to IMU the Omega = 0, Phi = 0 and Kappa = 90 (the camera is landscape and regarding the Z plane it is rotated at 90 degrees.) The idea is to store more events in the Quick and Simple event log than just the events needed for geotagging. So in this quick log we can store Roll, Pitch and Yaw for the cam trigger events, but then the geo tagger (parser) could calculate the omega, phi and Kappa and export it to the CSV file that is needed by the Pix4D. Here is the format of the file needed by Pix4D. https://support.pix4d.com/hc/en-us/articles/202558539-Input-files#label2 I don't know how our current parser is implemented. But I think using RTKLib http://www.rtklib.com/ is what everybody else is doing. Emlid is using it in their reach https://emlid.com/reach/. So if we use RTKLib we could do a lot more regarding photogrammetri. Workflow:Having this Quick log download in real time is not high priority. Even I don't know if it is needed at all. You cannot geo tag without images, and you cannot have images downloaded in real time unless you use some 4G / LTE which is pointless for mapping work. But despite this it is good idea when the craft detects landing to push the Quick log to the QGC with a warning window pop up on the QGC screen. There is file structure already in the Documents: we could add Events Log folder and store the quick logs there. When we open the LOG view in QGC we could see a list The list could be like Then you select one of the logs you point to where the images are and push GEO-TAG button. Geo tagging is the same as the current geo tagging with small addition: you choose source folder that holds the images and destination folder to copy the images with POS meta data. + generate the CSV file with omega, phi, kappa angles formatted for Pix4D in the tagged folder. From then on there could be made a viewer that can view all the event types as you mentioned "flight statistics, system status changes (sensors, estimator, flight modes, etc), user comands" We can make a quick viewer for the mission on the map etc. That would be more of a simplistic log file for the user to interact with. The average user does not want to know what a .ulg is and how it works. ULG will allays stay in the professional hands in one way or the other and I hope (pray to god) used very very seldom. |
@Antiheavy GPS time and Date are not needed for the matched images in the generated csv file from the parser. because the Pix4D anly wants to see the coordinates of the image. The time and date is used during the parsing process to match real precision trigger timing to image camera captured timing. |
Thanks @LorenzMeier |
Thanks for all the input here. Let me collect what I have so far. Use-casesThese are the use-cases that I see for a mission log:
So it should contain:
Hardware setupsThe following setups should be supported:
ImplementationI plan to implement it as following:
Which gives almost 1MB for a 2 hour flight (and 2160 images). This is still quite large for telemetry download, but we can scale it down, in the extreme case to only the camera trigger message, which gives 138kB, and around 3min download time over a 1kb/s link. Does that sound ok? |
Great summary, this feature is really needed. Two comments:
|
@LorenzMeier @DonLakeFlyer @dagar @dogmaphobic I think "Mission names" could be a good human layer to the mission interface. Something to name and identify easily later when you have to parse or look in the archives, |
Describe problem solved by the proposed feature
Right now Geotagging requires a full log file, which is overkill for just camera trigger locations and battery status, etc.
Describe your preferred solution
We should have a way to download the mission logfile via telemetry. This should either work via MAVLink microservices (e.g. trigger events) or as one bulk MAVLink FTP file with only relevant events. Assuming we have 1000 events per flight and one event contains 8 double-precision floating point numbers, that would be 8 * 6 * 1000 = 48K on a 1 KByte/s link (out of which we have maybe 50% for logfile download, so 1.5 minutes for a fairly large flight.
That suggests it is not perfect from a UX perspective and sending the metadata during the flight might be preferable, as a flight with 1000 images would have been a fairly long mission.
Describe possible alternatives
Logfile download via microSD, which is painful
Additional context
The event interface plays also into this as this would be also things that are relevant. @bkueng @bresch.
The text was updated successfully, but these errors were encountered: