Data synchronization method, first robot and storage medium

By providing data synchronization methods in the robot system, obtaining and comparing target data between robots, the problem of inconsistency of multiple robot data is solved, data consistency is achieved, the robot's work efficiency is improved and accidents are reduced.

CN119439973APending Publication Date: 2025-02-14YOUDI ROBOT (WUXI) CO LTD
View PDF 0 Cites 1 Cited by

Patent Information

Application Number
CN202411467133.X
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2024-10-18
Publication Date
2025-02-14

AI Technical Summary

Technical Problem

In hotels, hotels and other service places, the data information (such as grid maps, preset paths, application versions) between multiple service robots is inconsistent, resulting in the inability to work normally between the robots, affecting work efficiency, and possible collisions, etc. Serious accident.

Method used

Provide a data synchronization method, by obtaining the target data of the first robot (including software version, map data and pre-planned path data) and the target data of the second robot running in the same area as it, to determine whether the two are the same, if not If the same is true, the data synchronization between the two is controlled to ensure that the data is consistent.

Benefits of technology

By synchronizing data to robots that meet the requirements of data synchronization, the data information between multiple robots is consistent, ensuring that the robot works normally, improving work efficiency, and reducing the occurrence of scratches and collisions.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119439973A_ABST
    Figure CN119439973A_ABST
Patent Text Reader

Abstract

The embodiment of the invention relates to the technical field of robots, in particular to a data synchronization method, a first robot and a storage medium, and the method comprises the steps that when a data synchronization demand condition is met, target data of the first robot is acquired, and the target data comprises a software version, map data and pre-planned path data; acquiring target data of a second robot operating in the same area as the first robot; according to the target data of the first robot and the target data of the second robot, whether the target data of the first robot is the same as the target data of the second robot is judged; and if not, controlling the first robot and the second robot to perform data synchronization. In the embodiment of the invention, data synchronization is carried out on the robots meeting the data synchronization demand conditions, so that the data information of the multiple robots is consistent, the normal work of the robots is ensured, the working efficiency of the robots is ensured, and the situations of scratching, collision and the like are reduced.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] Embodiments of the present invention relate to the field of robot technology, and in particular, to a data synchronization method, a first robot, and a storage medium. Background Art

[0002] Robots are mechanical devices that can automatically perform tasks. They can run pre-programmed programs to complete a variety of different types of tasks. With the development of mobile Internet and artificial intelligence technology, robots are widely used in various service places to provide customers with services such as navigation, item delivery, reception consultation, collaborative operations and sales of goods.

[0003] In service places such as hotels and guesthouses, in order to save labor costs, multiple service robots can be used to greet guests, lead guests to their rooms, deliver meals, deliver items to rooms, etc. There may be many complex situations in which robots work in these scenarios. If multiple robots working in the same scenario use inconsistent data information (for example, grid maps, preset paths, application versions), the robots may not work properly, affecting work efficiency, and even more serious accidents such as collisions may occur. Summary of the invention

[0004] In view of this, an embodiment of the present invention provides a data synchronization method, a first robot and a storage medium, aiming to solve the technical problem of inconsistent data information among multiple robots in the prior art.

[0005] To solve the above technical problems, the embodiments of the present invention provide the following technical solutions:

[0006] In a first aspect, an embodiment of the present invention provides a data synchronization method, the method comprising:

[0007] When the data synchronization requirement is met, target data of the first robot is obtained, wherein the target data includes software version, map data, and pre-planned path data;

[0008] Acquire target data of a second robot operating in the same area as the first robot;

[0009] determining, according to the target data of the first robot and the target data of the second robot, whether the target data of the first robot is the same as the target data of the second robot;

[0010] If they are not the same, the data of the first robot and the second robot are controlled to be synchronized.

[0011] In some embodiments, acquiring target data of a second robot operating in the same area as the first robot includes:

[0012] Determining, according to the area where the first robot is located, a second robot operating in the same area as the first robot;

[0013] A communication connection is established with the second robot, and an acquisition instruction is sent to the second robot, so that the second robot sends information of the target data of the second robot to the first robot after receiving the acquisition instruction.

[0014] In some embodiments, establishing a communication connection with the second robot includes:

[0015] A communication connection is established with the second robot through any one or more of an NFC module, a Bluetooth module, a Wi-Fi module and a ZigBee module.

[0016] In some embodiments, the first robot operates on a fixed path based on the map data and pre-planned path data.

[0017] In some embodiments, controlling the data synchronization between the first robot and the second robot includes:

[0018] Sending a request to the cloud to execute data synchronization on the second robot, so that the cloud executes the data synchronization task on the second robot according to a preset synchronization rule after receiving the request;

[0019] Alternatively, a communication connection is established with the second robot, and the target data of the first robot is sent to the second robot, so that the second robot performs a data synchronization task on the second robot after receiving the target data of the first robot.

[0020] In some embodiments, performing the data synchronization task on the second robot includes:

[0021] Updating the software version of the second robot so that the software version of the first robot is the same as the software version of the second robot;

[0022] updating the map data of the second robot so that the map data of the first robot is the same as the map data of the second robot;

[0023] The pre-planned path data of the second robot is updated so that the pre-planned path data of the first robot is the same as the pre-planned path data of the second robot.

[0024] In some embodiments, the method further comprises:

[0025] In response to the upgrade instruction, download the latest upgrade package;

[0026] If the version of the latest upgrade package is higher than the version of the local upgrade package, the data update and upgrade operation is performed according to the latest upgrade package.

[0027] In some embodiments, the method further comprises:

[0028] When the second robot deviates from the pre-planned path, the data synchronization requirement is met.

[0029] In a second aspect, an embodiment of the present invention provides a first robot, comprising:

[0030] A processor and a memory communicatively connected to the processor;

[0031] The memory stores computer program instructions executable by the processor, and when the computer program instructions are called by the processor, the processor executes any one of the data synchronization methods proposed in the first aspect.

[0032] In a third aspect, an embodiment of the present invention provides a computer-readable storage medium, on which is stored computer program instructions executable by a processor, and when the computer program instructions are called by the processor, the processor executes any one of the data synchronization methods proposed in the first aspect.

