An idea of transmitting pictures through the mavlink data link

During long-distance flight, a serial communication module based on 4G network is usually used for mavlink connection. Because the distance is too far, neither the image signal nor the rc signal can be connected, so the status of the aircraft can only be judged by observing the data at the ground station. Normally this is fine. However, when encountering some high mountains or during the thunderstorm season, it is impossible to judge whether there is a mountain ahead through data transmission, nor can it be seen whether there are clouds and rain ahead. So I have an idea recently, which is to let the flight controller transmit pictures through the mavlink data link. First install a camera on the plane, such as openmv, and then let the camera output the image data captured by the zoom through the serial data cable. The flight control receives this data through the serial port, and then the flight control sends the image back to the ground station through the mavlink data link and displays it. This image does not need to be in real-time HD. The clarity only needs to see clearly whether the front will hit the mountain, and it doesn’t matter if the refresh rate is once every 10 seconds. So will everyone consider this method

That is not possible, there are no serial cameras, and even if you get one at 115kbps you could get one image every 5 minutes or so.

That is why nobody does that.

This seems to be possible, first using the OPENMV camera, which is a small programmable camera for image recognition, which can acquire images, compress them into files, and then link the compressed image files through the serial port and flight control Save it to the SD card of the flight controller, and finally, the ground station obtains the file through mavftp. 4G data transmission generally has a high baud rate, and mine uses a rate of 460K. The OPENMV image (320*240) is 226KB uncompressed, and 25.2K after being compressed into JPG. The actual test shows that the transmission time of this file using MAVFTP is about ten seconds (4g digital transmission). OPENMV can be programmed directly using PYTHON. Here, if the compression algorithm can be optimized a little bit, it can be done within 10 seconds.


If you have a 4G connection available, I think MAVFTP is a poor choice of transmission media. Even a networked microcontroller could achieve far better transmission speeds over a more pure TCP or UDP packet structure, and a companion computer might do even better. 4G should even support decent live video, if you so desired.

1 Like

You are right, 4G can indeed achieve real-time video transmission. But the problem is that special hardware and servers are required, and the use of dedicated ones will generate a lot of expenses. I have tried many methods. The first method is to use a 4G network camera. This is a very simple method, but the camera cannot transmit the mavlink protocol of the flight control, so I had to install two sets of 4G devices on the plane. I don’t think this makes sense. The second method is to find a 4G router and install it on the plane, then connect the data transmission and camera to the 4G router through WIFI, and then transmit it back to the ground. The problem with this method is that the 4G router is very easy to drop when it flies. It should be because it does not have very detailed user settings (the 4G data transmission in the previous picture has good stability, the most important thing is that after N seconds of no data, there will be a watchdog to restart the module. When flying in the air, 4G The device frequently switches base stations, and the special equipment is easy to lose the network and cannot be connected, and must be restarted to continue the connection). I’ve tried all these methods, but they don’t work. That’s why I thought of the method of using MAVLINK above. Of course, the most important thing is that I don’t have enough money to buy dedicated equipment :), because I’m just a player, not for commercial purposes