Unmanned aerial vehicle communication control method and apparatus, electronic device, and storage medium

By detecting the drone's status and forwarding control requests after authentication via a server, combined with TCP protocol and token identification, the issues of flexibility and security in drone communication control are resolved, enabling remote control and resource saving.

CN116208389BActive Publication Date: 2026-06-23ZEROTECH (SHENZHEN) INTELLIGENCE ROBOT CO LTD

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
ZEROTECH (SHENZHEN) INTELLIGENCE ROBOT CO LTD
Filing Date
2023-01-19
Publication Date
2026-06-23

AI Technical Summary

Technical Problem

The communication control of drones is limited by the communication distance of the remote control terminal, resulting in low flexibility and insufficient communication security.

Method used

The server obtains control requests from the front end, detects whether the drone is in a live broadcast state, and completes communication authentication. Then, it forwards the request to the remote control and feeds back the response information from the remote control to the front end. The TCP protocol is used to establish a communication connection to save server resources, and token identification and authentication are used to ensure security.

Benefits of technology

This has improved the flexibility of drone communication control, ensured communication security, and reduced the waste of server resources.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN116208389B_ABST
    Figure CN116208389B_ABST
Patent Text Reader

Abstract

The application provides a UAV communication control method and device, electronic equipment and storage medium. The method is applied to a server, and the method comprises the following steps: obtaining a control request sent by a front end for a UAV, wherein the control request comprises an identifier of the UAV; detecting whether the UAV is in a live broadcast state based on the identifier; detecting whether the UAV and the server have completed communication authentication based on the identifier; if it is detected that the UAV is in the live broadcast state and it is detected that the UAV and the server have completed the communication authentication, forwarding the control request to a remote control end of the UAV; obtaining response information generated by the remote control end in response to the control request, and forwarding the response information to the front end. The embodiment of the application enables the front end of the non-remote control end to remotely control the UAV, improves the flexibility of the UAV communication control, and ensures the safety of the UAV communication control.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This application relates to the field of unmanned aerial vehicles (UAVs), specifically to a UAV communication control method, device, electronic equipment, and storage medium. Background Technology

[0002] Drones typically perform flight missions under the control of a corresponding remote control terminal. For example, a user holds a remote control terminal and issues flight commands to the drone, instructing it to perform flight missions. Due to limitations in communication distance, the user on the remote control terminal can only communicate and control the drone within a very limited communication range, resulting in low flexibility in drone communication and control. Summary of the Invention

[0003] One objective of this application is to provide a method, device, electronic device, and storage medium for unmanned aerial vehicle (UAV) communication control, which enables remote control of the UAV from a non-remote control end, thereby improving the flexibility of UAV communication control and ensuring the security of UAV communication control.

[0004] According to one aspect of the embodiments of this application, a drone communication control method is disclosed, the method being applied to a server, the method comprising:

[0005] Obtain the control request sent by the front end to the drone, wherein the control request contains the identifier of the drone;

[0006] Based on the identifier, it is detected whether the drone is in a live streaming state;

[0007] Based on the identifier, detect whether the drone and the server have completed communication authentication;

[0008] If it is detected that the drone is in a live broadcast state, and it is detected that the drone has completed communication authentication with the server, then the control request is forwarded to the drone's remote control terminal;

[0009] The response information generated by the remote control terminal in response to the control request is obtained, and the response information is forwarded to the front end.

[0010] According to one aspect of the embodiments of this application, a drone communication control device is disclosed, the device being disposed on a server, the device comprising:

[0011] The front-end communication module is configured to acquire control requests sent by the front end to the drone, wherein the control requests contain the identifier of the drone;

[0012] The live streaming detection module is configured to detect whether the drone is in a live streaming state based on the identifier;

[0013] The communication authentication detection module is configured to detect, based on the identifier, whether the drone and the server have completed communication authentication;

[0014] The request forwarding module is configured to forward the control request to the remote control terminal of the drone if it is detected that the drone is in a live broadcast state and that the drone has completed communication authentication with the server.

[0015] The response forwarding module is configured to obtain response information generated by the remote control terminal in response to the control request, and forward the response information to the front end.

[0016] In an exemplary embodiment of this application, the live streaming detection module is configured as follows:

[0017] Based on the identifier, locate the live streaming record information generated by the server when the drone applied for live streaming;

[0018] Based on the live streaming status information in the live streaming record information, confirm whether the drone is in a live streaming state.

[0019] In an exemplary embodiment of this application, the communication authentication detection module is configured as follows:

[0020] Detect whether a communication authentication identifier generated based on the identifier is recorded;

[0021] If the communication authentication identifier is recorded, it is confirmed that the drone and the server have completed communication authentication;

[0022] If the communication authentication identifier is not recorded, it is confirmed that the drone and the server have not completed communication authentication.

[0023] In one exemplary embodiment of this application, the device is configured as follows:

[0024] After establishing a communication connection with the remote control terminal, in response to the parameter information sent by the remote control terminal, the remote control terminal is authenticated, wherein the parameter information includes the identifier;