[0033] Beneficial effects of the embodiments of the present invention: Different from the prior art, the data synchronization method provided by the embodiments of the present invention includes: when the data synchronization requirements are met, obtaining the target data of the first robot, the target data including the software version, map data and pre-planned path data; obtaining the target data of the second robot running in the same area as the first robot; judging whether the target data of the first robot is the same as the target data of the second robot based on the target data of the first robot and the target data of the second robot; if they are not the same, controlling the data synchronization of the first robot and the second robot.

[0034] In the embodiment of the present invention, the method synchronizes data of robots that meet the data synchronization requirements to make the data information between multiple robots consistent, so as to ensure the normal operation of the robots, ensure the work efficiency of the robots, and reduce the occurrence of scratches, collisions, etc. BRIEF DESCRIPTION OF THE DRAWINGS

[0035] In order to more clearly illustrate the technical solutions in the embodiments of the present invention or the prior art, the following is a brief introduction to the drawings required for the description of the prior art or the embodiments. Obviously, the drawings described below only illustrate certain embodiments of the present invention and should not be regarded as limiting the scope of protection. For those of ordinary skill in the art, other related drawings can also be obtained based on these drawings without creative work.

[0036] Figure 1 is a schematic diagram of an application scenario of a data synchronization method provided by some embodiments of the present invention;

[0037] Figure 2 is a schematic structural diagram of a first robot provided by some embodiments of the present invention;

[0038] Figure 3 is a flowchart of a data synchronization method provided by some embodiments of the present invention;

[0039] Figure 4 yes Figure 3 A schematic diagram of a sub-flow chart of step S200 in the data synchronization method shown in the embodiment. DETAILED DESCRIPTION

[0040] In order to make the purpose and advantages of the embodiments of the present invention easier to understand, the technical solutions of the embodiments of the present invention will be clearly and completely described below in conjunction with the drawings in the embodiments of the present invention. Obviously, the described embodiments are only part of the embodiments of the present invention, not all of the embodiments. The detailed description of the embodiments of the present invention in the drawings below does not limit the scope of protection claimed by the present invention, but only represents the selected embodiments of the present invention. Based on the embodiments of the present invention, all other embodiments obtained by ordinary technicians in this field without making creative work are within the scope of protection of the present invention.

[0041] It should be noted that, if no conflict is constituted, the various technical features involved in the embodiments of the present invention described below can be combined with each other, and are all within the scope of protection of the present invention. In addition, although the functional modules are divided in the device or structural schematic diagram, and the logical order is shown in the flow chart, in some cases, the steps shown or described can be performed in a different order than the module division in the device, or in a different order than in the flow chart. In addition, the "first", "second", "third" and other similar expressions used herein do not limit the data and execution order, but are only for the purpose of convenience of explanation and to distinguish between the same or similar items with basically the same functions and effects, and cannot be understood as indicating or implying relative importance or implicitly indicating the number of technical features.

[0042] Unless otherwise defined, the technical terms and scientific terms used in this specification have the same meanings as those generally understood by those of ordinary skill in the art of the present invention. The terms used in this specification are only for the purpose of describing specific embodiments and are not intended to limit the present invention. It should be understood that the term "and / or" used in this specification includes any and all combinations of one or more of the related listed items.

[0043] See also Figure 1 , Figure 1A schematic diagram of an application scenario of a data synchronization method provided by some embodiments of the present invention is schematically shown.

[0044] like Figure 1 As shown, the application scenario includes a first robot 100, a second robot 201 and a second robot 202, and the first robot 100, the second robot 201 and the second robot 202 are located in the same area (ie, the first area).

[0045] In some embodiments, when the time interval set by the robot system is reached and the environment in which the robots (i.e., the first robot 100, the second robot 201, and the second robot 202) are located changes before the task is executed, it is considered that the data synchronization requirements are met between the first robot 100, the second robot 201, and the second robot 202.

[0046] When the data synchronization requirement is met, the target data of the first robot 100, the second robot 201 and the second robot 202 are obtained, and the target data of the first robot 100, the second robot 201 and the second robot 202 are compared and determined in an appropriate manner to determine whether they are the same. In the embodiment of the present invention, the target data includes software version, map data and pre-planned path data.

[0047] The software version refers to the specific version identifier of the robot's application software, which is used to distinguish different versions of the same application software and reflect changes, improvements, repairs or additions of new functions of the application software. In a robot system, the software version usually refers to the version of related application software such as the operating system, control system, navigation system and artificial intelligence module. Among them, keeping the software versions consistent among multiple robots is crucial for collaborative systems, because the functions, performance and compatibility of different versions of application software may be different, thus affecting the ability of multiple robots to work together.

[0048] Map data refers to environmental information used by robots for navigation, positioning, and path planning when performing tasks. For robot systems, map data usually represents a digital representation or model of the operating area, including environmental information such as terrain, obstacles, paths, and building structures. Map data is usually divided into types such as raster maps, topological maps, three-dimensional maps, and semantic maps. In a multi-robot system, especially when multiple robots work together in the same area, it is very important to ensure the consistency of map data. If the map data is inconsistent, the robots may not understand the working environment in sync, which will affect the effectiveness of multiple robots' collaboration and path planning.

[0049] Pre-planned path data refers to the movement route or action plan specified for the robot before it performs a task. The pre-planned path is usually calculated and planned based on the robot's map data, task requirements, and the initial conditions of its position. The purpose of pre-planned path data is to enable the robot to move according to the optimal route or specified rules, avoid obstacles, optimize travel time and energy consumption, and ensure that the task is completed safely and efficiently. In a multi-robot system, the consistency of pre-planned path data is particularly important. Multiple robots work in the same area, and the planned paths of multiple robots need to be coordinated to avoid collisions and conflicts. Therefore, when synchronizing data, sharing and adjusting path planning information are key measures to ensure collaborative work.

[0050] In some implementations, the MD5 values ​​of the target data of the first robot 100, the second robot 201, and the second robot 202 are extracted by using the MD5 algorithm, and the MD5 values ​​of the target data are compared to determine whether the target data of the first robot 100, the second robot 201, and the second robot 202 are the same. Of course, there may be any other suitable way to compare and determine whether the target data of the first robot 100, the second robot 201, and the second robot 202 are the same. Those skilled in the art may select a suitable way according to actual needs, and the embodiments of the present invention do not limit this in any way.

