The present invention relates to a method for generating a movement route of a robot, a movement route generation apparatus, a robot system, and a program.
Robots that perform certain operations on workpieces have been widely used in various industrial fields as a result of development thereof. Such a robot includes an arm and adjusts a position of a tip of the arm for performing a certain operation by controlling an attitude of the arm and a movement route of the arm. When an attitude of a robot and a route for a series of motions are controlled, safety needs to be secured by preventing a collision between the robot and a nearby object in consideration of effects of nearby obstacles and the like along with a state of a workpiece.
Japanese Unexamined Patent Application Publication No. 9-34524, for example, discloses a method in which a robot generates a movement route thereof using no-entry areas created to keep a certain distance from obstacles in order to avoid interference with the obstacles. Japanese Unexamined Patent Application Publication No. 9-201784 discloses a method for generating a position and an attitude of a robot for securing a space between the robot and an obstacle using evaluation functions, which are parameters based on positions of axes of the robot and a margin of a distance between the robot and the obstacle.
With the method disclosed in Japanese Unexamined Patent Application Publication No. 9-34524, interference between a tip of an end effector of a robot and an obstacle can be avoided. This method, however, does not take into consideration how to keep a certain distance between each of parts of a robot and an obstacle. With the method disclosed in Japanese Unexamined Patent Application Publication No. 9-201784, an attitude that cannot be achieved by a robot might be selected and a movement route with poor operability might be created in order to select a position and an attitude of the robot that will maximize a margin distance. As a result, a movement route of the robot with which the robot achieves appropriate attitudes might not be generated.
In view of the above problems, the present invention aims to generate an appropriate movement route of a robot while preventing a collision during operation of the robot.
In order to address the above problems, the present invention includes the following configuration. That is, a method for generating a movement route of a robot having a plurality of motion axes, includes the steps of disposing a virtual area near the robot in accordance with each of a plurality of attitudes at an operation position of the robot, determining interference between the robot and the virtual area and between the robot and a surrounding environment, and generating the movement route of the robot while evaluating each of the plurality of attitudes on a basis of a result of the step of determining. In the step of generating, an attitude with which no interference with the virtual area is caused is highly evaluated.
Another aspect of the present invention includes the following configuration. That is, a movement route generation apparatus that generates a movement route of a robot having a plurality of motion axes includes disposition means for disposing a virtual area near the robot in accordance with each of a plurality of attitudes at an operation position of the robot, determination means for determining interference between the robot and the virtual area and between the robot and a surrounding environment, and generation means for generating the movement route of the robot while evaluating each of the plurality of attitudes on a basis of a result of the determination made by the determination means. The generation means highly evaluates an attitude with which no interference with the virtual area is caused.
Another aspect of the present invention includes the following configuration. That is, a robot system includes a robot having a plurality of motion axes and a movement route generation apparatus. The movement route generation apparatus includes disposition means for disposing a virtual area near the robot in accordance with each of a plurality of attitudes at an operation position of the robot, determination means for determining interference between the robot and the virtual area and between the robot and a surrounding environment, and generation means for generating the movement route of the robot while evaluating each of the plurality of attitudes on a basis of a result of the determination made by the determination means. The generation means highly evaluates an attitude with which no interference with the virtual area is caused.
Another aspect of the present invention includes the following configuration. That is, a program causes a computer to perform a process including the steps of disposing a virtual area near a robot having a plurality of motion axes in accordance with each of a plurality of attitudes at an operation position of the robot, determining interference between the robot and the virtual area and between the robot and a surrounding environment, and generating the movement route of the robot while evaluating each of the plurality of attitudes on a basis of a result of the step of determining. In the step of generating, an attitude with which no interference with the virtual area is caused is highly evaluated.
According to the present invention, an appropriate movement route can be generated while preventing a collision during operation of a robot.
Embodiments of the present invention will be described hereinafter with reference to the drawings and the like. The embodiments that will be described hereinafter are ones for describing the present invention and not intended to limit interpretations of the present invention, and not all components described in each of the embodiments are essential for solving the problems addressed by the present invention. In the drawings, the same components are given the same reference numerals to indicate correspondences. Although components of a robot and connections between parts of the robot are partly simplified or omitted in the drawings referred to in the following description, this is not intended to limit interpretations.
In the present embodiment, a ceiling-mounted welding system (hereinafter also referred to as a “robot system”) will be described as an example of a system to which the present invention can be applied. The system to which the present invention can be applied, however, is not limited to this, and the present invention can be applied to any robot system that includes a robot including an arm movable along a plurality of axes, namely six axes, for example, and that sets a route of the robot in order to adjust a position of a tip of the arm in accordance with a certain operation. Apparatuses included in the system according to the present embodiment are not particularly limited, and the system may include at least apparatuses having functions according to the present embodiment.
XYZ Cartesian coordinate systems, which are three-dimensional coordinate systems each defined by an X-axis, a Y-axis, and a Z-axis, illustrated in the drawings used in the following description correspond to one another. The XYZ Cartesian coordinate systems may be the same as a robot coordinate system for the robot system, or may be different from the robot coordinate system and associated with the robot coordinate system through a coordinate transformation.
The ceiling-mounted robot system 1 illustrated in
The robot 2 according to the present embodiment has a plurality of, namely six, motion axes, that is, rotation axes. As illustrated in
In the following description, the tip of the robot 2, that is, the sixth link 201, is located in a forward direction, and an opposite direction is defined as a backward direction. The slider 3 is located in an upward direction of the robot 2, and an opposite direction is defined as a downward direction. The forward, backward, upward, and downward directions of the robot 2 can change depending on an attitude, a mounting position, or the like of the robot 2.
The control unit 301 may be achieved by, for example, a central processing unit (CPU), a graphical processing unit (GPU), a microprocessor unit (MPU), a digital signal processor (DSP), and/or a field-programmable gate array (FPGA). The storage unit 302 is, for example, a volatile or nonvolatile storage device such as a hard disk drive (HDD), a read-only memory (ROM), or a random-access memory (RAM). The control unit 301 achieves various processes that will be described later by loading and executing various programs stored in the storage unit 302.
The communication unit 303 is a component for communicating with external apparatuses and various sensors. The communication unit 303 may perform wired or wireless communication and employ any communication standard. The input unit 304 is an input device for inputting various pieces of information to the information processing apparatus 300 and may be, for example, a plurality of input switches, a keyboard and a mouse, or the like to which certain functions are assigned.
The display unit 305 is a display device for displaying various pieces of information and may be a display device such as a cathode-ray tube (CRT) display, a liquid crystal display (LCD), or an organic electroluminescent (EL) display. The display unit 305 may display, for example, commands and data input from the input unit 304 and various pieces of information generated by the information processing apparatus 300. The input unit 304 and the display unit 305 may be together achieved by a touch panel display.
The interface unit 306 is a component that is connected to the robot system 1 and other external apparatuses and that communicates data with the external apparatuses. The interface unit 306 may be, for example, an interface circuit based on RS-232C, which is a serial communication standard, an interface circuit based on universal serial bus (USB), or the like. The components of the information processing apparatus 300 are communicably connected to one another by an internal bus or the like.
The control apparatus of the robot system 1 may be provided as discrete apparatuses in order to control the robot 2, the slider 3, and other components (e.g., the positioner) and together achieve the control. Alternatively, one control apparatus for singlehandedly controlling the robot 2, the slider 3, and the other components may be provided.
Next, a virtual area used when a movement route of the robot 2 according to the present embodiment is generated will be described. The “movement route” in the present embodiment includes a route of an operation position of the tip of the robot 2, that is, the tool, and movement ranges of positions of the arm and the other components of the robot 2. That is, the “movement route” includes the entirety of a three-dimensional space where the components are located as a result of movement of the links and the axes illustrated in
In the present embodiment, interference with nearby obstacles is determined by setting a certain virtual area for the attitude and the position of the robot 2. More specifically, coordinates of the position of the robot 2 along the X, Y, and Z-axis adjusted by the slider 3 are also taken into consideration, but the robot 2, not the mounting base 4, will be focused upon here in order to simplify description. In the present embodiment, “obstacles” include all objects that are located inside a range where the robot 2 can move or be disposed and that can interfere, that is, come into contact, with the robot 2.
In an attitude of the robot 2, a rearmost position of the robot 2 in a direction (an X-axis direction in the example illustrated in
Furthermore, as illustrated in
Although a pillar-shaped virtual area VR having a fan-shaped bottom surface is taken as an example in the present embodiment, the shape of the virtual area VR is not limited to this, and may have another shape, instead. In addition, although an example where the virtual area VR is provided behind the robot 2 is described in the present embodiment, a position of the virtual area VR is not limited to this, and the virtual area VR may be provided at another position, instead. Other examples of the configuration of the virtual area VR will be described later.
Furthermore, in the present embodiment, the virtual area VR changes depending on the attitude of the robot 2.
A position of the rearmost end EP in the attitude illustrated in
In the attitude illustrated in
In the present embodiment, when the virtual area VR is set, parameters such as radius, coordinates and points used as references, and directions and a position of the virtual area VR are specified in advance. Values and items of the parameters to be specified are not particularly limited, and may differ depending on the shape and the position of the virtual area VR used. In addition, although an example where the third axis 208 is used as a reference is described in the present embodiment, the reference used is not limited to this. A motion axis to be used as a reference among the plurality of motion axes included in the robot 2 may be changed as necessary. Which motion axis among the plurality of motion axes, relative to which the position and rotation of the robot 2 are determined, is to be used as a reference for changes in the virtual area VR may change as necessary. The virtual area VR may be changed in association with the attitude of the arm of the robot 2, instead of using a motion axis as a reference.
A process for generating a movement route according to the present embodiment will be described hereinafter.
It is assumed that, before the process flow starts, operation information, which is information regarding an operation performed using the tool provided at the tip of the robot 2, is specified. In the case of a welding robot, for example, the operation information may include a position of a welding line indicating welding positions, a welding direction, and an attitude of a workpiece. It is also assumed that information regarding parameters relating to the robot coordinate system of the robot 2, specifications indicating dimensions of the components, and the like is set in advance.
It is also assumed that information regarding obstacles near the robot 2 is set in advance. The information regarding obstacles may be indicated as a three-dimensional environment model simulating the obstacles. The obstacles may be, for example, devices including the control apparatus, cables provided for the robot 2, and the like near the robot 2. The obstacles may also include various objects in a surrounding environment that can come into contact with the robot 2 inside a range where the robot 2 can move.
In step S601, the information processing apparatus 300 obtains set operation information. The operation information may be obtained by reading data stored in the storage unit 302 or receiving an input from a user of the information processing apparatus 300.
In step S602, the information processing apparatus 300 obtains parameters relating to the virtual area VR and sets the virtual area VR. In the example described with reference to
In step S603, the information processing apparatus 300 refers to the operation information and identifies a first via point of an operation position of the robot 2. Here, the operation is sequentially performed for a plurality of via points Pi (i=0, 1, 2, . . . , and n). In the case of a welding robot, for example, welding positions are set on the welding line, along which welding is to be performed, as the plurality of via points, and the welding is performed with the welding robot moving from a via point to another. The first via point is denoted by P0 and set. Furthermore, the information processing apparatus 300 identifies attitudes that can be achieved by the robot 2 when the operation is performed for a via point Pi. Since the robot 2 has the plurality of rotation axes as described with reference to
In step S604, the information processing apparatus 300 obtains parameters of the attitude corresponding to the set search candidate position. The parameters may include, for example, correspondence between the robot coordinate system and a world coordinate system and coordinates, directions, and angles of the components of the robot 2 in each of the coordinate systems.
In step S605, the information processing apparatus 300 disposes the virtual area VR set in step S602 near the robot 2 on the basis of the parameters obtained in step S604. A position at which the virtual area VR is disposed is, for example, behind the robot 2 relative to the robot origin RO and the third axis 208, which are references, in the example illustrated in
In step S606, the information processing apparatus 300 determines whether there is interference on the basis of the virtual area VR set in step S605 and the information regarding the obstacles in the surrounding environment. If ranges indicated by different sets of coordinates overlap each other, for example, the information processing apparatus 300 may determine that there is interference. At this time, the information processing apparatus 300 determines not only interference between the virtual area VR and the obstacles but also interference between the components of the robot 2 and the obstacles. A method for determining interference is not particularly limited, and a known method may be used.
In step S607, the information processing apparatus 300 evaluates the search candidate position that is being focused upon on the basis of a result of the determination in step S606 and sets an evaluation value. An evaluation method is not particularly limited. For example, three-level evaluation (0 to 2 points) is performed. If the information processing apparatus 300 determines that there is no interference between the virtual area VR and the obstacles, 2 points, which is the highest evaluation value, is set. If the information processing apparatus 300 determines that there is interference between the virtual area VR and the obstacles but there is no interference between the components of the robot 2 and the obstacles, 1 point is set. If the information processing apparatus 300 determines that there is interference between the components of the robot 2 and the obstacles, 0 point, which is the lowest evaluation value, is set. When there is interference between the components of the robot 2 and the obstacles, the attitude is one that cannot be achieved in reality. The information processing apparatus 300 may be configured in such a way as not to be able to set, in step S603, attitudes that cannot be achieved in reality.
In step S608, the information processing apparatus 300 determines whether there is an unprocessed search candidate position, that is, an attitude, for the current via point Pi. If there is an unprocessed search candidate position (YES in step S608), the process performed by the information processing apparatus 300 proceeds to step S611. If there is no unprocessed search candidate position (NO in step S608), on the other hand, the process performed by the information processing apparatus 300 proceeds to step S609.
In step S609, the information processing apparatus 300 determines whether i is smaller than n (i<n). n indicates the total number of via points, and when i becomes n after i is counted from 0, the process has been completed for all the via points. If i is smaller than n (YES in step S609), the information processing apparatus 300 determines that there is an unprocessed via point, and the process performed by the information processing apparatus 300 proceeds to step S610. If i is larger than or equal to n (NO in step S609), on the other hand, the information processing apparatus 300 determines that there is no unprocessed via point, and the process performed by the information processing apparatus 300 proceeds to step S612.
In step S610, the information processing apparatus 300 increments i by 1. That is, subsequence processing is performed for a next via point Pi. The process performed by the information processing apparatus 300 then proceeds to step S611.
In step S611, the information processing apparatus 300 identifies one or a plurality of attitudes that can be achieved by the robot 2 when performing the operation for the via point Pi that is being focused upon. Furthermore, the information processing apparatus 300 sets, among the one or plurality of attitudes that can be achieved by the robot 2, an unprocessed attitude as a search candidate position. The process performed by the information processing apparatus 300 then returns to step S604, and subsequent processing is repeated.
In step S612, the information processing apparatus 300 identifies a movement route of the robot 2 with which interference can be avoided on the basis of the evaluation values of interference determined for each of the via points Pi (i=0, 1, . . . ). At this time, the movement route may be identified in consideration of evaluation values for previous positions (e.g., in the case of Pi, evaluation values for Pi-1 and Pi-2) in addition to the evaluation values for Pi. An attitude whose evaluation value is the second highest for Pi among attitudes that can be achieved at Pi may be selected, for example, if the robot 2 needs to make an unnecessary move from an attitude whose evaluation value is the highest for Pi-1, which is a previous via point, to achieve an attitude whose evaluation value is the highest for Pi. Whether the robot 2 needs to make an unnecessary move may be determined, for example, on the basis of the amount of change in each of the rotation axes, the number of rotation axes, among the plurality of rotation axes, that will change, continuity of the movement route, and the like. As a result, the information processing apparatus 300 generates the movement route of the robot 2 for moving through a movement route including the plurality of via points. The process flow then ends.
As described above, according to the present embodiment, a movement route including appropriate attitudes can be generated while preventing a collision during operation of a robot.
As illustrated in
First, in an attitude of the robot 2, a bottom surface of the arm of the robot 2 in the Z-axis direction is set as an arm bottom surface AB. The arm bottom surface AB may have a certain range in accordance with a shape of the robot 2. A virtual area VR defined by a margin width FWx, a margin width FWy, and a margin height FH, which correspond to the X, Y, and Z-axes, respectively, is disposed in such a way as to be in contact with the arm bottom surface AB. As illustrated in
By determining interference as described in the first embodiment using such a virtual area, a movement route with sufficient margins for suppressing interference with obstacles also in an area below the robot 2 can be obtained.
The number of virtual areas to be set is not limited to one, and virtual areas may be set, for example, behind, above, below, and beside the robot 2. A shape of a virtual area is not limited to a particular one, and may change in accordance with a position at which the virtual area is set. At this time, as described in the first embodiment, the shape and dimensions of the set virtual area may change in accordance with the attitude of the robot 2.
A user of the robot system 1 may specify, as desired using the information processing apparatus 300, a position at which a virtual area is set, dimensions of the virtual area, and the like. The set virtual area may be adjusted in accordance with a movable range of the slider 3.
The present embodiment can also be achieved through a process where a program or an application for achieving the functions of the above-described one or more embodiments is supplied to a system or an apparatus using a network, a storage medium, or the like and one or more processors of a computer of the system or the apparatus loads and executes the program or the application.
Alternatively, the present embodiment may be achieved by a circuit that achieves one or more functions. The circuit that achieves one or more functions may be, for example, an application-specific integrated circuit (ASIC) or a field-programmable gate array (FPGA).
As described above, the following are disclosed herein.
(1) A method for generating a movement route of a robot having a plurality of motion axes, the method including the steps of:
With this configuration, an appropriate movement route can be generated while avoiding a collision during operation of the robot.
(2) The method according to (1),
With this configuration, the virtual area can be changed and set in accordance with a change in the position and the rotation of the certain one of the plurality of motion axes of the robot.
(3) The method according to (2),
With this configuration, a movement route with which a collision of the robot can be prevented can be generated by disposing the plurality of virtual areas near the robot.
(4) The method according to (1),
With this configuration, interference can be determined while changing the virtual area in conjunction with a change in the position and the rotation of the pillar-shaped virtual area having a fan-shaped bottom surface. Especially since the fan-shaped bottom surface is employed, interference can be determined within a range of the same distance at a certain central angle.
(5) The method according to (1),
With this configuration, interference can be determined while changing the pillar-shaped virtual area having a fan-shaped bottom surface in conjunction with a change in the attitude and the rotation of the robot.
(6) The method according to (1),
With this configuration, interference can be determined using the virtual area having a shape of a rectangular parallelepiped.
(7) The method according to (6),
With this configuration, interference can be determined while changing the virtual area having a shape of a rectangular parallelepiped in conjunction with a change in the attitude and the rotation of the robot.
(8) The method according to (1),
With this configuration, interference can be determined using the virtual area whose shape differs depending on the position at which the virtual area is disposed.
(9) A movement route generation apparatus that generates a movement route of a robot having a plurality of motion axes, the movement route generation apparatus including:
With this configuration, an appropriate movement route can be generated while preventing a collision during operation of the robot.
(10) A robot system including:
With this configuration, a robot system capable of generating an appropriate movement route while preventing a collision during operation of the robot can be provided.
(11) A program causing a computer to perform a process including the steps of:
With this configuration, an appropriate movement route can be generated while preventing a collision during operation of the robot.
Number | Date | Country | Kind |
---|---|---|---|
2022-094605 | Jun 2022 | JP | national |