[0025] After authentication is completed on the remote control terminal, it is detected whether the drone is in a live broadcast state;

[0026] After confirming that the drone is in a live streaming state, a communication authentication identifier is generated and recorded based on the identifier to describe that the drone and the server have completed communication authentication.

[0027] In one exemplary embodiment of this application, after confirming that the drone is in a live streaming state, the device is configured to:

[0028] Generate and record the token identifier of the remote control terminal, and send the token identifier of the remote control terminal to the remote control terminal;

[0029] In response to the token identifier and private data sent by the remote control terminal, detect whether the token identifier sent by the remote control terminal is recorded;

[0030] If a token identifier sent by the remote control terminal is recorded, the private data is associated with and stored with the drone.

[0031] In an exemplary embodiment of this application, the private data of the remote control terminal includes: the device data of the remote control terminal and the flight control data of the drone.

[0032] In an exemplary embodiment of this application, the parameter information further includes: timestamp information and signature information.

[0033] In an exemplary embodiment of this application, when the control request includes a request to view the flight path of the drone, the response information includes the flight path of the drone;

[0034] When the control request includes a request to view the drone's pod view, the response information includes the drone's pod view.

[0035] In one exemplary embodiment of this application, the response information further includes live streaming parameters describing the current live streaming configuration of the drone.

[0036] In an exemplary embodiment of this application, the remote control terminal and the server establish a communication connection using the Transmission Control Protocol (TCP).

[0037] According to one aspect of the embodiments of this application, an electronic device is disclosed, comprising: one or more processors; and a storage device for storing one or more programs, which, when executed by the one or more processors, cause the electronic device to implement any of the above embodiments.

[0038] According to one aspect of the embodiments of this application, a computer program medium is disclosed, on which computer-readable instructions are stored, which, when executed by a computer's processor, cause the computer to perform any of the above embodiments.

[0039] According to one aspect of the embodiments of this application, a computer program product or computer program is provided, which includes computer instructions stored in a computer-readable storage medium. A processor of a computer device reads the computer instructions from the computer-readable storage medium and executes the computer instructions, causing the computer device to perform the methods provided in the various optional implementations described above.

[0040] In this embodiment, after the server receives a control request from the front end for the drone, based on the drone's identifier included in the control request, if it detects that the drone is in a live streaming state and that the drone and the server have completed communication authentication, it forwards the control request to the drone's remote control terminal. Then, the server forwards the response information generated by the remote control terminal in response to the control request to the front end. In this way, the front end, which is not a remote control terminal, can remotely control the drone, improving the flexibility of drone communication control; and the detection process of whether communication authentication has been completed ensures the security of drone communication control.

[0041] Other features and advantages of this application will become apparent from the following detailed description, or may be learned in part from practice of this application.

[0042] It should be understood that the above general description and the following detailed description are merely exemplary and do not limit this application. Attached Figure Description

[0043] The above and other objectives, features and advantages of this application will become more apparent from a detailed description of exemplary embodiments thereof with reference to the accompanying drawings.

[0044] Figure 1 A schematic diagram of an exemplary system architecture according to an embodiment of this application is shown.

[0045] Figure 2 A flowchart of a drone communication control method according to an embodiment of this application is shown.

[0046] Figure 3 A detailed flowchart illustrating the communication control of a drone according to an embodiment of this application is shown.

[0047] Figure 4 A block diagram of a drone communication control device according to an embodiment of this application is shown.

[0048] Figure 5 A hardware diagram of an electronic device according to an embodiment of this application is shown. Detailed Implementation

[0049] Exemplary embodiments will now be described more fully with reference to the accompanying drawings. However, these exemplary embodiments can be implemented in many forms and should not be construed as limited to the examples set forth herein; rather, they are provided to make the description of this application more comprehensive and complete, and to fully convey the concept of the exemplary embodiments to those skilled in the art. The drawings are merely illustrative of this application and are not necessarily drawn to scale. The same reference numerals in the drawings denote the same or similar parts, and therefore repeated descriptions of them will be omitted.

[0050] Furthermore, the described features, structures, or characteristics can be combined in any suitable manner in one or more exemplary embodiments. Numerous specific details are provided in the following description to give a full understanding of exemplary embodiments of this application. However, those skilled in the art will recognize that the technical solutions of this application can be practiced with one or more of the specific details omitted, or other methods, components, steps, etc., can be employed. In other instances, well-known structures, methods, implementations, or operations are not shown or described in detail to avoid obscuring various aspects of this application.

[0051] Some of the block diagrams shown in the accompanying drawings are functional entities and do not necessarily correspond to physically or logically independent entities. These functional entities can be implemented in software, in one or more hardware modules or integrated circuits, or in different network and / or processor devices and / or microcontroller devices.

[0052] This application provides a drone communication control method, which is applied to a server. The server uses this drone communication control method to enable the drone's remote control terminal to receive control requests sent by the front end and respond to the control requests, thereby enabling the front end to remotely control the drone.