[0051] When it is determined that the target data of the first robot 100 is different from the target data of the second robot 201 and the second robot 202, it is necessary to synchronize the data of the first robot 100, the second robot 201 and the second robot 202 to synchronize the target data between the first robot 100, the second robot 201 and the second robot 202 to ensure that the first robot 100, the second robot 201 and the second robot 202 operating in the same area can perform work tasks safely, efficiently and in a coordinated manner.

[0052] It should be understood that in Figure 1 In the application scenario shown, only a situation of data synchronization between the first robot 100, the second robot 201 and the second robot 202 is schematically shown, which does not impose any limitation on any situation related to data synchronization such as the structure, type and number of the first robot and the second robot in other application scenarios or embodiments. For example, in some other application scenarios or embodiments, a larger number of second robots (for example, 4) may be included. In addition, the first robot and the second robot in some other application scenarios or embodiments may also include more than Figure 1 The first robot 100 and the second robot 201 (second robot 202) shown in the figure may have more or fewer components, or may have the same Figure 1The first robot 100 and the second robot 201 (second robot 202 ) shown have different configurations.

[0053] In the embodiment of the present invention, the first robot 100 and the second robot 201 (second robot 202) may be mobile robots based on the SLAM system, such as cleaning robots, delivery robots, pet robots, transport robots, nursing robots, and remote monitoring robots, etc. Among them, the cleaning robots include but are not limited to: sweeping robots, vacuuming robots, mopping robots, and floor washing robots, etc.

[0054] To facilitate understanding of the data synchronization method provided by the embodiment of the present invention, the first robot provided by the embodiment of the present invention is first introduced in detail.

[0055] See also Figure 2 , Figure 2 The structural diagram of the first robot 100 provided in some embodiments of the present invention is schematically shown.

[0056] like Figure 2 As shown, the first robot 100 includes at least one processor 110 and a memory 120 that are communicatively connected. Figure 2 The bus system 130 is used to connect a processor as an example. The various components in the first robot 100 are coupled together through the bus system 130, and the bus system 130 is used to realize the connection and communication between these components. It is easy to understand that the bus system 130 includes a power bus, a control bus, and a status signal bus in addition to a data bus. However, for the sake of clarity and brevity, Figure 2 In the figure, various buses are labeled as bus system 130. It can be understood that Figure 2 The structure shown in the embodiment is only for illustration and does not impose any limitation on the structure of the first robot 100. For example, the first robot 100 may also include Figure 2 More or fewer components as shown, or with Figure 2 Different configurations are shown.

[0057] Specifically, the processor 110 is used to provide computing and control capabilities to control the first robot 100 to perform corresponding tasks. For example, the first robot 100 is controlled to perform any one of the data synchronization methods provided in the embodiments of the present invention, or to perform any one of the steps in any possible implementation of any one of the data synchronization methods provided in the embodiments of the present invention. It can be understood by those skilled in the art that the processor 110 can be a general-purpose processor, including a central processing unit (CPU), a network processor (NP), etc.; it can also be a digital signal processor (DSP), an application specific integrated circuit (ASIC), a field programmable gate array (FPGA) or other programmable logic devices, discrete gates or transistor logic devices, discrete hardware components.

[0058] The memory 120, as a non-transitory computer-readable storage medium, can be used to store non-transitory software programs, non-transitory computer executable programs, instructions and modules, for example, programs, instructions and modules corresponding to the data synchronization method in the embodiment of the present invention. In some embodiments, the memory 120 may include a program storage area and a data storage area, and the program storage area may store an operating system, an application required for at least one function; the data storage area may store data created according to the use of the processor 110, etc. The processor 110 executes various functional applications and data processing of the first robot 100 by running the non-transitory software programs, instructions and modules stored in the memory 120, implements any data synchronization method provided in the embodiment of the present invention, or executes any step in any possible implementation of any data synchronization method provided in the embodiment of the present invention. Among them, the memory 120 may include a high-speed random access memory, and may also include a non-transitory memory. For example, at least one disk storage device, a flash memory device or other non-transitory solid-state storage device. In some embodiments, the memory 120 may also include a memory remotely arranged relative to the processor 110, and these remote memories may be connected to the processor 110 through a communication network. It should be understood that examples of the above-mentioned communication networks include but are not limited to the Internet, corporate intranets, local area networks, mobile communication networks and combinations thereof.

[0059] It is easy to understand that the implementation subject of any data synchronization method provided in the embodiments of the present invention can be any suitable type of first robot with certain computing and control capabilities. In some possible implementations, the processor can call the computer program instructions stored in the memory to implement any data synchronization method provided in the embodiments of the present invention.

[0060] It can be understood from the above that the data synchronization method provided in the embodiment of the present invention can be implemented by various suitable types of first robots with certain computing and control capabilities, for example, it can be implemented and executed by the above-mentioned first robot 100. The data synchronization method provided in the embodiment of the present invention will be described in detail below in conjunction with the exemplary application and implementation of the first robot provided in the embodiment of the present invention.

[0061] See also Figure 3 , Figure 3 The flowchart of the data synchronization method provided by some embodiments of the present invention is schematically shown.

[0062] Those skilled in the art can understand that the data synchronization method provided in the embodiment of the present invention can be applied to the first robot (eg, the first robot 100). Specifically, the execution subject of the data synchronization method is one or at least two processors of the first robot.

[0063] like Figure 3 As shown, the data synchronization method includes but is not limited to the following steps S100-S400:

[0064] S100: When the data synchronization requirement is met, target data of the first robot is obtained, where the target data includes software version, map data, and pre-planned path data.

[0065] Among them, the target data includes software version, map data and pre-planned path data. The software version refers to the specific version identifier of the robot's application software, which is used to distinguish different versions of the same application software and reflect changes, improvements, repairs or additions of new functions of the application software. Map data refers to environmental information used by the robot for navigation, positioning and path planning when performing tasks. For a robot system, map data usually represents a digital representation or model of its operating area, including environmental information such as terrain, obstacles, paths and building structures. Pre-planned path data refers to a specified movement route or action plan calculated and planned based on the robot's map data, task requirements and initial conditions of its position before the robot performs a task.

