Distributed plug-in system and method applied to development of robot control system
By using a distributed plug-in system, there is no fixed binding between the plug-in management unit and the plug-in program. The plug-in is extended by registration, which solves the problems of high functional integration, high maintenance cost, poor scalability and poor compatibility of robot control systems. This improves the stability and scalability of the system and reduces maintenance costs.
Patent Information
- Application Number
- CN202510982023.5
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2025-07-16
- Publication Date
- 2025-11-14
- Estimated Expiration
- 2045-07-16
AI Technical Summary
Existing robot control systems suffer from high functional integration, high maintenance costs, poor scalability, and poor compatibility, resulting in poor system stability and slow iteration.
It adopts a distributed plug-in system, where there is no fixed binding relationship between the plug-in management unit and the plug-in program. Plug-ins are extended through registration, enabling independent communication and information exchange between the plug-in management unit and the plug-in program, and supporting cross-platform functionality.
It reduces system coupling, improves scalability and stability, reduces maintenance costs, enhances system security and compatibility, and optimizes iteration speed.
Smart Images

Figure CN120950138A_ABST
Abstract
Description
Technical Field
[0001] This invention relates to the field of robot distributed system development technology, and specifically to a distributed plug-in system and method for robot control system development. Background Technology
[0002] As the application scenarios of robots continue to expand, the required functions are becoming increasingly diverse. For example, industrial robots not only need precise motion control, but also require functions such as visual recognition, force perception, and even scene understanding. These functions were often over-integrated in early designs, leading to systems that became complex and difficult to manage. Due to the limitations of existing integrated development solutions, this resulted in many problems such as high maintenance costs, high iteration costs, and poor scalability.
[0003] Existing conventional solutions typically bind plugins to the main program. Once installed and configured, the plugin is fixedly integrated with the main program, creating a tight dependency. Any anomalies or adjustments to the plugin affect the entire program's usability. However, this approach has the following drawbacks: Drawback 1: High Functional Integration: In existing software architectures, high functional integration means excessive coupling between modules. This means that modifications to a specific function can affect the stability and performance of the entire system. Drawback 2: High Maintenance Costs: Due to the tight integration and complex dependencies, locating and resolving problems becomes extremely difficult when the system malfunctions or requires updates. Drawback 3: Poor Scalability: When new features need to be added, the existing architecture may not be able to easily accommodate these changes. Drawback 4: Poor Compatibility: Differences may exist between different operating systems, hardware environments, or software versions, and the existing software architecture may not be able to adapt well to these changes. Drawback 5: Slow Iteration: Due to these problems, the process of improving and updating the software becomes lengthy and complex, resulting in slow rollouts of new features and slow bug fixes. Summary of the Invention
[0004] (I) Purpose of the Invention
[0005] The purpose of this invention is to provide a distributed plug-in system and method for robot control system development. Based on a distributed node development model, it reduces the coupling between modules, enhances scalability, and supports cross-platform functionality. The system includes a plug-in management unit and multiple plug-in programs. There is no fixed binding relationship between the plug-in management unit and the plug-in programs, allowing different functional plug-ins to be extended through registration. Communication and information exchange between the plug-in management unit and each plug-in program are achieved independently. This solves the problems of high functional integration, high maintenance costs, poor scalability, and poor compatibility in existing technologies, optimizes existing plug-in solutions, improves system stability, and enhances scalability and security.
[0006] (II) Technical Solution
[0007] To address the aforementioned problems, a first aspect of the present invention provides a distributed plug-in system for the development of robot control systems, comprising a robot control system, a plug-in management unit, and multiple plug-in programs with different functions. The robot control system and the plug-in management unit are communicatively connected, each plug-in program is independent of the others and is communicatively connected to the plug-in management unit, and there is no binding connection between the plug-in programs and the plug-in management unit. The plug-in programs can be added or removed as needed.
[0008] Furthermore, the communication connection includes: plugin registration connection and plugin function connection, with the plugin function connection being performed after the plugin registration connection is completed.
[0009] Furthermore, the registration plugin link includes:
[0010] After a plugin program is registered and launched, it sends a control command topic (private topic) to the plugin management unit. Plugin programs that have not completed registration publish the launch topic. The launch topic includes the registered plugin name and the registered plugin version number.
[0011] Based on the control command topic, the plug-in management unit generates an identification ID corresponding to the control command topic and establishes corresponding communication connection data with the plug-in program.
[0012] Based on the identification ID and communication connection data, a communication connection is established between the plug-in management unit and the plug-in program.
[0013] Furthermore, establishing a communication connection between the plug-in management unit and the registered plug-in based on the identification ID and communication connection data includes: establishing a mapping relationship between the identification ID and the communication connection data, so that after identifying the target registered plug-in program based on the identification ID, the corresponding communication connection data is retrieved to complete the connection and information exchange between the plug-in management unit and the target registered plug-in program.
[0014] Furthermore, the plugin functionality includes:
[0015] After the plug-in program is registered and connected, the plug-in management unit obtains the function list corresponding to the plug-in program. The function list includes a variety of control commands.
[0016] Based on the control commands, the plug-in management unit generates a requirement ID corresponding to the control commands;
[0017] When the robot control system sends a control command to the plug-in management unit, it determines the identification ID based on the demand ID corresponding to the control command, and transmits the communication connection data corresponding to the identification ID to the plug-in program corresponding to the identification ID to achieve the control purpose.
[0018] Furthermore, the plugin management unit obtains the function list corresponding to the plugin program in two ways: actively obtaining and passively receiving.
[0019] Furthermore, the communication connection also includes registration plugin exception management, including:
[0020] The plugin management unit polls the status of online and registered plugins to determine whether they can be used normally.
[0021] If so, the plug-in management unit establishes communication with the plug-in program.
[0022] If not, then delete the plugin program.
[0023] Another aspect of the present invention provides a management method for distributed plug-ins developed based on a robot control system, which employs any of the distributed plug-in systems described above for robot control system development for management, including:
[0024] Configure the initialization parameters for the plug-in management unit;
[0025] The plugin management unit listens to the control command topic issued after the plugin program is registered and launched, generates an identification ID corresponding to the control command topic, and then establishes communication connection data corresponding to the plugin program to realize information interaction between the plugin management unit and the plugin program.
[0026] After the plugin registration and connection are completed, the plugin management unit obtains the function list corresponding to the plugin program and listens for the corresponding control commands in the function list;
[0027] When the robot control system sends a control command to the plug-in management unit, it determines the identification ID based on the demand ID corresponding to the control command, and transmits the communication connection data corresponding to the identification ID to the plug-in program corresponding to the identification ID to achieve the control purpose.
[0028] Furthermore, the management method also includes: for plug-in programs that have been launched and registered, the plug-in management unit polls to determine whether the plug-in program can be used normally. If so, the plug-in management unit establishes communication with the plug-in program; otherwise, the plug-in program is deleted.
[0029] (III) Beneficial Effects
[0030] The above-mentioned technical solution of the present invention has the following beneficial technical effects: The present invention provides a distributed plug-in system and method for robot control system development. The system includes a robot control system, a plug-in management unit, and multiple plug-in programs with different functions. The robot control system and the plug-in management unit are communicatively connected. There is no fixed binding relationship between the plug-in management unit and each plug-in program, allowing different functional plug-ins to be extended through registration. There are no restrictions on the plug-in and the plug-in management unit being stored and installed in the same location; only communication and information exchange between the plug-in management unit and each plug-in program are required. Each plug-in is independent and managed in parallel by the plug-in management unit. Each plug-in program can be added or removed as needed, and the anomaly or adjustment of a single plug-in affects the use of the entire program. The unique plug-in function design of the present invention optimizes existing plug-in solutions and improves system stability, scalability, and security, while reducing development and maintenance costs. Attached Figure Description
[0031] Figure 1 This is a diagram illustrating the structure of a distributed plug-in system applied to the development of a robot control system according to the present invention.
[0032] Figure 2 This is a schematic diagram of the workflow of the plug-in management unit in the distributed plug-in system applied to the development of robot control systems according to the present invention;
[0033] Figure 3 This is a schematic diagram of the plug-in program workflow in the distributed plug-in system for the development of robot control systems, which is an application of the present invention. Detailed Implementation
[0034] To make the objectives, technical solutions, and advantages of this invention clearer, the invention will be further described in detail below with reference to specific embodiments and the accompanying drawings. It should be understood that these descriptions are merely exemplary and not intended to limit the scope of the invention. Furthermore, descriptions of well-known structures and techniques are omitted in the following description to avoid unnecessarily obscuring the concept of the invention.
[0035] On one hand, this invention provides a distributed plug-in system for robot control system development, including a robot control system, a plug-in management unit, and multiple plug-in programs with different functions. The robot control system sends various instructions to the plug-in management unit according to the actual application scenario, and the robot control system and the plug-in management unit are connected for communication. For example... Figure 1As shown, there is no fixed binding relationship between the plugin management unit and each plugin program. Different functional plugins are allowed to be extended through registration. There are no restrictions on the plugins and the plugin management unit being stored and installed in the same location. Only communication and information exchange between the plugin management unit and each plugin program are required. Each plugin program is independent of the others and communicates with the plugin management unit separately. Plugin programs can be added or removed as needed. The communication connection process between the plugin program and the plugin management unit includes: first, registering the plugin connection; after the plugin registration is completed, then establishing the plugin function connection. The specific processes for registering the plugin connection and establishing the plugin function connection are as follows:
[0036] I. Plugin Registration Link
[0037] The addition of a plugin registration method reflects the distributed design and scalability of the plugin system. Each plugin is independent of the plugin management unit; adding, removing, or encountering errors in a plugin does not affect the normal operation of other plugins and the plugin management unit, ensuring the stability of the plugin system. The plugin registration connection specifically includes:
[0038] (1) After a plugin program is registered and launched, it sends a control command topic (private topic) to the plugin management unit. Plugin programs that have not yet completed registration publish a launch topic, which includes the registered plugin name and version number. For example... Figure 2 As shown, the plug-in management unit performs initialization parameter configuration to initialize the listening interface for monitoring access signals and to create a connection between the plug-in management unit and the robot (robotic arm) for data interaction.
[0039] (2) Based on a private topic, the plugin management unit generates an identification ID corresponding to the private topic and establishes corresponding communication connection data with the plugin program. The plugin management unit continuously monitors whether each plugin issues a private topic. The online signal for private topics is achieved through a private broadcast protocol based on a network. The broadcast signal is a protocol containing basic information such as the plugin name, registered plugin version number, and plugin serial number. If the plugin management unit receives a private topic from a plugin, it creates a unique identification ID corresponding to that private topic (used to identify different plugins) to respond to the plugin's registration request. When a plugin goes online, after monitoring a private topic, it creates a unique identification ID and establishes a private topic with the plugin for subsequent point-to-point communication interaction. In this step, by subscribing to the plugin and establishing a communication connection channel (communication connection data) with it, the plugin can be found and connected to when it is used.
[0040] (3) Establish a communication connection between the plug-in management unit and the plug-in program based on the identification ID and communication connection data. Specifically, this includes: establishing a mapping relationship between the identification ID and the communication connection data, so that after identifying the target registered plug-in program based on the identification ID, the corresponding communication connection data is retrieved to complete the connection and information interaction between the plug-in management unit and the target registered plug-in program, and the process of requesting connection, responding to connection, and successfully connecting with the plug-in is completed in a targeted manner to establish an information interaction channel.
[0041] II. Plugin function connections, specifically including:
[0042] (1) After the plug-in program is registered and connected, the plug-in management unit obtains the function list corresponding to the plug-in program. The function list includes various control commands. After the plug-in is registered, the plug-in management unit obtains the function list of the plug-in. For example, the function list of the gripper plug-in is as follows: set_speed, gripper_release, gripper_close, which correspond to gripper speed setting, gripper opening control, and gripper closing control, respectively. The plug-in management unit obtains the function list corresponding to the plug-in program in two ways: actively obtaining it and passively receiving it.
[0043] (2) Based on the control command, the plug-in management unit generates a requirement ID corresponding to the control command. By creating a mapping relationship with multiple control commands in the function list, the plug-in management unit can match the available plug-ins for the corresponding functions according to the control requirement ID. This control command mainly listens to the function list corresponding to each plug-in, such as the release and closure commands of the gripper, and converts the commands into the protocol of the corresponding plug-in, and then forwards them to the corresponding plug-in.
[0044] (3) When the robot control system sends a control command to the plug-in management unit, it determines the identification ID based on the demand ID corresponding to the control command, and transmits the communication connection data corresponding to the identification ID to the plug-in program corresponding to the identification ID to achieve the control objective. In this step, the identification ID is determined through the demand ID corresponding to the above mapping relationship, and then the corresponding communication connection data is retrieved through the identification ID to identify and connect the plug-in, so that control command data can be transmitted to the plug-in to complete the control objective.
[0045] III. Management of Plugin Registration Anomalies
[0046] The communication connection also includes registered plugin anomaly management, specifically including: the plugin management unit polling the status of online and registered plugin programs to determine whether the plugin program can be used normally; if so, the plugin management unit establishes communication with the plugin program; otherwise, the plugin program is deleted. Specifically: for all online and registered plugins, the plugin status is polled to determine whether the registered plugin can be used normally. If so, communication can be established with the plugin management unit. For example, query signals can be sent to each plugin according to a set time interval, frequency sequence, or simultaneously, and the plugin's response is used to determine whether the plugin is abnormal. Once a plugin is determined to be abnormal, it is deleted from the available list. In case of plugin anomalies, the plugin management unit can send anomaly and plugin deletion reminders to the control system of the intelligent device (e.g., a robot control system). Figure 2 As shown, the plugin status is polled. For plugins that have been added to the online plugin list, a heartbeat interaction is performed on the plugin every 1 second to obtain internal exceptions and handle the plugin's online status in real time. If the plugin is offline, it is removed from the online plugin list.
[0047] In addition, the communication connection also includes plugin uninstallation management. Specifically, for plugins that have been successfully launched, if uninstallation is required, some key configuration information of the plugin must first be backed up. The data is transmitted to the plugin management unit through a private topic for easy restoration upon next launch. Then, the plugin will exit normally through a private topic command. After confirming normal exit, the plugin will be removed from the online list.
[0048] The following example, using a robot, illustrates the working logic of a distributed plug-in system:
[0049] In a smart device control scenario (robot), the plug-in management unit establishes communication with the robot control system. When it is necessary to control the robot to close its gripper, the robot control system sends a gripper closing command to the plug-in management unit. Based on the gripper closing control requirement, the plug-in management unit determines the corresponding requirement ID in the function list that includes the gripper closing function. Based on the requirement ID, it determines the plug-in identification ID, and finally identifies and connects to the plug-in through the communication connection data corresponding to the selected identification ID. The corresponding control data is then transmitted to the plug-in to realize the gripper closing action.
[0050] Figure 3 This is a schematic diagram of the plugin program workflow in a specific embodiment of a distributed plugin system. A specific example workflow is as follows:
[0051] 1) Choose a plugin, such as a publish-subscribe based and cross-platform communication interface as the communication method (e.g., zeroMQ, FastDDS, MQTT), which can not only communicate within the same physical device, but also communicate across devices;
[0052] 2) Once the plugin runs, it will update its information, including plugin name, version, and serial number, every 1 second. The 1-second delay is to avoid excessive data volume when there are many devices. After receiving the instruction, the plugin management unit returns an ID and a private topic. All subsequent communication is based on this private topic. Figure 3 The control commands in the topic can only be listened to by the server. The topic returned by the server includes the ID of a private topic, which is used for subsequent private communication. Figure 3 The topics listed in the broadcast are public;
[0053] 3) After establishing private topic communication, the plugin management unit queries the function list of the corresponding plugin. For example, the function list of the gripper plugin is as follows: set_speed, gripper_release, gripper_close, which correspond to gripper speed setting, gripper opening, and gripper closing, respectively.
[0054] 4) When it is necessary to control the gripper closure, a private topic needs to be published, which contains a command field with the content of gripper_close, indicating that a closure control has been initiated for the plugin.
[0055] Another aspect of the present invention provides a management method for distributed plug-ins developed based on a robot control system, which employs any of the distributed plug-in systems described above for developing robot control systems for management, such as... Figure 2 As shown, it includes:
[0056] Configure the initialization parameters for the plug-in management unit;
[0057] The plugin management unit listens to the control command topic issued after the plugin program is registered and launched, generates an identification ID corresponding to the control command topic, and then establishes communication connection data corresponding to the plugin program to realize information interaction between the plugin management unit and the plugin program.
[0058] After the plugin registration and connection are completed, the plugin management unit obtains the function list corresponding to the plugin program and listens for the corresponding control commands in the function list.
[0059] When the robot control system sends a control command to the plug-in management unit, it determines the identification ID based on the demand ID corresponding to the control command, and transmits the communication connection data corresponding to the identification ID to the plug-in program corresponding to the identification ID to achieve the control purpose.
[0060] Furthermore, the method also includes:
[0061] For plugins that have been launched and registered, the plugin management unit polls to determine whether the plugin is usable. If so, the plugin management unit establishes communication with the plugin; otherwise, the plugin is deleted.
[0062] The present invention has been described above with reference to embodiments thereof. However, these embodiments are merely illustrative and not intended to limit the scope of the invention. The scope of the invention is defined by the appended claims and their equivalents. Various substitutions and modifications can be made by those skilled in the art without departing from the scope of the invention, and all such substitutions and modifications should fall within the scope of the invention. Although embodiments of the invention have been described in detail, it should be understood that various changes, substitutions, and alterations can be made to the embodiments of the invention without departing from the spirit and scope of the invention. Obviously, the above embodiments are merely examples for clear illustration and are not intended to limit the embodiments. Those skilled in the art will recognize that other variations or modifications can be made based on the above description. It is neither necessary nor possible to exhaustively describe all embodiments here. However, obvious variations or modifications derived therefrom are still within the protection scope of this invention. Those skilled in the art should understand that embodiments of the present invention can be provided as methods, systems, or computer program products. Therefore, the present invention can take the form of a completely hardware embodiment, a completely software embodiment, or an embodiment combining software and hardware aspects. Furthermore, the present invention can take the form of a computer program product implemented on one or more computer-usable storage media (including but not limited to disk storage, CD-ROM, optical storage, etc.) containing computer-usable program code. The present invention is described with reference to flowchart illustrations and / or block diagrams of methods, apparatus (systems), and computer program products according to embodiments of the invention. It will be understood that each block of the flowchart illustrations and / or block diagrams, and combinations of blocks in the flowchart illustrations and / or block diagrams, can be implemented by computer program instructions. These computer program instructions can be provided to a processor of a general-purpose computer, special-purpose computer, embedded processor, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, produce a machine for implementing the flowchart illustrations and / or block diagrams. Figure 1 One or more processes and / or boxes Figure 1 The computer program instructions may also be stored in a computer-readable storage medium that can direct a computer or other programmable data processing device to operate in a particular manner, such that the instructions stored in the computer-readable storage medium produce an article of manufacture including instruction means, which are implemented in a process Figure 1 One or more processes and / or boxes Figure 1 The functions specified in one or more boxes. These computer program instructions may also be loaded onto a computer or other programmable data processing apparatus to cause a series of operational steps to be performed on the computer or other programmable apparatus to produce a computer-implemented process, thereby providing instructions that execute on the computer or other programmable apparatus for implementing the process. Figure 1 One or more processes and / or boxes Figure 1 The steps of the function specified in one or more boxes.
[0063] Those skilled in the art will understand that all or part of the steps in the methods of the above embodiments can be implemented by a program instructing related hardware. The program can be stored in a computer-readable storage medium, and when executed, it includes the flows of the embodiments of the methods described above. The storage medium can be a magnetic disk, optical disk, read-only memory (ROM), or random access memory (RAM), etc. The steps in the methods of the embodiments of the present invention can be adjusted, merged, or deleted according to actual needs. The modules [units] in the system [terminal or device] of the embodiments of the present invention can be merged, divided, or deleted according to actual needs.
Claims
1. A distributed plug-in system for robot control system development, characterized in that, It includes a robot control system, a plug-in management unit, and multiple plug-in programs with different functions. The robot control system and the plug-in management unit are connected in communication. Each plug-in program is independent of the others and is connected in communication with the plug-in management unit. There is no binding connection between the plug-in programs and the plug-in management unit. The plug-in programs can be added or removed as needed.
2. The distributed plug-in system for robot control system development according to claim 1, characterized in that, The communication connection includes: a plugin registration connection and a plugin function connection, wherein the plugin function connection is performed after the plugin registration connection is completed.
3. The distributed plug-in system for robot control system development according to claim 2, characterized in that, The registration plugin connection includes: After the plugin program is registered and launched, it sends a control command (topic) to the plugin management unit. Based on the control command topic, the plug-in management unit generates an identification ID corresponding to the control command topic and establishes corresponding communication connection data with the plug-in program; Based on the identification ID and the communication connection data, a communication connection is established between the plug-in management unit and the plug-in program.
4. The distributed plug-in system for robot control system development according to claim 3, characterized in that, The step of establishing a communication connection between the plug-in management unit and the plug-in program based on the identification ID and the communication connection data includes: establishing a mapping relationship between the identification ID and the communication connection data, so that after identifying the target registered plug-in program based on the identification ID, the corresponding communication connection data is retrieved to complete the connection and information interaction between the plug-in management unit and the target registered plug-in program.
5. The distributed plug-in system for robot control system development according to claim 3, characterized in that, The plugin functionality connections include: After the plug-in program is registered and connected, the plug-in management unit obtains a function list corresponding to the plug-in program, and the function list includes a variety of control commands; Based on the control command, the plug-in management unit generates a requirement ID corresponding to the control command; When the robot control system sends a control command to the plug-in management unit, it determines the identification ID based on the demand ID corresponding to the control command, and transmits the communication connection data corresponding to the identification ID to the plug-in program corresponding to the identification ID to achieve the control purpose.
6. The distributed plug-in system for robot control system development according to claim 2, characterized in that, Plugins that have not completed registration are published on the topic. The published topic includes the registered plugin name and the registered plugin version number.
7. The distributed plug-in system for robot control system development according to claim 5, characterized in that, The plugin management unit obtains the function list corresponding to the plugin program in two ways: actively obtaining and passively receiving.
8. The distributed plug-in system for robot control system development according to claim 1, characterized in that, The communication connection also includes registration plugin exception management, including: The plugin management unit polls the status of online and registered plugin programs to determine whether the plugin program can be used normally. If so, the plug-in management unit establishes communication with the plug-in program. If not, then delete the plugin program.
9. A management method for distributed plug-ins developed based on a robot control system, characterized in that, Management is performed using the distributed plug-in system described in any one of claims 1-8 for the development of robot control systems, including: Configure the initialization parameters for the plug-in management unit; The plugin management unit listens to the control command topic issued after the plugin program is registered and launched, generates an identification ID corresponding to the control command topic, and then establishes communication connection data corresponding to the plugin program to realize information interaction between the plugin management unit and the plugin program. After the plugin registration connection is completed, the plugin management unit obtains the function list corresponding to the plugin program and listens for the corresponding control commands in the function list; When the robot control system sends a control command to the plug-in management unit, it determines the identification ID based on the demand ID corresponding to the control command, and transmits the communication connection data corresponding to the identification ID to the plug-in program corresponding to the identification ID to achieve the control purpose.
10. The management method for distributed plug-ins developed based on a robot control system according to claim 9, characterized in that, The method further includes: For plugins that have been launched and registered, the plugin management unit polls to determine whether the plugin is usable. If so, the plugin management unit establishes communication with the plugin; otherwise, the plugin is deleted.
Citation Information
Patent Citations
Open type robot system
CN102431023A
Method for extending functions of management information system through plugins
CN103645919A
Extendable robot demonstrator based on scripts and plug-in
CN106873977A
Robot graphical development plug-in framework
CN107632859A
Application plug-in function extending method and application server
CN107911401A