WO2022199000A1 - 一种控制方法、控制系统及智能设备 - Google Patents

一种控制方法、控制系统及智能设备 Download PDF

Info

Publication number
WO2022199000A1
WO2022199000A1 PCT/CN2021/125037 CN2021125037W WO2022199000A1 WO 2022199000 A1 WO2022199000 A1 WO 2022199000A1 CN 2021125037 W CN2021125037 W CN 2021125037W WO 2022199000 A1 WO2022199000 A1 WO 2022199000A1
Authority
WO
WIPO (PCT)
Prior art keywords
application
control
data
component
target
Prior art date
Application number
PCT/CN2021/125037
Other languages
English (en)
French (fr)
Inventor
王子宜
杨国平
董浩
Original Assignee
深圳市优必选科技股份有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 深圳市优必选科技股份有限公司 filed Critical 深圳市优必选科技股份有限公司
Priority to US17/584,398 priority Critical patent/US11969890B2/en
Publication of WO2022199000A1 publication Critical patent/WO2022199000A1/zh

Links

Images

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/042Programme control other than numerical control, i.e. in sequence controllers or logic controllers using digital processors
    • G05B19/0423Input/output
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/20Pc systems
    • G05B2219/25Pc structure of the system
    • G05B2219/25257Microcontroller

