Robot system, planning system, robot control method, and planning program

The robot system autonomously generates paths based on work requirements and environmental recognition, addressing the limitations of manual teaching in existing systems by enhancing adaptability and reducing user intervention in variable production.

JP2024177314AActive Publication Date: 2024-12-19YASKAWA DENKI KK
View PDF 5 Cites 0 Cited by

Patent Information

Application Number
JP2024172988
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Filing Date
2024-10-02
Publication Date
2024-12-19
Estimated Expiration
2042-03-08

AI Technical Summary

Technical Problem

Existing robot systems require manual setting of teaching points and teaching playback, making them unsuitable for high-mix, variable production scenarios where tasks or work procedures frequently change, and they lack autonomy in adapting to changing work environments.

Method used

A robot system that generates paths for robots based on predefined work requirements and real-time environmental recognition without using teaching points, utilizing sensors and models to adapt to the work environment, allowing for intuitive user input and flexible operation.

Benefits of technology

Enhances robot autonomy by enabling flexible operation in variable production scenarios without the need for manual positioning or fixing workpieces, reducing user load and improving adaptability to changing environments.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2024177314000001_ABST
    Figure 2024177314000001_ABST
Patent Text Reader

Abstract

To enhance the autonomy of a robot.SOLUTION: A robot system according to an example includes: a storage unit which stores a work requirement predefined for a workpiece; a recognition unit which recognizes an environment of a work space where the workpiece is placed, as a work environment; a generation unit which generates a path of a robot, for causing the robot placed in the work space to process the workpiece, on the basis of the work requirement and the work environment; and a control unit which controls the robot on the basis of the path.SELECTED DRAWING: Figure 1
Need to check novelty before this filing date? Find Prior Art

Description

[Technical field]

[0001] One aspect of the present disclosure relates to a robot system, a planning system, a robot control method, and a planning program. [Background technology]

[0002] Patent document 1 describes a robot system that includes a measurement posture memory unit that stores position information on a robot controller in multiple measurement robot postures set up within the robot's working environment, a measurement position acquisition unit that acquires a measurement position for each of the multiple measurement robot postures based on the detection results of a sensor, and a correction unit that corrects the robot's operating position based on the measurement position. [Prior art documents] [Patent documents]

[0003] [Patent Document 1] Patent No. 6860843 Summary of the Invention [Problem to be solved by the invention]

[0004] In one aspect of the present disclosure, it is desired to increase the autonomy of robots. [Means for solving the problem]

[0005] A robot system according to one aspect of the present disclosure includes a memory unit that stores predefined work requirements for a workpiece, a recognition unit that recognizes the environment of the work space in which the workpiece is placed as a work environment, a generation unit that generates a path for a robot placed in the work space based on the work requirements and the work environment, to cause the robot to process the workpiece, and a control unit that controls the robot based on the path.

[0006] A robot control method according to one aspect of the present disclosure is a robot control method executed by a robot system having at least one processor, and includes the steps of storing predefined work requirements for a workpiece, recognizing the environment of a work space in which the workpiece is placed as a work environment, generating a path for a robot placed in the work space based on the work requirements and the work environment to cause the robot to process the workpiece, and controlling the robot based on the path. Effect of the Invention

[0007] According to one aspect of the present disclosure, the autonomy of a robot can be increased. [Brief description of the drawings]

[0008] [Figure 1] FIG. 1 illustrates an example of a configuration of a robot system. [Diagram 2] FIG. 2 is a diagram illustrating an example of a hardware configuration of a robot controller. [Diagram 3] 11 is a flowchart illustrating an example of a process for defining task requirements for a work. [Figure 4] FIG. 2 is a diagram illustrating an example of work requirements for a work. [Diagram 5] 13 is a flowchart illustrating an example of a process for generating a command for a robot. [Figure 6] FIG. 2 is a diagram showing an example of a path of a robot in a workspace. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0009] Hereinafter, embodiments of the present disclosure will be described in detail with reference to the accompanying drawings. In the description of the drawings, the same or equivalent elements are designated by the same reference numerals, and duplicated explanations will be omitted.

[0010] [System Overview] The robot system according to the present disclosure is a control system that automates various tasks such as machining and assembly by making a robot placed in an actual workspace execute a predetermined motion. The robot system generates a path for the robot based on task requirements defined in advance for a workpiece and a task environment, which is the environment of the workspace in which the workpiece is placed. The task requirements refer to information indicating a process to be executed for the workpiece. The task environment can also be said to be the actual situation of the workspace. The path indicates the trajectory of the robot and constitutes at least a part of an instruction to the robot. Thus, the robot system includes a planning system, which is a computer system for determining the motion of the robot. The robot system generates an operation program including the path as an instruction, and controls the robot based on the instruction. The robot processes at least one workpiece according to the control.

[0011] A series of processes for at least one work is also called a job. A process for one work is also called a task, which is the smallest unit of processing that constitutes a job. It can be said that the work requirements represent tasks.

[0012] The robot's paths for executing a job can be classified into two types of paths. One path is a path that is the trajectory of the robot in a task, and is referred to as a work path in this disclosure. The other path is a path that connects between the start point of a job and the first task, between two consecutive tasks, or between the last task and the end point of a job, and is referred to as an air-cut path in this disclosure. An air-cut path that connects adjacent tasks connects the end point of the work path in the preceding task and the start point of the work path in the subsequent task. The robot system generates individual work paths and individual air-cut paths based on the task requirements and the task environment, thereby generating the entire path of the robot for executing a job.

