For DJI, one of the most widespread drones in the world, the problem is aggravated by the fact that nearly all models require a remote controller with a very limited communication range.
To tackle this problem, we came up with the following ideas:
- communicate with a drone via the LTE/4G/5G mobile network
- use an antenna with a narrower radiation pattern
- use more powerful transmitters and wider communication channels
We investigated each idea and this is what we found.
Communication with the drone via the LTE/4G/5G mobile network
That sounded promising since mobile networks are expanding all over the world and mobile communications are covering more and more territory. Of course, flights sometimes take place in remote areas without LTE/4G/5G, but mobile network communication is OK for most use cases. So, we chose this option as the main one.
Antenna with a narrower radiation pattern
Using an antenna with a narrower radiation pattern can increase the communication range, but not dramatically. This option has an inherent challenge: a narrow pattern antenna must track the drone position and rotate accordingly. We began working on it because it seemed interesting, so we will publish a post about it in the future. Stay tuned!
More powerful transmitters and wider communication channels
Officially there are no devices yet that are compatible with DJI's most popular drones, so this option was discarded from the very beginning.
Controlling a DJI drone via 4G
To try creating an LTE/4G/5G-controlled drone, we opted for DJI as one of the most common drones on the market. We decided to place a 4G modem on the drone and connect it to an automatic flight controller. The analysis showed that there was only one way how to control a DJI drone via 4G with UgCS - to use DJI OSDK , an additional onboard computer (for example, Raspberry PI or NVidia Jetson Nano) and 4G modem plugged into it.
The DJI OSDK requirements specify the list of compatible drones: all Matrice models and those based on the A3 flight controller.
We assembled an A3-based test bench for local development and debugging. And after successful tests, assembled the full system. The photo with the equipment installed on M600 is provided below.
We also decided that the application should not only ensure integration with DJI OSDK but act as a full-fledged UgCS onboard VSM (vehicle specific module). That is, the application should allow the drone to connect to UgCS directly via LTE/4G/5G.
As soon as the prototype was ready and debugged, we performed some test flights with Matrice 600.
Moreover, one of these flights included crossing the border, and during it, we tested the switching between two mobile operators.
For details see the press release about the First cross-border BVLOS drone flight on the mobile network with UgCS
As a result of all the experiments, we had an application that meets the following requirements:
- The application can be installed on the drone using an additional Raspberry PI computer.
- The application allows controlling your DJI drone directly from UgCS without additional remote control or mobile app.
- The drone connects to an UgCS server via an LTE/4G/5G network.
- UgCS onboard VSM behavior can be modified to support specific requirements: for example, to add some actions during takeoff or manage a non-standard payload.
Considering that our solution could be useful to others, we decided to make it publicly available to simplify the development and use of various solutions based on UgCS and DJI OSDK. Download GitHub - ugcs/dji-onboard-vsm: UgCS VSM for DJI Onboard SDK for Raspberry PI and JetSon Nano
Here are possible use-cases for the application:
- The drone can be managed via the LTE/4G/5G mobile network, which significantly expands the range of drone use cases in areas covered by mobile Internet.
- This solution can help air traffic control bodies to easily track the drone, thus replacing ADS-B to some extent.
- Additional payload management features can be added.
- Instead of mobile communication channels, you can use any other data links that support TCP and UDP packets for video transmission.
- You can use our source code as an example and develop your own solution based on the DJI OSDK and UgCS.