Definitions

  • the present application belongs to the field of communication technologies, and in particular, relates to a control method, a control system, an intelligent device, and a computer-readable storage medium.
  • the control system of the robot is a system in which the robot periodically sets the motors and other components at each joint of the robot according to the calculation results of the control algorithm.
  • the control of the control system is mostly a synchronous sequential process of reading the data of the components and deploying the calculation results to the components through the control algorithm.
  • the degree of freedom of the robot increases and the complexity of the control algorithm increases, the time-consuming of the control algorithm also increases, so that the running time of the control algorithm plus the time of data transmission is greater than the control cycle of the robot.
  • the present application provides a control method, a control system, an intelligent device and a computer-readable storage medium, which can still achieve orderly control of the intelligent device within a limited control period.
  • control method comprising:
  • the corresponding component data is extracted from the above-mentioned component data stream, and the corresponding application data packet is obtained by encapsulating each application, wherein the above-mentioned application protocol indicates The components monitored by the application and the components controlled by the application;
  • the control data reported by each application is obtained respectively, wherein the above-mentioned control data reported by one application is generated based on the application data packet received by the above-mentioned application;
  • a component control instruction is generated for each component, so as to realize the control of each component.
  • control system including:
  • the above-mentioned control system includes components, applications and a decision-making center; wherein, the above-mentioned decision-making center includes:
  • the extraction unit is used to extract the corresponding component data from the above-mentioned component data flow based on the application protocol registered by each application when the component data stream is received in the current control period, and encapsulates each application to obtain corresponding application data packets, wherein , the above application protocol indicates the components monitored by the application and the components controlled by the application;
  • a sending unit used for sending corresponding application data packets to each application
  • an obtaining unit configured to obtain the control data reported by each application according to the data reporting timing corresponding to each application, wherein the above-mentioned control data reported by one application is generated based on the application data packet received by the above-mentioned application;
  • the generating unit is configured to generate a component control instruction for each component according to the control data reported by each application in the above-mentioned current control period and the application protocol registered by each application, so as to realize the control of each component.
  • the present application provides a smart device.
  • the smart device includes a memory, a processor, and a computer program stored in the memory and running on the processor.
  • the processor executes the computer program, the above-mentioned computer program is implemented as described above. The steps of the method of the first aspect.
  • the present application provides a computer-readable storage medium, where the computer-readable storage medium stores a computer program, and when the computer program is executed by a processor, implements the steps of the method in the first aspect.
  • the present application provides a computer program product, wherein the computer program product includes a computer program, and when the computer program is executed by one or more processors, the steps of the method of the first aspect are implemented.
  • the present application has the following beneficial effects: when a component data stream is received in the current control period, firstly, based on the application protocol registered by each application, the corresponding component data is extracted from the above-mentioned component data stream, and the corresponding component data is extracted for each application.
  • the application encapsulates to obtain corresponding application data packets, wherein the above application protocol indicates the components monitored by the application and the components controlled by the application, and then the corresponding application data packets are sent to each application, and according to the data reporting timing corresponding to each application, Respectively obtain the control data reported by each application, wherein the above-mentioned control data reported by one application is generated based on the application data packet received by the above-mentioned application, and finally, according to the control data reported by each application in the above-mentioned current control period and each application is registered.
  • the application protocol generates component control instructions for each component to realize the control of each component.
  • each application in the smart device can register the application protocol according to its own functional requirements, so that the required component data can be obtained from the component data stream in time, and the data processing efficiency of each application and the resource utilization of the smart device can be improved. Utilization efficiency; in addition, the corresponding data reporting timing is also planned for each application, providing sufficient algorithm running time for each application, which can still achieve orderly control of smart devices within a limited control period. It can be understood that, for the beneficial effects of the second aspect to the fifth aspect, reference may be made to the relevant description in the first aspect, which is not repeated here.
  • Fig. 1 is the realization flow schematic diagram of the control method provided by the embodiment of the present application.
  • FIG. 2 is a schematic diagram of an interaction flow of a control method provided by an embodiment of the present application.
  • FIG. 3 is a schematic sequence diagram of a synchronization application provided by an embodiment of the present application.
  • FIG. 4 is a schematic sequence diagram of a single-cycle asynchronous application provided by an embodiment of the present application.
  • FIG. 5 is a schematic sequence diagram of a multi-cycle asynchronous application provided by an embodiment of the present application.
  • Fig. 6 is the mechanism block diagram of the control system provided by the embodiment of the present application.
  • FIG. 7 is a structural block diagram of a decision center provided by an embodiment of the present application.
  • FIG. 8 is a schematic structural diagram of a smart device provided by an embodiment of the present application.
  • control method includes:
  • Step 101 When the component data stream is received in the current control period, based on the application protocol registered by each application, corresponding component data is extracted from the above-mentioned component data stream, and corresponding application data packets are obtained by encapsulating each application.
  • each application can register the application protocol adopted by itself when the robot starts up, and the application protocol includes a monitoring protocol and a return protocol, wherein the monitoring protocol is used to indicate the Protocols are used to indicate which components an application controls.
  • the application protocol adopted by each application can be configured by the developer in advance according to the function of each application. After the configuration is completed, each application only needs to register the application protocol at the decision center when the robot starts, so that the decision center can learn the application protocol adopted by each application.
  • the application protocol can be represented as a correspondence between data indexes and data structures.
  • the data index value of the motor of the foot is 1, and the data index value of the motor of the waist is 2.
  • the data structure corresponding to the data index value of each motor includes parameters such as the number of motors, the speed of the motor, and the position of the motor.
  • the data index of the Inertial Measurement Unit (IMU) is 4, and the data structure corresponding to the data index of the IMU includes three uniaxial accelerometer data x, y and z, and three uniaxial gyroscopes Parameters such as data roll, pitch and yaw.
  • each robot such as distance sensors and remote controllers will be configured with their own unique data index values and corresponding data structures. Therefore, when the application registers the application protocol, it can report the data index value associated with the monitored component to inform the decision center which component data to read; it can report the data index associated with the controlled component. In the form of values, it tells the decision center which component data to write.
  • the decision center When the decision center reads the signal that the control cycle starts, it enters the current control cycle.
  • the decision center can extract the component data required by each application from the component data stream based on the application protocol registered by each application, And encapsulate the corresponding application data packets for each application.
  • the decision center can extract the motor data and distance sensor data of the foot from the component data stream, and encapsulate the extracted motor data and distance sensor data of the foot into the application data package of application A .
  • Step 102 Send corresponding application data packets to each application.
  • the decision center can send the corresponding application data packets to each application.
  • each application After each application receives the application data packet sent by the decision center, it can start to analyze and operate the received application data packet based on its own preset control algorithm to generate corresponding control data.
  • Step 103 Acquire the control data reported by each application respectively according to the data reporting timing corresponding to each application.
  • the running time of the control algorithm adopted by each application is different.
  • the application can be divided into two types: synchronous application and asynchronous application.
  • the application is a synchronous application; on the contrary, if the running time of the control algorithm adopted by an application is not less than the cycle time of the control cycle , the application is an asynchronous application. It can be seen from this that within one control period, after the asynchronous application obtains the application data packet, it must not be able to generate control data within the control period. Therefore, the robot can determine the data reporting timing corresponding to each application according to the application type of each application.
  • the synchronization application can be deployed on the local machine, or it can also be deployed on the slave device connected to the local machine through a high-speed bus such as PCIe (peripheral component interconnect express), the principle is that the communication time is less than 20% of the control period;
  • PCIe peripheral component interconnect express
  • the deployment of asynchronous applications is not limited by delays and regions, and can be deployed in local, PCIe slave devices or network devices.
  • Step 104 according to the control data reported by each application in the current control period and the application protocol registered by each application, generate a component control instruction for each component, so as to realize the control of each component.
  • the decision center can generate the control data for each component according to the control data and the component controlled by the application protocol registered by each application.
  • Component control instructions to control each component For example, according to the application protocol registered by application A and application B, it is determined that both application A and application B control the motor of the foot, then the components for the motor of the foot can be generated based on the control data returned by application A and application B
  • the control command is used to control the motor of the foot; and according to the application protocol registered by the application C, it is determined that the application C controls the motor of the waist, and the component control command for the motor of the waist can be generated based on the control data returned by the application C, Realize the control of the motor of the waist.
  • the decision center will also perform timeout judgment on these applications; then the above step 102 can be expressed as:
  • a corresponding application data packet is sent to each target first application, wherein the target first application is a first application that has not reported a timeout in the previous control period.
  • the current control cycle is the i-th control cycle after the robot is started, and the previous control cycle refers to the i-1-th control cycle. It should be noted that if the current control cycle is the first control cycle experienced by the robot after it is started, then there is no need to perform a timeout judgment on each first application. It can be seen that i should be a positive integer greater than 1. For any first application, as long as the application does not report a timeout phenomenon in the previous control period, the first application can be determined as the target first application. After each first application has been judged over time, all target first applications that have not timed out in the previous control period can be obtained by screening. The decision center may send corresponding application data packets to each target first application.
  • corresponding control data will be generated by the decision center.
  • the decision center will not send the application data packet of application A in the current control period to application A, and the decision center will Registered application protocol to learn the component controlled by the application and generate a control data for the component. That is, the control data will be generated by the decision center instead of the non-target first application.
  • the decision center will replace the application that reports timeout in the current control cycle to generate control data.
  • the decision center learns the component controlled by the application according to the application protocol registered by the application A, and generates a control data for the component.
  • the decision center if the decision center detects that there is an application that continuously reports the timeout for N times when the application data packet is received, it can be determined that the robot is abnormal, and the robot can be triggered to stop at this time.
  • the above N is set according to the running state of the robot. Generally speaking, if the running state of the robot is a static state, N can be set to a larger value, for example, N can be 5; In the moving state, N can be set to a small value, for example, N can be 3.
  • the continuous reporting timeout is recorded as 1 time; the decision center does not send application data to application A in the i+1-th control cycle packet, and resume sending application data packets to application A in the i+2th control cycle; if application A reports timeout in the i+2th control cycle, it will be recorded as 2 consecutive reporting timeouts; the decision center is in the i+2th control cycle Do not send application data packets to application A for 3 control cycles, and resume sending application data packets to application A in the i+4th control cycle; if application A reports timeout within the i+4th control cycle, it will be recorded as continuous reporting The timeout is 3 times, it can be determined that the robot is abnormal, and the robot can be triggered to stop at this time.
  • the synchronization application should report control data to the decision center within the current control period; thus, for each target first application, the data reporting timing of the target first application may be determined as: the current control period , within a preset timeout period after the corresponding application data packet is sent to the target first application. That is, for any target first application, after the decision center sends the application data packet to the target first application, it will start timing, and when the timing time does not exceed the timeout period, the target should be received.
  • the control data reported by the first application if the decision center has not received the control data reported by the target first application after the timing time exceeds the timeout period, it is considered that within the current control period, the target first application Reporting timed out.
  • the decision center after sending corresponding application data packets to each target first application, the decision center sends corresponding application data packets to each second application, where the second application is an application belonging to an asynchronous application. That is, when the decision center sends the corresponding application data packet to the application, it will preferentially send it to the synchronous application.
  • the asynchronous application typically reports control data to the decision center in a control period following the current control period.
  • asynchronous applications can be further subdivided into single-cycle asynchronous applications and multi-cycle asynchronous applications.
  • the single-cycle asynchronous application refers to the application that reports control data in the next control cycle
  • the multi-cycle asynchronous application refers to the next n control cycles.
  • An application that reports control data For example, if an application receives an application data packet in the i-th cycle, and only reports the control data calculated based on the application data packet in the i+1-th cycle, the application is a single-cycle asynchronous application.
  • an application receives an application data packet in the i-th cycle, it reports the control data based on the application data packet operation in the i+n-th cycle, and n is a positive integer greater than 1, then the application is multi- Periodic asynchronous application. Therefore, for each second application, the decision center can first obtain the number of asynchronous cycles of the second application based on the running time of the control algorithm adopted by the second application, and determine the target control cycle according to the number of asynchronous cycles. Obviously, , this target control period is after the current control period. Correspondingly, it can be determined that the data reporting timing of the second application is after the component data stream is received within the target control period.
  • the decision center sends the application data packet to the second application, once it enters the target control period determined based on the second application, it will first Receive the control data reported by the second application, and then perform component data extraction and application data packet encapsulation operations on the component data stream received within the target control period.
  • the decision center when the decision center obtains the control data reported by an asynchronous application, it will first judge the validity of the control data, and only after determining the control data If it is valid, the decision center will perform subsequent processing on the control data; and if it is determined that the control data is invalid, the control data will be discarded. As an example only, if the control data reported by an asynchronous application in the current control period has changed compared with the control data reported in the previous control period, the control data reported by the asynchronous application in the current control period is considered to be changed. It's effective.
  • step 104 considering that there are usually multiple components in the robot, and according to the application protocol registered by each application, it can be known that different applications may control different components. Therefore, the above step 104 can be expressed as:
  • Component control instructions are generated for each component according to the target control data of each component.
  • the decision center can determine which applications in the robot will control the component according to the return protocol registered by each application, so that the control data corresponding to the component can be obtained. Then, the decision center can update the target control data of the component according to the control data corresponding to the component. After the above operations are performed on each component, the target control data of each component can be obtained, and respective component control instructions are correspondingly generated for each component.
  • control data reported by the application can be directly determined as the target control data.
  • the weight of application A is 0.7
  • the weight of application B is 0.3, indicating that the priority of the control data returned by application A is higher than the priority of control data returned by application B.
  • the target control data finally updated by the decision center will take into account the control data returned by application A; that is, the control data returned by application A will be used.
  • the component control instructions of the motor of the foot are obtained.
  • the order of weight from high to low is: synchronous application - asynchronous single-cycle application - asynchronous multi-cycle application.
  • the decision center may also generate control data, it is often considered that the control data generated by the decision center has the highest priority, that is, the weight of the decision center is higher than the weight of the application.
  • FIG. 2 shows a schematic diagram of an interaction flow between a decision center, a motor control unit and an application (including a synchronous application and an asynchronous application), wherein the motor control unit It is used to control the motor according to the received motor control command (ie, the component control command for the motor).
  • the motor control unit It is used to control the motor according to the received motor control command (ie, the component control command for the motor).
  • the motor control unit After the motor control unit reads the motor data, it will send a signal to the decision center, so that the decision center can synchronize the motor cycle, that is, enter the current control cycle.
  • the motor control unit thus enters the state of waiting for the signal, and starts timing to determine whether the feedback from the decision center has timed out.
  • the decision center will first receive the control data reported by each asynchronous application, and judge the validity of the data. It should be noted that the control data reported by each asynchronous application is calculated based on the motor data of a certain control cycle in history.
  • the decision center encapsulates the corresponding application data packet for each application that needs motor data, and prepares to send the application data packet to the synchronous application first, and then sends the application data packet to the asynchronous application. It should be noted that if a synchronous application times out in the previous control period, the decision center will not send application data packets to the synchronous application in the current control period to avoid the situation of losing synchronization. For each synchronous application, after receiving the application data packet within the current control period, it should also report the control data within the current control period. If it fails to report in time, it will be recorded as timeout by the decision-making center. For an asynchronous application, after receiving the application data packet in the current control period, it will report the control data in the subsequent control period.
  • the decision center will update the target control data of the motor according to the control data for the motor reported by each application in the current control cycle and the weight of each application, and generate a motor control command according to the target control data, and the motor control command will It is sent back to the motor control unit.
  • the operation of the decision center in the current control cycle ends.
  • the motor control unit will use a timeout strategy to process it.
  • the timeout policy is related to the running state of the robot. For example, if the robot is in a static state, it can continue to control the motor based on the motor control instructions of the previous control cycle; if the robot is in a static state, the motor control unit can place the motor in an estimated state, so that the motor is in a state of emergency. Stop or fly.
  • Figure 2 shows that the decision center first receives the control data reported by each asynchronous application, and then sends the data packet to the asynchronous application
  • the order of the two is not limited in practical applications. That is, it is also possible to encapsulate the data packets of each application first and send the corresponding data packets to the synchronous and asynchronous applications respectively, and then receive the control data reported by the asynchronous applications, which is not limited here.
  • the control algorithm iterates over the control data).
  • FIG. 3 shows a timing diagram of a synchronization application.
  • Synchronous application refers to completing a series of operations of component data reading, control algorithm calculation, calculation result return and component control within one control cycle.
  • the robot control period T1 is 1ms
  • the motor control unit and the decision center are two processes, the two processes communicate through shared memory, and the data read and write time T2 is 50us
  • the synchronization application is a separate process, independent
  • the transmission of 1K data is about 100us
  • T4 is the running time of the control algorithm reserved for the synchronous application, namely:
  • the synchronization application has the advantages of good synchronization performance, simple control, and timely hardware response.
  • the control method proposed by the embodiments of the present application can support parallel execution of multiple synchronous applications.
  • Single-cycle asynchronous applications refer to: with the multi-core processing capability of the robot's Central Processing Unit (CPU), one thread is responsible for reading and writing component data, one thread is responsible for controlling the calculation of the algorithm, and the algorithm thread and the communication thread
  • the calculation cycle of the control algorithm can be basically the same as the control cycle of the component. In this way, the control of the component is delayed by one cycle, which has little effect on the real-time performance, but the application will gain more computing time.
  • the control period T1 of the robot is 1ms
  • the motor control unit and the decision center are two processes
  • the two processes communicate through shared memory
  • the time T2 for one data read and write is 50us
  • the single-cycle asynchronous application is A separate process, independent of the decision center, if the single-cycle asynchronous application and the decision center are in the same device, the two also communicate through shared memory, and the time T3 for one data transmission is 50us, if the synchronous application and the decision center are not in the same device.
  • the two are connected by PCIe, and the transmission of 1K data is about 100us
  • the decision center first sends a data packet to the single-cycle asynchronous application, and then receives the control data calculated from the data packet of the previous control cycle fed back by the single-cycle asynchronous application data packet.
  • the data flow of the single-cycle asynchronous application is briefly described as follows: the motor control unit reads the motor data and transmits it to the decision center, and the decision center sends the data packet encapsulated based on the control data to the single-cycle asynchronous application, and reads the The calculation result of the last control cycle; that is, the single-cycle asynchronous application only needs to calculate the corresponding control data based on the last motor data before receiving the current motor data, and read it for the decision center.
  • the motor control unit reads the motor data and transmits it to the decision center
  • the decision center sends the data packet encapsulated based on the control data to the single-cycle asynchronous application, and reads the The calculation result of the last control cycle; that is, the single-cycle asynchronous application only needs to calculate the corresponding control
  • the motor control unit reads the motor data
  • the motor data is transmitted from the motor control unit to the decision center;
  • the decision center sends the motor data to the single-cycle asynchronous application, and the single-cycle asynchronous application starts to calculate;
  • the decision center obtains the calculation result calculated by the single-cycle asynchronous application based on the motor data of the previous control cycle (i-1th control cycle);
  • the decision center returns the control command to the motor control unit based on the calculation result, and writes data to the motor;
  • the motor control unit reads the motor data
  • the decision center sends the motor data to the single-cycle asynchronous application, and the single-cycle asynchronous application starts to calculate;
  • the decision center obtains the calculation result calculated by the single-cycle asynchronous application based on the motor data of the previous control cycle (i-th control cycle) (that is, the motor data sent at 150us).
  • FIG. 5 shows a timing diagram of a multi-cycle asynchronous application.
  • a multi-cycle asynchronous application is a complement to a single-cycle asynchronous application, which returns computation results after multiple cycles.
  • the control period T1 of the robot is 1ms
  • the motor control unit and the decision center are two processes
  • the two processes communicate through shared memory
  • the time T2 for one data read and write is 50us
  • the single-cycle asynchronous application is A separate process, independent of the decision center, if the single-cycle asynchronous application and the decision center are in the same device, the two also communicate through shared memory, and the time T3 for one data transmission is 50us, if the synchronous application and the decision center are not in the same device.
  • the two are connected by PCIe, and the transmission of 1K data is about 100us
  • the multi-cycle asynchronous application can be applied to the scenario of planning, navigation, perception data, and network data that can accept high latency or high time consumption.
  • each application in the smart device can register the application protocol according to the requirements of its own function, so that the required component data can be obtained from the component data stream in time, and the data processing efficiency of each application can be improved. Utilization efficiency of smart device resources.
  • the types of each application can also be divided based on the running time of the control algorithm of each application, and the corresponding data reporting timing can be planned accordingly, providing sufficient algorithm running time for each application, which can be used within a limited control period. Orderly control of smart devices is still achieved.
  • the embodiment of the present application provides a control system 6 .
  • the control system 6 is integrated in the smart device, including a component 61 , a decision center 62 and an application 63 .
  • the number of components 61 and applications 63 may be more than one, which is not limited here.
  • the decision center 62 includes:
  • the extraction unit 621 is used to extract corresponding component data from the above-mentioned component data stream based on the application protocol registered by each application when receiving the component data stream in the current control period, and encapsulate the corresponding application data packet for each application, wherein, the above application protocol indicates the components monitored by the application and the components controlled by the application;
  • a sending unit 622 configured to send corresponding application data packets to each application
  • the obtaining unit 623 is configured to obtain the control data reported by each application according to the data reporting timing corresponding to each application, wherein the above-mentioned control data reported by one application is generated based on the application data packet received by the above-mentioned application;
  • the generating unit 624 is configured to generate a component control instruction for each component according to the control data reported by each application in the above-mentioned current control cycle and the application protocol registered by each application, so as to realize the control of each component.
  • the application types of the above-mentioned applications include synchronous applications and asynchronous applications; the above-mentioned decision center 62 also includes:
  • the determining unit is configured to determine the data reporting timing corresponding to each application according to the application type of each application before the obtaining unit 623 obtains the control data reported by each application respectively according to the data reporting timing corresponding to each application.
  • the above-mentioned sending unit 622 includes:
  • a timeout detection subunit configured to detect whether each first application reports a timeout in the previous control period, wherein the above-mentioned first application is an application belonging to a synchronous application;
  • the first sending subunit is configured to send corresponding application data packets to each target first application, wherein the target first application is a first application that has not reported a timeout in the previous control period.
  • the above-mentioned sending unit 622 further includes:
  • the second sending subunit is configured to send the corresponding application data packet to each second application after the above-mentioned sending the corresponding application data packet to each target first application, wherein the above-mentioned second application is an application belonging to an asynchronous application.
  • the above-mentioned determining unit includes:
  • the first determination subunit is configured to, for each target first application, determine the data reporting timing of the target first application as: in the current control cycle, the preset after sending the corresponding application data packet to the target first application within the timeout period.
  • the above-mentioned determining unit includes:
  • a period determination subunit configured to obtain, for each second application, the number of asynchronous periods of the above-mentioned second application, and determine a target control period according to the above-mentioned number of asynchronous periods, wherein the above-mentioned target control period is after the above-mentioned current control period;
  • the second determination subunit is configured to determine the data reporting timing of the second application: after the component data stream is received within the target control period.
  • the above-mentioned generating unit 624 includes:
  • the data determination subunit is used to determine the control data corresponding to each component according to the application protocol registered by each application;
  • a data update subunit for updating and obtaining target control data for each component based on the control data corresponding to the above-mentioned components
  • the component control subunit is used for generating component control instructions for each component according to the target control data of each component.
  • each control data is a parameter of a component controlled by the corresponding application
  • the above-mentioned data update subunit includes:
  • a weight obtaining subunit configured to obtain the weight of the application corresponding to the at least two control data respectively if a parameter of the above-mentioned component is associated with at least two control data
  • the target control data updating subunit is configured to update and obtain the above target control data based on the control data corresponding to the above components and the above weights.
  • each application in the smart device can register the application protocol according to the requirements of its own function, so that the required component data can be obtained from the component data stream in time, and the data processing efficiency of each application can be improved. Utilization efficiency of smart device resources.
  • the types of each application can also be divided based on the running time of the control algorithm of each application, and the corresponding data reporting timing can be planned accordingly, providing sufficient algorithm running time for each application, which can be used within a limited control period. Orderly control of smart devices is still achieved.
  • the smart device 8 in the embodiment of the present application also provides a smart device, and the smart device may be a robot.
  • the smart device 8 in the embodiment of the present application includes: a memory 801, one or more processors 802 (only one is shown in FIG. 8), and a computer stored in the memory 801 and running on the processor program.
  • the memory 801 is used to store software programs and units, and the processor 802 executes various functional applications and data processing by running the software programs and units stored in the memory 801 to obtain resources corresponding to the above preset events.
  • the processor 802 implements the following steps by running the above-mentioned computer program stored in the memory 801:
  • the corresponding component data is extracted from the above-mentioned component data stream, and the corresponding application data packet is obtained by encapsulating each application, wherein the above-mentioned application protocol indicates The components monitored by the application and the components controlled by the application;
  • the control data reported by each application is obtained respectively, wherein the above-mentioned control data reported by one application is generated based on the application data packet received by the above-mentioned application;
  • a component control instruction is generated for each component, so as to realize the control of each component.
  • the application types of the above applications include synchronous applications and asynchronous applications;
  • the processor 802 Before obtaining the control data reported by each application, the processor 802 also implements the following steps by running the above-mentioned computer program stored in the memory 801 at the data reporting timing corresponding to the application:
  • the data reporting timing corresponding to each application is determined according to the application type of each application.
  • the above-mentioned sending corresponding application data packets to each application includes:
  • a corresponding application data packet is sent to each target first application, wherein the target first application is a first application that has not reported a timeout in the previous control period.
  • the above-mentioned sending corresponding application data packets to each application further includes:
  • the corresponding application data packets are sent to each target first application, the corresponding application data packets are sent to each second application, wherein the second application is an application belonging to an asynchronous application.
  • the above-mentioned determination of the data reporting timing corresponding to each application according to the application type of each application includes:
  • the data reporting timing of the target first application is determined as: in the current control period, within a preset timeout period after sending a corresponding application data packet to the target first application.
  • the above-mentioned according to the application type of each application determine the data reporting opportunity corresponding to each application, including:
  • the asynchronous cycle number of the second application is obtained, and a target control cycle is determined according to the asynchronous cycle number, wherein the target control cycle is after the current control cycle;
  • the data reporting timing of the second application is: after the component data stream is received within the target control period.
  • Component control instructions are generated for each component according to the target control data of each component.
  • each control data is a parameter of a component controlled by the corresponding application, and the above-mentioned control data corresponding to the above-mentioned component is updated to obtain Target control data, including:
  • the target control data is obtained by updating.
  • the processor 802 may be a CPU, and the processor may also be other general-purpose processors, digital signal processors (Digital Signal Processors, DSPs), application specific integrated circuits (Application Specific Integrated Circuits) , ASIC), off-the-shelf programmable gate array (Field-Programmable Gate Array, FPGA) or other programmable logic devices, discrete gate or transistor logic devices, discrete hardware components, etc.
  • DSPs Digital Signal Processors
  • ASIC Application Specific Integrated Circuits
  • FPGA off-the-shelf programmable gate array
  • a general purpose processor may be a microprocessor or the processor may be any conventional processor or the like.
  • Memory 801 may include read-only memory and random access memory, and provides instructions and data to processor 802 .
  • a portion or all of memory 801 may also include non-volatile random access memory.
  • the memory 801 may also store information of device categories.
  • each application in the smart device can register the application protocol according to the requirements of its own function, so that the required component data can be obtained from the component data stream in time, and the data processing efficiency of each application can be improved. Utilization efficiency of smart device resources.
  • the types of each application can also be divided based on the running time of the control algorithm of each application, and the corresponding data reporting timing can be planned accordingly, providing sufficient algorithm running time for each application, which can be used within a limited control period. Orderly control of smart devices is still achieved.
  • the units described above as separate components may or may not be physically separated, and components shown as units may or may not be physical units, that is, may be located in one place, or may be distributed to multiple network units. Some or all of the units may be selected according to actual needs to achieve the purpose of the solution in this embodiment.
  • the above-mentioned integrated units are implemented in the form of software functional units and sold or used as independent products, they may be stored in a computer-readable storage medium.
  • the present application can implement all or part of the processes in the methods of the above embodiments, and can also be completed by instructing the associated hardware through a computer program, and the above computer program can be stored in a computer-readable storage medium, the computer When the program is executed by the processor, the steps of the foregoing method embodiments can be implemented.
  • the above-mentioned computer program includes computer program code
  • the above-mentioned computer program code can be in the form of source code, object code form, executable file or some intermediate form, etc.
  • the above-mentioned computer-readable storage medium may include: any entity or device capable of carrying the above-mentioned computer program code, a recording medium, a U disk, a removable hard disk, a magnetic disk, an optical disk, a computer-readable memory, a read-only memory (ROM, Read-Only Memory) ), random access memory (RAM, Random Access Memory), electrical carrier signals, telecommunication signals, and software distribution media, etc.
  • a recording medium a U disk, a removable hard disk, a magnetic disk, an optical disk
  • a computer-readable memory a read-only memory (ROM, Read-Only Memory) ), random access memory (RAM, Random Access Memory), electrical carrier signals, telecommunication signals, and software distribution media, etc.
  • ROM Read-Only Memory
  • RAM Random Access Memory
  • electrical carrier signals telecommunication signals
  • software distribution media etc.

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Automation & Control Theory (AREA)
  • Manipulator (AREA)
  • Communication Control (AREA)

