Robot control system and method based on double cores

By using a dual-core robot control system, the real-time core and non-real-time core process tasks separately and communicate using shared memory space, thus solving the problem of non-real-time tasks affecting real-time performance and improving the stability and accuracy of robot motion control.

CN120941385APending Publication Date: 2025-11-14HANGZHOU INNOVATION RES INST OF BEIJING UNIV OF AERONAUTICS & ASTRONAUTICS +1
View PDF 0 Cites 3 Cited by

Patent Information

Application Number
CN202511151781.9
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2025-08-18
Publication Date
2025-11-14

AI Technical Summary

Technical Problem

In robot control systems, excessive computational demands on non-real-time tasks can compromise the real-time performance of real-time tasks, affecting the stability and accuracy of robot motion control.

Method used

A robot control system based on a dual kernel is adopted, with the real-time kernel and the non-real-time kernel handling real-time and non-real-time tasks respectively, and communicating through shared storage space to ensure the real-time performance and stability of the desired trajectory information.

Benefits of technology

It achieves determinism and stability in real-time tasks, avoids resource contention issues, and improves the accuracy and robustness of robot motion control.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN120941385A_ABST
    Figure CN120941385A_ABST
Patent Text Reader

Abstract

The invention provides a robot control system and method based on double cores, the robot control system comprises a real-time core, a non-real-time core and a memory, the memory is connected with the real-time core and the non-real-time core, and a shared storage space of the real-time core and the non-real-time core is arranged in the memory; the non-real-time core is used for executing a track information generation class task and writing a generated expected information group into a shared storage space; and the real-time core is used for calling the corresponding expected information groups from the shared storage space in sequence according to the writing sequence of the expected information groups, and executing a motion control type real-time task according to the expected information groups so as to drive each shaft motor of the robot. The real-time core and the non-real-time core communicate through the shared storage space, transmission of the expected trajectory information block is completed, the real-time requirement for obtaining the expected trajectory information block is guaranteed, interference of calculation fluctuation in the non-real-time core to a control thread in the real-time core is avoided, and the certainty and stability of robot motion control are ensured.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This invention relates to the field of robotics, and more specifically, to a robot control system and method based on a dual-kernel architecture. Background Technology

[0002] With the development of robotics and artificial intelligence technologies, robot applications are becoming increasingly complex. The integration of robots with functions such as visual imaging, force feedback, and human-robot collaboration is making robot control systems increasingly large. As the robot's brain, the robot control system not only needs to guarantee the real-time performance of real-time tasks for robot control but also needs to support non-real-time tasks of upper-level intelligent applications. This leads to non-real-time tasks increasingly consuming resources, making it impossible to guarantee the real-time performance of real-time tasks. When the computational load of non-real-time tasks becomes too large, it deteriorates the real-time performance of robot motion control. Summary of the Invention

[0003] The purpose of this invention is to provide a robot control system and method based on a dual-kernel architecture to improve the above-mentioned problems.

[0004] To achieve the above objectives, the technical solutions adopted in the embodiments of the present invention are as follows:

[0005] In a first aspect, embodiments of the present invention provide a robot control system based on a dual kernel. The robot control system based on a dual kernel includes a real-time kernel, a non-real-time kernel, and a memory. The memory is connected to the real-time kernel and the non-real-time kernel respectively, and the memory is provided with a shared storage space for the real-time kernel and the non-real-time kernel.

[0006] The non-real-time kernel is used to perform trajectory information generation tasks and write the generated expected information group into the shared storage space.

[0007] The expected information group includes a timestamp and the expected trajectory of each axis motor in the robot at the timestamp. The expected trajectory includes the expected position, expected speed and expected acceleration of the motor. The timestamp represents the execution cycle corresponding to the expected trajectory in the expected information group.

[0008] The real-time core is used to sequentially call the corresponding expected information groups from the shared storage space according to the writing order of the expected information groups, and execute motion control real-time tasks according to the expected information groups to drive the robot's axis motors.