[0053] For details, see Figure 1 The diagram illustrates an exemplary system architecture according to an embodiment of this application. In one embodiment, the terminal directly controlling the drone 104 is a remote control terminal 103. The remote control terminal 103 can control the actions of the drone 104 (e.g., changing the drone's flight destination, changing the drone's tracking target, etc.), and can also collect relevant data of the drone 104 (e.g., collecting the drone's flight path, collecting the drone's pod image, collecting the drone's flight altitude, etc.). Simultaneously, the remote control terminal 103 also acts as an agent for the drone 104 to interact with the outside world. The remote control terminal 103 includes, but is not limited to, personal computers, tablets, mobile phones, etc.

[0054] The front-end 102 is typically located separately from the remote control 103. When the front-end 102 needs to instruct the drone 104 to perform a specific action or to acquire relevant data from the drone 104, it sends a control request generated for the drone 104 to the server 101. The server 101 then forwards the control request to the remote control 103 according to the drone communication control method provided in this application. The remote control 103 responds to the received control request, instructing the drone 104 to perform a specific action or acquiring relevant data from the drone 104, then generates response information and sends it to the server 101. Finally, the server 101 forwards the response information to the front-end 102. The front-end 102 includes, but is not limited to, personal computers, tablets, and mobile phones.

[0055] Figure 2 A flowchart of the UAV communication control method provided in this application is shown. The method is applied to a server and includes:

[0056] Step S210: Obtain the control request sent by the front end to the drone, the control request containing the drone's identifier;

[0057] Step S220: Based on the identifier, detect whether the drone is in a live streaming state;

[0058] Step S230: Based on the identifier, detect whether the drone and the server have completed communication authentication;

[0059] Step S240: If it is detected that the drone is in a live broadcast state and that the drone and the server have completed communication authentication, then the control request is forwarded to the drone's remote control terminal.

[0060] Step S250: Obtain the response information generated by the remote control terminal in response to the control request, and forward the response information to the front end.

[0061] Specifically, when the front-end needs to instruct the drone to perform a specific action or needs to obtain relevant data from the drone, it sends a control request generated for the drone to the server. The control request contains the drone's identifier (e.g., the drone's product identifier SN, Serial Number), which is mainly used to identify the drone.

[0062] After receiving the control request from the front end, the server extracts the drone's identifier from the request. Then, based on this identifier, it checks whether the drone is currently live-streaming. Whether the drone is live-streaming indicates whether it is currently interacting with the outside world. If the drone is not live-streaming, it means it is not currently interacting with the outside world, and the server will not forward the control request from the front end. Conversely, if the drone is live-streaming, it means it is currently interacting with the outside world, and the server can forward the control request from the front end.

[0063] Furthermore, considering the communication security between the drone and the server, this application also detects whether the drone and the server have completed communication authentication based on the drone's identifier. If the drone and the server have not completed communication authentication, it means that the communication between the drone and the server has not been authenticated as secure, and the server will not forward the control requests sent by the front end. Conversely, if the drone and the server have completed communication authentication, it means that the communication between the drone and the server has not been authenticated as secure, and the server can forward the control requests sent by the front end.

[0064] Since the interaction between the drone and the outside world is actually carried out by the remote control terminal in this embodiment of the application, when the server detects that the drone is in a live broadcast state and detects that the drone and the server have completed communication authentication, the server forwards the control request to the drone's remote control terminal.

[0065] After receiving a control request, the remote control terminal responds by instructing the drone to perform specific actions or acquiring relevant data from the drone. It then generates response information and sends it to the server. Finally, the server forwards the response information to the front end.

[0066] In summary, in this embodiment, after the server receives a control request from the front end for the drone, based on the drone's identifier included in the control request, if it detects that the drone is in a live streaming state and that the drone and the server have completed communication authentication, it forwards the control request to the drone's remote control terminal. Then, the server forwards the response information generated by the remote control terminal in response to the control request to the front end. In this way, a non-remote control terminal can remotely control the drone, improving the flexibility of drone communication control; and the detection process of whether communication authentication has been completed ensures the security of drone communication control.

[0067] In one embodiment, when the front end sends a control request to the drone that includes a request to view the drone's flight path, the remote control terminal generates response information that includes the drone's flight path in response to the control request.

[0068] In this embodiment, the front end sends a control request to the drone to view its flight path. After receiving the control request from the server, the remote control responds to the control request by obtaining the drone's flight path, encapsulating the flight path in response information, and then sending the response information to the front end.

[0069] Once the front-end receives the response information containing the drone's flight path, it can visualize and display the drone's flight path in real time, allowing users on the front-end to intuitively view the drone's real-time flight path.

[0070] In one embodiment, when the front end sends a control request to the drone that includes a request to view the drone's pod view, the remote control terminal generates response information that includes the drone's pod view in response to the control request.

[0071] In this embodiment, the front end sends a control request to the drone to view the drone's pod view. After receiving the control request from the server, the remote control responds to the control request by acquiring the drone's pod view, encapsulating the pod view in response information, and then sending the response information to the front end.

[0072] Once the front end receives the response information containing the drone's pod view, it can play the drone's pod view in real time for users on the front end to view the drone's live pod view.

