I’ve got my Parrot ANAFI Thermal recently since I’m working on a CWSI detection using this drone. The whole point is to be able to fly the drone, get real-time video stream (not thermal, since I’ve read it’s not possible at all) and then take a photo of a field. After that, I’ll download the image and do processing to get the thermal value of each point so that I can calculate the CWSI. The problem is that I’ve read through the documentation of Olympe and managed to get to the point where I can take a thermal photo. However, I’ve been having constant problems with the way the library works and I’ve make several topics on this forum but haven’t been able to get a response so far, I’m wondering if there’s a better way to get some help since I’m stuck at this point.
I can’t seem to stablish a constant connection with the drone, I usually have to retry the connection by running and quitting the python code manually several times, since I usually get a connection retries failed. Also, the thermal image I get is on JPEG format, when the camera capabilities says it supports DNG but even when that parameter is set it ignores it. The thermal photo I get is quite confusing as well, is it a Gray8 or Gray16 or something like that? How can I convert the Gray values to temperatures? All those things have been holding me back from advancing on this project and at this point I’m really lost on what I should do.
Hope someone can help me.
We are able to get a thermal stream from the drone using Olympe. For reference, we operate the Parrot Anafi USA but this code should work the same on the Anafi Thermal.
from olympe.messages.thermal import set_mode, set_rendering
import cv2 as cv
drone = olympe.Drone('192.168.42.1')
os.environ["OPENCV_FFMPEG_CAPTURE_OPTIONS"] = "rtsp_transport;udp"
vcap = cv.VideoCapture("rtsp://192.168.42.1/live", cv.CAP_FFMPEG)
ret, frame = vcap.read()
As for the connection retries issue, we think that could be a problem with newer versions of Olympe. Try using 7.5.0 or older. We experienced this retry timeout behavior with the Anafi USA for 7.7.0, 7.6.1, and 7.6.0. Unfortunately, we don’t have any insight into converting pixel values to temperatures. Does the FreeFlight app show temperatures when you use the thermal camera? If so, you may be able to look at the open source OpenFlight app on Github to find what conversion metrics Parrot uses.
Yep, I was using a different method but I definitely prefer this one, thanks for the help!
However, do you experience video delay as well? I have like around 1.5 seconds of delay on my camera without using the thermal mode.
What version of FFMPEG and OpenCV are you using? We were seeing 1 second or more latency when using older versions of both. Currently, we are running FFMPEG 4.4.2 and OpenCV 4.7.0 and we get approximately 500 ms of latency with this code. In our experience, you probably will not get much better than this unless you use Pdraw or carefully tune FFMPEG parameters. For our purposes, 500 ms is sufficient.
This topic was automatically closed 3 days after the last reply. New replies are no longer allowed.