[0009] Secondly, embodiments of the present invention provide a robot control method based on a dual-kernel architecture, applied to the aforementioned dual-kernel robot control system, the method comprising:

[0010] The non-real-time kernel executes trajectory information generation tasks and writes the generated expected information group into the shared storage space.

[0011] The expected information group includes a timestamp and the expected trajectory of each axis motor in the robot at the timestamp. The expected trajectory includes the expected position, expected speed and expected acceleration of the motor. The timestamp represents the execution cycle corresponding to the expected trajectory in the expected information group.

[0012] The real-time core sequentially retrieves the corresponding expected information groups from the shared storage space according to the writing order of the expected information groups, and executes motion control real-time tasks based on the expected information groups to drive the robot's axis motors.

[0013] Compared to existing technologies, this invention provides a dual-kernel-based robot control system and method. The dual-kernel-based robot control system includes a real-time kernel, a non-real-time kernel, and a memory. The memory is connected to both the real-time and non-real-time kernels and contains a shared storage space for both. The non-real-time kernel performs trajectory information generation tasks and writes the generated expected information sets into the shared storage space. The real-time kernel sequentially retrieves the corresponding expected information sets from the shared storage space according to their writing order and executes motion control real-time tasks to drive the robot's axis motors. The real-time and non-real-time kernels communicate through the shared storage space to transmit the expected trajectory information sets. This ensures the real-time requirement for acquiring the expected trajectory information sets while preventing interference from computational fluctuations in the non-real-time kernel from the control thread in the real-time kernel, thus ensuring the determinism and stability of the robot's motion control.

[0014] To make the above-mentioned objects, features and advantages of the present invention more apparent and understandable, preferred embodiments are described below in detail with reference to the accompanying drawings. Attached Figure Description

[0015] To more clearly illustrate the technical solutions of the embodiments of the present invention, the accompanying drawings used in the embodiments will be briefly introduced below. It should be understood that the following drawings only show some embodiments of the present invention and should not be regarded as a limitation on the scope. For those skilled in the art, other related drawings can be obtained based on these drawings without creative effort.

[0016] Figure 1 This is a schematic diagram of a robot control system based on a dual kernel, provided as an embodiment of the present invention.

[0017] Figure 2 This is a flowchart illustrating a robot control method based on a dual-kernel architecture, as provided in an embodiment of the present invention. Detailed Implementation

[0018] To make the objectives, technical solutions, and advantages of the embodiments of the present invention clearer, the technical solutions of the embodiments of the present invention will be clearly and completely described below with reference to the accompanying drawings. Obviously, the described embodiments are only some embodiments of the present invention, and not all embodiments. The components of the embodiments of the present invention described and shown in the accompanying drawings can generally be arranged and designed in various different configurations.

[0019] Therefore, the following detailed description of the embodiments of the invention provided in the accompanying drawings is not intended to limit the scope of the claimed invention, but merely to illustrate selected embodiments of the invention. All other embodiments obtained by those skilled in the art based on the embodiments of the invention without inventive effort are within the scope of protection of the invention.

[0020] It should be noted that similar reference numerals and letters in the following figures indicate similar items; therefore, once an item is defined in one figure, it does not need to be further defined and explained in subsequent figures. Furthermore, in the description of this invention, terms such as "first," "second," etc., are used only to distinguish descriptions and should not be construed as indicating or implying relative importance.

[0021] It should be noted that, in this document, relational terms such as "first" and "second" are used only to distinguish one entity or operation from another, and do not necessarily require or imply any such actual relationship or order between these entities or operations. Furthermore, the terms "comprising," "including," or any other variations thereof are intended to cover non-exclusive inclusion, such that a process, method, article, or apparatus that comprises a list of elements includes not only those elements but also other elements not expressly listed, or elements inherent to such a process, method, article, or apparatus. Without further limitations, an element defined by the phrase "comprising one..." does not exclude the presence of other identical elements in the process, method, article, or apparatus that includes said element.