[0073] In one embodiment, the drone's pod view may include multiple views from multiple directions (e.g., the view from the front of the drone, the view from the rear of the drone, the view from the left of the drone, and the view from the right of the drone).

[0074] In this embodiment, the control request sent by the front end to the drone may include not only viewing the drone's pod view, but also a label for the pod view, so as to play the pod view from a specific location of the drone in real time.

[0075] In one embodiment, the control request sent by the front end to the drone includes a request to change the drone's destination. Upon receiving the control request from the server, the remote control responds by changing the drone's destination. After the destination is changed, the drone can automatically replan a new flight path to reach the new destination.

[0076] In one embodiment, the drone automatically tracks targets in the pod's view to perform tasks such as circuit inspection, rescue search, and supply delivery. The tracked target is highlighted by a frame in the pod's view. When viewing the drone's live pod view, the user on the front end can manually select objects other than the tracked target in the pod's view through the playback interface to instruct the drone to change the tracked target to the selected object.

[0077] In response to an object selection detected in the playback interface, the front-end generates a control request and sends it to the server. The control request includes a request to change the tracking target to the selected object. Upon receiving the control request from the server, the remote control responds by changing the tracking target to the selected object.

[0078] In one embodiment, the response information generated by the remote control terminal also includes live streaming parameters describing the current live streaming configuration of the drone. Specifically, the live streaming parameters include, but are not limited to, network speed, screen resolution, and frame rate.

[0079] It should be noted that in related technologies, the remote control terminal and the server typically establish a communication connection using the User Datagram Protocol (UDP). When multiple remote control terminals establish communication connections with the server in parallel, if these terminals send data to the server through the same UDP address, and the server does not identify the data source, the received data will be mixed up and disordered. Therefore, related technologies need to allocate an independent UDP address to each remote control terminal to avoid data corruption. To achieve this, related technologies either set up a server with multiple ports open or set up multiple servers. Since the server needs to start the UDP service in advance regardless of whether the remote control terminal sends data, this method consumes a large number of ports, resulting in a significant waste of server resources.

[0080] Therefore, in one embodiment, the remote control terminal and the server establish a communication connection using the Transmission Control Protocol (TCP) to avoid consuming a large number of port slots and save server resources.

[0081] In one embodiment, the front-end and server establish a communication connection using the WebSocket protocol. In this way, the front-end can use a browser as a client to communicate with the server using the various feature-rich online interfaces provided by the browser.

[0082] In one embodiment, detecting whether a drone is in a live streaming state based on an identifier includes:

[0083] Based on the identifier, locate the live streaming record information generated by the server when the drone applied for live streaming;

[0084] Based on the live streaming status information in the live streaming record, confirm whether the drone is currently live streaming.

[0085] In this embodiment, if the remote control terminal can simultaneously and directly control and act as a proxy for multiple drones, when the remote control terminal applies for live streaming on behalf of the drones to the server, it can add the identifier of the drone applying for live streaming to the application request. Thus, the server generates live streaming record information for the drone based on the identifier of the drone applying for live streaming, and marks the live streaming status information in the live streaming record information as the information corresponding to the status during live streaming.

[0086] For example, remote control terminal A can simultaneously control and act as a proxy for drones a1 and a2. When remote control terminal A requests a live stream from the server on behalf of drone a1, it includes the serial number (SN) of drone a1 in the request. The server then generates live stream record information for drone a1 based on the SN of drone a1 and marks the live stream status information as "1" to indicate that drone a1 is in a live stream state.

[0087] If a remote control terminal can only directly control and act as a proxy for one drone at a time, the server can pre-store the association between the identifiers of each remote control terminal and the corresponding drone. When a remote control terminal requests a live stream from the server on behalf of a drone, it does not need to specifically include the identifier of the drone requesting the live stream in the request. The server can confirm the identifier of the drone requesting the live stream based on the identity of the remote control terminal and the stored association, and then generate the live stream record information for that drone, marking the live stream status information in the live stream record information with the information corresponding to the status during the live stream.

[0088] For example: Remote controller A can only directly control and act as a proxy for drone a at a time, and remote controller B can only control and act as a proxy for drone b at a time. The server pre-stores the following association: "Remote controller A - SN of drone a", "Remote controller B - SN of drone b". When remote controller A requests a live stream from the server on behalf of drone a, it does not need to explicitly include drone a's SN in the request. After receiving the request from remote controller A, the server verifies the identity of remote controller A and, based on the stored association, confirms that the drone requesting the live stream is identified as "SN of drone a". Therefore, the server generates the live stream record information for drone a based on drone a's SN and marks the live stream status information as "1" to indicate that drone a is in a live stream state.

[0089] In one embodiment, detecting whether the drone and the server have completed communication authentication based on the identifier includes:

[0090] Detect whether a communication authentication identifier generated based on the identifier is recorded;

[0091] If a communication authentication identifier is recorded, it confirms that the drone and the server have completed communication authentication.

[0092] If no communication authentication identifier is recorded, it is confirmed that the drone and the server have not completed communication authentication.

[0093] In this embodiment, under the proxy of the remote control terminal, after the drone and the server complete communication authentication, the server generates a communication authentication identifier for the drone based on the drone's identifier and records it.