[0066] Specifically, the trigger conditions (requirement conditions) for data synchronization are defined in advance, such as time conditions, task conditions, location conditions and event conditions, etc. The aforementioned conditions include but are not limited to: timed synchronization according to set time intervals, when the robot task execution status changes (such as task start, task completion, etc.), when the robot enters a specific area, triggering data synchronization detection, when the robot fails or encounters other abnormal situations, etc.

[0067] When the data synchronization requirement conditions are met, the process of starting data synchronization is triggered. That is, the target data of the first robot is obtained, wherein the target data includes the software version, such as the software version of the control system, operating system, navigation and positioning module, and other application software currently running on the first robot. In some feasible implementations, the configuration file or metadata inside the first robot can be read through an API interface or system command to obtain the software version information of the control system, operating system, navigation and positioning module, and other application software in the first robot.

[0068] The target data also includes map data. In some feasible implementations, the map data (e.g., raster map files and topological map files, etc.) stored locally in the first robot can be directly read through a file system or a system interface. In some embodiments, if the first robot builds a map in real time through SLAM technology, it is necessary to call a corresponding module or service (e.g., a map service in a navigation system (e.g., map_server in ROS)) to obtain the current map data information generated in real time by the first robot.

[0069] The target data also includes pre-planned path data. In some implementations, the current pre-planned path data information can be obtained by calling the path planning module or the system API interface. The path data includes a series of coordinate points, direction information, speed information, etc., and is usually transmitted in JSON, XML, etc.

[0070] After obtaining the software version, map data and pre-planned path data of the first robot, the three parts of data are packaged according to a predetermined data format, for example, they can be uniformly stored in JSON format or XML format, and integrated to obtain the target data packet (target data) of the first robot.

[0071] It can be understood that in some embodiments, the first robot and the second robot operate on a fixed path based on the map data and the pre-planned path data. Therefore, when the data synchronization requirement is met, the target data of the first robot and the second robot are synchronized to ensure the coordination and consistency of the multi-robot system.

[0072] In some embodiments, the trigger condition for data synchronization (i.e., the data synchronization requirement condition) may be that the second robot deviates from the pre-planned path. When the second robot deviates from the pre-planned path, it indicates that the second robot may collide with the first robot, obstacles, pedestrians, etc., or encounter other dangerous situations, thus triggering the data synchronization process to control the data synchronization of the first robot and the second robot.

[0073] In some embodiments, the data synchronization method further includes but is not limited to the following steps S101:

[0074] S101: When the second robot deviates from the pre-planned path, the data synchronization requirement condition is met.

[0075] Specifically, the second robot is equipped with a navigation and positioning module, a camera, a laser radar, etc. The first robot establishes a communication connection with the second robot, and the current position of the second robot is acquired through real-time monitoring through the navigation and positioning module, the camera, the laser radar, etc. in the second robot. Then, the distance value between the current position of the second robot and the pre-planned path of the second robot is calculated. If the distance between the current position of the second robot and the pre-planned path is less than or equal to the deviation path threshold, it is considered that the second robot moves within a certain range around the pre-planned path and does not deviate from the pre-planned path. It can be determined that the second robot does not deviate from the pre-planned path.

[0076] In some embodiments, when the distance between the current position of the second robot and the pre-planned path is greater than a deviation threshold, the second robot is considered to have exceeded a certain range around the pre-planned path and has deviated from the pre-planned path, and it can be determined that the second robot has deviated from the pre-planned path.

[0077] S200: Acquire target data of a second robot operating in the same area as the first robot.

[0078] Among them, the robots (including the first robot and the second robot) are equipped with a GPS (outdoor environment) or SLAM (indoor environment) positioning system, and the working environment is divided into multiple predefined areas (such as area A and area B, etc.). By obtaining the current locations of the first robot and the second robot (such as longitude and latitude or x, y, z coordinates, etc.), comparing the current locations of the first robot and the second robot, it is determined whether the first robot and the second robot are operating within the same predefined area, thereby determining one or more second robots operating in the same area as the first robot.

[0079] After determining the second robot operating in the same area as the first robot, the first robot establishes a communication connection with the second robot through wireless communication technology (such as Wi-Fi, Zigbee, LoRa and NFC, etc.), and then obtains the target data of the second robot from the second robot.

[0080] Exemplarily, the first robot sends a data acquisition request to the second robot, wherein the data acquisition request includes the required data type, such as software version, map data, pre-planned path data, etc. After receiving the data acquisition request, the second robot reads its own target data and packages the target data and returns it to the first robot, so that the first robot acquires the target data of the second robot.

[0081] In some feasible implementations, in a multi-robot system, all robots are coordinated through a central server or a scheduling system. That is, the first robot can obtain the target data of the second robot through the central server or the scheduling system, specifically: the first robot sends a data acquisition request to the central server or the scheduling system to query the list of second robots running in the same area as itself; after finding the second robot, the central server or the scheduling system is requested to provide the target data of the second robot; the central server or the scheduling system obtains the target data of the second robot from the database or the second robot, and transmits the target data of the second robot to the first robot, so that the first robot obtains the target data of the second robot.

[0082] See also Figure 4 , Figure 4 A sub-flow diagram of step S200 in the data synchronization method provided in some embodiments of the present invention is schematically shown.

[0083] like Figure 4 As shown, in some embodiments, obtaining target data of a second robot running in the same area as the first robot specifically includes but is not limited to the following steps S210-S220:

[0084] S210: Determine, according to the area where the first robot is located, a second robot operating in the same area as the first robot.

[0085] Specifically, the robot's working environment is divided into a plurality of regions with clear boundaries based on different dimensions such as physical space, task type, and communication range. For example, in some embodiments, the working environment is divided into a plurality of sub-regions by physical space coordinates, and each region is defined by a set of coordinate boundaries. For example, in two-dimensional space, each region can be represented by a rectangle, a circle, or other geometric shapes, and the boundaries of the region are described by coordinates. In three-dimensional space, if the region division involves height or multi-story buildings, different regions can be defined using three-dimensional coordinates (x, y, z). For example, each floor can be defined as an area, or shelves of different heights in a warehouse can be defined as different working areas.