[0022] In the description of this invention, it should be noted that the terms "upper," "lower," "inner," "outer," etc., indicate the orientation or positional relationship based on the orientation or positional relationship shown in the accompanying drawings, or the orientation or positional relationship in which the product of this invention is usually placed when in use. They are only for the convenience of describing this invention and simplifying the description, and do not indicate or imply that the device or element referred to must have a specific orientation, or be constructed and operated in a specific orientation. Therefore, they should not be construed as limiting this invention.

[0023] In the description of this invention, it should also be noted that, unless otherwise explicitly specified and limited, the terms "set" and "connection" should be interpreted broadly. For example, they can refer to a fixed connection, a detachable connection, or an integral connection; they can refer to a mechanical connection or an electrical connection; they can refer to a direct connection or an indirect connection through an intermediate medium; and they can refer to the internal connection of two components. Those skilled in the art can understand the specific meaning of the above terms in this invention based on the specific circumstances.

[0024] The following detailed description of some embodiments of the present invention is provided in conjunction with the accompanying drawings. Unless otherwise specified, the following embodiments and features can be combined with each other.

[0025] This invention provides a robot control system based on a dual-kernel architecture. Please refer to [link / reference]. Figure 1 , Figure 1 This is a schematic diagram of a robot control system based on a dual-kernel architecture, provided as an embodiment of the present invention.

[0026] The dual-core robot control system includes a real-time core, a non-real-time core, and a memory. The memory is connected to both the real-time core and the non-real-time core, and the memory contains shared storage space for both the real-time core and the non-real-time core.

[0027] The real-time core runs a real-time operating system (which may be, but is not limited to, the Zyphyr real-time operating system), while the non-real-time core runs a non-real-time operating system (which may be, but is not limited to, the openEuler Embedded non-real-time operating system). The memory may be, but is not limited to, RAM or Static Random-Access Memory (SRAM). In other words, the memory can be the RAM deployed on the same on-chip system as the non-real-time and real-time cores. The non-real-time and real-time cores can be Central Processing Units (CPUs).

[0028] The real-time core, non-real-time core, and memory are housed on a single System on Chip (SOC). Deploying the real-time and non-real-time cores separately isolates the kernels for real-time and non-real-time tasks, thus avoiding resource contention. For example, in scenarios such as laser welding and vision-guided robotic operations, the robot needs to process sensor data and perform motion control in real time, while also executing complex intelligent algorithms. By deploying the intelligent algorithm portion on the non-real-time kernel and the motion control portion on the real-time kernel, the real-time performance of motion control can be ensured while fully utilizing the computing resources of the non-real-time kernel.

[0029] The non-real-time kernel is used to perform trajectory information generation tasks and write the generated expected information group into the shared storage space.

[0030] The expected information group includes a timestamp and the expected trajectory of each axis motor in the robot at that timestamp. The expected trajectory includes the expected position, expected velocity, and expected acceleration of the motor. The timestamp represents the execution cycle corresponding to the expected trajectory in the expected information group. Trajectory information generation tasks are computationally intensive and long-cycle intelligent algorithm tasks such as image processing and path planning handled by a non-real-time kernel. The execution cycle length can be, but is not limited to, 100ms-200ms.

[0031] The real-time core is used to sequentially call the corresponding expected information groups from the shared storage space according to the writing order of the expected information groups, and execute motion control real-time tasks according to the expected information groups to drive the robot's axis motors.

[0032] Motion control real-time tasks are periodic tasks with high real-time requirements, and need to be completed within strict time constraints.

[0033] It should be noted that after the real-time kernel obtains the expected information group, it will only execute motion control real-time tasks to drive the robot's motors on each axis when the time matches the timestamp in the expected information group.