[0094] After receiving the control request sent by the front end and obtaining the identifier of the drone targeted by the front end from the control request, the server checks whether a communication authentication identifier generated based on the identifier of the drone targeted by the front end is recorded.

[0095] If a communication authentication identifier generated based on the identifier of the drone targeted by the front end is recorded, it is confirmed that the drone targeted by the front end and the server have completed communication authentication; otherwise, if no communication authentication identifier generated based on the identifier of the drone targeted by the front end is recorded, it is confirmed that the drone targeted by the front end and the server have not completed communication authentication.

[0096] In one embodiment, the UAV communication control method provided in this application further includes:

[0097] After establishing a communication connection with the remote control terminal, the remote control terminal is authenticated in response to the parameter information sent by the remote control terminal. The parameter information includes an identifier.

[0098] After authentication on the remote control, check whether the drone is in a live streaming state;

[0099] After confirming that the drone is in a live broadcast state, a communication authentication identifier is generated and recorded based on the identifier to describe that the drone and the server have completed communication authentication.

[0100] In this embodiment, after the remote control terminal establishes a communication connection with the server, the remote control terminal sends parameter information containing the identifier of the drone represented by the remote control terminal to the server.

[0101] After receiving the parameter information sent by the remote control terminal, the server authenticates the terminal to verify its identity. If the authentication is successful, the remote control terminal is considered trustworthy; otherwise, if the authentication fails, the remote control terminal is considered untrustworthy.

[0102] After authentication on the remote control terminal, the server checks whether the drone represented by the remote control terminal is in a live streaming state. After confirming that the drone represented by the remote control terminal is in a live streaming state, the server generates a communication authentication identifier based on the identifier of the drone represented by the remote control terminal, indicating that the drone represented by the remote control terminal and the server have completed communication authentication.

[0103] In this embodiment, by authenticating the remote control terminal, the server reduces the possibility of malicious request attacks and reduces the waste of bandwidth resources.

[0104] In one embodiment, the parameter information further includes: timestamp information and signature information.

[0105] In this embodiment, the signature information of the remote control terminal is generated by processing the drone's identifier and timestamp information according to an agreed signature generation algorithm. After receiving the parameter information sent by the remote control terminal, the server extracts the drone's identifier, timestamp information, and signature information from it. Then, it processes the drone's identifier and timestamp information according to the same signature generation algorithm to generate verification information, and then compares the verification information with the signature information.

[0106] If the information to be verified matches the signature information, the remote control terminal is confirmed to have passed authentication; otherwise, if the information to be verified does not match the signature information, the remote control terminal is confirmed to have failed authentication.

[0107] It is understood that the parameter information sent by the remote control terminal may include not only timestamp information and signature information, but also other information that can be used to prove the authenticity of the remote control terminal. Therefore, this embodiment should not limit the function and scope of protection of this application.

[0108] In one embodiment, after confirming that the drone is in a live streaming state, the drone communication authentication method provided in this application further includes:

[0109] Generate and record the token identifier of the remote control terminal, and send the token identifier of the remote control terminal to the remote control terminal;

[0110] In response to the token identifier and private data sent by the remote control terminal, check whether the token identifier sent by the remote control terminal is recorded;

[0111] If a token identifier sent by the remote control is recorded, the private data will be associated with and stored with the drone.

[0112] In this embodiment, after the server successfully authenticates the remote control terminal and confirms that the drone represented by the remote control terminal is in a live broadcast state, the server generates and records a token for the remote control terminal, and then sends the token to the remote control terminal so that the server can verify the remote control terminal again when the remote control terminal makes subsequent requests to interact with the server.

[0113] After the remote control receives the token assigned to it by the server, when it needs to upload its private data to the server, the remote control sends the token and the private data together to the server to request the server to store its private data.

[0114] The server responds to the token and private data sent by the remote control, checking if the token sent by the remote control is recorded. If the token sent by the remote control is recorded, it means that the remote control has been verified, and the server then associates and stores the private data sent by the remote control with the drone it represents.

[0115] In one embodiment, the private data of the remote control terminal includes: device data of the remote control terminal and flight control data of the drone.

[0116] Specifically, the device data on the remote control end includes, but is not limited to: the type of operating system used by the remote control end (e.g., Android operating system, iOS operating system, WINDOWS operating system, etc.), the version of the operating system used by the remote control end, the CPU model of the remote control end, and the CPU temperature of the remote control end.

[0117] Flight control data for drones includes, but is not limited to: the drone's GPS, latitude and longitude, altitude, speed, air pressure at the drone's location, heading angle, and cumulative flight time.

[0118] Figure 3 A detailed flowchart illustrating the communication control process of an unmanned aerial vehicle (UAV) according to an embodiment of this application is shown.

[0119] See Figure 3 In one embodiment, after establishing a communication connection with the server using the TCP protocol, the remote control terminal sends the UAV's serial number (SN), timestamp information, and signature information to the server. After confirming the authenticity of the signature information based on the UAV's SN and timestamp information, the server verifies that the remote control terminal has passed authentication.