[0086] In order to determine the area where the first robot is located, it is first necessary to obtain its real-time position or current task information. In some embodiments, the first robot can be positioned in real time through a GPS system or SLAM technology to obtain its own real-time position, and the real-time position of the first robot is compared with the coordinate positions of each area (including the coordinate positions within the boundary and the area range) to determine the current area.

[0087] After determining the area where the first robot is located, the real-time position coordinates of all robots are obtained and compared with the boundary of the area where the first robot is located. If the position coordinates of a robot are within the area where the first robot is located, it is considered that the robot is running in the same area as the first robot and is determined to be the second robot.

[0088] S220: Establishing a communication connection with the second robot and sending an acquisition instruction to the second robot, so that the second robot sends information of the target data of the second robot to the first robot after receiving the acquisition instruction.

[0089] The process of establishing a communication connection between the first robot and the second robot and sending an acquisition instruction can be implemented in a variety of suitable ways, depending on the robot system architecture, network topology, and the communication protocol used.

[0090] Specifically, after determining the second robot running in the same area as the first robot, the first robot establishes a communication connection with the second robot through an appropriate communication method, wherein the communication method includes but is not limited to: communication based on a local area network (LAN), a robot operating system (ROS), a message queue (MQTT), and wireless communication (such as NFC, Bluetooth, Wi-Fi, ZigBee, LoRa, etc.).

[0091] After establishing a communication connection with the second robot, the first robot sends a specific format acquisition instruction to the second robot through the communication connection to request to acquire the target data of the second robot. The acquisition instruction includes specifying the required data type, such as software version, map data, pre-planned path data, etc.

[0092] After receiving the acquisition instruction, the second robot parses the acquisition instruction, and then reads the required target data (including software version, map data and pre-planned path data) from the memory, file or database according to the required data type, and packages the target data in a specified format (for example, JSON, XML or a custom protocol format, etc.), and sends the target data to the first robot through the communication connection, so that the first robot obtains the target data of the second robot.

[0093] In some embodiments, the first robot includes an NFC module, a Bluetooth module, a Wi-Fi module and a ZigBee module. The first robot can establish a communication connection with the second robot through any one or more of the NFC module, the Bluetooth module, the Wi-Fi module and the ZigBee module.

[0094] In some embodiments, establishing a communication connection with the second robot includes but is not limited to the following steps S2201:

[0095] S2201: Establish a communication connection with a second robot through any one or more of an NFC module, a Bluetooth module, a Wi-Fi module, and a ZigBee module.

[0096] NFC is suitable for short-distance point-to-point communication (usually within 1-20 cm), with relatively low data transmission speed and very low energy consumption. It is suitable for fast pairing between robots and transmission and exchange of small data volumes.

[0097] The NFC module of the first robot automatically detects the nearby NFC device (i.e., the second robot) and establishes a point-to-point communication connection. When the NFC connection is successful, the first robot can send an acquisition instruction to the second robot, and after receiving the acquisition instruction, the second robot returns the target data to the first robot through the NFC module.

[0098] Bluetooth is suitable for medium-distance communication (usually a few meters to tens of meters), with medium data transmission rate and low energy consumption. Bluetooth is usually suitable for fast pairing between robots, control command transmission and medium data volume transmission and exchange.

[0099] The first robot uses the Bluetooth module to scan devices and search for nearby Bluetooth devices (i.e., the second robot). After finding the Bluetooth identifier of the second robot, the first robot initiates a pairing request. Once the Bluetooth pairing is successful, a stable Bluetooth connection will be established between the first robot and the second robot, and the first robot and the second robot can transmit instructions and exchange data through the Bluetooth connection.

[0100] Wi-Fi is suitable for long-distance, high-speed data transmission, and supports large-scale data synchronization and real-time communication between robots. Wi-Fi is often used for high-speed data exchange and long-distance communication between robots, supporting stable long-term connections and high data rates.

[0101] The first robot and the second robot need to be connected to the same Wi-Fi network (for example, the same router or hotspot). When the first robot and the second robot are connected to the same network, the first robot can find the second robot by IP address or host name. After the first robot determines the IP address and open communication port of the second robot (for example, through server query or broadcast discovery), it can establish a TCP or UDP connection with the second robot.

[0102] ZigBee is a low-power, low-bandwidth wireless communication protocol suitable for communication between robots at a long distance and with low data transmission speed. It is commonly used in low-power sensor networks and device control.

[0103] ZigBee supports automatic networking. The first robot can scan nearby devices through the ZigBee module and join the existing ZigBee network. If the second robot is also in the same network, the first robot can automatically identify the second robot through the network and establish a communication connection with the second robot.

[0104] It is understandable that devices in the ZigBee network can communicate through relay nodes. Even if the first robot and the second robot are not within the direct communication range, the ZigBee network can establish a path through other nodes so that the first robot and the second robot can establish a communication connection.

[0105] S300: judging whether the target data of the first robot is the same as the target data of the second robot according to the target data of the first robot and the target data of the second robot.

[0106] After receiving the target data of the second robot, the first robot compares it with its own target data to determine whether the software version, map data, and pre-planned path data are consistent. If they are inconsistent, a data synchronization operation is triggered. According to the data synchronization operation, the first robot and the second robot update their respective data to ensure that their data are consistent so that they can work together in the same area.

[0107] Specifically, the software version is usually expressed in the form of "major version number. minor version number. revision number", such as 2.1.3, and the version numbers of the software versions can be compared level by level. If the major version number, minor version number and revision number are all the same, the software versions are consistent. If any level of version number is different, the software versions are inconsistent.

[0108] Map data is usually a file that describes the working environment of the robot, and is generally stored in the format of images, vector data, or raster maps (such as .pgm, .png, json, and yaml files). Map data comparison needs to ensure that the map files or map contents between the first robot and the second robot are completely consistent.