[0034] In the dual-kernel robot control system provided in this embodiment of the invention, the real-time kernel and the non-real-time kernel communicate through a shared storage space to complete the transmission of the desired trajectory information group. This ensures the real-time requirement for acquiring the desired trajectory information group and avoids interference from the calculation fluctuations in the non-real-time kernel on the control thread in the real-time kernel, thus ensuring the determinism and stability of the robot motion control.

[0035] Alternatively, please continue to refer to Figure 1 The shared storage space is a ring-shaped buffer space, which includes a preset number of sub-intervals. Figure 1 The example uses a preset quantity of 8, but this is not a limitation; a preset quantity greater than or equal to 2 is acceptable. This circular buffer space indicates that cyclic writing is possible, meaning that after writing to the last sub-interval, writing can begin again from the first sub-interval. Based on this, regarding the specific process of generating the desired information group in the non-real-time kernel and writing it to the shared storage space, this embodiment of the invention also provides an optional implementation method, please refer to the following.

[0036] The non-real-time kernel is used to perform trajectory information generation tasks in conjunction with target sensing data when at least one sub-interval is in an idle state, generate a new expected information group, and write the new expected information group into the first target sub-interval.

[0037] The first target sub-interval is the first-ranked free sub-interval in the shared storage space. The target sensing data includes visual image data and depth image data acquired within a preset time window. The preset time window refers to a time window of a preset length prior to the current time point. The visual image data is data collected by the robot's corresponding visual sensor (which may, but is not limited to, being deployed on the robot), and the depth image data is data collected by the robot's corresponding LiDAR (which may, but is not limited to, being deployed on the robot).

[0038] Because the new expected information group will only be written to the first target sub-interval that is in an idle state, it avoids the expected trajectory being lost and affecting the robot's motion control if the expected information group in the sub-interval has not been read or expired, thus ensuring the stability of the robot's operation.

[0039] It should be noted that when generating new expected information, trajectory error will also be corrected. The trajectory error is the deviation between the expected trajectory and the actual trajectory corresponding to the historical execution cycle. The historical execution cycle can be the execution cycle within a preset time window.

[0040] Building upon the preceding text, this invention also provides an optional implementation method to ensure the orderly writing and reading of desired information, as detailed below.

[0041] The non-real-time kernel is used to modify the write status flag of the first target sub-interval to the written status and the read status flag of the first target sub-interval to the unread status after writing the new expected information group into the first target sub-interval.

[0042] When the real-time kernel needs to retrieve the corresponding desired information group from the shared storage space, the specific execution process is as follows.

[0043] The real-time kernel is used to determine the second target sub-interval based on the write status flag and read status flag of each sub-interval, and to call the expected information group in the second target sub-interval.

[0044] The second target sub-interval is a sub-interval that is in a busy state and whose corresponding previous sub-interval is in an idle state. The expected information group in the second target sub-interval is the expected information group that was written earliest and has not yet been read, arranged according to the writing order of the expected information group. The busy state means that the write status flag is in the written state and the read status flag is in the unread state. The idle state means that the write status flag is in the unwritten state or the read status flag is in the read state.

[0045] The real-time kernel is also used to modify the write status flag of the second target sub-interval to an unwritten state and / or modify the read status flag of the second target sub-interval to a read state after completing the call to the expected information group in the second target sub-interval.

[0046] Based on the foregoing, this invention also provides an optional implementation method for determining whether the write and read conditions are met, as detailed below.

[0047] The non-real-time kernel is also used to send a write-ready signal to the memory after writing a new expected information group to the first target sub-interval, so that the memory updates the current signal count of the shared memory space, where the current signal count is the number of expected information groups that have been written to the shared memory space but have not yet been read.

[0048] When the memory receives a write-ready signal, it updates the current signal count. The update method can be to add 1 to the current signal count to obtain the new current signal count.

[0049] The real-time core is also used to send a read completion signal to the memory after completing the call to the desired information group in the second target sub-interval, so that the memory updates the current number of signals in the shared memory space.

[0050] When the memory receives a read completion signal, it updates the current signal count. The update method can be to subtract 1 from the current signal count to obtain the new current signal count.