[0120] The server then verifies whether the drone being managed by the remote control is currently live streaming. Once confirmed, the server generates and records a token for the remote control, and then sends the token back to the remote control. Furthermore, the server generates a TCP authentication identifier based on the drone's serial number (SN) to verify the security of communication between the drone and the server during front-end interactions.

[0121] After establishing a communication connection with the server using the WebSocket protocol, the frontend logs in to the server using its username and password. Upon successful login, the server generates and records a token for the frontend, and then sends the token to the frontend so that the server can re-verify the frontend when making subsequent requests and interactions.

[0122] Before sending a control request to the server, the frontend needs to be re-authenticated by the server. Therefore, before sending the control request, the frontend sends its token, the drone's serial number (SN), timestamp information, and signature information to the server. After the server confirms that the frontend's token and signature information are trustworthy, it confirms that the frontend has passed the authentication.

[0123] After successful authentication, the front-end sends a control request for the drone to the server. Based on the drone's serial number (SN) included in the control request, if the server detects that the drone is in a live streaming state and has a recorded TCP authentication identifier for the drone, it forwards the control request to the remote control.

[0124] After the remote control generates a response message in response to the control request, it sends the response message and the remote control's token to the server. The server verifies the trustworthiness of the remote control's token and then processes the response message.

[0125] If the response information involves the operating system version of the remote control terminal, in order to be compatible with different versions, the server uses timer queue data built based on timers to process the response information on a timer basis to meet the requirements of real-time communication, and then sends it to the front end, where the front end displays the flight path, pod view, etc. contained in the response information.

[0126] Figure 4 A block diagram of a drone communication control device according to an embodiment of this application is shown. The device is located on a server and includes:

[0127] The front-end communication module 310 is configured to acquire control requests sent by the front end to the drone, wherein the control requests contain the identifier of the drone;

[0128] The live streaming detection module 320 is configured to detect whether the drone is in a live streaming state based on the identifier;

[0129] The communication authentication detection module 330 is configured to detect whether the drone and the server have completed communication authentication based on the identifier;

[0130] The request forwarding module 340 is configured to forward the control request to the remote control terminal of the drone if it is detected that the drone is in a live broadcast state and that the drone has completed communication authentication with the server.

[0131] The response forwarding module 350 is configured to obtain response information generated by the remote control terminal in response to the control request, and forward the response information to the front end.

[0132] In an exemplary embodiment of this application, the live streaming detection module is configured as follows:

[0133] Based on the identifier, locate the live streaming record information generated by the server when the drone applied for live streaming;

[0134] Based on the live streaming status information in the live streaming record information, confirm whether the drone is in a live streaming state.

[0135] In an exemplary embodiment of this application, the communication authentication detection module is configured as follows:

[0136] Detect whether a communication authentication identifier generated based on the identifier is recorded;

[0137] If the communication authentication identifier is recorded, it is confirmed that the drone and the server have completed communication authentication;

[0138] If the communication authentication identifier is not recorded, it is confirmed that the drone and the server have not completed communication authentication.

[0139] In one exemplary embodiment of this application, the device is configured as follows:

[0140] After establishing a communication connection with the remote control terminal, in response to the parameter information sent by the remote control terminal, the remote control terminal is authenticated, wherein the parameter information includes the identifier;

[0141] After authentication is completed on the remote control terminal, it is detected whether the drone is in a live broadcast state;

[0142] After confirming that the drone is in a live streaming state, a communication authentication identifier is generated and recorded based on the identifier to describe that the drone and the server have completed communication authentication.

[0143] In one exemplary embodiment of this application, after confirming that the drone is in a live streaming state, the device is configured to:

[0144] Generate and record the token identifier of the remote control terminal, and send the token identifier of the remote control terminal to the remote control terminal;

[0145] In response to the token identifier and private data sent by the remote control terminal, detect whether the token identifier sent by the remote control terminal is recorded;

[0146] If a token identifier sent by the remote control terminal is recorded, the private data is associated with and stored with the drone.

[0147] In an exemplary embodiment of this application, the private data of the remote control terminal includes: the device data of the remote control terminal and the flight control data of the drone.

[0148] In an exemplary embodiment of this application, the parameter information further includes: timestamp information and signature information.

[0149] In an exemplary embodiment of this application, when the control request includes a request to view the flight path of the drone, the response information includes the flight path of the drone;

[0150] When the control request includes a request to view the drone's pod view, the response information includes the drone's pod view.

[0151] In one exemplary embodiment of this application, the response information further includes live streaming parameters describing the current live streaming configuration of the drone.

[0152] In an exemplary embodiment of this application, the remote control terminal and the server establish a communication connection using the Transmission Control Protocol (TCP).

[0153] The following is for reference. Figure 5 To describe the electronic device 40 according to an embodiment of this application. Figure 5 The electronic device 40 shown is merely an example and should not impose any limitations on the functionality and scope of use of the embodiments of this application.