[0109] In some feasible implementations, a hash value (such as MD5, SHA-256, etc.) is calculated for the map files of the first robot and the second robot, and then the hash values ​​of the map files of the first robot and the second robot are compared. If the hash values ​​between the map files of the first robot and the second robot are the same, it means that the map data of the first robot and the second robot are completely consistent; if the hash values ​​are different, or there is any difference in the content, the map data of the first robot and the second robot are different. In some embodiments, if the map file format is text or JSON format, it can be directly compared line by line and element by element. If the map file is in image format, the image data can be compared at the pixel level.

[0110] The pre-planned path data is usually the specific route that the robot will travel on the map, usually stored in the form of a series of coordinate points ((x, y)), angles (θ) or timestamps. The pre-planned path data can be stored as a list, array or other data structure.

[0111] In some embodiments, the path points in the pre-planned path data of the first robot and the second robot are traversed, and the coordinate position information (including coordinate points, angles, and timestamps, etc.) of the path points of the first robot and the second robot are compared one by one. If the difference between the coordinate position information of the path points of the first robot and the second robot is within the error tolerance range, the pre-planned path data of the first robot and the second robot are considered to be the same. If the difference between the coordinates, angles, or timestamps of a path point in the pre-planned path data exceeds the error tolerance range, the pre-planned path data of the first robot and the second robot are considered to be different.

[0112] Wherein, after comparing the software versions, map data and pre-planned path data of the first robot and the second robot respectively, if the software versions, map data and pre-planned path data of the first robot and the second robot are all consistent, it is determined that the target data of the first robot is the same as the target data of the second robot. If any one of the software versions, map data and pre-planned path data is inconsistent, it is determined that the target data of the first robot is different from the target data of the second robot.

[0113] S400: If they are not the same, controlling the data of the first robot and the second robot to be synchronized.

[0114] Specifically, if the target data of the first robot and the target data of the second robot are different, the first robot is controlled to establish a communication connection with the second robot through a suitable communication module (for example, an NFC module, a Bluetooth module, a Wi-Fi module, a ZigBee module, etc.), and then according to data synchronization rules composed of data types, data versions, and timestamps, the target data of the first robot is synchronized to the second robot, the target data of the second robot is synchronized to the first robot, or the target data of the first robot and the second robot are synchronized bidirectionally.

[0115] The first robot and the second robot each pack the target data to be synchronized as a data packet, and transmit the data packet from the synchronization source robot to the target robot through an established communication connection (such as NFC, Bluetooth, Wi-Fi, ZigBee, etc.), thereby achieving synchronization between the target data of the first robot and the second robot.

[0116] In some embodiments, the first robot may send a data synchronization request to the cloud, a central server, or a scheduling system, etc., so as to perform a data synchronization task on the second robot through the cloud, a central server, or a scheduling system, etc.

[0117] In some embodiments, the first robot may also directly establish a communication connection with the second robot and send its own target data to the second robot, so that the second robot performs a data synchronization task on itself.

[0118] It can be understood that when the target data of the first robot is the same as the target data of the second robot, the data synchronization operation is not performed on the second robot.

[0119] In some embodiments, controlling the data synchronization between the first robot and the second robot specifically includes but is not limited to the following steps S410:

[0120] S410: Sending a request to the cloud to execute data synchronization on the second robot, so that after receiving the request, the cloud executes the data synchronization task on the second robot according to a preset synchronization rule.

[0121] Specifically, after determining that the target data of the first robot and the target data of the second robot are different, the first robot sends a data synchronization request to the cloud in an appropriate manner, and the data synchronization request is a request for data synchronization with the second robot. The data synchronization request includes synchronization requester information (i.e., identification information of the first robot requesting synchronization, such as robot ID, IP address and location, etc.), target robot information (i.e., identification information of the second robot to be synchronized, such as robot ID, IP address and area, etc.), data types to be synchronized (such as software version, map data and pre-planned path data, etc.) and preset synchronization rules (i.e., specific requirements or strategies for data synchronization, such as full synchronization, incremental synchronization or overwrite synchronization of specific data), etc. It is easy to understand that the data synchronization request can adopt a structured data format or other suitable arbitrary format, such as JSON, XML, etc., to ensure that the cloud can parse and process the data synchronization request.

[0122] After receiving the data synchronization request, the cloud parses the data synchronization request and extracts the information in the data synchronization request, such as the identification of the first robot and the second robot, the data type to be synchronized, and the preset synchronization rules. The cloud sends the data synchronization instruction and the target data of the first robot to the second robot according to the preset synchronization rules. After receiving the data synchronization instruction from the cloud, the second robot receives the update data from the cloud to overwrite or partially update its target data, that is, to perform the corresponding synchronization operation, such as downloading new map data, pre-planned path data, or updating the application software version.

[0123] In some embodiments, performing a data synchronization task on the second robot includes but is not limited to the following steps S4101-S4103:

[0124] S4101: Update the software version of the second robot so that the software version of the first robot is the same as the software version of the second robot.

[0125] Specifically, after determining that the software versions of the first robot and the second robot are inconsistent according to the data synchronization request sent by the first robot, the latest software version can be queried from the version information provided by the first robot or the cloud version management module to ensure that the second robot will be updated to the latest available software version. The cloud finds the corresponding software update package based on the software version number. It is understandable that the software update package is a file pre-uploaded to the cloud server, or can be stored and distributed through a specific service (such as a file storage service, CDN).

[0126] The cloud sends a software update instruction to the second robot through an appropriate communication method. The update instruction includes information such as the URL for downloading the software update package, the software version number, and the installation steps. After receiving the software update instruction from the cloud, the second robot performs the software update operation according to the software update instruction. That is, according to the received software update instruction, the software update package is downloaded from the corresponding download link or path to the local specified storage path, and the software update package is decompressed according to the installation command and the installation script is executed to complete the installation of the application software, thereby updating the application software of the second robot, so that the software version of the application software of the first robot is the same as the software version of the application software of the second robot.

[0127] S4102: Update the map data of the second robot so that the map data of the first robot is the same as the map data of the second robot.

[0128] Specifically, after determining that the map data between the first robot and the second robot are inconsistent according to the data synchronization request sent by the first robot, and determining that the map file of the first robot is the latest map file, the cloud obtains a map update package from the first robot. The map update package includes a map file generated based on SLAM (Synchronous Localization and Mapping Technology) (e.g., a raster map in .pgm or .yaml format or map data in other formats, etc.) and other related data (e.g., information such as storage map size, resolution, origin, scale, etc.).