[0051] The non-real-time kernel is used to query the current signal count according to the first cycle. When the current signal count reaches the preset number, it is determined that there are no idle sub-intervals in the shared storage space, and no new expected information group needs to be generated at this time. When the current signal count is less than the preset number, it is determined that there is at least one idle sub-interval in the shared storage space. At this time, the target sensing data can be combined to perform trajectory information generation tasks to generate a new expected information group and write the new expected information group into the first target sub-interval.

[0052] The real-time kernel is used to query the current signal count according to the second cycle. When the current signal count is greater than or equal to 1, it determines that there is a group of expected information that has not yet been read in the shared storage space. Based on the write status flag and read status flag of each sub-interval, it determines the second target sub-interval and calls the expected information group in the second target sub-interval.

[0053] The second period can be, but is not limited to, being equal to the first period.

[0054] When the current signal count is 0, it means there is no data to read.

[0055] It should be understood that, compared to directly polling the status flags of a sub-interval, the current number of signals can quickly determine whether reading is needed and whether writing is possible, thus improving the system's operating efficiency.

[0056] Optionally, the non-real-time kernel is also configured to send a write-ready signal to the memory after writing a new expected information group to the first target sub-interval, so that the memory updates the write-ready semaphore of the shared memory space, wherein the write-ready semaphore is the number of expected information groups written in the shared memory space.

[0057] When the memory receives a write ready signal, it updates the write ready semaphore. The update method can be to add 1 to the write ready semaphore to obtain a new write ready semaphore.

[0058] The real-time kernel is also used to send a read completion signal to the memory after completing the call to the expected information group in the second target sub-interval, so that the memory updates the read completion semaphore of the shared memory space, wherein the read completion semaphore is the number of expected information groups read from the shared memory space.

[0059] When the memory receives a read completion signal, it updates the read completion signal value. The update method can be to add 1 to the read completion signal value to obtain a new read completion signal value.

[0060] The non-real-time kernel is used to query the read completion semaphore according to the first cycle, and determine the current number of semaphores based on the write ready semaphore and the read completion semaphore. When the current number of semaphores reaches the preset number, it is determined that there are no sub-intervals in the shared memory space that are in an idle state. When the current number of semaphores is less than the preset number, it is determined that there is at least one sub-interval in the shared memory space that is in an idle state.

[0061] The real-time kernel is used to query the write-ready semaphore according to the second cycle, and determine the current number of semaphores based on the write-ready semaphore and the read-complete semaphore. When the current number of semaphores is greater than or equal to 1, it is determined that there is a group of expected information that has not yet been read in the shared memory space. Based on the write status flag and read status flag of each sub-interval, the second target sub-interval is determined, and the expected information group in the second target sub-interval is called.

[0062] To avoid situations where robots perform incorrect actions due to equipment malfunction or malicious attacks, resulting in cost losses and safety incidents, this embodiment of the invention also provides an optional implementation that overcomes the above problems by introducing a version number to determine whether the obtained expected information group meets the requirements and executing the expected information group that meets the requirements. The specific details are as follows.

[0063] The non-real-time kernel is used to update the current version number of the first target sub-interval after the new expected information group is written into the first target sub-interval.

[0064] The real-time kernel is also used to read the current version number of the second target sub-interval after completing the call to the expected information group in the second target sub-interval, and compare the current version number of the second target sub-interval with its corresponding historical version number. If they are the same (meaning that the requirements are not met), the execution of the expected information group in the second target sub-interval is abandoned.

[0065] The historical version number is the current version number of the second target sub-interval that was last read.

[0066] Alternatively, the non-real-time kernel is used to update the current version number of the first target sub-interval according to the corresponding version number change pattern after the new expected information group is written into the first target sub-interval.

[0067] The real-time kernel is also used to read the current version number of the second target sub-interval after completing the call to the expected information group in the second target sub-interval, and compare the current version number of the second target sub-interval with its corresponding historical version number to confirm whether it conforms to the version number change pattern of the second target sub-interval. If it does not conform, the execution of the expected information group in the second target sub-interval is abandoned.

