MLchartDataset catalogue

Patent · US10773383B2 · B2 · US

Robot high frequency position streaming

(11) Publication number
US10773383B2
(21) Application number
15/984,467
(22) Filing date
2018-05-21
(30) Priority date
2017-05-22
(43) Publication date
2020-09-15
(45) Date of grant
2020-09-15
(51) IPC
B25J 9/00; B25J 9/16; G05B 19/418
(52) CPC
  • B25J Manipulators; chambers provided with manipulation devices: 9/1664
  • G05B Control or regulating systems in general; functional elements of such systems; monitoring or testing arrangements for such systems or elements: 19/41815, 19/4185, 2219/31261
  • H04L Transmission of digital information, e.g. telegraphic communication: 69/162
  • H04W Wireless communication networks: 4/70
  • Y10S Technical subjects covered by former uspc cross-reference art collections [xracs] and digests: 901/09, 901/16
(73) Assignee
Fanuc America Corp
(72) Inventors
Yi Sun; Jason Tsai; Sai-Kai Cheng; James F. Huber
(54) Title
Robot high frequency position streaming
(57) Abstract

A method and a system stream robot tool center point position to external processors at high frequency. The method includes the steps of: reading robot joint encoder data using an Interrupt Service Routine in the robot controller; calculating tool center point position based on the encoder data; and sending the calculated position data to a network socket in a high priority task. The method achieves tool center point and/or joint position communication at fast and consistent time intervals, as compared to much longer times for prior art methods. A downstream device, such as a processor or controller for another machine, reads the communicated tool center point and/or joint position data and uses it to control the operations of its own device. High speed motion command streaming from outside processors can be used in a similar way to control the robot.

Full text
View on Google Patents

Claims (18)

  1. A method for robot high frequency position streaming, said method comprising: providing a robot controller in communication with a robot, said robot controller including a processor and memory, said robot controller also being in communication with a machine controller; executing an interrupt service routine (ISR) module on the processor in the robot controller upon detection of an interrupt signal, where the ISR module is programmed to determine a tool center point position; providing the tool center point position and a corresponding timestamp to a buffer in the robot controller at each execution of the ISR module, where each tool center point position and corresponding timestamp forms a data set; and reading the data sets from the buffer by a communication task running on the processor and sending the data sets to a network port of the robot controller.
  2. The method according to claim 1 wherein the ISR module, upon each detection of the interrupt signal, performs steps including; reading robot joint position data; calculating a robot positional configuration using forward kinematics calculations based on the joint position data; and determining the tool center point position based on the robot positional configuration and a shape of a tool attached to a robot wrist, including transforming the tool center point position to a world Cartesian coordinate system.
  3. The method according to claim 2 wherein the robot joint position data is provided by joint encoders on the robot.
  4. The method according to claim 3 further comprising preprocessing signals from the joint encoders, where preprocessing includes digital signal processing.
  5. The method according to claim 2 wherein the tool center point position includes three orthogonal position values in the world Cartesian coordinate system and three angular orientations.
  6. The method according to claim 1 wherein the interrupt signal is provided by a system clock.
  7. The method according to claim 1 further comprising reading the data sets from the network port of the robot controller by the machine controller, formulating commands based on the tool center point position, and sending the commands to a machine for execution by the machine.
  8. The method according to claim 1 further comprising receiving commands from the machine controller by the robot controller, processing the commands in the ISR module, and sending instructions to the robot.
  9. The method according to claim 1 wherein the processor in the robot controller also executes a command interpolation routine, and an execution cycle time of the ISR module is faster than and independent of execution of the command interpolation routine.
  10. A method for robot high frequency position streaming, said method comprising: providing a robot controller in communication with a robot, said robot controller including a processor and memory, said robot controller also being in communication with a machine controller; executing an interrupt service routine (ISR) module on the processor in the robot controller upon detection of an interrupt signal, where the ISR module is programmed to perform steps including reading robot joint position data, calculating a robot positional configuration using forward kinematics calculations based on the joint position data, and determining a tool center point position based on the robot positional configuration and a shape of a tool attached to a robot wrist; providing the tool center point position and a corresponding timestamp to a buffer in the robot controller at each execution of the ISR module, where each tool center point position and corresponding timestamp forms a data set; reading the data sets from the buffer by a communication task running on the processor and sending the data sets to a network port of the robot controller, where the network port uses User Datagram Protocol (UDP); and reading the data sets from the network port of the robot controller by the machine controller, formulating commands based on the tool center point position, and sending the commands to a machine for execution by the machine.
  11. The method according to claim 10 wherein the interrupt signal is provided by a system clock at regular intervals.
  12. The method according to claim 10 further comprising receiving command signals from the machine controller by the robot controller, processing the command signals in the ISR module to formulate instructions, and sending the instructions to the robot.
  13. A robot high frequency position streaming system, said system comprising: a robot; a machine controller controlling a machine to work in synchronization with the robot based on robot tool center point position data; and a robot controller in communication with the robot and the machine controller, said robot controller including a processor and memory, where the processor is configured to; execute an interrupt service routine (ISR) module upon detection of an interrupt signal, where the ISR module performs steps including reading robot joint position data, calculating a robot positional configuration using forward kinematics calculations based on the joint position data, and determining a tool center point position based on the robot positional configuration and a shape of a tool attached to a robot wrist; provide the tool center point position and a corresponding timestamp to a buffer in the robot controller at each execution of the ISR module, where each tool center point position and corresponding timestamp forms a data set; and read the data sets from the buffer by a communication task and send the data sets to a network port of the robot controller for communication to the machine controller.
  14. The system according to claim 13 wherein the interrupt signal is provided by a system clock at regular intervals.
  15. The system according to claim 13 wherein the robot joint position data is provided by joint encoders on the robot.
  16. The system according to claim 13 wherein the tool center point position includes three orthogonal position values in a world Cartesian coordinate system and three angular orientations.
  17. The system according to claim 13 wherein the machine controller reads the data sets from the network port of the robot controller, formulates commands based on the tool center point position, and sends the commands to the machine for execution by the machine.
  18. The system according to claim 13 wherein the processor in the robot controller is further configured to receive commands from the machine controller, process the commands in the ISR module to formulate instructions, and send the instructions to the robot.