Abstract

本申请公开了一种控制方法、控制系统、智能设备及计算机可读存储介质。其中,该控制方法包括:在当前控制周期内接收到组件数据流时,基于各个应用所注册的应用协议,从组件数据流中提取对应的组件数据,为各个应用封装得到对应的应用数据包;向各个应用发送对应的应用数据包;根据各个应用所对应的数据上报时机,分别获取各个应用上报的控制数据;根据各个应用在当前控制周期内所上报的控制数据以及各个应用所注册的应用协议,为各个组件生成组件控制指令,以实现对各个组件的控制。通过本申请方案,可在有限的控制周期内仍然实现对智能设备的有序控制。

Description

一种控制方法、控制系统及智能设备
本申请要求于2021年03月26日在中国专利局提交的、申请号为202110327255.9的中国专利申请的优先权,其全部内容通过引用结合在本申请中。
技术领域
本申请属于通信技术领域,尤其涉及一种控制方法、控制系统、智能设备及计算机可读存储介质。
背景技术
机器人的控制系统是机器人根据控制算法的计算结果对机器人的各关节处的电机及其它组件进行周期性设置的系统。通常来说,控制系统的控制多为读取组件的数据,并通过控制算法将计算结果向组件进行部署的同步顺序过程。随着机器人自由度的增加,以及控制算法的复杂性的提高,控制算法的耗时也随之增加,以至于控制算法的运行时间加上数据传输的时间要大于机器人的控制周期。
技术问题
本申请提供了一种控制方法、控制系统、智能设备及计算机可读存储介质,可在有限的控制周期内仍然实现对智能设备的有序控制。
技术解决方案
第一方面,本申请提供了一种控制方法,包括:
在当前控制周期内接收到组件数据流时,基于各个应用所注册的应用协议,从上述组件数据流中提取对应的组件数据,为各个应用封装得到对应的应用数据包,其中,上述应用协议指示了应用所监听的组件及应用所控制的组件;
向各个应用发送对应的应用数据包;
根据各个应用所对应的数据上报时机,分别获取各个应用上报的控制数据,其中,一个应用上报的上述控制数据基于上述应用接收到的应用数据包而生成;
根据各个应用在上述当前控制周期内所上报的控制数据以及各个应用所注册的应用协议,为各个组件生成组件控制指令,以实现对各个组件的控制。
第二方面,本申请提供了一种控制系统,包括:
上述控制系统包括组件、应用及决策中心;其中,上述决策中心包括:
提取单元,用于在当前控制周期内接收到组件数据流时,基于各个应用所注册的应用协议,从上述组件数据流中提取对应的组件数据,为各个应用封装得到对应的应用数据包,其中,上述应用协议指示了应用所监听的组件及应用所控制的组件;
发送单元,用于向各个应用发送对应的应用数据包;
获取单元,用于根据各个应用所对应的数据上报时机,分别获取各个应用上报的控制数据,其中,一个应用上报的上述控制数据基于上述应用接收到的应用数据包而生成;
生成单元,用于根据各个应用在上述当前控制周期内所上报的控制数据以及各个应用所注册的应用协议,为各个组件生成组件控制指令,以实现对各个组件的控制。
第三方面,本申请提供了一种智能设备,上述智能设备包括存储器、处理器以及存储在上述存储器中并可在上述处理器上运行的计算机程序,上述处理器执行上述计算机程序时实现如上述第一方面的方法的步骤。
第四方面,本申请提供了一种计算机可读存储介质,上述计算机可读存储介质存储有计算机程序,上述计算机程序被处理器执行时实现如上述第一方面的方法的步骤。
第五方面,本申请提供了一种计算机程序产品,上述计算机程序产品包括计算机程序,上述计算机程序被一个或多个处理器执行时实现如上述第一方面的方法的步骤。
有益效果
本申请与现有技术相比存在的有益效果是:在当前控制周期内接收到组件数据流时,首先基于各个应用所注册的应用协议,从上述组件数据流中提取对应的组件数据,为各个应用封装得到对应的应用数据包,其中,上述应用协议指示了应用所监听的组件及应用所控制的组件,然后向各个应用发送对应的应用数据包,并根据各个应用所对应的数据上报时机,分别获取各个应用上报的控制数据,其中,一个应用上报的上述控制数据基于上述应用接收到的应用数据包而生成,最后根据各个应用在上述当前控制周期内所上报的控制数据以及各个应用所注册的应用协议,为各个组件生成组件控制指令,以实现对各个组件的控制。通过本申请方案,智能设备中的各应用可根据自身的功能需求来注册应用协议,以便能够及时从组件数据流中获得所需要的组件数据,提升各应用的数据处理效率及对智能设备资源的利用效率;并且,还为各个应用规划了各自所对应的数据上报时机,为各个应用提供了足够的算法运行时间,可在有限的控制周期内仍然实现对智能设备的有序控制。可以理解的是,上述第二方面至第五方面的有益效果可以参见上述第一方面中的相关描述,在此不再赘述。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的控制方法的实现流程示意图;
图2是本申请实施例提供的控制方法的交互流程示意图;
图3是本申请实施例提供的同步应用的时序示意图;
图4是本申请实施例提供的单周期异步应用的时序示意图;
图5是本申请实施例提供的多周期异步应用的时序示意图;
图6是本申请实施例提供的控制系统的机构框图;
图7是本申请实施例提供的决策中心的结构框图;
图8是本申请实施例提供的智能设备的结构示意图。
本发明的实施方式
以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本申请实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本申请。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本申请的描述。
为了说明本申请所提出的技术方案,下面通过具体实施例来进行说明。
为便于说明,下面以智能设备为机器人为例,对本申请实施例提供的一种控制方法进行描述。当然,该智能设备也可以是其它类型的设备,此处不作限定。请参阅图1,该控制方法包括:
步骤101,在当前控制周期内接收到组件数据流时,基于各个应用所注册的应用协议,从上述组件数据流中提取对应的组件数据,为各个应用封装得到对应的应用数据包。
在本申请实施例中,每个应用可在机器人启动时,对自己所采用的应用协议进行注册,该应用协议包括监听协议以及返回协议,其中,监听协议用于指示应用所监听的组件,返回协议用于指示应用所控制的组件。举例来说,应用A希望通过距离传感器所感应到的障碍物的数据来控制机器人的移动,则应用A所注册的监听协议指示了应用所监听的组件为足部的电机及距离传感器,且应用A所注册的返回协议指示了应用A所控制的是足部的电机。通常来说,各个应用所采用的应用协议都可由研发人员预先分别根据各个应用的功能而进行配置。在配置完成后,各个应用只需要在机器人启动时,将应用协议在决策中心处进行注册即可,以使得决策中心可获知各个应用所采用的应用协议。
在一些实施例中,应用协议可表现为数据索引与数据结构体的对应关系。举例来说,足部的电机的数据索引值为1,腰部的电机的数据索引值为2,每个电机的数据索引值所对应的数据结构体包含电机个数,电机速度及电机位置等参数;惯性测量单元(Inertial Measurement Unit,IMU)的数据索引为4,该IMU的数据索引所对应的数据结构体包含三个单轴的加速度计数据x、y及z,以及三个单轴的陀螺数据roll、pitch及yaw等参数。 同理,距离传感器及遥控器等各个机器人的常见组件都将配置有各自唯一的数据索引值及对应的数据结构体。由此,应用在注册应用协议时,可以上报与所监听的组件相关联的数据索引值的形式,向决策中心告知其要读取哪些组件数据;可以上报与所控制的组件相关联的数据索引值的形式,向决策中心告知其要写入哪些组件数据。
决策中心在读取到控制周期开始的信号时,即进入当前控制周期。在该当前控制周期内,一旦接收到机器人的各个组件所发送的组件数据流,决策中心就可以基于各个应用所注册的应用协议,从该组件数据流中提取出各个应用所需要的组件数据,并为各个应用封装得到对应的应用数据包。例如,对于应用A来说,决策中心可从组件数据流中提取出足部的电机数据及距离传感器数据,并将所提取出的足部的电机数据及距离传感器数据封装为应用A的应用数据包。
步骤102,向各个应用发送对应的应用数据包。
在本申请实施例中,决策中心在封装得到各个应用所对应的应用数据包后,即可向每个应用发送各自所对应的应用数据包。每个应用在接收到决策中心发送的应用数据包后,即可开始基于自身所预设的控制算法,对所接收到的应用数据包进行解析及运算,以生成对应的控制数据。
步骤103,根据各个应用所对应的数据上报时机,分别获取各个应用上报的控制数据。
在本申请实施例中,每个应用所采用的控制算法的运行时间长短不一。根据应用所采用的控制算法的运行时间的长短,可将应用划分为两种类型,分别为同步应用及异步应用。举例来说,若一应用所采用的控制算法的运行时间小于控制周期的周期时间,则该应用即为同步应用;反之,若一应用所采用的控制算法的运行时间不小于控制周期的周期时间,则该应用即为异步应用。由此可知,在一个控制周期的时间内,异步应用在获得应用数据包后,必然无法再在该控制周期内生成控制数据。因而,机器人可根据各个应用的应用类型,确定各个应用所对应的数据上报时机。
一般来说,同步应用可部署在本机,或者,也可部署在通过PCIe(peripheral component interconnect express)等高速总线与本机连接的从属设备上,其原则是通信时间小于控制周期的20%;而异步应用的部署则不受延时及地域的限制,可部署在本地、PCIe从属设备或者网络设备中。
步骤104,根据各个应用在上述当前控制周期内所上报的控制数据以及各个应用所注册的应用协议,为各个组件生成组件控制指令,以实现对各个组件的控制。
在本申请实施例中,决策中心在汇总了各个应用在当前控制周期内所上报的控制数据后,即可根据该控制数据以及各个应用所注册的应用协议所指示控制的组件,为各个组件生成组件控制指令,以实现对各个组件的控制。举例来说,根据应用A及应用B所注册的 应用协议,确定应用A及应用B均控制足部的电机,则可基于应用A及应用B所返回的控制数据生成针对足部的电机的组件控制指令,实现对足部的电机的控制;又根据应用C所注册的应用协议,确定应用C控制腰部的电机,则可基于应用C所返回的控制数据生成针对腰部的电机的组件控制指令,实现对腰部的电机的控制。
在一些实施例中,对于属于同步应用的应用来说,决策中心还会对这些应用进行超时判断;则上述步骤102可表现为:
检测各个第一应用在前一控制周期内是否上报超时,其中,上述第一应用为属于同步应用的应用;
向各个目标第一应用发送对应的应用数据包,其中,上述目标第一应用为在上述前一控制周期内未上报超时的第一应用。
记当前控制周期是机器人启动后的第i个控制周期,则前一控制周期指的就是第i-1个控制周期。需要注意的是,若当前控制周期是机器人启动后所经历的第一个控制周期,那么就无需对各个第一应用进行超时判断,由此可知,i应为大于1的正整数。对于任一个第一应用来说,只要该应用在前一控制周期内未出现上报超时的现象,就可将该第一应用确定为目标第一应用。在对每个第一应用都进行了超时判断后,即可筛选得到前一控制周期未超时的所有目标第一应用。决策中心可向各个目标第一应用发送对应的应用数据包。也即,只有前一控制周期未超时的第一应用才可接收到当前控制周期的应用数据包;而对于前一控制周期已超时的第一应用(也即非目标第一应用)来说,它们在当前控制周期内无法接收到应用数据包。
在一些实施例中,对于各个非目标第一应用所对应的应用数据包,将由决策中心来生成对应的控制数据。例如,假定应用A为同步应用,且应用A在前一控制周期内上报超时,则决策中心不会向应用A发送当前控制周期内该应用A的应用数据包,且决策中心会根据应用A所注册的应用协议,来获知应用所控制的组件,并为该组件生成一个控制数据。也即,会由决策中心取代非目标第一应用来生成控制数据。除此之外,决策中心还会取代在当前控制周期内上报超时的应用来生成控制数据。举例来说,若应用A是目标第一应用,但其在当前控制周期内上报超时,这就意味着在当前控制周期内决策中心未能收到应用A所上报的数据,此时也会由决策中心根据应用A所注册的应用协议,来获知应用所控制的组件,并为该组件生成一个控制数据。
在一些实施例中,若决策中心检测到存在有应用在接收到应用数据包的情况下,连续上报超时达到N次,则可确定机器人出现异常,此时可触发机器人停止。其中,上述N根据机器人的运行状态而设定,通常来说,若机器人的运行状态为静止状态,则可设定N为 一较大值,例如N可以是5;反之,若机器人的运行状态为移动状态,则可设定N为一较小值,例如N可以是3。举例来说,在机器人的静止状态下,若第i个控制周期内,应用A上报超时,则记连续上报超时为1次;决策中心在第i+1个控制周期不向应用A发送应用数据包,并在第i+2个控制周期恢复向应用A发送应用数据包;若第i+2个控制周期内,应用A上报超时,则记连续上报超时为2次;决策中心在第i+3个控制周期不向应用A发送应用数据包,并在第i+4个控制周期恢复向应用A发送应用数据包;若第i+4个控制周期内,应用A上报超时,则记连续上报超时为3次,可确定机器人出现异常,此时可触发机器人停止。
在一些实施例中,同步应用应在当前控制周期内就向决策中心上报控制数据;由此,针对每个目标第一应用,可确定上述目标第一应用的数据上报时机为:上述当前控制周期中,向上述目标第一应用发送对应的应用数据包后的预设的超时周期内。也即,针对任一个目标第一应用,决策中心在向该目标第一应用发送了应用数据包后,就会开始进行计时,并在计时时间未超过该超时周期时,就应该接收到该目标第一应用所上报的控制数据;若在计时时间超过该超时周期之后,决策中心仍未接收到该目标第一应用所上报的控制数据,则认为在当前控制周期内,该该目标第一应用上报超时。
在一些实施例中,决策中心会在向各个目标第一应用发送了对应的应用数据包之后,再向各个第二应用发送对应的应用数据包,其中,第二应用为属于异步应用的应用。也即,在决策中心向应用发送对应的应用数据包时,会优先向同步应用进行发送。
在一些实施例中,异步应用通常在当前控制周期之后的控制周期内向决策中心上报控制数据。其中,异步应用还可进一步细分为单周期异步应用及多周期异步应用,该单周期异步应用指的是在下一控制周期上报控制数据的应用,多周期异步应用指的是在下n个控制周期上报控制数据的应用。举例来说,若一个应用在第i个周期接收到了应用数据包,在第i+1个周期才上报基于该应用数据包运算所得的控制数据,则该应用为单周期异步应用。反之,若一个应用在第i个周期接收到了应用数据包,在第i+n个周期才上报基于该应用数据包运算所得的控制数据,且n为大于1的正整数,则该应用为多周期异步应用。由此,针对每个第二应用,决策中心可先基于该第二应用所采用的控制算法的运行时间来获取该第二应用的异步周期数量,并根据该异步周期数量确定目标控制周期,显然,这一目标控制周期在当前控制周期之后。相应地,可确定该第二应用的数据上报时机为:在该目标控制周期内接收到组件数据流之后。也即,针对任一个第二应用,决策中心在向该第 二应用发送了应用数据包后,一旦进入到基于该第二应用所确定的目标控制周期,就会在该目标控制周期内,先接收该第二应用所上报的控制数据,然后再对该目标控制周期内所接收到的组件数据流进行组件数据的提取及应用数据包的封装操作。
在一些实施例中,考虑到异步应用不存在上报阻塞的情况,因而决策中心在获取到一异步应用所上报的控制数据时,还会先判断该控制数据的有效性,只有在确定该控制数据有效的情况下,决策中心才会对该控制数据进行后续处理;而在确定该控制数据无效的情况下,该控制数据会被丢弃。仅作为示例,若一异步应用在当前控制周期内所上报的控制数据与前一控制周期内所上报的控制数据相比发生了改变,则认为该异步应用在当前控制周期内所上报的控制数据是有效的。
在一些实施例中,考虑到机器人中通常有着多个组件,且根据各个应用所注册的应用协议可知,不同应用可能控制不同的组件,因而,上述步骤104可表现为:
根据各个应用所注册的应用协议,确定各个组件所对应的控制数据;
针对每个组件,基于上述组件所对应的控制数据,更新得到目标控制数据;
根据各个组件的目标控制数据,为各个组件生成组件控制指令。
也即,针对任一组件来说,决策中心可根据各个应用所注册的返回协议来确定机器人中的哪些应用会对该组件进行控制,由此即可获知该组件所对应的控制数据。随后,决策中心即可根据该组件所对应的控制数据,更新得到该组件的目标控制数据。在对各个组件均进行了上述操作后,即可得到各个组件的目标控制数据,并相应为各个组件生成各自的组件控制指令。
在一种应用场景下,对于某一组件来说,假定只有一个应用会对其进行控制,则该应用所上报的控制数据可被直接确定为目标控制数据。
在另一种应用场景下,对于某一组件来说,假定有两个以上应用会对其进行控制,也即,该组件与至少两个控制数据相关联,这样一来,决策中心就会先去获取该至少两个控制数据所分别对应的应用的权重,然后基于该组件所对应的控制数据及上述权重,更新得到上述目标控制数据。需要注意的是,对于所注册的返回协议相同的应用来说,这些应用在进行协议注册操作时,还会同时告知决策中心各自的权重。举例来说,应用A所注册的返回协议及应用B所注册的返回协议相同,均为指示对足部的电机的控制,则应用A及应用B会在进行协议注册的同时上报自己的权重,例如,应用A权重为0.7,应用B权重为0.3,以表示应用A所返回的控制数据的优先级会高于应用B所返回的控制数据的优先级。这样一来,后续对于足部的电机这一组件来说,决策中心所最终更新得到的目标控制数据会更多的考虑应用A所返回的控制数据;也即,以应用A所返回的控制数据为基础,通过 应用B所返回的控制数据对应用A所返回的控制数据进行简单的微调,得到足部的电机的组件控制指令。
通常情况下,对于注册了相同返回协议的应用来说,权重由高至低的顺序为:同步应用-异步单周期应用-异步多周期应用。除此之外,考虑到决策中心也可能生成控制数据,往往认为决策中心所生成的控制数据的优先级最高,也即,决策中心的权重高于应用的权重。
在一些实施例中,请参照图2,以组件是电机为例,图2给出了决策中心、电机控制单元及应用(包括同步应用及异步应用)的交互流程示意图,其中,该电机控制单元用于根据接收到的电机控制指令(也即对电机的组件控制指令)来实现对电机的控制。下面对三者的交互进行简单介绍:
首先,电机控制单元在读取到电机数据后,就会向决策中心发送信号,以使得决策中心能够同步电机周期,也即进入当前控制周期内。电机控制单元由此进入等待信号的状态,并开始计时,以判断决策中心的反馈是否超时。
其次,在当前控制周期,决策中心会先接收各个异步应用所上报的控制数据,并进行数据有效性的判断。需要注意的是,各个异步应用所上报的控制数据均为基于历史某一控制周期的电机数据而计算得到。
然后,决策中心为每个需要电机数据的应用封装对应的应用数据包,并准备先向同步应用发送应用数据包,再向异步应用发送应用数据包。需要注意的是,若某一同步应用在前一控制周期内超时,则当前控制周期内决策中心不向该同步应用发送应用数据包,以避免出现失步的情况。对于每个同步应用来说,其在当前控制周期内收到应用数据包后,同样也应在该当前控制周期内上报控制数据,若未能及时上报,则会被决策中心记录为超时。对于异步应用来说,其在当前控制周期内收到应用数据包后,会在之后的控制周期内上报控制数据。
接着,决策中心会根据各应用在当前控制周期所上报的针对电机的控制数据以及各应用的权重来更新得到电机的目标控制数据,并根据该目标控制数据生成电机控制指令,该电机控制指令会被发送回电机控制单元,至此,决策中心在当前控制周期内的操作结束。
最后,若电机控制单元所接收到的电机控制指令未超时,则可根据该电机控制指令来写入电机数据,实现对电机的控制。需要注意的是,由于每个控制周期结束前都需要对电机进行控制,因而,若决策中心的反馈有超时,则电机控制单元会采用超时策略进行处理。其中,该超时策略与机器人的运行状态有关。例如,若机器人处于静止状态下,则可以是继续基于上一控制周期的电机控制指令来对电机进行控制;若机器人处于静止状态,则电 机控制单元可以一个预估状态来放置电机,使得电机急停或跑飞。
需要注意的是,虽然图2中示出的是决策中心先接收各异步应用上报的控制数据,之后再发送数据包至异步应用,但实际应用中并不会对这两者的顺序进行限制。也即,也可以是先封装各应用的数据包并分别向同步及异步应用发送对应的数据包,再接收异步应用上报的控制数据,此处不作限定。只有极少数情况要求决策中心先接收异步应用上报的控制数据,例如,某一异步应用在本次运行控制算法时,需要使用到上次运行控制算法所输出的控制数据(也即,该异步应用的控制算法会对控制数据进行迭代)。
为便于理解本方案,下面对三种应用(同步应用、单周期异步应用及多周期异步应用)进行进一步说明:
请参阅图3,图3示出了同步应用的时序图。同步应用指的是:在一个控制周期内完成组件数据读取,控制算法的计算,计算结果的返回以及对组件的控制这一系列操作。
仅作为示例,假定机器人控制周期T1为1ms,电机控制单元与决策中心为两个进程,这两个进程间通过共享内存通信,且一次数据读写时间T2为50us;同步应用为单独进程,独立于决策中心,如果同步应用与决策中心处于同一设备,则二者间同样通过共享内存通信,且传输一次数据的时间T3为50us,如果同步应用与决策中心不处于同一设备,则二者采用PCIe连接,传输1K数据约为100us;T4则是留给同步应用的控制算法的运行时间,即:
T4=T1-2*T2-2*T3=1000-2*50-2*100=700us。
通过该时序图可知,同步应用有着同步性能好,控制简单,以及硬件响应及时等优点。本申请实施例所提出的控制方法可支持多个同步应用并行执行。
请参阅图4,图4示出了单周期异步应用的时序图。单周期异步应用指的是:借助机器人的中央处理单元(Central Processing Unit,CPU)的多核处理能力,由一个线程负责组件数据的读写,一个线程负责控制算法的计算,且算法线程与通信线程并行,只要数据的传输耗时小于控制算法的计算周期(也即运行时间),则控制算法的计算周期可以与组件的控制周期基本持平。此种方式下,组件的控制延迟一个周期,对实时性影响不大,但应用会获得更多的计算时间。
举例来说,假定机器人的控制周期T1为1ms,且电机控制单元与决策中心为两个进程,这两个进程间通过共享内存通信,且一次数据读写时间T2为50us;单周期异步应用为单独进程,独立于决策中心,如果单周期异步应用与决策中心处于同一设备,则二者间同样通过共享内存通信,且传输一次数据的时间T3为50us,如果同步应用与决策中心不处于同一设备,则二者采用PCIe连接,传输1K数据约为100us;留给单周期异步应用的控制 算法的运行时间,为两次电机数据到达的时间差,即T4=T1。在图4所示出的时序图中,决策中心先向单周期异步应用发送数据包,再接收该单周期异步应用数据包所反馈的上一控制周期的数据包计算而得的控制数据,该单周期异步应用的数据流程简述如下:电机控制单元读取电机数据,传递给决策中心,决策中心向单周期异步应用发送基于该控制数据所封装的数据包,并读取单周期异步应用的上一控制周期的计算结果;也即,单周期异步应用只需在收到本次的电机数据前,基于上次的电机数据计算得到对应的控制数据,供决策中心读取就好。例如:
0us,第i个控制周期开始,电机控制单元读取电机数据;
50us,电机数据从电机控制单元传输至决策中心;
150us,决策中心把电机数据发送至单周期异步应用,该单周期异步应用开始进行计算;
300us,决策中心获取到单周期异步应用基于上一控制周期(第i-1个控制周期)的电机数据而计算得到的计算结果;
350us,决策中心基于该计算结果返回控制指令至电机控制单元,向电机写入数据;
等待下个周期开始;
1000us,第i+1个控制周期开始,电机控制单元读取电机数据;
1050us,数据从电机控制单元传输至决策中心;
1150us,决策中心把电机数据发送至单周期异步应用,该单周期异步应用开始进行计算;
1300us,决策中心获取到单周期异步应用基于上一控制周期(第i个控制周期)的电机数据(也即150us时所发送的电机数据)而计算得到的计算结果。
通过该时序图可知,单周期异步应用可对同步应用进行补足,更具灵活性。
请参阅图5,图5示出了多周期异步应用的时序图。多周期异步应用是单周期异步应用的补充,该多周期异步应用可在多周期后返回计算结果。
举例来说,假定机器人的控制周期T1为1ms,且电机控制单元与决策中心为两个进程,这两个进程间通过共享内存通信,且一次数据读写时间T2为50us;单周期异步应用为单独进程,独立于决策中心,如果单周期异步应用与决策中心处于同一设备,则二者间同样通过共享内存通信,且传输一次数据的时间T3为50us,如果同步应用与决策中心不处于同一设备,则二者采用PCIe连接,传输1K数据约为100us;留给多周期异步应用的控制算法的运行时间,为多次电机数据到达的时间差,即T4=N*T1。
通过该时序图可知,该多周期异步应用可应用于规划、导航、感知数据及网络数据等能够接受高延时或高耗时的应用该场景下。
由上可见,通过本申请实施例,智能设备中的各应用可根据自身功能的需求来注册应用协议,以便能够及时从组件数据流中获得所需要的组件数据,提升各应用的数据处理效率及对智能设备资源的利用效率。并且,还可基于各个应用的控制算法的运行时间来划分各个应用的类型,并以此规划各自所对应的数据上报时机,为各个应用提供了足够的算法运行时间,可在有限的控制周期内仍然实现对智能设备的有序控制。
对应于前文所提出的控制方法,本申请实施例提供了一种控制系统6。请参阅图6,该控制系统6集成于智能设备中,包括组件61、决策中心62及应用63。需要注意的是,组件61及应用63的数量可能有多个,此处不作限定。请参阅图7,该决策中心62包括:
提取单元621,用于在当前控制周期内接收到组件数据流时,基于各个应用所注册的应用协议,从上述组件数据流中提取对应的组件数据,为各个应用封装得到对应的应用数据包,其中,上述应用协议指示了应用所监听的组件及应用所控制的组件;
发送单元622,用于向各个应用发送对应的应用数据包;
获取单元623,用于根据各个应用所对应的数据上报时机,分别获取各个应用上报的控制数据,其中,一个应用上报的上述控制数据基于上述应用接收到的应用数据包而生成;
生成单元624,用于根据各个应用在上述当前控制周期内所上报的控制数据以及各个应用所注册的应用协议,为各个组件生成组件控制指令,以实现对各个组件的控制。
可选地,上述应用的应用类型包括同步应用及异步应用;上述决策中心62还包括:
确定单元,用于在上述获取单元623根据各个应用所对应的数据上报时机,分别获取各个应用上报的控制数据之前,根据各个应用的应用类型,确定各个应用所对应的数据上报时机。
可选地,上述发送单元622,包括:
超时检测子单元,用于检测各个第一应用在前一控制周期内是否上报超时,其中,上述第一应用为属于同步应用的应用;
第一发送子单元,用于向各个目标第一应用发送对应的应用数据包,其中,上述目标第一应用为在上述前一控制周期内未上报超时的第一应用。
可选地,上述发送单元622,还包括:
第二发送子单元,用于在上述向各个目标第一应用发送对应的应用数据包之后,向各个第二应用发送对应的应用数据包,其中,上述第二应用为属于异步应用的应用。
可选地,上述确定单元,包括:
第一确定子单元,用于针对每个目标第一应用,确定上述目标第一应用的数据上报时机为:上述当前控制周期中,向上述目标第一应用发送对应的应用数据包后的预设的超时 周期内。
可选地,上述确定单元,包括:
周期确定子单元,用于针对每个第二应用,获取上述第二应用的异步周期数量,并根据上述异步周期数量确定目标控制周期,其中,上述目标控制周期在上述当前控制周期之后;
第二确定子单元,用于确定上述第二应用的数据上报时机为:上述目标控制周期内接收到组件数据流之后。
可选地,上述生成单元624,包括:
数据确定子单元,用于根据各个应用所注册的应用协议,确定各个组件所对应的控制数据;
数据更新子单元,用于针对每个组件,基于上述组件所对应的控制数据,更新得到目标控制数据;
组件控制子单元,用于根据各个组件的目标控制数据,为各个组件生成组件控制指令。
可选地,每个控制数据为对应的应用所控制的组件的参数,上述数据更新子单元,包括:
权重获取子单元,用于若上述组件的一个参数与至少两个控制数据相关联,则获取上述至少两个控制数据所分别对应的应用的权重;
目标控制数据更新子单元,用于基于上述组件所对应的控制数据及上述权重,更新得到上述目标控制数据。
由上可见,通过本申请实施例,智能设备中的各应用可根据自身功能的需求来注册应用协议,以便能够及时从组件数据流中获得所需要的组件数据,提升各应用的数据处理效率及对智能设备资源的利用效率。并且,还可基于各个应用的控制算法的运行时间来划分各个应用的类型,并以此规划各自所对应的数据上报时机,为各个应用提供了足够的算法运行时间,可在有限的控制周期内仍然实现对智能设备的有序控制。
本申请实施例还提供了一种智能设备,该智能设备可以是机器人。请参阅图8,本申请实施例中的智能设备8包括:存储器801,一个或多个处理器802(图8中仅示出一个)及存储在存储器801上并可在处理器上运行的计算机程序。其中:存储器801用于存储软件程序以及单元,处理器802通过运行存储在存储器801的软件程序以及单元,从而执行各种功能应用以及数据处理,以获取上述预设事件对应的资源。具体地,处理器802通过运行存储在存储器801的上述计算机程序时实现以下步骤:
在当前控制周期内接收到组件数据流时,基于各个应用所注册的应用协议,从上述组 件数据流中提取对应的组件数据,为各个应用封装得到对应的应用数据包,其中,上述应用协议指示了应用所监听的组件及应用所控制的组件;
向各个应用发送对应的应用数据包;
根据各个应用所对应的数据上报时机,分别获取各个应用上报的控制数据,其中,一个应用上报的上述控制数据基于上述应用接收到的应用数据包而生成;
根据各个应用在上述当前控制周期内所上报的控制数据以及各个应用所注册的应用协议,为各个组件生成组件控制指令,以实现对各个组件的控制。
假设上述为第一种可能的实施方式,则在第一种可能的实施方式作为基础而提供的第二种可能的实施方式中,上述应用的应用类型包括同步应用及异步应用;在上述根据各个应用所对应的数据上报时机,分别获取各个应用上报的控制数据之前,处理器802通过运行存储在存储器801的上述计算机程序时还实现以下步骤:
根据各个应用的应用类型,确定各个应用所对应的数据上报时机。
在上述第二种可能的实施方式作为基础而提供的第三种可能的实施方式中,上述向各个应用发送对应的应用数据包,包括:
检测各个第一应用在前一控制周期内是否上报超时,其中,上述第一应用为属于同步应用的应用;
向各个目标第一应用发送对应的应用数据包,其中,上述目标第一应用为在上述前一控制周期内未上报超时的第一应用。
在上述第三种可能的实施方式作为基础而提供的第四种可能的实施方式中,上述向各个应用发送对应的应用数据包,还包括:
在上述向各个目标第一应用发送对应的应用数据包之后,向各个第二应用发送对应的应用数据包,其中,上述第二应用为属于异步应用的应用。
在上述第三种可能的实施方式作为基础而提供的第五种可能的实施方式中,上述根据各个应用的应用类型,确定各个应用所对应的数据上报时机,包括:
针对每个目标第一应用,确定上述目标第一应用的数据上报时机为:上述当前控制周期中,向上述目标第一应用发送对应的应用数据包后的预设的超时周期内。
在上述第四种可能的实施方式作为基础而提供的第六种可能的实施方式中,上述根据 各个应用的应用类型,确定各个应用所对应的数据上报时机,包括:
针对每个第二应用,获取上述第二应用的异步周期数量,并根据上述异步周期数量确定目标控制周期,其中,上述目标控制周期在上述当前控制周期之后;
确定上述第二应用的数据上报时机为:上述目标控制周期内接收到组件数据流之后。
在上述第一种可能的实施方式作为基础而提供的第七种可能的实施方式中,上述根据各个应用在上述当前控制周期内所上报的控制数据以及各个应用所注册的应用协议,为各个组件生成组件控制指令,包括:
根据各个应用所注册的应用协议,确定各个组件所对应的控制数据;
针对每个组件,基于上述组件所对应的控制数据,更新得到目标控制数据;
根据各个组件的目标控制数据,为各个组件生成组件控制指令。
在上述第七种可能的实施方式作为基础而提供的第八种可能的实施方式中,每个控制数据为对应的应用所控制的组件的参数,上述基于上述组件所对应的控制数据,更新得到目标控制数据,包括:
若上述组件的一个参数与至少两个控制数据相关联,则获取上述至少两个控制数据所分别对应的应用的权重;
基于上述组件所对应的控制数据及上述权重,更新得到上述目标控制数据。
应当理解,在本申请实施例中,所称处理器802可以是CPU,该处理器还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
存储器801可以包括只读存储器和随机存取存储器,并向处理器802提供指令和数据。存储器801的一部分或全部还可以包括非易失性随机存取存储器。例如,存储器801还可以存储设备类别的信息。
由上可见,通过本申请实施例,智能设备中的各应用可根据自身功能的需求来注册应用协议,以便能够及时从组件数据流中获得所需要的组件数据,提升各应用的数据处理效率及对智能设备资源的利用效率。并且,还可基于各个应用的控制算法的运行时间来划分各个应用的类型,并以此规划各自所对应的数据上报时机,为各个应用提供了足够的算法 运行时间,可在有限的控制周期内仍然实现对智能设备的有序控制。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将上述系统的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者外部设备软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
在本申请所提供的实施例中,应该理解到,所揭露的系统和方法,可以通过其它的方式实现。例如,以上所描述的系统实施例仅仅是示意性的,例如,上述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。
上述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
上述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读存储介质中。基于这样的理解,本申请实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关联的硬件来完成,上述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,上述计算机程序包括计算机程序代码,上述计算机程序代码可以 为源代码形式、对象代码形式、可执行文件或某些中间形式等。上述计算机可读存储介质可以包括:能够携带上述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机可读存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,上述计算机可读存储介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读存储介质不包括是电载波信号和电信信号。
以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围,均应包含在本申请的保护范围之内。