[0068] The version number change pattern can be, but is not limited to, addition, XOR, and subtraction patterns.

[0069] Optionally, a cache copy is also provided in the memory. Based on this, regarding how to write the new expected information group into the first target sub-interval, the embodiments of the present invention also provide an optional implementation method, please refer to the following.

[0070] The non-real-time kernel is used to perform trajectory information generation tasks in conjunction with target sensing data when at least one sub-interval is idle, generate a new expected information group, and write the new expected information group to a cache copy.

[0071] The non-real-time kernel is also used to copy the expected information group in the cache copy to the first target sub-interval after writing the new expected information group to the cache copy, that is, to write the new expected information group to the first target sub-interval.

[0072] When using shared memory for data exchange between non-real-time and real-time cores, the write operation to memory takes time. The conventional approach is to use locking mechanisms to avoid data read / write issues between multiple systems, but this introduces context switching and waiting, significantly compromising the deterministic nature of real-time performance and execution efficiency. Therefore, a cache copy mechanism is used to avoid this problem during data writes. The non-real-time core continuously writes to the cache copy, ensuring that the shared memory space (main buffer) remains undisturbed during the write process. After the write is complete, the data from the cache copy is copied to the shared memory space all at once. Using a cache copy from the same memory to copy the desired information group to the first target sub-interval in the shared memory space takes less time than directly writing the desired information group to the first target sub-interval.

[0073] By constructing a robot control system based on a dual-core operating system architecture, efficient separation and coordination of non-real-time intelligent tasks and real-time control tasks were achieved. The real-time control module runs within a real-time operating system with deterministic scheduling capabilities, ensuring high precision, high stability, and low latency response during robot motion control. Simultaneously, the non-real-time core carries computationally intensive perception fusion, trajectory optimization, and prediction algorithms, enabling analysis and dynamic correction of trajectory errors based on visual and other perceptual information. Efficient data exchange between the two cores is achieved through shared memory and a semaphore mechanism. A dual-buffer and semaphore polling strategy avoids interrupt jitter and resource preemption issues, improving the system's real-time performance and robustness. This allows for intelligent optimization and dynamic adjustment of the trajectory while ensuring real-time control, significantly enhancing the robot's task adaptability and execution accuracy in complex scenarios.

[0074] This invention also provides a dual-kernel-based robot control method, applied to the aforementioned dual-kernel-based robot control system. Please refer to [link / reference]. Figure 2 Dual-kernel-based robot control methods include:

[0075] S11, non-real-time kernel executes trajectory information generation tasks and writes the generated expected information group into the shared storage space.

[0076] The expected information group includes a timestamp and the expected trajectory of each axis motor in the robot at the timestamp. The expected trajectory includes the expected position, expected speed and expected acceleration of the motor. The timestamp represents the execution cycle corresponding to the expected trajectory in the expected information group.

[0077] S12, the real-time core sequentially calls the corresponding expected information groups from the shared storage space according to the writing order of the expected information groups, and executes motion control real-time tasks according to the expected information groups to drive the robot's axis motors.

[0078] In summary, the present invention provides a robot control system and method based on a dual-kernel architecture. The dual-kernel robot control system includes a real-time kernel, a non-real-time kernel, and a memory. The memory is connected to both the real-time and non-real-time kernels and contains a shared storage space for both. The non-real-time kernel performs trajectory information generation tasks and writes the generated expected information sets into the shared storage space. The real-time kernel sequentially retrieves the corresponding expected information sets from the shared storage space according to their writing order and executes motion control real-time tasks to drive the robot's axis motors. The real-time and non-real-time kernels communicate through the shared storage space to transmit the expected trajectory information sets, ensuring the real-time requirement for acquiring the expected trajectory information sets while avoiding interference from computational fluctuations in the non-real-time kernel on the control thread in the real-time kernel, thus ensuring the determinism and stability of the robot's motion control.