[0013] In one example, the robot system sets the path of the robot based on the task requirements and the task environment without using any teaching points related to the robot. With this robot system, the robot can autonomously and appropriately process the workpiece in accordance with the actual situation (i.e., the task environment) as long as the user teaches the process to be performed on the workpiece (i.e., the task requirements). A teaching point is a reference point set to define the path, and is set manually. This teaching point is set in the robot coordinate system, which is a coordinate system whose origin is determined on the robot (e.g., the robot's base). A "teaching point related to the robot" refers to a teaching point set in the robot coordinate system to operate the robot.

[0014] In the conventional technology, the setting of teaching points is also called teaching. In addition, there is a teaching playback as a method of controlling a robot based on teaching points. In such conventional technology, it is necessary to specify the position of the robot in the robot coordinate system. However, it is difficult for the user to intuitively understand the correspondence between the specified position and the task. In addition, in the conventional technology, teaching is also required to generate air cut paths that are not directly related to the task. Furthermore, when the work environment, such as the relative positional relationship between the robot and the workpiece, changes, the user needs to remake the air cut path. For these reasons, the conventional technology is not suitable for multi-product variable production in which tasks or work procedures are frequently changed.

[0015] As described above, in one example, the robot system sets the path of the robot based on the task requirements and the task environment without using teaching points in the robot coordinate system, i.e., without teaching and teaching playback. The user only needs to instruct the task for the workpiece, and no teaching is required. The robot system automatically recognizes the task environment using data obtained from a predetermined sensor or a model indicating the task environment, so that the robot can be flexibly operated according to the task environment. In addition, a job can be executed without positioning the workpiece or fixing the workpiece with a jig. The task requirements for the workpiece are information that the user can intuitively create, so that the user can make the robot process the workpiece more intuitively without being aware of the robot. This can significantly reduce the load on the user. For these reasons, the robot system can promote the introduction of robots into multi-product variable production.

[0016] In one example, the robot system recognizes the working environment in real time in response to the placement of a workpiece in the working space. Then, based on the work requirements of the workpiece and the working environment, the robot system generates an operation program including a path as an instruction in real time, and controls the robot in real time based on the instruction. In this way, the robot system plans the robot's operation online. Such online control also contributes to improving the autonomy of the robot.

[0017] [System configuration] FIG. 1 is a diagram showing a configuration of a robot system 1 according to an example. The robot system 1 includes a robot 2 arranged in a working space 9, a motor control device 3 that controls a motor of the robot 2, and a robot controller 10 that outputs a control signal to the motor control device 3. The robot controller 10 and the motor control device 3 are connected to each other via a communication network. The robot controller 10 is connected to a host controller 20 and an operation record database 30 via another communication network. The communication network connecting the devices may be a wired network or a wireless network. The communication network may be configured to include at least one of the Internet and an intranet. Alternatively, the communication network may be simply realized by one communication cable. Although FIG. 1 shows one robot 2 and one robot controller 10, the robot system 1 may include multiple robots 2 or multiple robot controllers 10. One robot controller 10 may be connected to multiple robots 2.

[0018] The robot 2 is a device that receives power and performs a predetermined operation according to a purpose to perform a useful task. In one example, the robot 2 has a plurality of joints and is configured to be able to perform various processes while holding an end effector 2a at its tip. The joints are an example of a driven object. A joint axis is set for each of the plurality of joints. Some components of the robot 2, such as an arm, a rotating part, etc., rotate around a joint axis, and as a result, the position and posture of the tip of the robot 2 can be freely changed within a predetermined range. In one example, the robot 2 is a multi-axis serial link type vertical multi-joint robot. The robot 2 may be a 6-axis vertical multi-joint robot, or a 7-axis vertical multi-joint robot with one redundant axis added to the 6 axes. The robot 2 may be a self-propelled mobile robot, for example, a robot supported by an automated guided vehicle (AGV). Alternatively, the robot 2 may be a stationary robot fixed to a predetermined location.

[0019] The end effector 2a is a device that acts on a workpiece, for example, a device that imparts some kind of physical change to the workpiece. The end effector 2a can be various devices such as a polishing tool, a welding gun, a press machine, a sealing nozzle, a screw tightening device, etc.

[0020] The motor is a device that generates power for driving a drive target of the robot 2 in response to power supplied from the motor control device 3. Each drive target is operated by each motor, and as a result, the robot 2 executes a predetermined task on a workpiece using the end effector 2a. The motor may be a rotary motor that rotates the drive target, or a linear motor that displaces the drive target along a straight line. The motor may be a synchronous motor or an induction motor. The motor may be a permanent magnet type synchronous motor such as a SPM (Surface Permanent Magnet) motor or an IPM (Interior Permanent Magnet) motor. The motor may be a synchronous motor without a permanent magnet, such as a synchronous reluctance motor. The motor may be a DC motor or an AC motor.

[0021] The robot 2 may include at least one sensor that detects the response of the robot 2 operated by the power from the motor control device 3. The response refers to the output of the robot in response to a command that is a command for controlling the robot. For example, the response indicates information on at least one of the operation and state of the robot 2. The response may indicate information on at least one of the operation and state of the motor, for example, at least one of the shaft speed and the magnetic pole position of the motor. If the motor is a rotary type, the rotation angle of the object driven by the motor corresponds to the "position", and the rotation speed of the object driven by the motor corresponds to the "speed". The response may indicate information on at least one of the operation and state of the object driven, for example, at least one of the position, speed, and force of the object driven. The sensor transmits a response signal indicating the response to the robot controller 10. The response may be the value obtained by the sensor itself, or may be expressed by a value calculated or processed by a given operation or algorithm. An example of a sensor is a rotary encoder that outputs a pulse signal with a frequency proportional to the operating speed of the motor. The rotary encoder can obtain both the position and speed of the motor.

[0022] The motor control device 3 is a device for making the output of the motor follow a control signal (i.e., a command) from the robot controller 10. The motor control device 3 generates power for moving the motor based on the control signal from the robot controller 10, and supplies the power to the motor. This supplied power corresponds to a driving force command such as a torque command or a current command. The motor control device 3 may be, for example, an inverter or a servo amplifier. The motor control device 3 may be incorporated in the robot 2. The motor control device 3 may be equipped with a sensor for detecting the response of its own machine.

[0023] The upper controller 20 is a device that instructs the robot controller 10 to control the robot 2. The upper controller 20 may be a device related to CAM (Computer Aided Engineering). In one example, the upper controller 20 transmits a request to the robot controller 10 to cause the robot 2 to process a workpiece placed in the working space 9.

[0024] The operation history database 30 is a device that stores operation history data indicating that the robot 2 or another robot has processed a workpiece in the past. Although FIG. 1 shows the operation history database 30 as an independent device, the operation history database 30 may be provided in the robot controller 10, the upper controller 20, or another device. The operation history data may indicate processing performed by the robot 2 to be controlled from now on, or may indicate processing performed by one or more robots other than the robot 2, or may indicate both of these processing. Alternatively, the operation history data may indicate processing performed by peripheral equipment (e.g., an end effector) of the robot. The past workspace may be the workspace 9 in which the robot 2 is placed, or may be a location different from the workspace 9.

[0025] The robot controller 10 is a device that generates a command for operating the robot 2 and outputs a control signal based on the command. The robot controller 10 is an example of a robot control system. In one example, the robot controller 10 includes a requirement definition unit 11, a memory unit 12, an environment recognition unit 13, a sequence setting unit 14, a command generation unit 15, and a robot control unit 16 as functional modules. The requirement definition unit 11 is a functional module that defines the work requirements of the work based on the operation performance data. The memory unit 12 is a functional module that stores information required for generating a command, for example, the defined work requirements. The environment recognition unit 13 is a functional module that recognizes the environment of the work space 9 in which one or more workpieces are arranged as a work environment. The sequence setting unit 14 is a functional module that sets the processing sequence of the one or more workpieces. The command generation unit 15 is a functional module that generates a path of the robot 2 arranged in the work space 9 for processing the one or more workpieces according to the processing sequence based on the work requirements and the work environment, and generates a command including the path. The robot control unit 16 is a functional module that controls the robot 2 based on the command.

[0026] FIG. 2 is a diagram showing an example of the hardware configuration of the robot controller 10. The robot controller 10 includes a circuit 190. In one example, the circuit 190 includes at least one processor 191, a memory 192, a storage 193, and at least one communication port 194. The storage 193 is a non-volatile storage medium, and stores a program for implementing each of the above-mentioned functional modules. The storage 193 may be configured, for example, by at least one hard disk or non-volatile memory. The memory 192 temporarily stores the program loaded from the storage 193, the calculation result by the processor 191, and the like. The memory 192 may be configured, for example, by at least one random access memory. The processor 191 configures each functional module by executing the program in cooperation with the memory 192. The communication port 194 performs data communication with other devices according to an instruction from the processor 191. For example, the robot controller 10 has one communication port 194 for connecting to the communication network N to send and receive data signals between the upper controller 20 and the operation history database 30, and another communication port 194 for sending and receiving data signals between the motor control device 3.

[0027] Each functional module of the robot controller 10 is realized by loading a robot control program onto the processor 191 or memory 192 and having the processor 191 execute the program. The robot control program includes code for realizing each functional module of the robot controller 10. The processor 191 operates the communication port 194 in accordance with the robot control program, and executes reading and writing of data from and to the memory 192 or storage 193.

[0028] The robot control program may be provided in a state in which it is permanently recorded on a non-transitory recording medium such as a CD-ROM, a DVD-ROM, a semiconductor memory, etc. Alternatively, the robot control program may be provided via a communication network as a data signal superimposed on a carrier wave.

[0029] In one example, the robot control program includes a planning program that generates a path for the robot 2 based on the task requirements and the task environment. This planning program may be provided independently.

[0030] [Robot control method] As an example of a robot control method according to the present disclosure, an example of a processing procedure executed by the robot controller 10 will be described with reference to Figs. 3 to 6. Fig. 3 is a flowchart showing an example of a process for defining work requirements as a processing flow S1. Fig. 4 is a diagram showing an example of work requirements. Fig. 5 is a flowchart showing an example of a process for generating commands to the robot as a processing flow S2. Fig. 6 is a diagram showing an example of a path of the robot in the workspace. The robot controller 10 executes processing flow S1 for defining the work requirements, and executes processing flow S2 for generating the commands.

[0031] (Define work requirements) In one example, the task requirements are defined by a user of the robot system 1, and are stored in advance in the storage unit 12 by a predetermined operation by the user. As another example, the task requirements may be defined by the requirements definition unit 11. For example, the requirements definition unit 11 may update the task requirements defined by the user and stored in the storage unit 12. With reference to FIG. 3, an example of the definition of task requirements by the requirements definition unit 11 will be described. The process flow S1 is executed after the robot 2 or another robot processes a workpiece in a past workspace and operation performance data indicating the processing is stored in the operation performance database 30. In one example, the process flow S1 is executed for each of a plurality of types of workpieces.

[0032] In step S11, the requirements definition unit 11 obtains operation history data corresponding to a work. In one example, the requirements definition unit 11 accesses the operation history database 30 and reads out operation history data corresponding to a certain type of work WP. When n work pieces WP have been processed in the past, the operation history data includes a record group indicating n processing times for the work piece WP. In this case, the requirements definition unit 11 reads out at least a part of the record group from the operation history database 30.

[0033] In one example, the operation performance data includes a plurality of teaching points for the robot that represent processing of a workpiece by the robot 2 or another robot, and the position of the workpiece in the past workspace where the processing was performed. The "position of the workpiece" is expressed by coordinate values ​​in the robot coordinate system. For example, the position may be obtained by converting coordinate values ​​in the sensor coordinate system to coordinate values ​​in the robot coordinate system. The sensor coordinate system is a coordinate system whose origin is determined by a sensor, and may be, for example, a camera coordinate system whose origin is set to a camera lens. The teaching points and the position of the workpiece shown in the operation performance data may be values ​​obtained by actual processing in the real workspace, or may be values ​​obtained by past simulations. A simulation is a process that simulates the behavior of a certain system on a computer.

[0034] In step S12, the requirements definition unit 11 defines the work requirements for the work based on the operation performance data. When using multiple records of the operation performance data, the requirements definition unit 11 may define the work requirements by calculations including statistical processing such as regression.

[0035] In one example, the requirement definition unit 11 identifies an area on the workpiece to which processing by the robot has been applied as a processed area based on the teaching points and the workpiece position indicated in the operation performance data. For example, the processed area is an area that has been acted upon by an end effector. The processed area is a place on the workpiece that should be processed, and is a type of work requirement. Therefore, the requirement definition unit 11 defines the processed area as at least a part of the work requirement. Each processed area may be a point, a line, or a two-dimensional shape. The requirement definition unit 11 identifies one or more processed areas for one workpiece. In one example, the requirement definition unit 11 converts coordinate values ​​indicating the position and shape of each processed area from the robot coordinate system to the workpiece coordinate system, and identifies the processed area by the coordinate values ​​in the workpiece coordinate system. The workpiece coordinate system is a coordinate system whose origin is determined on the workpiece.

[0036] In one example, the requirements definition unit 11 may specify the area to be processed by further using a workpiece model, which is a model virtually showing the workpiece. The workpiece model is a three-dimensional model showing the structure of the workpiece, and is generated, for example, by CAD (Computer Aided Design). Since the workpiece model is expressed using a workpiece coordinate system, the requirements definition unit 11 can associate the area to be processed with the workpiece model. Through this association, the area to be processed includes or indicates a relative position with respect to the workpiece model. In one example, the "relative position with respect to the workpiece model" is a position set on the workpiece model in the workpiece coordinate system.

[0037] The requirements definition unit 11 may specify an approach point where the robot approaches the workpiece as at least a part of the processing area, and define a task requirement including the approach point. The approach point is a location where the robot that is processing the workpiece first comes into contact with the workpiece.

[0038] The requirements definition unit 11 may define the motion speed of the robot as at least a part of the task requirements based on the teaching points and the work position indicated in the operation performance data. For example, the requirements definition unit 11 may estimate the motion speed of the robot in past processing based on the history of the correspondence relationship between the work position and time, and define the motion speed as at least a part of the task requirements.

[0039] The requirements definition unit 11 may define a force applied to a workpiece by a robot as at least a part of a task requirement based on the teaching points and the workpiece position indicated in the operation performance data. An example of the force is a pressing force generated when the robot presses the workpiece. In one example, the requirements definition unit 11 estimates a force applied to a workpiece by a robot in a past process based on a history of the correspondence between the workpiece position and time and specification data indicating the specifications of the robot or end effector, and defines the force as at least a part of a task requirement.

[0040] In step S13, the requirements definition unit 11 generates task requirement data indicating the defined task requirements, and stores the task requirement data in the storage unit 12. As a result, the task requirements are updated or newly registered. In one example, the requirements definition unit 11 generates and stores task requirement data in which the task requirements and the work model are associated with each other. The work model and the processed area indicated by the task requirement data are both defined in the work coordinate system. Therefore, the task requirements, the work model, and the processed area are all completely different techniques from the teaching points set in the robot coordinate system. In addition, the process flow S1 is completely different from teaching, which is a conventional technique.

[0041] An example of a defined work requirement is described with reference to Figure 4. This example shows a treated area 210 defined on a workpiece model 200. For example, treated area 210 may represent a location that is to be sealed. Treated area 210 includes an approach point 211, which is indicated in Figure 4 by an X.

[0042] The task requirements defined by the requirement definition unit 11 are obtained from the operation of a robot that previously processed a workpiece based on teaching points set manually. Therefore, the task requirements can be said to be information that reflects experience and know-how regarding robot control of a workpiece. In one example, since the processed area 210 including the approach point 211 is automatically defined, the user of the robot system 1 can prepare the task requirements represented by the workpiece model 200 and the processed area 210 by simply preparing the workpiece model 200. It should be noted that the task requirements shown in FIG. 4 may be defined by the user, as described above.

[0043] As described above, the process flow S1 may be executed for each of a plurality of types of workpieces. In this case, the storage unit 12 may store task requirement data for various workpieces that may be processed by the robot 2. That is, the storage unit 12 may store task requirements for each of a plurality of workpieces.

[0044] (Generating instructions) 5, an example of a process for generating a command for operating the robot 2 will be described. In this example, the robot system 1 executes a process flow S2 in response to receiving a predetermined request from the upper controller 20.

[0045] The process flow S2 is executed on the premise that information required for generating a command is stored in the memory unit 12. As described above, the memory unit 12 stores task requirement data. The memory unit 12 may further store at least one of an obstacle model and tool information. The obstacle model is a model of an obstacle, and is expressed, for example, by a three-dimensional model showing the structure of the obstacle. The tool information is information related to the end effector 2a of the robot 2, and indicates, for example, the structure and specifications of the end effector 2a.

[0046] In step S21, the environment recognition unit 13 recognizes the environment of the work space 9 in which at least one workpiece is placed as the work environment. In one example, the environment recognition unit 13 recognizes the current work environment in real time. In one example, the environment recognition unit 13 may recognize the work environment based on sensor data obtained from a sensor monitoring the work space 9. For example, the sensor is an imaging device such as a camera, and the sensor data is image data obtained from the imaging device. The image data may be a still image, a video, or one frame of a video.

[0047] In one example, the environment recognition unit 13 recognizes the position of each of the one or more workpieces as at least a part of the work environment. The environment recognition unit 13 may further recognize the posture of each of the one or more workpieces as at least a part of the work environment. The position of the workpiece refers to the location where the workpiece is placed. The posture of the workpiece refers to at least one of the direction and the inclination of the placed workpiece. In one example, the environment recognition unit 13 may recognize the position and posture of the workpiece based on a workpiece model. For example, the environment recognition unit 13 analyzes image data using one or more workpiece models stored in the memory unit 12, identifies an object that matches a certain workpiece model as a workpiece, and recognizes the position and posture of the workpiece.

[0048] In one example, the environment recognition unit 13 recognizes the position and posture of the robot 2 as at least one of the working environment. For example, the environment recognition unit 13 recognizes the position and posture of the robot 2 based on a response obtained from the robot 2 or the motor control device 3.

[0049] In one example, the environment recognition unit 13 recognizes an obstacle for the robot 2 attempting to process a workpiece as at least a part of the working environment. It should be noted that when the robot 2 attempts to process a certain workpiece, the workpiece is not an obstacle. The environment recognition unit 13 recognizes the position and shape of the obstacle. When the obstacle has a movable part, the environment recognition unit 13 may recognize a specific posture of the obstacle as the shape of the obstacle. In one example, the environment recognition unit 13 may recognize the position and shape of the obstacle based on an obstacle model that is a three-dimensional model showing the structure of the obstacle. For example, the environment recognition unit 13 analyzes image data using one or more obstacle models stored in the storage unit 12, identifies an object that matches a certain obstacle model as an obstacle, and recognizes the position and shape of the obstacle.

[0050] In step S22, the command generating unit 15 acquires the task requirements of the workpiece. In one example, the command generating unit 15 acquires the task requirements for each of the recognized one or more workpieces by reading task requirement data corresponding to the workpiece from the storage unit 12. Alternatively, the command generating unit 15 may read task requirements corresponding to a workpiece designated by the upper controller 20 or a user instruction from the storage unit 12. The command generating unit 15 may adjust at least a part of the acquired task requirements of the workpiece (e.g., the operating speed, the approach point, etc.) based on the recognized task environment. The command generating unit 15 may perform the adjustment according to the upper controller 20 or a user instruction, or may perform the adjustment automatically according to a given rule.

[0051] In step S23, the command generating unit 15 specifies the area to be processed of the workpiece placed in the working space 9 based on the work requirements and the working environment. That is, the command generating unit 15 specifies the location on the workpiece to be actually processed in the working space 9. The command generating unit 15 specifies the area to be processed for each of at least one workpiece. The command generating unit 15 may specify the area to be processed in the working space 9 based on the position and posture of the workpiece placed in the working space 9 and the relative position indicated by the work requirement data. For example, the command generating unit 15 converts the coordinate value of the area to be processed in the workpiece coordinate system into a coordinate value on a sensor coordinate system such as a camera coordinate system. The command generating unit 15 further converts the coordinate value on the sensor coordinate system into a coordinate value on the robot coordinate system using the relative relationship between the robot 2 and the sensor coordinate system identified in advance by calibration. The command generating unit 15 specifies the area to be processed in the working space 9 through this series of processes. When the area to be processed includes an approach point, the command generating unit 15 further specifies the approach point of the workpiece placed in the working space 9 based on the work requirements and the working environment.

[0052] In step S24, the order setting unit 14 sets the processing order of at least one workpiece. If the number of workpieces in the working space 9 is 1, the order setting unit 14 sets the processing order of the workpiece to 1. In one example, the order setting unit 14 may set the processing order according to a command from the upper controller 20 or a user instruction. Alternatively, the order setting unit 14 may dynamically set the processing order based on the arrangement of multiple workpieces in the recognized working environment. "Dynamic setting of the processing order" refers to setting the processing order according to the actual situation of the working space 9. The order setting unit 14 may automatically and dynamically set the processing order without being specified from the outside. Alternatively, the order setting unit 14 may dynamically set the processing order according to an instruction from the upper controller 20 or a user instruction received in real time. The order setting unit 14 may calculate an evaluation value related to the operation of the robot 2 for processing the one or more workpieces based on the position and posture of the one or more workpieces by a method such as simulation, and set the processing order based on the evaluation value. In one example, the order setting unit 14 calculates an evaluation value based on a physical quantity related to the operation of the robot 2, and sets the processing order based on the evaluation value. Examples of physical quantities include the travel distance of the robot 2 required to process all the workpieces in the working space 9, the time required to complete the process (so-called cycle time), and the energy consumption (e.g., power consumption) required for the process. For example, the order setting unit 14 may calculate an evaluation value for each possible processing order based on at least one physical quantity, and finally set the processing order corresponding to the evaluation value estimated to be optimal.

[0053] In step S25, the command generating unit 15 sets a path for making the robot 2 process at least one workpiece according to the processing order. The command generating unit 15 generates a path based on the position of the workpiece arranged in the working space 9. The command generating unit 15 may generate a path based on the posture of the workpiece. In one example, the command generating unit 15 generates a path based on the position of at least one processed area in the working space 9 (i.e., the position of the processed area identified in step S23). The task requirements may include various other conditions in addition to or instead of the processed area. Examples of general conditions that are not dependent on the task include the motion speed of the robot 2, the adjustment ratio of the acceleration / deceleration of the robot 2, and the degree of approach of the robot 2 to the approach point. Examples of conditions that are dependent on a specific task include the force applied to the workpiece by the robot 2, the condition of the signal output of the peripheral device of the robot 2, and the characteristic condition of the peripheral device (e.g., the end effector). For example, the command generating unit 15 generates a path based on at least one of the motion speed and the force. When an obstacle is recognized, the command generating unit 15 may generate a path based on the position of the obstacle so that the obstacle does not interfere with the robot 2. Interference refers to a phenomenon in which an object comes into contact with or collides with another object. It should be noted that when the robot 2 is trying to process a certain workpiece, contact between the robot 2 and the workpiece is not interference.

[0054] In one example, when generating a path, the command generating unit 15 converts the coordinate values ​​of the workpiece, the area to be processed, and the obstacles defined in a sensor coordinate system such as a camera coordinate system into the robot coordinate system, and then sets the path of the robot in the robot coordinate system based on the converted coordinate values.

[0055] The path of the robot 2 may be the path of the end effector 2a of the robot 2. In one example, the command generating unit 15 reads out tool information from the storage unit 12, and generates the path of the end effector 2a further based on the tool information.

[0056] As described above, the path of the robot 2 includes at least one work path and at least one air-cut path. In one example, the command generating unit 15 generates individual work paths based on individual processed areas. For example, the command generating unit 15 generates a work path along the processed area. Furthermore, the command generating unit 15 generates individual air-cut paths. When an approach point is identified for a certain workpiece, the command generating unit 15 generates an air-cut path for moving the robot 2 to the workpiece based on the position of the approach point.

[0057] In one example, the command generating unit 15 generates each air cut path by the following method. That is, the command generating unit 15 identifies the start point and the end point of the air cut path to be generated, and generates a tentative path that connects the two points with a straight line. Then, the command generating unit 15 verifies the operation of the robot 2 based on the tentative path by simulation. If interference between the robot 2 and an obstacle is detected in the simulation, the command generating unit 15 randomly or by an arbitrary optimization method sets one or more way points between the start point and the end point, and generates a new tentative path that runs from the start point to the end point through the one or more way points. Then, the command generating unit 15 verifies the operation of the robot 2 based on the new tentative path by simulation. In one example, the command generating unit 15 repeats the process including the generation of the tentative path and the interference check until interference is no longer detected, and sets the finally obtained tentative path as the air cut path. The command generating unit 15 may set an air cut path by performing optimization such as shortening the distance for the tentative path for which interference is not detected.

[0058] When multiple workpieces are placed in the working space 9, the multiple workpieces include a first workpiece and a second workpiece to be processed after the first workpiece. In this case, the command generating unit 15 generates an air cut path for moving the robot 2, which has finished processing the first workpiece, to the second workpiece. When the multiple workpieces include three or more workpieces, the command generating unit 15 generates each air cut path while changing the combination of the first workpiece and the second workpiece, that is, while changing the combination of two consecutive tasks.

[0059] In step S26, the command generating unit 15 generates a command including the path. In one example, the command generating unit 15 generates an operation program indicating the generated path as the command. The operation program includes a series of codes or commands for operating the robot 2 along the path.

[0060] In step S27, the robot control unit 16 controls the robot 2 based on the command. In one example, the robot control unit 16 generates a series of control signals according to an operation program and sequentially outputs the control signals to the motor control device 3. The motor control device 3 sequentially generates power for operating the motor based on the control signals and sequentially supplies the power to the motor. As a result, the robot 2 executes a job and processes at least one workpiece present in the workspace 9.

[0061] An example of a robot path in the workspace will be described with reference to FIG. 6. In this example, the robot controller 10 causes the robot 2 to perform sealing on two workpieces 310, 320 arranged in the workspace 9. The end effector 2a is a sealing nozzle. For the workpieces 310, 320, the processing areas 311, 321 to which sealing is applied are defined in advance as at least a part of the task requirements. In the workspace 9, an obstacle 390 is present so as to be sandwiched between the workpieces 310, 320.

[0062] The robot controller 10 recognizes the environment of the working space 9 as the working environment (step S21), and acquires the work requirements of the workpieces 310 and 320 (step S22). The robot controller 10 identifies the actual areas to be processed 311 and 321 based on the work requirements and the working environment (step S23). The robot controller 10 also sets the processing order of the workpieces 310 and 320 (step S24). For example, the robot controller 10 dynamically sets the processing order of the workpiece 310 to 1, and the processing order of the workpiece 320 to 2. The robot controller 10 sets a path for the robot 2 to process the workpieces 310 and 320 in this order (step S25). In this example, the path indicates the trajectory of the end effector 2a, and FIG. 6 shows an air cut path 400, which is a part of the path. The air cut path 400 extends from the end point of the work path corresponding to the area to be processed 311 to the start point of the work path corresponding to the area to be processed 321 so as to avoid the obstacle 390. The robot controller 10 generates a command including a series of paths for processing the workpieces 310, 320 (step S26), and controls the robot 2 based on the command (step S27).

[0063] Regarding the example of the series of processes described with reference to Fig. 6, some of steps S21 to S27 may be performed manually. For example, as described above, setting of the processing order (step S24) may be performed based on a user instruction.

[0064] As described above, in process flow S2, the command generating unit 15 generates a path based on the task requirements and the task environment without using teaching points related to the robot 2, and generates an operation program including the path as a command.

[0065] The process flow S2 may be executed repeatedly. For example, the robot controller 10 may execute the process flow S2 automatically in response to the placement of a new workpiece in the working space 9. Alternatively, the robot controller 10 may execute the process flow S2 in response to a new request from the upper controller 20 based on the placement of the new workpiece.

[0066] [effect] As described above, a robot system according to one aspect of the present disclosure includes a memory unit that stores predefined work requirements for a workpiece, a recognition unit that recognizes the environment of the work space in which the workpiece is placed as the work environment, a generation unit that generates a path for a robot placed in the work space based on the work requirements and the work environment, to cause the robot to process the workpiece, and a control unit that controls the robot based on the path.

[0067] A robot control method according to one aspect of the present disclosure is a robot control method executed by a robot system having at least one processor, and includes the steps of storing predefined work requirements for a workpiece, recognizing the environment of a work space in which the workpiece is placed as a work environment, generating a path for a robot placed in the work space based on the work requirements and the work environment to cause the robot to process the workpiece, and controlling the robot based on the path.

[0068] In this aspect, if only task requirements defined for a workpiece are given, a path for the robot is generated based on the work environment in which the workpiece exists and the task requirements, and the robot is controlled based on the path. Robot control including path planning is performed simply by preparing a task to be executed by the robot, so that the robot's autonomy can be improved. In addition, since task requirements are defined for a workpiece, the user can intuitively prepare the task requirements.

[0069] A planning system according to one aspect of the present disclosure includes a memory unit that stores predefined work requirements for a workpiece, a recognition unit that recognizes the environment of the work space in which the workpiece is placed as a work environment, and a generation unit that generates a path for a robot placed in the work space to process the workpiece based on the work requirements and the work environment.

[0070] A planning program according to one aspect of the present disclosure causes a computer to execute the steps of reading predefined work requirements for a work from a memory unit, recognizing the environment of the work space in which the work is placed as a work environment, and generating a path for a robot placed in the work space to process the work based on the work requirements and the work environment.

[0071] In this aspect, if the user provides the work requirements defined for the work, the path of the robot is generated based on the work environment in which the work exists and the work requirements. Therefore, the path can be easily generated by simply preparing the tasks to be executed by the robot. In addition, since the work requirements are defined for the work, the user can intuitively prepare the work requirements.

[0072] In the robot system according to another aspect, the generator may generate a path based on the task requirements and the task environment without using teaching points related to the robot. Since there is no need to set teaching points, the path can be easily generated.

[0073] In a robot system according to another aspect, the working environment may include a position of a workpiece in a working space, and the generating unit may generate a path based on the position of the workpiece. Since the path is generated based on the actual position of the workpiece, positioning of the workpiece is not required. For example, it is not necessary to fix the position and the orientation of the workpiece. Therefore, the autonomy of the robot that processes the workpiece can be further improved.

[0074] In the robot system according to another aspect, the task requirements include a processing area on the workpiece to be processed by the robot, and the generator may identify the processing area of ​​the workpiece arranged in the workspace based on the task requirements and the work environment, and generate a path based on the position of the identified processing area. Since the path is generated based on the position of the processing area to be actually processed by the robot in the workspace, the workpiece can be processed more accurately.

[0075] In another aspect of the robot system, the processed area may include a relative position with respect to a workpiece model, which is a model showing the workpiece, and the recognition unit may recognize the position and orientation of the workpiece arranged in the workspace based on the workpiece model, and the generation unit may specify the processed area in the workspace based on the position and orientation of the workpiece and the relative position. As long as the processed area is defined as a relative position with respect to the workpiece model, a path is generated based on the actual position of the processed area in the workspace, and the robot is controlled based on the path. This makes it possible to further increase the autonomy of the robot.

[0076] In a robot system according to another aspect, the processed area may include an approach point where the robot approaches the workpiece, and the generator may identify the approach point of the workpiece arranged in the workspace based on the work requirements and the work environment, and generate an air-cut path for moving the robot to the workpiece as at least a part of the path based on the position of the identified approach point. Since the path is generated based on the position where the robot should actually approach the workpiece in the workspace, the workpiece can be processed more accurately.

[0077] In another aspect, the robot system may further include a setting unit that sets a processing order for the multiple workpieces, the memory unit stores task requirements for each of the multiple workpieces, the recognition unit recognizes the environment of the work space in which the multiple workpieces are arranged as the work environment, and the generation unit generates a path for causing the robot to process the multiple workpieces in accordance with the processing order based on the task requirements and the work environment. Since the processing order for the multiple workpieces is taken into consideration, a path for the robot to sequentially process the multiple workpieces arranged in the work space can be easily generated.

[0078] In the robot system according to another aspect, the setting unit may automatically set the processing order dynamically based on the arrangement of the plurality of workpieces in the recognized working environment. Since the processing order of the plurality of workpieces is automatically set according to the actual situation in the working space, the path of the robot can be generated even if the processing order is not given in advance.

[0079] In the robot system according to another aspect, the plurality of workpieces may include a first workpiece and a second workpiece, and the generating unit may generate an air-cut path for moving the robot, which has finished processing the first workpiece, to the second workpiece as at least a part of the path. In this case, the air-cut path between the workpieces (between the tasks) can be easily generated without using teaching points.

[0080] In the robot system according to another aspect, the storage unit may store a motion speed of the robot as a task requirement, and the generation unit may generate a path further based on the motion speed. The motion speed of the robot affects the generation of the path. Therefore, by taking the motion speed into consideration, a more appropriate path can be generated.

[0081] In the robot system according to another aspect, the storage unit may further store a force to be applied to the workpiece by the robot as a task requirement, and the generation unit may generate a path further based on the force. In order to appropriately apply a force such as a pressing force to the workpiece, it is important to set a path for realizing the application of the force. Therefore, by taking the force into consideration, a more appropriate path can be generated.

[0082] In the robot system according to another aspect, the recognition unit may recognize a working environment including obstacles for the robot attempting to process a workpiece, and the generation unit may generate a path based on the positions of the obstacles so that the obstacles do not interfere with the robot. With this configuration, a path for operation while avoiding the obstacles can be easily generated.

[0083] In the robot system according to another aspect, the memory unit may further store an obstacle model that is a model of an obstacle, and the recognition unit may recognize the work environment including the obstacle based on the obstacle model. By using the obstacle model, the obstacle in the work space can be recognized more accurately.

[0084] In the robot system according to another aspect, the storage unit may further store tool information related to an end effector of the robot, and the generator may generate a path of the end effector further based on the tool information. By using the information related to the end effector, it is possible to easily generate a path of the end effector that directly acts on the workpiece.

[0085] In the robot system according to another aspect, the recognition unit may recognize the working environment based on sensor data obtained from a sensor monitoring the working space. This configuration allows the working environment to be recognized more accurately, so that the robot can be controlled more accurately according to the actual situation.

[0086] In another aspect, the robot system may further include a definition unit that defines a task requirement based on a plurality of teaching points for the robot that represent processing of a workpiece by the robot or another robot, and a position of the workpiece in the workspace where processing has been performed in the past, and the storage unit may store the task requirement defined by the definition unit. Since the task requirement is automatically defined from past data, the effort required to generate the task requirement can be eliminated or reduced. In addition, experience and know-how regarding workpiece processing can be automatically inherited to future operations.

[0087] [Variations] The above is a detailed description based on the embodiments of the present disclosure. However, the technical matters of the present disclosure are not limited to the above-mentioned embodiments. The technical matters of the present disclosure can be modified in various ways without departing from the gist of the present disclosure.

[0088] The functional configurations of the robot system and the planning system are not limited to the above examples. For example, at least one of the definition unit and the setting unit may be omitted. At least a part of the definition unit, the storage unit, the recognition unit, the setting unit, and the generation unit, which are functional modules related to the planning system, may be implemented in another device such as the upper controller 20. At least a part of the functional modules related to the robot system may be implemented in the motor control device.

[0089] The hardware configuration of the system is not limited to the implementation of each functional module by executing a program. For example, at least a part of the functional modules may be configured with a logic circuit specialized for the function, or may be configured with an ASIC (Application Specific Integrated Circuit) that integrates the logic circuit.

[0090] The processing procedure of the method executed by at least one processor is not limited to the above examples. For example, some of the steps or processes described above may be omitted, or each step may be executed in a different order. In addition, any two or more of the steps described above may be combined, or some of the steps may be modified or deleted. Alternatively, other steps may be executed in addition to each of the steps described above.

[0091] When comparing the magnitude of two numbers within a computer system or computer, either of the two criteria "greater than or equal to" and "greater than" can be used, or either of the two criteria "less than or equal to" and "less than" can be used. [Explanation of symbols]

[0092] 1...robot system, 2...robot, 2a...end effector, 3...motor control device, 9...work space, 10...robot controller, 11...requirements definition section, 12...memory section, 13...environment recognition section, 14...sequence setting section, 15...command generation section, 16...robot control section, 20...upper controller, 30...operation history database, 200...work model, 210...processed area, 211...approach point, 310...work, 311...processed area, 320...work, 321...processed area, 390...obstacle, 400...air cut path.

Claims

1. a storage unit that stores predefined work requirements for a workpiece, the work requirements including a processed area on the workpiece to which processing by a robot is applied, and a relative position of the processed area relative to a workpiece model that is a model representing the workpiece, the work requirements including a linear area on the workpiece that is subject to physical changes as the processed area; a recognition unit that recognizes in real time, as a work environment, a position of the work and an attitude of the work, which is at least one of a direction and an inclination of the work, in a work space in which the work is placed, based on the work model; a generation unit that identifies the processed area in the working space based on the position and posture of the workpiece recognized in real time and the relative position, and generates a path of the robot arranged in the working space for performing a process of imparting the physical change to the workpiece based on the position of the identified processed area; A control unit that controls the robot based on the path; A robot system comprising:

2. the generating unit generates a path of an end effector of the robot for causing the physical change to the workpiece based on the position of the identified processing area; The robot system of claim 1 .

3. The generation unit generates a work path along the identified processed area as at least a part of the path based on the position of the identified processed area. The robot system according to claim 2 .

4. The generation unit generates the path based on the task requirements and the task environment without using teaching points related to the robot. The robot system according to any one of claims 1 to 3.

5. the processing area includes an approach point where the robot approaches the workpiece, The generation unit is Identifying the approach point of the workpiece disposed in the workspace based on the task requirements and the task environment; generating an air-cut path for moving the robot to the workpiece as at least a portion of the path based on the location of the identified approach point; The robot system according to any one of claims 1 to 4.

6. A setting unit that sets a processing order of the plurality of works, The storage unit stores the task requirements for each of the plurality of works, The recognition unit recognizes an environment of the work space in which the plurality of workpieces are arranged as the work environment, the generation unit generates the path for causing the robot to process the plurality of workpieces in accordance with the processing order, based on the task requirements and the task environment. The robot system according to any one of claims 1 to 5.

7. The setting unit dynamically and automatically sets the processing order based on an arrangement of the plurality of works in the recognized working environment. The robot system according to claim 6.

8. The plurality of workpieces includes a first workpiece and a second workpiece, The generating unit generates, as at least a part of the path, an air-cut path for moving the robot that has finished processing the first workpiece to the second workpiece. The robot system according to claim 6 or 7.

9. The storage unit stores a motion speed of the robot as the task requirement, The generation unit generates the path further based on the motion speed. The robot system according to any one of claims 1 to 8.

10. The memory unit further stores a force to be applied to the workpiece by the robot as the task requirement, The generating unit generates the path further based on the force. The robot system according to any one of claims 1 to 9.

11. The recognition unit recognizes the working environment including an obstacle for the robot attempting to process the workpiece, the generation unit generates the path based on a position of the obstacle so that the obstacle does not interfere with the robot. The robot system according to any one of claims 1 to 10.

12. The storage unit further stores an obstacle model that is a model of the obstacle, The recognition unit recognizes the work environment including the obstacle based on the obstacle model. The robotic system of claim 11.

13. The storage unit further stores tool information related to an end effector of the robot; The generation unit generates the path of the end effector further based on the tool information. The robot system according to any one of claims 1 to 12.

14. The recognition unit recognizes the work environment based on sensor data obtained from a sensor monitoring the work space. The robot system according to any one of claims 1 to 13.

15. A definition unit that defines the task requirement based on a plurality of past teaching points for the robot that represent processing of the workpiece by the robot or another robot, and a position of the workpiece in a past workspace where the processing was performed, The storage unit stores the work requirements defined by the definition unit. The robot system according to any one of claims 1 to 14.

16. a storage unit that stores predefined work requirements for a workpiece, the work requirements including a processed area on the workpiece to which processing by a robot is applied, and a relative position of the processed area relative to a workpiece model that is a model representing the workpiece, the work requirements including a linear area on the workpiece that is subject to physical changes as the processed area; a recognition unit that recognizes in real time, as a work environment, a position of the work and an attitude of the work, which is at least one of a direction and an inclination of the work, in a work space in which the work is placed, based on the work model; a generation unit that identifies the processed area in the working space based on the position and posture of the workpiece recognized in real time and the relative position, and generates a path of the robot arranged in the working space for performing a process of imparting the physical change to the workpiece based on the position of the identified processed area; A planning system comprising:

17. 1. A robot control method executed by a robot system having at least one processor, comprising: storing predefined work requirements for a workpiece, the work requirements including a processed area on the workpiece to which processing by the robot is applied and a relative position of the processed area relative to a workpiece model that is a model representing the workpiece, the work requirements including as the processed area a linear area on the workpiece that is subject to physical changes; Recognizing in real time, as a work environment, a position of the work and an attitude of the work, which is at least one of a direction and an inclination of the work, in a work space in which the work is placed, based on the work model; a step of identifying the processed area in the working space based on the position and orientation of the workpiece recognized in real time and the relative position, and generating a path for the robot arranged in the working space to perform processing that imparts the physical change to the workpiece based on the position of the identified processed area; controlling the robot based on the path; A robot control method comprising:

18. storing predefined work requirements for a workpiece, the work requirements including a processed area on the workpiece to which processing by the robot is applied and a relative position of the processed area relative to a workpiece model that is a model representing the workpiece, the work requirements including as the processed area a linear area on the workpiece that is subject to physical changes; Recognizing in real time, as a work environment, a position of the work and an attitude of the work, which is at least one of a direction and an inclination of the work, in a work space in which the work is placed, based on the work model; a step of identifying the processed area in the working space based on the position and orientation of the workpiece recognized in real time and the relative position, and generating a path for the robot arranged in the working space to perform processing that imparts the physical change to the workpiece based on the position of the identified processed area; A planning program that causes a computer to execute the above.

Citation Information

Patent Citations

  • Picture input-type robot system

    JP1998063324A

  • Personal service robot and method of creating work plan for the same

    JP2004216528A

  • Robot, module selection device and control method of robot

    JP2006150562A

  • Robot apparatus, method of controlling robot apparatus, and computer program

    JP2013184273A

  • Robot system, robot control device, and robot control method

    JP6860843B2