[0129] The cloud sends a map data update instruction to the second robot through an appropriate communication method. The map data update instruction includes the URL for downloading map data, the map version number, and the replacement steps. After receiving the map data update instruction from the cloud, the second robot performs the download and update operations. That is, the second robot downloads the map update package from the cloud to the local specified storage path according to the map data update instruction. Then, the map update package is decompressed to obtain the map file and other related data, and the new map file is replaced with the currently used map file according to the corresponding steps, thereby updating the map data of the second robot and making the map data of the first robot the same as the map data of the second robot.

[0130] S4103: Update the pre-planned path data of the second robot so that the pre-planned path data of the first robot and the pre-planned path data of the second robot are the same.

[0131] Specifically, after determining that the pre-planned path data between the first robot and the second robot are different according to the data synchronization request sent by the first robot, and determining that the pre-planned path data of the first robot is the latest path data, the cloud obtains a path update package from the first robot. The path update package includes a path file generated based on a path planning algorithm (for example, A*, Dijkstra, and RRT (Rapidly-exploring Random Tree)) and other related data (for example, path points, speed limits, steering instructions, and obstacle detour rules).

[0132] The cloud sends a path data update instruction to the second robot through a suitable communication method. The path data update instruction includes the URL for downloading the pre-planned path data, the path version number, and the installation steps. After receiving the path data update instruction from the cloud, the second robot performs the download and update operations. That is, the second robot downloads the path update package from the cloud to the locally specified storage path according to the path data update instruction. Then, the path update package is decompressed to obtain the pre-planned path data and other related data, and according to the corresponding steps, the new pre-planned path data is used to replace the currently used pre-planned path data, thereby updating the pre-planned path data of the second robot, so that the pre-planned path data of the first robot and the pre-planned path data of the second robot are the same.

[0133] In some other embodiments, controlling the data synchronization between the first robot and the second robot specifically includes but is not limited to the following steps S420:

[0134] S420: Establishing a communication connection with the second robot, and sending the target data of the first robot to the second robot, so that the second robot performs a data synchronization task on the second robot after receiving the target data of the first robot.

[0135] In some embodiments, the first robot does not perform data synchronization tasks on the second robot through the cloud, but directly establishes a communication connection with the second robot through an appropriate communication technology (for example, NFC, Wi-Fi, Bluetooth, and ZigBee, etc.), and then packages its own target data (including software version, map data, and pre-planned path data, etc.) into a structured data packet (for example, it can be packaged into a data packet in a format such as JSON or XML), and sends the data packet to the second robot through the established communication connection.

[0136] After receiving the target data sent by the first robot, the second robot parses the target data into usable structured data, and then performs a data synchronization operation according to the corresponding synchronization rule.

[0137] In some embodiments, if the software version of the first robot is newer, the second robot triggers a software upgrade process, downloads the latest version from the cloud, and updates the corresponding application software.

[0138] In some embodiments, after receiving the map data of the first robot, the second robot replaces its own current map data with the received map data of the first robot.

[0139] In some embodiments, after receiving the pre-planned path data sent by the first robot, the second robot merges or overwrites its own pre-planned path data according to the application scenario, data synchronization rules, etc.

[0140] In some embodiments, when the first robot upgrades its own application software, map data, pre-planned path data, etc., it needs to compare the downloaded upgrade package with the local upgrade package to determine whether to perform the data update operation according to the latest upgrade package, thereby upgrading its own application software, map data, pre-planned path data, etc.

[0141] In some embodiments, the data synchronization method further includes but is not limited to the following steps S500-S600:

[0142] S500: In response to the upgrade instruction, download the latest upgrade package.

[0143] The upgrade instruction includes the download address of the upgrade package, version information, and upgrade steps, etc. The cloud and central server or dispatch system sends the upgrade instruction to the first robot through a suitable communication method (such as Wi-Fi, 4G, 5G or other communication protocols, etc.).

[0144] Specifically, after receiving the upgrade instruction from the cloud, central server or dispatch system, the first robot parses the upgrade instruction and extracts the download link of the latest upgrade package, the target version number and specific installation and upgrade steps, etc. The first robot downloads the latest upgrade package from the cloud to the local specified storage path according to the download link in the upgrade instruction.

[0145] S600: If the version of the latest upgrade package is higher than the version of the local upgrade package, perform a data update operation according to the latest upgrade package.

[0146] After downloading the latest upgrade package, the version of the latest upgrade package is compared with the version of the local upgrade package to determine whether a data update and upgrade operation needs to be performed. In some embodiments, if it is determined that the version of the latest upgrade package is higher than the version of the local upgrade package, it means that the application software, map data, or pre-planned path data in the first robot are not the latest software or data, and the first robot performs a data update and upgrade operation according to the latest upgrade package. That is, the first robot decompresses or runs the latest upgrade package according to the installation instruction and installs the upgrade package into the first robot system. After the upgrade package is decompressed, the first robot runs the installation script or other execution commands (for example, replacing old files, updating configuration files, and restarting services, etc.) to apply new application software, update new map data and pre-planned path data, etc., thereby completing the data update and upgrade operation and updating the data of the first robot to the latest data.

[0147] To summarize, the data synchronization method provided by the embodiment of the present invention includes: when the data synchronization requirement conditions are met, obtaining the target data of the first robot, the target data including the software version, map data and pre-planned path data; obtaining the target data of the second robot running in the same area as the first robot; judging whether the target data of the first robot is the same as the target data of the second robot based on the target data of the first robot and the target data of the second robot; if they are not the same, controlling the data synchronization of the first robot and the second robot.

[0148] In the embodiment of the present invention, the method synchronizes data of robots that meet the data synchronization requirements to make the data information between multiple robots consistent, so as to ensure the normal operation of the robots, ensure the work efficiency of the robots, and reduce the occurrence of scratches, collisions, etc.