[0079] The above description is merely a preferred embodiment of the present invention and is not intended to limit the invention. Various modifications and variations can be made to the present invention by those skilled in the art. Any modifications, equivalent substitutions, improvements, etc., made within the spirit and principles of the present invention should be included within the scope of protection of the present invention.

[0080] It will be apparent to those skilled in the art that the present invention is not limited to the details of the exemplary embodiments described above, and that the invention can be implemented in other specific forms without departing from its spirit or essential characteristics. Therefore, the embodiments should be considered in all respects as exemplary and non-limiting, and the scope of the invention is defined by the appended claims rather than the foregoing description. Thus, all variations falling within the meaning and scope of equivalents of the claims are intended to be included within the present invention. No reference numerals in the claims should be construed as limiting the scope of the claims.

Claims

1. A robot control system based on a dual-kernel architecture, characterized in that, The robot control system based on a dual kernel includes a real-time kernel, a non-real-time kernel, and a memory. The memory is connected to the real-time kernel and the non-real-time kernel respectively, and the memory is provided with a shared storage space for the real-time kernel and the non-real-time kernel. The non-real-time kernel is used to perform trajectory information generation tasks and write the generated expected information group into the shared storage space. The expected information group includes a timestamp and the expected trajectory of each axis motor in the robot at the timestamp. The expected trajectory includes the expected position, expected speed and expected acceleration of the motor. The timestamp represents the execution cycle corresponding to the expected trajectory in the expected information group. The real-time core is used to sequentially call the corresponding expected information groups from the shared storage space according to the writing order of the expected information groups, and execute motion control real-time tasks according to the expected information groups to drive the robot's axis motors.

2. The robot control system based on a dual kernel as described in claim 1, characterized in that, The shared storage space is a ring-shaped buffer space, and the shared storage space includes a preset number of sub-intervals; The non-real-time kernel is used to perform trajectory information generation tasks in conjunction with target sensing data when at least one sub-interval is in an idle state, generate a new expected information group, and write the new expected information group into the first target sub-interval. The first target sub-interval is the first free sub-interval in the shared storage space, and the target sensing data includes visual image data and depth image data acquired within a preset time window.

3. The robot control system based on a dual kernel as described in claim 2, characterized in that, The non-real-time kernel is used to modify the write status flag of the first target sub-interval to the written status and the read status flag of the first target sub-interval to the unread status after writing the new expected information group into the first target sub-interval. The real-time kernel is used to determine the second target sub-interval based on the write status flag and read status flag of each sub-interval, and to call the expected information group in the second target sub-interval. The second target sub-interval is a sub-interval that is in a busy state and whose corresponding previous sub-interval is in an idle state. The busy state means that the write status flag is in a written state and the read status flag is in a read-not-read state. The idle state means that the write status flag is in a write-not-written state or the read status flag is in a read-not-read state. The real-time kernel is also used to modify the write status flag of the second target sub-interval to an unwritten state and / or modify the read status flag of the second target sub-interval to a read state after completing the call to the expected information group in the second target sub-interval.

4. The robot control system based on a dual kernel as described in claim 3, characterized in that, The non-real-time kernel is also used to send a write-ready signal to the memory after writing a new expected information group to the first target sub-interval, so that the memory updates the current signal count of the shared memory space, wherein the current signal count is the number of expected information groups that have been written to and have not yet been read in the shared memory space. The real-time core is also used to send a read completion signal to the memory after completing the call to the desired information group in the second target sub-interval, so that the memory updates the current signal count of the shared storage space; The non-real-time kernel is used to query the current signal count according to the first cycle. When the current signal count reaches a preset number, it determines that there is no sub-interval in the shared storage space that is in an idle state. When the current signal count is less than the preset number, it determines that there is at least one sub-interval in the shared storage space that is in an idle state. The real-time core is used to query the current signal count according to the second cycle. When the current signal count is greater than or equal to 1, it determines the second target sub-interval based on the write status flag and read status flag of each sub-interval, and calls the expected information group in the second target sub-interval.