[0154] like Figure 5As shown, the electronic device 40 is manifested in the form of a general-purpose computing device. The components of the electronic device 40 may include, but are not limited to: at least one processing unit 410, at least one storage unit 420, and a bus 430 connecting different system components (including storage unit 420 and processing unit 410).

[0155] The storage unit stores program code that can be executed by the processing unit 410, causing the processing unit 410 to perform the steps described in the exemplary method description section of this specification according to various exemplary embodiments of the present invention. For example, the processing unit 410 can perform actions such as... Figure 2 The steps shown are as follows.

[0156] Storage unit 420 may include a readable medium in the form of a volatile storage unit, such as random access memory (RAM) 4201 and / or cache memory 4202, and may further include a read-only memory (ROM) 4203.

[0157] Storage unit 420 may also include a program / utility 4204 having a set (at least one) program module 4205, such program module 4205 including but not limited to: operating system, one or more application programs, other program modules and program data, each or some combination of these examples may include an implementation of a network environment.

[0158] Bus 430 can represent one or more of several types of bus structures, including a memory cell bus or memory cell controller, a peripheral bus, a graphics acceleration port, a processing unit, or a local bus using any of the various bus structures.

[0159] Electronic device 40 can also communicate with one or more external devices 500 (e.g., keyboard, pointing device, Bluetooth device, etc.), one or more devices that enable a user to interact with electronic device 40, and / or any device that enables electronic device 40 to communicate with one or more other computing devices (e.g., router, modem, etc.). This communication can be performed via input / output (I / O) interface 450. Input / output (I / O) interface 450 is connected to display unit 440. Furthermore, electronic device 40 can also communicate with one or more networks (e.g., local area network (LAN), wide area network (WAN), and / or public networks, such as the Internet) via network adapter 460. As shown, network adapter 460 communicates with other modules of electronic device 40 via bus 430. It should be understood that, although not shown in the figures, other hardware and / or software modules can be used in conjunction with electronic device 40, including but not limited to: microcode, device drivers, redundant processing units, external disk drive arrays, RAID systems, tape drives, and data backup storage systems.

[0160] Through the above description of the embodiments, those skilled in the art will readily understand that the exemplary embodiments described herein can be implemented by software or by combining software with necessary hardware. Therefore, the technical solutions according to the embodiments of this application can be embodied in the form of a software product, which can be stored in a non-volatile storage medium (such as a CD-ROM, USB flash drive, external hard drive, etc.) or on a network, including several instructions to cause a computing device (such as a personal computer, server, terminal device, or network device, etc.) to execute the method according to the embodiments of this application.

[0161] In an exemplary embodiment of this application, a computer-readable storage medium is also provided, on which computer-readable instructions are stored, which, when executed by a computer's processor, cause the computer to perform the methods described in the above method embodiments.

[0162] According to one embodiment of this application, a program product for implementing the methods in the above-described method embodiments is also provided. This product may employ a portable compact disc read-only memory (CD-ROM) and include program code, and may run on a terminal device, such as a personal computer. However, the program product of this invention is not limited thereto. In this document, a readable storage medium may be any tangible medium containing or storing a program that may be used by or in conjunction with an instruction execution system, apparatus, or device.

[0163] The program product may employ any combination of one or more readable media. A readable medium may be a readable signal medium or a readable storage medium. A readable storage medium may be, for example, but not limited to, an electrical, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, or any combination thereof. More specific examples of readable storage media (a non-exhaustive list) include: an electrical connection having one or more wires, a portable disk, a hard disk, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM or flash memory), optical fiber, portable compact disk read-only memory (CD-ROM), optical storage devices, magnetic storage devices, or any suitable combination thereof.

[0164] Computer-readable signal media may include data signals propagated in baseband or as part of a carrier wave, carrying readable program code. Such propagated data signals may take various forms, including but not limited to electromagnetic signals, optical signals, or any suitable combination thereof. A readable signal medium may also be any readable medium other than a readable storage medium, capable of sending, propagating, or transmitting programs for use by or in conjunction with an instruction execution system, apparatus, or device.

[0165] The program code contained on the readable medium may be transmitted using any suitable medium, including but not limited to wireless, wired, optical fiber, RF, etc., or any suitable combination thereof.

[0166] Program code for performing the operations of this invention can be written in any combination of one or more programming languages, including object-oriented programming languages ​​such as JAVA and C++, and conventional procedural programming languages ​​such as C or similar languages. The program code can execute entirely on the user's computing device, partially on the user's computing device, as a standalone software package, partially on the user's computing device and partially on a remote computing device, or entirely on a remote computing device or server. In cases involving remote computing devices, the remote computing device can be connected to the user's computing device via any type of network, including a local area network (LAN) or a wide area network (WAN), or it can be connected to an external computing device (e.g., via the Internet using an Internet service provider).

[0167] It should be noted that although several modules or units for the device used to perform actions have been mentioned in the detailed description above, this division is not mandatory. In fact, according to the embodiments of this application, the features and functions of two or more modules or units described above can be embodied in one module or unit. Conversely, the features and functions of one module or unit described above can be further divided and embodied by multiple modules or units.