Claims (11)

  1. 一种控制方法,其特征在于,包括:
    在当前控制周期内接收到组件数据流时,基于各个应用所注册的应用协议,从所述组件数据流中提取对应的组件数据,为各个应用封装得到对应的应用数据包,其中,所述应用协议指示了应用所监听的组件及应用所控制的组件;
    向各个应用发送对应的应用数据包;
    根据各个应用所对应的数据上报时机,分别获取各个应用上报的控制数据,其中,一个应用上报的所述控制数据基于所述应用接收到的应用数据包而生成;
    根据各个应用在所述当前控制周期内所上报的控制数据以及各个应用所注册的应用协议,为各个组件生成组件控制指令,以实现对各个组件的控制。
  2. 如权利要求1所述的控制方法,其特征在于,所述应用的应用类型包括同步应用及异步应用;在所述根据各个应用所对应的数据上报时机,分别获取各个应用上报的控制数据之前,所述控制方法还包括:
    根据各个应用的应用类型,确定各个应用所对应的数据上报时机。
  3. 如权利要求2所述的控制方法,其特征在于,所述向各个应用发送对应的应用数据包,包括:
    检测各个第一应用在前一控制周期内是否上报超时,其中,所述第一应用为属于同步应用的应用;
    向各个目标第一应用发送对应的应用数据包,其中,所述目标第一应用为在所述前一控制周期内未上报超时的第一应用。
  4. 如权利要求3所述的控制方法,其特征在于,所述向各个应用发送对应的应用数据包,还包括:
    在所述向各个目标第一应用发送对应的应用数据包之后,向各个第二应用发送对应的应用数据包,其中,所述第二应用为属于异步应用的应用。
  5. 如权利要求3所述的控制方法,其特征在于,所述根据各个应用的应用类型,确定各个应用所对应的数据上报时机,包括:
    针对每个目标第一应用,确定所述目标第一应用的数据上报时机为:所述当前控制周期中,向所述目标第一应用发送对应的应用数据包后的预设的超时周期内。
  6. 如权利要求4所述的控制方法,其特征在于,所述根据各个应用的应用类型,确定各个应用所对应的数据上报时机,包括:
    针对每个第二应用,获取所述第二应用的异步周期数量,并根据所述异步周期数量确定目标控制周期,其中,所述目标控制周期在所述当前控制周期之后;
    确定所述第二应用的数据上报时机为:所述目标控制周期内接收到组件数据流之后。
  7. 如权利要求1所述的控制方法,其特征在于,所述根据各个应用在所述当前控制周期内所上报的控制数据以及各个应用所注册的应用协议,为各个组件生成组件控制指令,包括:
    根据各个应用所注册的应用协议,确定各个组件所对应的控制数据;
    针对每个组件,基于所述组件所对应的控制数据,更新得到目标控制数据;
    根据各个组件的目标控制数据,为各个组件生成组件控制指令。
  8. 如权利要求7所述的控制方法,其特征在于,所述基于所述组件所对应的控制数据,更新得到目标控制数据,包括:
    若所述组件与至少两个控制数据相关联,则获取所述至少两个控制数据所分别对应的应用的权重;
    基于所述组件所对应的控制数据及所述权重,更新得到所述目标控制数据。
  9. 一种控制系统,其特征在于,所述控制系统包括组件、应用及决策中心;其中,所述决策中心包括:
    提取单元,用于在当前控制周期内接收到组件数据流时,基于各个应用所注册的应用协议,从所述组件数据流中提取对应的组件数据,为各个应用封装得到对应的应用数据包,其中,所述应用协议指示了应用所监听的组件及应用所控制的组件;
    发送单元,用于向各个应用发送对应的应用数据包;
    获取单元,用于根据各个应用所对应的数据上报时机,分别获取各个应用上报的控制数据,其中,一个应用上报的所述控制数据基于所述应用接收到的应用数据包而生成;
    生成单元,用于根据各个应用在所述当前控制周期内所上报的控制数据以及各个应用所注册的应用协议,为各个组件生成组件控制指令,以实现对各个组件的控制。
  10. 一种智能设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至8任一项所述的方法。
  11. 一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至8任一项所述的方法。