5. The robot control system based on a dual kernel as described in claim 3, characterized in that, The non-real-time kernel is also used to send a write-ready signal to the memory after writing a new expected information group to the first target sub-interval, so that the memory updates the write-ready semaphore of the shared memory space, wherein the write-ready semaphore is the number of expected information groups written in the shared memory space. The real-time core is also configured to send a read completion signal to the memory after completing the call to the expected information group in the second target sub-interval, so that the memory updates the read completion signal quantity of the shared memory space, wherein the read completion signal quantity is the number of expected information groups read from the shared memory space; The non-real-time kernel is used to query the read completion semaphore according to the first cycle, and determine the current number of signals based on the write ready semaphore and the read completion semaphore. When the current number of signals reaches a preset number, it is determined that there is no sub-interval in the shared storage space that is in an idle state. When the current number of signals is less than the preset number, it is determined that there is at least one sub-interval in the shared storage space that is in an idle state. The real-time core is used to query the write ready semaphore according to the second cycle, and determine the current number of signals based on the write ready semaphore and the read complete semaphore. When the current number of signals is greater than or equal to 1, the second target sub-interval is determined based on the write status flag and read status flag of each sub-interval, and the expected information group in the second target sub-interval is called.

6. The robot control system based on a dual kernel as described in claim 3, characterized in that, The non-real-time kernel is used to update the current version number of the first target sub-interval after writing the new expected information group into the first target sub-interval; The real-time kernel is also used to read the current version number of the second target sub-interval after completing the call to the expected information group in the second target sub-interval, and compare whether the current version number of the second target sub-interval is the same as its corresponding historical version number. If they are the same, the execution of the expected information group in the second target sub-interval is abandoned.

7. The robot control system based on a dual kernel as described in claim 3, characterized in that, The non-real-time kernel is used to update the current version number of the first target sub-interval after writing the new expected information group into the first target sub-interval; The real-time kernel is also used to read the current version number of the second target sub-interval after completing the call to the expected information group in the second target sub-interval, and compare the current version number of the second target sub-interval with its corresponding historical version number to confirm whether it conforms to the version number change pattern of the second target sub-interval. If it does not conform, the execution of the expected information group in the second target sub-interval is abandoned.

8. The robot control system based on a dual kernel as described in claim 2, characterized in that, The memory also contains a cache copy; The non-real-time kernel is used to perform trajectory information generation tasks in conjunction with target sensing data when at least one sub-interval is in an idle state, generate a new expected information group, and write the new expected information group into the cache copy. The non-real-time kernel is also used to copy the expected information group in the cache copy to the first target sub-interval after writing the new expected information group to the cache copy.

9. The robot control system based on a dual kernel as described in claim 1, characterized in that, The memory is the memory deployed on the same on-chip system as the non-real-time core and the real-time core.

10. A robot control method based on a dual-kernel architecture, characterized in that, The method, applied to the dual-kernel-based robot control system according to any one of claims 1-9, comprises: The non-real-time kernel executes trajectory information generation tasks and writes the generated expected information group into the shared storage space. The expected information group includes a timestamp and the expected trajectory of each axis motor in the robot at the timestamp. The expected trajectory includes the expected position, expected speed and expected acceleration of the motor. The timestamp represents the execution cycle corresponding to the expected trajectory in the expected information group. The real-time core sequentially retrieves the corresponding expected information groups from the shared storage space according to the writing order of the expected information groups, and executes motion control real-time tasks based on the expected information groups to drive the robot's axis motors.

Citation Information

Cited By

  • Heterogeneous multi-core system and operation method thereof, electronic equipment and medium

    CN121704911A

  • Servo driver

    CN122292988A

  • Teleoperated arm control method, apparatus, teleoperated arm, storage medium, and program product

    CN122378763A