[0149] An embodiment of the present invention provides a computer-readable storage medium, on which computer program instructions executable by a processor are stored. When the computer program instructions are called by the processor, the processor executes any one of the data synchronization methods provided by the embodiment of the present invention, or executes the steps in any one of the possible implementation methods of any one of the data synchronization methods provided by the embodiment of the present invention.

[0150] In some embodiments, the storage medium may be a flash memory, a hard disk, an optical disk, a register, a magnetic surface storage, a removable disk, a CD-ROM, a random access memory (RAM), a read-only memory (ROM), an electrically programmable ROM, and an electrically erasable programmable ROM, or any other form of storage medium known in the technical field, or various devices including one or any combination of the above storage media.

[0151] In some embodiments, computer program instructions may be in the form of a program, software, software module, script or code, written in any form of programming language (including compiled or interpreted languages, or declarative or procedural languages), and may be deployed in any form, including as a stand-alone program or as a module, component, subroutine or other unit suitable for use in a computing environment.

[0152] As an example, computer program instructions may, but do not necessarily, correspond to a file in a file system, may be stored as part of a file that stores other programs or data, for example, in one or more scripts in a HyperText Markup Language (HTML) document, in a single file dedicated to the program in question, or in multiple coordinated files (e.g., files storing one or more modules, subroutines, or code portions).

[0153] As an example, the computer program instructions may be deployed to be executed on a computing device (including devices such as smart terminals and servers), or on multiple computing devices located at one location, or on multiple computing devices distributed at multiple locations and interconnected by a communication network. It is easy to understand that all or part of the steps of the method described in the embodiments of the present invention may be directly implemented using electronic hardware or processor executable computer program instructions, or a combination of the two.

[0154] Those skilled in the art will appreciate that the embodiments provided by the present invention are only illustrative, and the order of writing the steps in the method of the embodiment does not mean a strict execution order and does not constitute any limitation on the implementation process. The order can be adjusted, merged and deleted according to actual needs, and the modules or sub-modules, units or sub-units in the device or system of the embodiment can be merged, divided and deleted according to actual needs. For example, the division of units is only a logical function division, and there can be other division methods in actual implementation. For another example, multiple units or components can be combined or integrated into another device, or some features can be ignored or not executed.

[0155] Through the description of the above embodiments, those skilled in the art can clearly understand that each embodiment can be implemented by means of software plus a general hardware platform, and of course can also be implemented by hardware. Those skilled in the art can understand that all or part of the processes in the above embodiment methods can be completed by instructing the relevant hardware through a computer program, and the computer program can be stored in a computer-readable storage medium. When the computer program is executed, it can include the processes of the embodiments of the above methods. The storage medium can be a disk, an optical disk, a read-only memory (ROM) or a random access memory (RAM), etc.

[0156] It should be noted that the above embodiments are intended to illustrate the technical concept and features of the present invention, and their purpose is to enable people familiar with this technology to understand the content of the present invention and implement it accordingly, and cannot be used to limit the scope of protection of the present invention. Ordinary technicians in this field can understand that all or part of the processes of the above embodiments can be implemented according to the technical solutions recorded in the embodiments of the present invention, or some of the technical features can be equivalently replaced. It can be understood that these modifications or replacements do not make the essence of the corresponding technical solutions deviate from the scope of the technical solutions of the embodiments of the present invention, and should be regarded as equal changes and modifications based on the embodiments of the present invention, and should all fall within the scope of the claims of the present invention.

Claims

1. A data synchronization method, characterized in that: The method comprises: When the data synchronization requirement is met, target data of the first robot is obtained, wherein the target data includes software version, map data, and pre-planned path data; Acquire target data of a second robot operating in the same area as the first robot; determining, according to the target data of the first robot and the target data of the second robot, whether the target data of the first robot is the same as the target data of the second robot; If they are not the same, the data of the first robot and the second robot are controlled to be synchronized.

2. The method according to claim 1, characterized in that The acquiring target data of a second robot operating in the same area as the first robot comprises: Determining, according to the area where the first robot is located, a second robot operating in the same area as the first robot; A communication connection is established with the second robot, and an acquisition instruction is sent to the second robot, so that the second robot sends information of the target data of the second robot to the first robot after receiving the acquisition instruction.

3. The method according to claim 2, characterized in that The establishing a communication connection with the second robot comprises: A communication connection is established with the second robot through any one or more of an NFC module, a Bluetooth module, a Wi-Fi module and a ZigBee module.

4. The method according to claim 1, characterized in that: The first robot runs on a fixed path based on the map data and pre-planned path data.

5. The method according to claim 1, characterized in that The controlling the data synchronization between the first robot and the second robot comprises: Sending a request to the cloud to execute data synchronization on the second robot, so that the cloud executes the data synchronization task on the second robot according to a preset synchronization rule after receiving the request; Alternatively, a communication connection is established with the second robot, and the target data of the first robot is sent to the second robot, so that the second robot performs a data synchronization task on the second robot after receiving the target data of the first robot.

6. The method according to claim 5, characterized in that The performing of the data synchronization task on the second robot includes: Updating the software version of the second robot so that the software version of the first robot is the same as the software version of the second robot; updating the map data of the second robot so that the map data of the first robot is the same as the map data of the second robot; The pre-planned path data of the second robot is updated so that the pre-planned path data of the first robot is the same as the pre-planned path data of the second robot.

7. The method according to claim 1, characterized in that The method further comprises: In response to the upgrade instruction, download the latest upgrade package; If the version of the latest upgrade package is higher than the version of the local upgrade package, the data update and upgrade operation is performed according to the latest upgrade package.

8. The method according to claim 1, characterized in that The method further comprises: When the second robot deviates from the pre-planned path, the data synchronization requirement is met.

9. A first robot, characterized in that: include: A processor and a memory communicatively connected to the processor; The memory stores computer program instructions executable by the processor, and when the computer program instructions are called by the processor, the processor executes the data synchronization method according to any one of claims 1 to 8.

10. A computer-readable storage medium, characterized in that: The computer-readable storage medium stores computer program instructions executable by a processor, and when the computer program instructions are called by the processor, the processor executes the data synchronization method according to any one of claims 1 to 8.

Citation Information

Cited By

  • Additive manufacturing multi-robot path planning method and device based on collision prediction and medium

    CN120244953A