Description

The present disclosure relates generally to the field of factory robot control/communication and, more particularly, to a method for streaming robot tool center point position to external processors at high frequency, where the method includes reading robot joint encoder data using an Interrupt Service Routine in the robot controller, calculating tool center point position based on the encoder data, and sending the calculated position data to a network socket in a high priority task.

Robotic machines are widely used in manufacturing and factory floor environments, where the robots are used to repeatably and cost-effectively perform tasks such as material movement, arc welding, laser welding, laser cutting, material dispensing, etc. Many of these robot-performed tasks require synchronization with motion of another part or a task sequence of another tool. For example, a welding operation cannot be performed until one or more parts are properly positioned, and the welding laser or rod is also properly positioned. Furthermore, as a result of improvements in robots and their controllers, the rate at which the tasks is performed has increased. This rate increase is good for factory operators, as processing more parts in a given amount of time results in a lower cost per part. In addition, as the demand for part quality has increased, it has become necessary for robotic tasks such as cutting and welding to be performed with greater precision.

The task synchronization described above requires a robot to communicate its tool center point position to another robot or processing device.

Citations (3)

  • US20160030240A1
  • US9824019B2
  • US20180333852A1
Record as JSON
{
  "publication_number": "US10773383B2",
  "country": "US",
  "kind": "B2",
  "title": "Robot high frequency position streaming",
  "abstract": "A method and a system stream robot tool center point position to external processors at high frequency. The method includes the steps of: reading robot joint encoder data using an Interrupt Service Routine in the robot controller; calculating tool center point position based on the encoder data; and sending the calculated position data to a network socket in a high priority task. The method achieves tool center point and/or joint position communication at fast and consistent time intervals, as compared to much longer times for prior art methods. A downstream device, such as a processor or controller for another machine, reads the communicated tool center point and/or joint position data and uses it to control the operations of its own device. High speed motion command streaming from outside processors can be used in a similar way to control the robot.",
  "claims": [
    "1. A method for robot high frequency position streaming, said method comprising: providing a robot controller in communication with a robot, said robot controller including a processor and memory, said robot controller also being in communication with a machine controller; executing an interrupt service routine (ISR) module on the processor in the robot controller upon detection of an interrupt signal, where the ISR module is programmed to determine a tool center point position; providing the tool center point position and a corresponding timestamp to a buffer in the robot controller at each execution of the ISR module, where each tool center point position and corresponding timestamp forms a data set; and reading the data sets from the buffer by a communication task running on the processor and sending the data sets to a network port of the robot controller.",
    "2. The method according to claim 1 wherein the ISR module, upon each detection of the interrupt signal, performs steps including; reading robot joint position data; calculating a robot positional configuration using forward kinematics calculations based on the joint position data; and determining the tool center point position based on the robot positional configuration and a shape of a tool attached to a robot wrist, including transforming the tool center point position to a world Cartesian coordinate system.",
    "3. The method according to claim 2 wherein the robot joint position data is provided by joint encoders on the robot.",
    "4. The method according to claim 3 further comprising preprocessing signals from the joint encoders, where preprocessing includes digital signal processing.",
    "5. The method according to claim 2 wherein the tool center point position includes three orthogonal position values in the world Cartesian coordinate system and three angular orientations.",
    "6. The method according to claim 1 wherein the interrupt signal is provided by a system clock.",
    "7. The method according to claim 1 further comprising reading the data sets from the network port of the robot controller by the machine controller, formulating commands based on the tool center point position, and sending the commands to a machine for execution by the machine.",
    "8. The method according to claim 1 further comprising receiving commands from the machine controller by the robot controller, processing the commands in the ISR module, and sending instructions to the robot.",
    "9. The method according to claim 1 wherein the processor in the robot controller also executes a command interpolation routine, and an execution cycle time of the ISR module is faster than and independent of execution of the command interpolation routine.",
    "10. A method for robot high frequency position streaming, said method comprising: providing a robot controller in communication with a robot, said robot controller including a processor and memory, said robot controller also being in communication with a machine controller; executing an interrupt service routine (ISR) module on the processor in the robot controller upon detection of an interrupt signal, where the ISR module is programmed to perform steps including reading robot joint position data, calculating a robot positional configuration using forward kinematics calculations based on the joint position data, and determining a tool center point position based on the robot positional configuration and a shape of a tool attached to a robot wrist; providing the tool center point position and a corresponding timestamp to a buffer in the robot controller at each execution of the ISR module, where each tool center point position and corresponding timestamp forms a data set; reading the data sets from the buffer by a communication task running on the processor and sending the data sets to a network port of the robot controller, where the network port uses User Datagram Protocol (UDP); and reading the data sets from the network port of the robot controller by the machine controller, formulating commands based on the tool center point position, and sending the commands to a machine for execution by the machine.",
    "11. The method according to claim 10 wherein the interrupt signal is provided by a system clock at regular intervals.",
    "12. The method according to claim 10 further comprising receiving command signals from the machine controller by the robot controller, processing the command signals in the ISR module to formulate instructions, and sending the instructions to the robot.",
    "13. A robot high frequency position streaming system, said system comprising: a robot; a machine controller controlling a machine to work in synchronization with the robot based on robot tool center point position data; and a robot controller in communication with the robot and the machine controller, said robot controller including a processor and memory, where the processor is configured to; execute an interrupt service routine (ISR) module upon detection of an interrupt signal, where the ISR module performs steps including reading robot joint position data, calculating a robot positional configuration using forward kinematics calculations based on the joint position data, and determining a tool center point position based on the robot positional configuration and a shape of a tool attached to a robot wrist; provide the tool center point position and a corresponding timestamp to a buffer in the robot controller at each execution of the ISR module, where each tool center point position and corresponding timestamp forms a data set; and read the data sets from the buffer by a communication task and send the data sets to a network port of the robot controller for communication to the machine controller.",
    "14. The system according to claim 13 wherein the interrupt signal is provided by a system clock at regular intervals.",
    "15. The system according to claim 13 wherein the robot joint position data is provided by joint encoders on the robot.",
    "16. The system according to claim 13 wherein the tool center point position includes three orthogonal position values in a world Cartesian coordinate system and three angular orientations.",
    "17. The system according to claim 13 wherein the machine controller reads the data sets from the network port of the robot controller, formulates commands based on the tool center point position, and sends the commands to the machine for execution by the machine.",
    "18. The system according to claim 13 wherein the processor in the robot controller is further configured to receive commands from the machine controller, process the commands in the ISR module to formulate instructions, and send the instructions to the robot."
  ],
  "description_excerpt": "The present disclosure relates generally to the field of factory robot control/communication and, more particularly, to a method for streaming robot tool center point position to external processors at high frequency, where the method includes reading robot joint encoder data using an Interrupt Service Routine in the robot controller, calculating tool center point position based on the encoder data, and sending the calculated position data to a network socket in a high priority task.\n\nRobotic machines are widely used in manufacturing and factory floor environments, where the robots are used to repeatably and cost-effectively perform tasks such as material movement, arc welding, laser welding, laser cutting, material dispensing, etc. Many of these robot-performed tasks require synchronization with motion of another part or a task sequence of another tool. For example, a welding operation cannot be performed until one or more parts are properly positioned, and the welding laser or rod is also properly positioned. Furthermore, as a result of improvements in robots and their controllers, the rate at which the tasks is performed has increased. This rate increase is good for factory operators, as processing more parts in a given amount of time results in a lower cost per part. In addition, as the demand for part quality has increased, it has become necessary for robotic tasks such as cutting and welding to be performed with greater precision.\n\nThe task synchronization described above requires a robot to communicate its tool center point position to another robot or processing device.",
  "cpc": [
    "B25J 9/1664",
    "G05B 19/41815",
    "G05B 19/4185",
    "G05B 2219/31261",
    "H04L 69/162",
    "H04W 4/70",
    "Y10S 901/09",
    "Y10S 901/16"
  ],
  "ipc": [
    "B25J 9/00",
    "B25J 9/16",
    "G05B 19/418"
  ],
  "assignees": [
    "Fanuc America Corp"
  ],
  "inventors": [
    "Yi Sun",
    "Jason Tsai",
    "Sai-Kai Cheng",
    "James F. Huber"
  ],
  "filing_date": "2018-05-21",
  "publication_date": "2020-09-15",
  "grant_date": "2020-09-15",
  "priority_date": "2017-05-22",
  "application_number": "US-201815984467-A",
  "family_id": "64269836",
  "cited_by_count": 0,
  "citations": [
    "US20160030240A1",
    "US9824019B2",
    "US20180333852A1"
  ]
}

Record 1,976 of 8,000 in Patents full text (MLC-0201). Request the full dataset.