EP2946253A1 - Motion controller and robot control system using the same - Google Patents

Motion controller and robot control system using the same

Info

Publication number
EP2946253A1
EP2946253A1 EP13871913.3A EP13871913A EP2946253A1 EP 2946253 A1 EP2946253 A1 EP 2946253A1 EP 13871913 A EP13871913 A EP 13871913A EP 2946253 A1 EP2946253 A1 EP 2946253A1
Authority
EP
European Patent Office
Prior art keywords
information
robot
motion controller
piece
function
Prior art date
Legal status (The legal status 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 status listed.)
Withdrawn
Application number
EP13871913.3A
Other languages
German (de)
French (fr)
Other versions
EP2946253A4 (en
Inventor
Said Zahrai
Feihong Zhang
Yicheng Zhang
Chengping SU
Bojun MA
Chao Yang
Hui Zhang
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
ABB Technology AG
Original Assignee
ABB Technology AG
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 ABB Technology AG filed Critical ABB Technology AG
Publication of EP2946253A1 publication Critical patent/EP2946253A1/en
Publication of EP2946253A4 publication Critical patent/EP2946253A4/en
Withdrawn legal-status Critical Current

Links

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1602Programme controls characterised by the control system, structure, architecture
    • B25J9/161Hardware, e.g. neural networks, fuzzy logic, interfaces, processor
    • 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/18Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form
    • G05B19/414Structure of the control system, e.g. common controller or multiprocessor systems, interface to servo, programmable interface controller
    • G05B19/4148Structure of the control system, e.g. common controller or multiprocessor systems, interface to servo, programmable interface controller characterised by using several processors for different functions, distributed (real-time) systems
    • 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/30Nc systems
    • G05B2219/33Director till display
    • G05B2219/33076Optimize time by parallel execution of independent blocks by two processors
    • 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/30Nc systems
    • G05B2219/33Director till display
    • G05B2219/33104Tasks, functions are distributed over different cpu
    • 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/30Nc systems
    • G05B2219/33Director till display
    • G05B2219/33116Configuration of motion control
    • 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/30Nc systems
    • G05B2219/34Director, elements to supervisory
    • G05B2219/34208Motion controller
    • 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/30Nc systems
    • G05B2219/34Director, elements to supervisory
    • G05B2219/34287Plc and motion controller combined
    • 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/30Nc systems
    • G05B2219/34Director, elements to supervisory
    • G05B2219/34403RTI real time, kernel, processing
    • 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/30Nc systems
    • G05B2219/40Robotics, robotics mapping to robotics vision
    • G05B2219/40498Architecture, integration of planner and motion controller

Definitions

  • the invention relates to the field of motion controller and a robot control system using the same, and more particularly to a motion controller implemented using a programmable logic and the robot control system using the same.
  • FIG. 1A illustrates architecture of a motion controller for a robot.
  • the motion controller 1 includes a processor 10 with only one computing unit that reads and executes program instructions.
  • the program instructions executed by the one computing unit of the processor 10 have at least two functions as logic control 100 and motion control 101.
  • the process or motion control 101 carries out function of path planning
  • the logic control 100 carries out function for responding to external signals, at least to the most important ones, like safety signals. There may be a conflict between the logic control 100 and the motion control 101 for their execution by the one computing unit of the processor 10.
  • Figure IB presents the structure of a standard single axis drive of a conventional robot system. On the left side of the isolation, the low power parts are located and on the right side, the high power components.
  • motor drive is an important component in the robot control system, such technology has been adapted and there are integrated chips, DSPs or CPUs together with other functions like AD converters, providing necessary solutions. The situation becomes more complex for multi-axes drives, where more computation power and larger number of interfaces is needed.
  • the motion controller includes: an information sharing means, being adapted for sharing data representing at least one piece of information; a plurality of function modules, being adapted for exchanging the information between at least two of them by accessing the data through the information sharing means and respectively carrying out a plurality of functions in parallel based on the exchanged information; wherein: the function module receiving the exchanged information is adapted to carry out the function based on the received exchanged information independently of the functions that are simultaneously carried out by the other function modules; the plurality of function modules share at least one processor or programmable logic having a multiple of computing units; and the plurality of function modules are respectively implemented by means of the computing units of the processor or on the programmable logic.
  • the control system further includes external the external detector adapted for detecting the robot system status, the drive unit, and the robot having the motor, being adapted for being driven by the drive unit.
  • Figure 1 A illustrates architecture of a motion controller for a robot
  • Figure 1 B presents the structure of a standard single axis drive of a conventional robot system
  • Figures 2A and 2B illustrate a motion controller according to an embodiment of present invention
  • Figure 3 A illustrates a motion controller according to another embodiment of present invention
  • Figure 3B illustrates a motion controller according to another embodiment of present invention.
  • Figure 4 shows a schematic diagram representing a robot control system according to another embodiment of present invention.
  • FIGS 2A and 2B illustrate a motion controller according to an embodiment of present invention.
  • a motion controller 2 includes a programmable logic 20.
  • the programmable logic may be a field-programmable gate array (FPGA) or application-specific integrated circuit (ASIC).
  • FPGA and ASIC provide similar things except that ASIC is more powerful and larger than FPGA, but its development is more expensive and cannot be reprogrammed.
  • the programmable logic 20 has a multiple of computing units, for example two computing units 200, 203 as shown in figure 2A, or four computing units 200, 201 , 202, 203 as shown in 2B.
  • the computing unit is a unit of logic for carrying out a function and is used as building block within the programmable logic 20.
  • Computing unit is a well-defined part of the system that makes use of dedicated resources to provide necessary computation independently and during a well-defined period of time.
  • CPU central processing unit
  • programmable logic it can be one or a combination of several soft processors or IP-cores.
  • the computing units 200, 201, 202, 203 are predefined for implementation of a plurality of function modules 204, 205, 206, 207, for example the function module 205 is of motion control for controlling the motions of the electrical motors of a first robot, the function module 206 is of motion control for controlling the motions of the electrical motors of a second robot, the function module 207 is of motion control for controlling the motions of the electrical motors of a third robot, and the function module 204 is of logic control for robot status and based on the a new robot status information controlling the functions of the motion control module 205 as shown in figure 2A or the motion control modules 205, 206, 207 as shown in figure 2B.
  • the function module 205 is of motion control for controlling the motions of the electrical motors of a first robot
  • the function module 206 is of motion control for controlling the motions of the electrical motors of a second robot
  • the function module 207 is of motion control for controlling the motions of the electrical motors of a third robot
  • the predefined computing units 200, 201 , 202, 203 are available either from programmable logic vendors or from developers themselves. For example, either the vendor or the developer can use a PC for programming instructions implementing the function modules 204, 205, 206, 207 and download the program instructions from the PC and wire each of the computing units 200, 201, 202, 203 respectively.
  • the computing units 200, 201 , 202, 203 of the programmable logic 2 are predefined by programming before it starts to operate.
  • the number of computing units is determined according to the user's requirements, for example the number of functions it is desired to perform.
  • computing units 200, 201 as shown in figure 2 A or the computing units 200, 201, 202, 203 as shown in figure 2B being partitioned on the programmable logic 20, the function modules 204, 205 as shown in figure 2A or the function modules 204, 205,
  • the motion controller 2 further includes an information sharing means 21 for sharing data representing at least one piece of information to be exchanged by any two of the function modules 204, 205, 206,
  • the function modules 204, 205, 206, 207 can access through the infonnation sharing means 21 the data and respectively carry out functions in parallel based on the exchanged information.
  • An alternative approach is to use a processor with a multiple of computing units as substitution of the programmable logic.
  • the information sharing means 21 may be a memory shared among the function modules 204, 205, 206, 207.
  • the memory may be external to the programmable chip 20 or be on-chip memory and if necessary, logic blocks of the programmable chip 20 may be used for implementation of information sharing means 21.
  • External memory compares favourably with on-chip memory in larger volume and lower cost. But, external memory is slower in response than on-chip memory.
  • the programmable chip 20 and the memory 21 communicate with each other through bus.
  • Figure 3A illustrates a motion controller according to another embodiment of present invention.
  • a motion controller 3 includes a programmable logic 30.
  • the programmable logic 30 has a multiple of computing units, for example three computing units 300, 301, 302.
  • the computing units are units of logic for carrying out functions and are used as building blocks within the programmable logic 30.
  • the computing units 300, 301, 302 are predefined for implementation of a plurality of function modules 304, 305, 306, for example the function module 305 is providing motion control for controlling the motions of the electrical motors of a first robot, the function module 306 is of an IO control module for communication between the other function modules with an external device, such as an external detector and a drive unit, and the function module 304 is the logic control for robot path planning and based on the planed path controlling the functions the motion control modules 305.
  • the computing units 300, 301, 302 are available either from programmable logic vendors or from developers themselves.
  • the vendor or the developer can use a PC for programming instructions implementing the function modules 304, 305, 306 and download the program instructions from the PC and wire each of the computing units 300, 301, 302 respectively.
  • the computing units 300, 301, 302 of the programmable logic are predefined by programming before it starts to operate.
  • the number of computing units is determined according to the operator's requirements, for example the number of functions it is desired to perform.
  • the motion controller 3 further includes an information sharing means 31 for sharing data representing at least one piece of information to be exchanged by at least two of the function modules 304, 305, 306.
  • the function modules 304, 305, 306 can access through the information sharing means 31 the data and respectively carry out functions in parallel based on the exchanged information.
  • the infomiation may be about a status of a robot system, as well as a robot status, a joint position or a speed of the robot of the robot system, or the reference position, speed and torque that are expected to be reached by the electrical motors of the robot.
  • the logic control module 304 is adapted for carrying out the function of control of the function of the motion control module 305 based on a first piece of the information about a status of a robot system, and setting a new robot status of at least one robot of the robot system and sharing the new robot status information as the second piece of information by the information sharing means 31 ;
  • the robot system status for example, is about if in the robot system there is an obstacle in the way of a movement of a robot, and the robot status is about the destination position that the robot is expected to reach in consideration of the robot system status; with the variant situations of the robot system status, the desired robot status changes accordingly with respect to the current robot system status and current robot status, to which are referred as new robot system status and new robot status.
  • the motion control module 305 is adapted for accessing via the information sharing means 31 the second piece of infomiation, and setting at least one series of joint positions for at least one joint of a robot of a robot system based on a combination of the second piece of the information and the robot mechanical characteristics and sharing the joint position information as the third piece of information by the information sharing means 31; the series of joint positions consist of the route where the joint of the robot is supposed to reach at a series of timing; by setting each robot joint position series, path planning for such robot is achieved, and this can be also applied to the other robot operating in the robot system.
  • the motion control module 305 adapted for sending the third piece of information to an external unit, or the logic control module 304 adapted for reading the third piece of information through the information sharing means and sending it to an external unit.
  • the IO control module 306 is adapted for carrying out the function of inputting the first piece of information concerned with a status of the robot system detected by an external detector and sharing the first piece of information by the information sharing means 31 and accessing the third piece of information via the information sharing means 31 and outputting it to an external unit (another motion controller) for the robot of the robot system.
  • Figure 3B illustrates a motion controller according to another embodiment of present invention.
  • the motion controller 3 as shown in figure 3B shares the parts of the motion controller 3 as shown in figure 3A.
  • the programmable logic 30 further has a computing unit 303 which is predefined for implementation of function module 307.
  • the function module 307 is for motion control for controlling the motions of the electrical motors of a second robot with a similar mechanism to the motion control module 305.
  • the path planning tasks for different robots in the robot system may be allocated to different motion control modules 305, 307.
  • the function modules 304, 305, 306, 307 implemented by means thereof operate in parallel.
  • the function modules 304, 305, 306, 307 they need to exchange information based on the function to be carried out.
  • a standard servo drive is a device that receives reference data from a higher level controller, calculates necessary current output and controls power electronics to provide the electric current to the motor so that the requested output from the motor is achieved.
  • the output could be a set speed, a position or a given torque.
  • the servo drive needs to contain a low power logic digital part for computations and logic control of the system, a high power mixed digital and analog part for switching the power transistors and measurement of current feedback and an interface for communication with at least two devices, the higher level controller and position sensors.
  • Axis Computer where there is one CPU, one DSP and one FPGA.
  • it communicates with a control board in the drive unit with an FPGA containing necessary logic for local control, diagnosis and measurements.
  • Figure 4 shows a schematic diagram representing a robot control system according to another embodiment of present invention.
  • motion controller 4 includes a programmable logic 40.
  • the programmable logic 40 has a multiple of function modules, for example four function modules 400, 401, 402, 403.
  • the computing unit is a unit of logic for carrying out a function and is used as building block within the programmable logic 40.
  • the computing units 404, 405, 406, 407 are for implementation of a plurality of function modules 400, 401, 402, 403; for example, a first piece of information concerned with at least one series of desired joint positions for at least one joint of a robot of the robot system is shared by the information sharing means (communication channels), the function module 402 is a position control module, being adapted for receiving the current position of the joint of the robot and comparing it with the corresponding desired joint position and sharing the regulation value for reducing the difference therebetween as the second piece of information by the information sharing means; the second function module 401 is current control module, being adapted for setting phase current values for the joint motor based on the first piece of information.
  • the function module 402 is a position control module, being adapted for receiving the current position of the joint of the robot and comparing it with the corresponding desired joint position and sharing the regulation value for reducing the difference therebetween as the second piece of information by the information sharing means
  • the second function module 401 is current control module, being adapted for setting phase current values for the
  • the function module 403 is communication module for communication between the function modules with an external device, such as an external detector and a drive unit. It should be understood that the motion controller 4 may integrate other computing unit with other module. Using soft processors, one can make multi-computing unit systems on the chip and partition the system so that different local system clocks can be used.
  • the embodiment according to figure 4 differs from those according to 2A, 2B, 3 A, or 3B in that the function module 400, 401, 402, 403 are partitioned into local function modules that communicate with each other and execute their tasks in parallel.
  • These units can be soft processors having a local bus system and controlling local IP cores or computing units written directly as a larger IP core.
  • Each of the IP core connected to a unit performs specific task and possibly is connected to a piece of hardware opening an interface between the hardware and the software.
  • At least one of the function modules 400, 401, 402, 403 includes: a local information sharing means 4000, 4010, 4030 and a plurality of local function modules being adapted for locally sharing data.
  • the local information sharing means is for locally sharing the data within each function module 400, 401, 402, 403 representing a piece of robot information.
  • the local function module is for exchanging the information between at least two of them by accessing through the local information sharing means the data and respectively carrying out a plurality of local functions in parallel based on the exchanged information.
  • the local function module receiving the exchanged information is adapted to carry out the local function based on the received exchanged information independently of the local functions that are simultaneously carried out by the other local function modules; and the plurality of local function modules are respectively implemented by means of a part of the computing unit 404, 405, 406, 407 of the processor or on the programmable logic 40.
  • the function module 403 further includes the local information sharing means 4030 and a first local function module 4031 for..., a second local function module 4032 for communication with another robot controller..., and a third local function module 4033 for data analysis....
  • the first, second, and third local function modules 4031, 4032, 4033 are implemented by three local computing units 4061, 4062, 4063 consisting of the computing unit 406.
  • the local information sharing means 4000, 4010, 4030, 4030 may be a memory shared among the local function modules.
  • the memory may be external to the programmable chi or be on-chip memory and if necessary, logic blocks of the programmable chip may be allocated for units of the memory.
  • the programmable chip and the memory communicate with each other through bus.
  • the system put on an FPGA can easily be updated in the field. This allows us to provide a wide range of functions and interfaces with the same hardware without overloading it with unused software.
  • the interface to the controller is decided by the user's preference. Most attractive solutions are Ethernet based, but with different logics. For example, raw Ethernet, EtherCAT, Ethernet/IP, PowerLink and Profinet can be used on the same hardware but require different logics and software. This can easily be provided by having slightly different systems that can be downloaded to the FPGA according to the requirement.
  • the chosen motor decides the type of encoder and the communication protocol. With a system as above, the protocol can be changed in a simple manner and different protocols can be supported with the same hardware.

Landscapes

  • Engineering & Computer Science (AREA)
  • Automation & Control Theory (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Manufacturing & Machinery (AREA)
  • Human Computer Interaction (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Robotics (AREA)
  • Mechanical Engineering (AREA)
  • Fuzzy Systems (AREA)
  • Evolutionary Computation (AREA)
  • Artificial Intelligence (AREA)
  • Numerical Control (AREA)
  • Manipulator (AREA)

Abstract

A motion controller and a robot control system using the same are provided. The motion controller (2) includes: an information sharing means (21), being adapted for sharing data representing at least one piece of information; a plurality of function modules (204, 205, 206, 207), being adapted for exchanging the information between at least two of them by accessing the data through the information sharing means (21) and respectively carrying out a plurality of functions in parallel based on the exchanged information; wherein: the function module receiving the exchanged information is adapted to carry out the function based on the received exchanged information independently of the functions that are simultaneously carried out by the other function modules (204, 205, 206, 207); the plurality of function modules (204, 205, 206, 207) share at least one processor or programmable logic (20) having a multiple of computing units (200, 201, 202, 203); and the plurality of function modules (204, 205, 206,.207) are respectively implemented by means of the computing units (200, 201, 202, 203) of the processor or on the programmable logic (20). This causes at least one of the disadvantages as below: a relatively low degree of real-time behavior of the motion controller due to lack of parallel processing of data; a relatively high degree of difficulty in integration of new program instructions in the processor of the motion controller; the computing power of the processor of the motion controller is fixed and is not scalable; and the computing power of the processor of the motion controller cannot be used to its maximum.

Description

Motion Controller and Robot Control System Using the Same
Technical Field
The invention relates to the field of motion controller and a robot control system using the same, and more particularly to a motion controller implemented using a programmable logic and the robot control system using the same.
Background Art
In a traditional motion controller, a processing unit is responsible for both the process control and logic control. Figure 1A illustrates architecture of a motion controller for a robot. As shown in figure 1, the motion controller 1 includes a processor 10 with only one computing unit that reads and executes program instructions. For example, the program instructions executed by the one computing unit of the processor 10 have at least two functions as logic control 100 and motion control 101. For example, the process or motion control 101 carries out function of path planning, and the logic control 100 carries out function for responding to external signals, at least to the most important ones, like safety signals. There may be a conflict between the logic control 100 and the motion control 101 for their execution by the one computing unit of the processor 10. As a result, either the processor must have such a computing power so that in the worst possible case, no signal is missed, or, the computing heavy parts must be done in advance. The drawback of such a solution is insufficient responsiveness to external signals. Figure IB presents the structure of a standard single axis drive of a conventional robot system. On the left side of the isolation, the low power parts are located and on the right side, the high power components. As motor drive is an important component in the robot control system, such technology has been adapted and there are integrated chips, DSPs or CPUs together with other functions like AD converters, providing necessary solutions. The situation becomes more complex for multi-axes drives, where more computation power and larger number of interfaces is needed.
This causes at least one of the disadvantages as below:
1. a relatively low degree of real-time behaviour of the motion controller due to lack of parallel processing of data;
2. a relatively high degree of difficulty in integration of new program instructions in the processor of the motion controller;
3. the computing power of the processor of the motion controller is fixed and is not scalable; and
4. the computing power of the processor of the motion controller cannot be used to its maximum. Brief Summary of the Invention
It is therefore an objective of the invention to provide a motion controller and a robot control system using the same. The motion controller includes: an information sharing means, being adapted for sharing data representing at least one piece of information; a plurality of function modules, being adapted for exchanging the information between at least two of them by accessing the data through the information sharing means and respectively carrying out a plurality of functions in parallel based on the exchanged information; wherein: the function module receiving the exchanged information is adapted to carry out the function based on the received exchanged information independently of the functions that are simultaneously carried out by the other function modules; the plurality of function modules share at least one processor or programmable logic having a multiple of computing units; and the plurality of function modules are respectively implemented by means of the computing units of the processor or on the programmable logic.
The control system further includes external the external detector adapted for detecting the robot system status, the drive unit, and the robot having the motor, being adapted for being driven by the drive unit.
By having the configuration of the motion controller as above, it brings about at least one of the technical advantages below:
1. a excellent real time behaviour of the motion controller because of its computing units' computing power in parallel;
2. an ease of integration of a function module because of their program instructions being executed independently;
3. scalable architecture for the motion controller in terms of the number of computing units; and
4. an effective usage of the programmable logic/processor, because their computing power could be used to its maximum.
Brief Description of the Drawings
The subject matter of the invention will be explained in more detail in the following text with reference to preferred exemplary embodiments which are illustrated in the drawings, in which:
Figure 1 A illustrates architecture of a motion controller for a robot;
Figure 1 B presents the structure of a standard single axis drive of a conventional robot system;
Figures 2A and 2B illustrate a motion controller according to an embodiment of present invention;
Figure 3 A illustrates a motion controller according to another embodiment of present invention;
Figure 3B illustrates a motion controller according to another embodiment of present invention; and
Figure 4 shows a schematic diagram representing a robot control system according to another embodiment of present invention.
The reference symbols used in the drawings, and their meanings, are listed in summary form in the list of reference symbols. In principle, identical parts are provided with the same reference symbols in the figures.
Preferred Embodiments of the Invention
Figures 2A and 2B illustrate a motion controller according to an embodiment of present invention. As shown in figures 2A and 2B, a motion controller 2 includes a programmable logic 20. The programmable logic may be a field-programmable gate array (FPGA) or application-specific integrated circuit (ASIC). Basically, FPGA and ASIC provide similar things except that ASIC is more powerful and larger than FPGA, but its development is more expensive and cannot be reprogrammed. The programmable logic 20 has a multiple of computing units, for example two computing units 200, 203 as shown in figure 2A, or four computing units 200, 201 , 202, 203 as shown in 2B. The computing unit is a unit of logic for carrying out a function and is used as building block within the programmable logic 20. Computing unit is a well-defined part of the system that makes use of dedicated resources to provide necessary computation independently and during a well- defined period of time. For multi-core central processing unit (CPU), it can be one or a combination of several cores together with other available resources; for programmable logic, it can be one or a combination of several soft processors or IP-cores. The computing units 200, 201, 202, 203 are predefined for implementation of a plurality of function modules 204, 205, 206, 207, for example the function module 205 is of motion control for controlling the motions of the electrical motors of a first robot, the function module 206 is of motion control for controlling the motions of the electrical motors of a second robot, the function module 207 is of motion control for controlling the motions of the electrical motors of a third robot, and the function module 204 is of logic control for robot status and based on the a new robot status information controlling the functions of the motion control module 205 as shown in figure 2A or the motion control modules 205, 206, 207 as shown in figure 2B. The predefined computing units 200, 201 , 202, 203 are available either from programmable logic vendors or from developers themselves. For example, either the vendor or the developer can use a PC for programming instructions implementing the function modules 204, 205, 206, 207 and download the program instructions from the PC and wire each of the computing units 200, 201, 202, 203 respectively. Thus, the computing units 200, 201 , 202, 203 of the programmable logic 2 are predefined by programming before it starts to operate. The number of computing units is determined according to the user's requirements, for example the number of functions it is desired to perform.
Due to that the computing units 200, 201 as shown in figure 2 A or the computing units 200, 201, 202, 203 as shown in figure 2B being partitioned on the programmable logic 20, the function modules 204, 205 as shown in figure 2A or the function modules 204, 205,
206, 207 as shown in figure 2B implemented by means thereof can be carried out in parallel. For the purpose of the cooperation of the function modules 204, 205 as shown in figure 2A or the function modules 204, 205, 206, 207 as shown in figure 2B, they need to exchange information based on the function to be carried out. The motion controller 2 further includes an information sharing means 21 for sharing data representing at least one piece of information to be exchanged by any two of the function modules 204, 205, 206,
207. The function modules 204, 205, 206, 207 can access through the infonnation sharing means 21 the data and respectively carry out functions in parallel based on the exchanged information.
An alternative approach is to use a processor with a multiple of computing units as substitution of the programmable logic.
The information sharing means 21 may be a memory shared among the function modules 204, 205, 206, 207. The memory may be external to the programmable chip 20 or be on-chip memory and if necessary, logic blocks of the programmable chip 20 may be used for implementation of information sharing means 21. External memory compares favourably with on-chip memory in larger volume and lower cost. But, external memory is slower in response than on-chip memory. The programmable chip 20 and the memory 21 communicate with each other through bus. By having the configuration of the motion controller as above, it brings about at least one of the technical advantages below:
1 , a excellent real time behaviour of the motion controller because of the ability of its computing units to compute in parallel;
2. an ease of integration of a function module because of their program instructions being run independently;
3. scalable architecture for the motion controller in terms of the number of computing unit; and
4. an effective usage of the programmable logic/processor, because their computing power could be used to its maximum without risks of incomplete execution of instructions.
Figure 3A illustrates a motion controller according to another embodiment of present invention. As shown in figure 3A, a motion controller 3 includes a programmable logic 30. The programmable logic 30 has a multiple of computing units, for example three computing units 300, 301, 302. The computing units are units of logic for carrying out functions and are used as building blocks within the programmable logic 30. The computing units 300, 301, 302 are predefined for implementation of a plurality of function modules 304, 305, 306, for example the function module 305 is providing motion control for controlling the motions of the electrical motors of a first robot, the function module 306 is of an IO control module for communication between the other function modules with an external device, such as an external detector and a drive unit, and the function module 304 is the logic control for robot path planning and based on the planed path controlling the functions the motion control modules 305. The computing units 300, 301, 302 are available either from programmable logic vendors or from developers themselves. For example, either the vendor or the developer can use a PC for programming instructions implementing the function modules 304, 305, 306 and download the program instructions from the PC and wire each of the computing units 300, 301, 302 respectively. Thus, the computing units 300, 301, 302 of the programmable logic are predefined by programming before it starts to operate. The number of computing units is determined according to the operator's requirements, for example the number of functions it is desired to perform.
The motion controller 3 further includes an information sharing means 31 for sharing data representing at least one piece of information to be exchanged by at least two of the function modules 304, 305, 306. The function modules 304, 305, 306 can access through the information sharing means 31 the data and respectively carry out functions in parallel based on the exchanged information. The infomiation may be about a status of a robot system, as well as a robot status, a joint position or a speed of the robot of the robot system, or the reference position, speed and torque that are expected to be reached by the electrical motors of the robot. The logic control module 304 is adapted for carrying out the function of control of the function of the motion control module 305 based on a first piece of the information about a status of a robot system, and setting a new robot status of at least one robot of the robot system and sharing the new robot status information as the second piece of information by the information sharing means 31 ; the robot system status, for example, is about if in the robot system there is an obstacle in the way of a movement of a robot, and the robot status is about the destination position that the robot is expected to reach in consideration of the robot system status; with the variant situations of the robot system status, the desired robot status changes accordingly with respect to the current robot system status and current robot status, to which are referred as new robot system status and new robot status. . The motion control module 305 is adapted for accessing via the information sharing means 31 the second piece of infomiation, and setting at least one series of joint positions for at least one joint of a robot of a robot system based on a combination of the second piece of the information and the robot mechanical characteristics and sharing the joint position information as the third piece of information by the information sharing means 31; the series of joint positions consist of the route where the joint of the robot is supposed to reach at a series of timing; by setting each robot joint position series, path planning for such robot is achieved, and this can be also applied to the other robot operating in the robot system. It may be the motion control module 305 adapted for sending the third piece of information to an external unit, or the logic control module 304 adapted for reading the third piece of information through the information sharing means and sending it to an external unit. The IO control module 306 is adapted for carrying out the function of inputting the first piece of information concerned with a status of the robot system detected by an external detector and sharing the first piece of information by the information sharing means 31 and accessing the third piece of information via the information sharing means 31 and outputting it to an external unit (another motion controller) for the robot of the robot system.
Figure 3B illustrates a motion controller according to another embodiment of present invention. The motion controller 3 as shown in figure 3B shares the parts of the motion controller 3 as shown in figure 3A. As shown in figure 3B, the programmable logic 30 further has a computing unit 303 which is predefined for implementation of function module 307. The function module 307 is for motion control for controlling the motions of the electrical motors of a second robot with a similar mechanism to the motion control module 305. The path planning tasks for different robots in the robot system may be allocated to different motion control modules 305, 307.
Due to that the computing units 300, 301, 302, 303 being partitioned on the programmable logic 30, the function modules 304, 305, 306, 307 implemented by means thereof operate in parallel. For the purpose of the cooperation of the function modules 304, 305, 306, 307, they need to exchange information based on the function to be carried out.
By having the configuration of the motion controller as above, it brings about at least one of the technical advantages below:
1. a excellent real time behaviour of the motion controller because of its computing units' computing power in parallel;
2. an ease of integration of a function module because of their program instructions being executed independently;
3. scalable architecture for the motion controller in terms of the number of computing units; and
4. an effective usage of the programmable logic/processor, because their computing power could be used to its maximum.
A standard servo drive is a device that receives reference data from a higher level controller, calculates necessary current output and controls power electronics to provide the electric current to the motor so that the requested output from the motor is achieved. The output could be a set speed, a position or a given torque. To provide the functionality, the servo drive needs to contain a low power logic digital part for computations and logic control of the system, a high power mixed digital and analog part for switching the power transistors and measurement of current feedback and an interface for communication with at least two devices, the higher level controller and position sensors. For multi-axes drives, very often several computing units need to be combined and a larger number of components is needed. As an example, we use a computer board, called Axis Computer, where there is one CPU, one DSP and one FPGA. In addition, it communicates with a control board in the drive unit with an FPGA containing necessary logic for local control, diagnosis and measurements.
Figure 4 shows a schematic diagram representing a robot control system according to another embodiment of present invention. As show in figure 4, motion controller 4 includes a programmable logic 40. The programmable logic 40 has a multiple of function modules, for example four function modules 400, 401, 402, 403. The computing unit is a unit of logic for carrying out a function and is used as building block within the programmable logic 40. The computing units 404, 405, 406, 407 are for implementation of a plurality of function modules 400, 401, 402, 403; for example, a first piece of information concerned with at least one series of desired joint positions for at least one joint of a robot of the robot system is shared by the information sharing means (communication channels), the function module 402 is a position control module, being adapted for receiving the current position of the joint of the robot and comparing it with the corresponding desired joint position and sharing the regulation value for reducing the difference therebetween as the second piece of information by the information sharing means; the second function module 401 is current control module, being adapted for setting phase current values for the joint motor based on the first piece of information. And the function module 403 is communication module for communication between the function modules with an external device, such as an external detector and a drive unit. It should be understood that the motion controller 4 may integrate other computing unit with other module. Using soft processors, one can make multi-computing unit systems on the chip and partition the system so that different local system clocks can be used.
In terms of the implementation, the embodiment according to figure 4 differs from those according to 2A, 2B, 3 A, or 3B in that the function module 400, 401, 402, 403 are partitioned into local function modules that communicate with each other and execute their tasks in parallel. These units can be soft processors having a local bus system and controlling local IP cores or computing units written directly as a larger IP core. Each of the IP core connected to a unit performs specific task and possibly is connected to a piece of hardware opening an interface between the hardware and the software.
Further referring to figure 4, at least one of the function modules 400, 401, 402, 403 includes: a local information sharing means 4000, 4010, 4030 and a plurality of local function modules being adapted for locally sharing data. The local information sharing means is for locally sharing the data within each function module 400, 401, 402, 403 representing a piece of robot information. And the local function module is for exchanging the information between at least two of them by accessing through the local information sharing means the data and respectively carrying out a plurality of local functions in parallel based on the exchanged information. The local function module receiving the exchanged information is adapted to carry out the local function based on the received exchanged information independently of the local functions that are simultaneously carried out by the other local function modules; and the plurality of local function modules are respectively implemented by means of a part of the computing unit 404, 405, 406, 407 of the processor or on the programmable logic 40.
For example, the function module 403 further includes the local information sharing means 4030 and a first local function module 4031 for..., a second local function module 4032 for communication with another robot controller..., and a third local function module 4033 for data analysis.... And the first, second, and third local function modules 4031, 4032, 4033 are implemented by three local computing units 4061, 4062, 4063 consisting of the computing unit 406. The local information sharing means 4000, 4010, 4030, 4030 may be a memory shared among the local function modules. The memory may be external to the programmable chi or be on-chip memory and if necessary, logic blocks of the programmable chip may be allocated for units of the memory. The programmable chip and the memory communicate with each other through bus.
The system put on an FPGA can easily be updated in the field. This allows us to provide a wide range of functions and interfaces with the same hardware without overloading it with unused software. In particular, for drive systems, the interface to the controller is decided by the user's preference. Most attractive solutions are Ethernet based, but with different logics. For example, raw Ethernet, EtherCAT, Ethernet/IP, PowerLink and Profinet can be used on the same hardware but require different logics and software. This can easily be provided by having slightly different systems that can be downloaded to the FPGA according to the requirement. Similarly, the chosen motor decides the type of encoder and the communication protocol. With a system as above, the protocol can be changed in a simple manner and different protocols can be supported with the same hardware.
Though the present invention has been described on the basis of some preferred embodiments, those skilled in the art should appreciate that those embodiments should by no way limit the scope of the present invention. Without departing from the spirit and concept of the present invention, any variations and modifications to the embodiments should be within the apprehension of those with ordinary knowledge and skills in the art, and therefore fall in the scope of the present invention which is defined by the
accompanied claims.

Claims

1. A motion controller, including:
an information sharing means, being adapted for sharing data representing at least one piece of information;
a plurality of function modules, being adapted for exchanging the information between at least two of them by accessing the data through the information sharing means and respectively carrying out a plurality of functions in parallel based on the exchanged information;
wherein:
the function module receiving the exchanged information is adapted to carry out the function based on the received exchanged information independently of the functions that are simultaneously carried out by the other function modules;
the plurality of function modules share at least one processor or programmable logic having a multiple of computing units; and
the plurality of function modules are respectively implemented by means of the computing units of the processor or on the programmable logic.
2. The motion controller according to claim 1, wherein:
the information sharing means is a memory shared among the plurality of function modules.
3. The motion controller according to claim 1, wherein:
at least one of the function modules includes:
a local information sharing means, being adapted for locally sharing data representing at least one piece of information;
a plurality of local function modules, being adapted for exchanging the information between at least two of them by accessing through the local information sharing means the data and respectively carrying out a plurality of local functions in parallel based on the exchanged information;
wherein:
the local function module receiving the exchanged information is adapted to carry out the local function based on the received exchanged information independently of the local functions that are simultaneously carried out by the other local function modules;
the plurality of local function modules are respectively implemented by means of a local computing unit as a part of the computing unit.
4. The motion controller according to claim 1, wherein:
the first piece of the information is concerned with a new robot system status;
the first function module is a logic control module, being adapted for setting a new robot status of at least one robot of the robot system and sharing the new robot status information as the second piece of information by the information sharing means.
5. The motion controller according to claim 4, wherein: the second function module is a motion control module, being adapted for setting at least one series of joint positions for at least one joint of a robot of a robot system based on a combination of the second piece of the information and the robot mechanical characteristics and sharing the joint position information as the third piece of information by the mformation sharing means.
6. The motion controller according to claim 5, wherein:
the first function module is further adapted for reading the third piece of information through the information sharing means and sending it to an external unit.
7. The motion controller according to claim 5, wherein:
the second module is further adapted for sending the third piece of information to an external unit.
8. The motion controller according to claim 1 , wherein;
the first piece of information concerned with at least one series of desired joint positions for at least one joint of a robot of the robot system is shared by the information sharing means;
the first function module is a position control module, being adapted for receiving the actual position of the joint of the robot and comparing it with the corresponding desired joint position and sharing the regulation value for reducing the difference therebetween as the second piece of information by the information sharing means;
the second function module is current control module, being adapted for setting phase current values for the joint motor based on the second piece of information.
9. The motion controller according to claim 1 , wherein:
the first function module is an IO control module; and
the 10 control module is adapted for carrying out the function of inputting the first piece of information and accessing the second piece of information via the information sharing means and outputting the second piece of mformation.
10. A robot control system including the motion controller according to one of claims 4 to 7, further including:
the external detector, being adapted for detecting the robot system status;
the drive unit; and
the robot having the motor, being adapted for being driven by the drive unit.
1 1. A robot control system including the motion controller according to claim 10, further including:
another robot having another motor, being adapted for being driven by the drive unit.
EP13871913.3A 2013-01-17 2013-01-17 Motion controller and robot control system using the same Withdrawn EP2946253A4 (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2013/070581 WO2014110748A1 (en) 2013-01-17 2013-01-17 Motion controller and robot control system using the same

Publications (2)

Publication Number Publication Date
EP2946253A1 true EP2946253A1 (en) 2015-11-25
EP2946253A4 EP2946253A4 (en) 2016-10-12

Family

ID=51208937

Family Applications (1)

Application Number Title Priority Date Filing Date
EP13871913.3A Withdrawn EP2946253A4 (en) 2013-01-17 2013-01-17 Motion controller and robot control system using the same

Country Status (3)

Country Link
EP (1) EP2946253A4 (en)
CN (1) CN104903800A (en)
WO (1) WO2014110748A1 (en)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106227097B (en) * 2016-08-25 2018-11-30 常州市翔云智能控制系统有限公司 Multibus multi-axis motion controller
CN107479506B (en) * 2017-09-04 2020-07-14 深圳市超时空机器人有限公司 Robot-based numerical control device, system and machining method
CN107571241A (en) * 2017-09-04 2018-01-12 深圳市超时空机器人有限公司 A kind of tow-armed robot and its control method
CN108052063A (en) * 2017-12-18 2018-05-18 珠海格力节能环保制冷技术研究中心有限公司 Control system, control chip and robot
CN109240191B (en) * 2018-04-25 2020-04-03 实时侠智能控制技术有限公司 Controller and control system integrating motion control and motor control
WO2019218324A1 (en) * 2018-05-17 2019-11-21 深圳配天智能技术研究院有限公司 Encoder, driver and controller for robot and robot
CN110340872A (en) * 2019-07-15 2019-10-18 赵智泉 Wearable remote-controlled robot and control method
CN111421547A (en) * 2020-04-13 2020-07-17 深圳市强华科技发展有限公司 Industrial robot control system and control method thereof
CN113720595B (en) * 2021-09-02 2024-06-04 上海桥田智能设备有限公司 Function detection system and method applied to tool quick-change device

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5042004A (en) * 1986-03-06 1991-08-20 Advanced Micro Devices, Inc. Programmable logic device with subroutine stack and random access memory
US7327396B2 (en) * 2002-04-10 2008-02-05 National Instruments Corporation Smart camera with a plurality of slots for modular expansion capability through a variety of function modules connected to the smart camera
EP1835699A1 (en) * 2006-03-17 2007-09-19 ABB PATENT GmbH Robot controller
US20090132057A1 (en) * 2007-11-20 2009-05-21 Abb Research Ltd. Control system for controlling the movements of a plurality of mechanical units
CN101286058B (en) * 2008-04-24 2010-09-29 上海交通大学 Robot modularized distribution type adaptive control system and method
WO2010102875A1 (en) * 2009-03-13 2010-09-16 Abb Technology Ag A method for control in a process control system implemented in part by one or more computer implemented run-time processes
EP2470991A1 (en) * 2009-08-24 2012-07-04 ABB Technology AG Improved execution of real time applications with an automation controller
DE102010019086A1 (en) * 2010-04-30 2011-11-03 Abb Technology Ag Device and method for transmitting measurement signals in spatially extended supply networks
JP5743495B2 (en) * 2010-11-05 2015-07-01 キヤノン株式会社 Robot controller
CN102289217B (en) * 2011-02-25 2012-09-05 广西大学 Modular reconfigurable motion control system with axle as unit
DE102011107169A1 (en) * 2011-07-13 2013-01-17 Kuka Roboter Gmbh Control of a robot

Also Published As

Publication number Publication date
EP2946253A4 (en) 2016-10-12
CN104903800A (en) 2015-09-09
WO2014110748A1 (en) 2014-07-24

Similar Documents

Publication Publication Date Title
EP2946253A1 (en) Motion controller and robot control system using the same
KR100945884B1 (en) Embedded robot control system
US10274936B2 (en) Control apparatus
US20080147206A1 (en) Control system for Real Time Applications for Cooperative Industrial Robots
US6882890B2 (en) Industrial controller based on distributable technology objects
US11977502B2 (en) Universal ethernet solution
WO2012090291A1 (en) Motion controller
US20100274385A1 (en) Control system for controlling an industrial robot
US11061377B2 (en) Control device
US11599081B2 (en) Method and apparatus for proxy execution and computation with an industrial controller
US8788609B2 (en) Automation device and automation system
WO2020067286A1 (en) Control system, support device, and support program
EP4354234A1 (en) Systems and methods for using memory-mapped memories in a microcontroller-based instrument
Wilkening et al. Modular System Architecture for Large Multi-Axis Motion Control Systems in Automation
JP2011002928A (en) Control computing component and component type control system
Patil et al. Design and Implementation of On-line Interactive Industrail Automation Systemusing Beagle Board
Kelkar EtherCAT based motion controller
WO2020067287A1 (en) Control system, support device, and support program
Boppudi et al. Data acquisition and controlling system using cortex m3 core
JP4633319B2 (en) General motion control system
EP3428753A1 (en) Automation system and method with cycle-based and event-based automation devices
von Cölln et al. Development of smart field devices using heterogeneous multicore processors
EP3109715B1 (en) System for operation and control of a plurality of power generating units
CN113406905A (en) EtherCAT bus control system with double PC architectures
CN116405524A (en) Coal mine edge control system

Legal Events

Date Code Title Description
PUAI Public reference made under article 153(3) epc to a published international application that has entered the european phase

Free format text: ORIGINAL CODE: 0009012

17P Request for examination filed

Effective date: 20150528

AK Designated contracting states

Kind code of ref document: A1

Designated state(s): AL AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HR HU IE IS IT LI LT LU LV MC MK MT NL NO PL PT RO RS SE SI SK SM TR

AX Request for extension of the european patent

Extension state: BA ME

DAX Request for extension of the european patent (deleted)
A4 Supplementary search report drawn up and despatched

Effective date: 20160912

RIC1 Information provided on ipc code assigned before grant

Ipc: G05B 19/414 20060101AFI20160906BHEP

Ipc: B25J 9/16 20060101ALI20160906BHEP

STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: THE APPLICATION HAS BEEN WITHDRAWN

18W Application withdrawn

Effective date: 20161222