PCT/CN2021/125037 2021-03-26 2021-10-20 一种控制方法、控制系统及智能设备 WO2022199000A1 (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US17/584,398 US11969890B2 (en) 2021-03-26 2022-01-26 Control method and control system using the same

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN202110327255.9 2021-03-26
CN202110327255.9A CN113110141B (zh) 2021-03-26 2021-03-26 一种控制方法、控制系统及智能设备

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US17/584,398 Continuation US11969890B2 (en) 2021-03-26 2022-01-26 Control method and control system using the same

Publications (1)

Publication Number Publication Date
WO2022199000A1 true WO2022199000A1 (zh) 2022-09-29

Family

ID=76712458

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2021/125037 WO2022199000A1 (zh) 2021-03-26 2021-10-20 一种控制方法、控制系统及智能设备

Country Status (2)

Country Link
CN (1) CN113110141B (zh)
WO (1) WO2022199000A1 (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113110141B (zh) * 2021-03-26 2022-05-27 深圳市优必选科技股份有限公司 一种控制方法、控制系统及智能设备

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1424649A (zh) * 2003-01-09 2003-06-18 清华大学 开放式结构机器人控制器
JP2009020547A (ja) * 2007-07-10 2009-01-29 Yaskawa Electric Corp 分散型モーション制御システム
CN103199980A (zh) * 2013-04-07 2013-07-10 浙江中控技术股份有限公司 同步控制方法、装置及系统
CN105182847A (zh) * 2015-08-27 2015-12-23 北京精密机电控制设备研究所 一种应用于运动控制系统的高可靠双冗余can总线通信方法
CN106200571A (zh) * 2015-04-28 2016-12-07 因文西斯系统公司 处理控制环境中的分布式计算
CN112513751A (zh) * 2018-09-14 2021-03-16 欧姆龙株式会社 控制系统以及控制装置
CN113110141A (zh) * 2021-03-26 2021-07-13 深圳市优必选科技股份有限公司 一种控制方法、控制系统及智能设备

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005190437A (ja) * 2003-12-26 2005-07-14 Fanuc Ltd 制御装置管理システム
US8055943B2 (en) * 2009-04-24 2011-11-08 International Business Machines Corporation Synchronous and asynchronous continuous data protection
CN104536835B (zh) * 2014-12-12 2018-02-06 北京控制工程研究所 一种热备份实时控制系统中自适应任务调度方法
WO2018072158A1 (zh) * 2016-10-19 2018-04-26 达闼科技(北京)有限公司 用于远程控制的方法,装置,系统和云端智能机器人
CN111587550B (zh) * 2018-01-10 2024-05-03 交互数字专利控股公司 与非授权频谱相关联的数据传输和harq-ack
EP3920587A4 (en) * 2019-02-03 2022-03-09 Guangdong Oppo Mobile Telecommunications Corp., Ltd. METHOD AND DEVICE FOR SERVICE PROCESSING, CHIP AND COMPUTER PROGRAM
CN110376979B (zh) * 2019-06-14 2021-07-27 苏州汇川技术有限公司 多电机控制器并联系统、方法、设备及存储介质
CN110456725A (zh) * 2019-07-04 2019-11-15 烽台科技(北京)有限公司 一种plc设备的监控方法、装置及智能终端
CN110908779A (zh) * 2019-10-11 2020-03-24 深圳市优必选科技股份有限公司 一种应用管理方法、应用管理装置及智能设备
CN111309892B (zh) * 2020-05-09 2020-09-08 浙江百应科技有限公司 一种基于智能机器人的多业务系统联动和交互的方法

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1424649A (zh) * 2003-01-09 2003-06-18 清华大学 开放式结构机器人控制器
JP2009020547A (ja) * 2007-07-10 2009-01-29 Yaskawa Electric Corp 分散型モーション制御システム
CN103199980A (zh) * 2013-04-07 2013-07-10 浙江中控技术股份有限公司 同步控制方法、装置及系统
CN106200571A (zh) * 2015-04-28 2016-12-07 因文西斯系统公司 处理控制环境中的分布式计算
CN105182847A (zh) * 2015-08-27 2015-12-23 北京精密机电控制设备研究所 一种应用于运动控制系统的高可靠双冗余can总线通信方法
CN112513751A (zh) * 2018-09-14 2021-03-16 欧姆龙株式会社 控制系统以及控制装置
CN113110141A (zh) * 2021-03-26 2021-07-13 深圳市优必选科技股份有限公司 一种控制方法、控制系统及智能设备

Also Published As

Publication number Publication date
CN113110141B (zh) 2022-05-27
CN113110141A (zh) 2021-07-13

Similar Documents

Publication Publication Date Title
EP3116166B1 (en) Control system, control device, and control method
US11902149B2 (en) Sync network
US20140278205A1 (en) Embedded processor on an integrated mems sensor chip autonomously managing external sensor
US11323323B2 (en) Communication system, communication apparatus, and communication method
WO2022199000A1 (zh) 一种控制方法、控制系统及智能设备
Dantam et al. The ach library: A new framework for real-time communication
US20160147568A1 (en) Method and apparatus for data transfer to the cyclic tasks in a distributed real-time system at the correct time
US10763868B2 (en) Decentralized synchronization of multiple agents
WO2023115758A1 (zh) 并联机器人的多线程控制器
US11020853B2 (en) Robot, method for controlling motion of a robot and non-transitory readable medium
JPH04114203A (ja) 車輌用電子制御システム
US20150205737A1 (en) Method for executing, within a multitasking onboard system, an application timed according to a plurality of different time domains including interruption management
JP2002135257A (ja) シリアル通信用データ処理装置
CN114463163A (zh) 一种异构多核的图像处理方法及装置
CN116197919B (zh) 机器人控制系统及控制方法
CN109412939A (zh) 记录工业网络通信周期过程数据的通信网关和工作方法
US11969890B2 (en) Control method and control system using the same
CN104468404B (zh) 一种缓冲区配置方法及装置
CN116166582A (zh) 一种数据的读写方法、系统、设备及存储介质
JP2527821B2 (ja) デ―タ処理方法及び入出力装置
EP3869745B1 (en) Production system, communication method, and program
CN114819176A (zh) 一种面向智能驾驶的实时分布式系统
CN111381539A (zh) 一种总线实时同步控制装置
JP2022507939A (ja) 調整されたコンポーネントインターフェース制御フレームワーク
CN110008087A (zh) 一种nvlink通信状态监测方法和装置

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 21932609

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 21932609

Country of ref document: EP

Kind code of ref document: A1