[0168] Furthermore, although the steps of the method in this application are described in a specific order in the accompanying drawings, this does not require or imply that the steps must be performed in that specific order, or that all the steps shown must be performed to achieve the desired result. Additional or alternative steps may be omitted, multiple steps may be combined into one step, and / or a step may be broken down into multiple steps.

[0169] Through the above description of the embodiments, those skilled in the art will readily understand that the exemplary embodiments described herein can be implemented by software or by combining software with necessary hardware. Therefore, the technical solutions according to the embodiments of this application can be embodied in the form of a software product, which can be stored in a non-volatile storage medium (such as a CD-ROM, USB flash drive, external hard drive, etc.) or on a network, including several instructions to cause a computing device (such as a personal computer, server, mobile terminal, or network device, etc.) to execute the method according to the embodiments of this application.

[0170] Other embodiments of this application will readily occur to those skilled in the art upon consideration of the specification and practice of the invention disclosed herein. This application is intended to cover any variations, uses, or adaptations of this application that follow the general principles of this application and include common knowledge or customary techniques in the art not disclosed herein. The specification and examples are to be considered exemplary only, and the true scope and spirit of this application are indicated by the appended claims.

Claims

1. A communication control method for unmanned aerial vehicles (UAVs), characterized in that, The method is applied to a server, and the method includes: Obtain the control request sent by the front end to the drone, wherein the control request contains the identifier of the drone; Based on the identifier, it is detected whether the drone is in a live streaming state; Based on the identifier, detect whether the drone and the server have completed communication authentication; If it is detected that the drone is in a live broadcast state, and it is detected that the drone has completed communication authentication with the server, then the control request is forwarded to the drone's remote control terminal; The remote control terminal receives response information generated in response to the control request instructing the drone to perform an action or to acquire data from the drone, and forwards the response information to the front end.

2. The method according to claim 1, characterized in that, Based on the identifier, detecting whether the drone is in a live streaming state includes: Based on the identifier, locate the live streaming record information generated by the server when the drone applied for live streaming; Based on the live streaming status information in the live streaming record information, confirm whether the drone is in a live streaming state.

3. The method according to claim 1, characterized in that, Based on the identifier, detecting whether the drone and the server have completed communication authentication includes: Detect whether a communication authentication identifier generated based on the identifier is recorded; If the communication authentication identifier is recorded, it is confirmed that the drone and the server have completed communication authentication; If the communication authentication identifier is not recorded, it is confirmed that the drone and the server have not completed communication authentication.

4. The method according to claim 1, characterized in that, The method further includes: After establishing a communication connection with the remote control terminal, in response to the parameter information sent by the remote control terminal, the remote control terminal is authenticated, wherein the parameter information includes the identifier; After authentication is completed on the remote control terminal, it is detected whether the drone is in a live broadcast state; After confirming that the drone is in a live streaming state, a communication authentication identifier is generated and recorded based on the identifier to describe that the drone and the server have completed communication authentication.

5. The method according to claim 4, characterized in that, After confirming that the drone is in a live streaming state, the method further includes: Generate and record the token identifier of the remote control terminal, and send the token identifier of the remote control terminal to the remote control terminal; In response to the token identifier and private data sent by the remote control terminal, detect whether the token identifier sent by the remote control terminal is recorded; If a token identifier sent by the remote control terminal is recorded, the private data is associated with and stored with the drone.

6. The method according to claim 5, characterized in that, The private data of the remote control terminal includes: the device data of the remote control terminal and the flight control data of the drone.

7. The method according to claim 4, characterized in that, The parameter information also includes: timestamp information and signature information.

8. The method according to claim 1, characterized in that, When the control request includes a request to view the flight path of the drone, the response information includes the flight path of the drone; When the control request includes a request to view the drone's pod view, the response information includes the drone's pod view.

9. The method according to claim 8, characterized in that, The response information also includes live streaming parameters that describe the current live streaming configuration of the drone.

10. The method according to claim 1, characterized in that, The remote control terminal establishes a communication connection with the server using the Transmission Control Protocol (TCP).

11. A communication control device for unmanned aerial vehicles (UAVs), characterized in that, The device is located on a server, and the device includes: The front-end communication module is configured to acquire control requests sent by the front end to the drone, wherein the control requests contain the identifier of the drone; The live streaming detection module is configured to detect whether the drone is in a live streaming state based on the identifier; The communication authentication detection module is configured to detect, based on the identifier, whether the drone and the server have completed communication authentication; The request forwarding module is configured to forward the control request to the remote control terminal of the drone if it is detected that the drone is in a live broadcast state and that the drone has completed communication authentication with the server. The response forwarding module is configured to obtain response information generated by the remote control terminal in response to the control request instructing the drone to perform an action or to obtain data from the drone, and forward the response information to the front end.

12. An electronic device, characterized in that, include: One or more processors; A storage device for storing one or more programs, which, when executed by the one or more processors, cause the electronic device to perform the method as described in any one of claims 1 to 10.

13. A computer-readable storage medium, characterized in that, It stores computer-readable instructions that, when executed by the processor of a computer, cause the computer to perform the method described in any one of claims 1 to 10.