WO2023153469A1 - 多関節ロボットのパスを生成する装置、多関節ロボットのパスを生成する方法および多関節ロボットのパスを生成するプログラム - Google Patents
多関節ロボットのパスを生成する装置、多関節ロボットのパスを生成する方法および多関節ロボットのパスを生成するプログラム Download PDFInfo
- Publication number
- WO2023153469A1 WO2023153469A1 PCT/JP2023/004322 JP2023004322W WO2023153469A1 WO 2023153469 A1 WO2023153469 A1 WO 2023153469A1 JP 2023004322 W JP2023004322 W JP 2023004322W WO 2023153469 A1 WO2023153469 A1 WO 2023153469A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- point
- planar shape
- path
- initial position
- target position
- Prior art date
Links
Images
Classifications
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1656—Programme controls characterised by programming, planning systems for manipulators
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/18—Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form
- G05B19/4093—Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form characterised by part programming, e.g. entry of geometrical information as taken from a technical drawing, combining this with machining and material information to obtain control information, named part programme, for the NC machine
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/42—Recording and playback systems, i.e. in which the programme is recorded from a cycle of operations, e.g. the cycle of operations being manually controlled, after which this record is played back on the same machine
Definitions
- the present disclosure relates to technology for generating a path for an articulated robot, and more specifically to technology for generating a path for an articulated robot intended by a user.
- Existing software for articulated robots can generate paths for articulated robots using the static path planning function.
- a path is generated using a method that prioritizes speed optimization, such as static path planning
- the articulated robot may behave unintended by the user.
- the software for articulated robots automatically generates paths based on the pick and place positions of the workpiece.
- the automatically generated path may become a path unintended by the user.
- this method takes a long time to generate paths. Therefore, there is a demand for a path generation technique for an articulated robot that is different from the conventional technique.
- Patent Document 1 describes ⁇ Receiving a grasping posture for receiving a plurality of candidates for a grasping posture with which a robot can grasp a grasped object.
- Each of the plurality of gripping posture candidates is evaluated based on the position, each of the plurality of gripping posture candidates, and the initial posture of the robot, and based on the evaluation, gripping is performed from among the plurality of gripping posture candidates.
- a motion generator for generating a motion of the robot between the initial pose and the selected gripping pose see [Abstract]).
- Patent Document 2 Another technology related to path or motion generation technology for articulated robots is disclosed in Japanese Patent Application Laid-Open No. 2019-018272 (Patent Document 2), for example.
- the present disclosure has been made in view of the background as described above, and an object in one aspect is to provide a technique for generating a path of an articulated robot intended by a user.
- an apparatus for generating paths for an articulated robot.
- the apparatus includes a position determination unit that obtains an initial position of the workpiece and a target position of the workpiece in a 3D space, and a planar shape generator that generates a first planar shape including projection points of the initial position and projection points of the target position.
- a moving unit that moves the first planar shape, an initial position, a target position, a projection point of the initial position included in the first planar shape, and a projection point of the target position.
- a path generation unit that arranges points and generates a path of the articulated robot based on the relay points.
- the apparatus is based on intermediate points generated on a path connecting an initial position, a target position, and a projection point of the initial position and a projection point of the target position included in the first planar shape.
- the initial position is the point on the ground plane between the work and the place where the work is picked
- the target position is the point on the ground plane between the work and the place where the work is placed.
- the device can generate the first planar shape based on the projection points of the points indicating the initial position and the projection points of the points indicating the target position.
- the first planar shape is a quadrilateral having diagonal vertices corresponding to the projected point of the initial position and the projected point of the target position, or a line segment connecting the projected point of the initial position and the projected point of the target position.
- the device can generate a quadrilateral first planar shape based on the projection points of the initial position and the projection points of the target position.
- the path generation unit adds one relay point at a position where the projection point of the initial position is located when the first planar shape is located at a position that does not interfere with an obstacle between the initial position and the target position.
- One of the relay points is generated at the position where the projection point of the target position is.
- the device can generate relay points on a route along which the workpiece can move without interfering with obstacles.
- planar shape generator further generates a second planar shape including points indicating the initial position and a third planar shape including points indicating the target position.
- the apparatus can generate, in addition to the first planar shape, a second planar shape including points indicating an initial position, and a third planar shape including points indicating a target position.
- the moving section moves the second planar shape and the third planar shape in the same direction as the first planar shape.
- the path generation unit generates one relay point at a position where the point indicating the initial position exists when the second planar shape is positioned so as not to interfere with the side surface of the first installation location arranged at the initial position. Then, one relay point is generated at the position where the point indicating the target position exists when the third planar shape is at a position that does not interfere with the side surface of the second installation location arranged at the target position.
- the device in addition to the position where the work does not interfere with the obstacle, the device provides a relay point at a position where the work does not interfere with the first installation location and a position where the work does not interfere with the second installation location. can be generated.
- the path generation unit selects a first relay point and a second relay point from the generated path, and selects a position on a curve connecting the first relay point and the second relay point. generating one or more interpolated points that correspond to and generating a path including a curve based at least in part on the first intermediate point, the second intermediate point, and the one or more interpolated points.
- the device can generate paths that include curves.
- a method for computer generated path of an articulated robot. The method includes the steps of obtaining an initial position of the workpiece in 3D space and a target position of the workpiece; generating a first planar shape including projection points of the initial position and projection points of the target position; disposing a relay point on a path connecting the initial position, the target position, the projection point of the initial position included in the first planar shape, and the projection point of the target position, and and generating a path for the articulated robot based on the points.
- the method is based on intermediate points generated on a path connecting an initial position, a target position, and a projected point of the initial position and a projected point of the target position included in the first planar shape.
- a program for causing a computer to generate paths for an articulated robot.
- the program comprises steps of obtaining an initial position of a workpiece and a target position of the workpiece in a 3D space, generating a first planar shape including projection points of the initial position and projection points of the target position, disposing a relay point on a path connecting the initial position, the target position, the projection point of the initial position included in the first planar shape, and the projection point of the target position, and and generating a path for the articulated robot based on the points.
- the program causes a computer to provide relay points generated on a path connecting an initial position, a target position, and a projection point of the initial position and a projection point of the target position included in the first planar shape.
- the path of the articulated robot can be generated. Since the path of the articulated robot 100 is generated based on the restriction of relay points, the generated path is the path intended by the user.
- FIG. 4 is a diagram showing an example of a path of an articulated robot generated using technology disclosed herein; 3 is a diagram showing an example of a procedure for the device 300 to generate each relay point 160 and paths 170;
- FIG. 1 is a diagram showing an example configuration of a device 300 for generating a path for an articulated robot 100 according to an embodiment;
- FIG. It is a figure which shows an example of the whole structure of a setting screen.
- FIG. 10 is a diagram showing a first example of a path setting panel 420;
- FIG. FIG. 10 is a diagram showing a second example of a path setting panel 420;
- FIG. 4 is a diagram showing an example of a procedure for the device 300 to generate a path including curves;
- FIG. 1 An application example of the technology of the present disclosure will be described with reference to FIGS. 1 and 2.
- FIG. 1 An application example of the technology of the present disclosure will be described with reference to FIGS. 1 and 2.
- FIG. 1 is a diagram showing an example of a path of an articulated robot generated using the technology of the present disclosure.
- An example of a path of an articulated robot generated by using the technology of the present disclosure will be described with reference to FIG.
- the term "path" refers to a route passed by an articulated robot, a motion of the articulated robot, a set of points through which the articulated robot passes, a set of postures of the articulated robot in time series, etc. encompasses
- Apparatus 300 for generating a path for an articulated robot according to the present embodiment displays a setting screen for generating a path for an articulated robot 100 (hereinafter referred to as setting screen for generating a path for an articulated robot).
- 3D space 10 is displayed as part of the screen (sometimes simply called a "setting screen").
- the user By operating the setting screen, the user generates a path for the articulated robot 100 and simulates the motion of the articulated robot 100 in the 3D space 10 along the set path. can be confirmed.
- the term "device” includes a configuration consisting of one or more devices, a server, a virtual machine built in a cloud environment, or a container.
- the device may also include an information processing device such as a personal computer, workstation, server device, tablet, smartphone, etc., and a PLC (Programmable Logic Controller), or may be a combination thereof.
- device 300 may be used by a user by being connected to input/output devices such as a display and keyboard.
- device 300 may provide various functions to users as cloud services or web applications over a network. In this case, the user may access the user interface of device 300 via a browser on his terminal.
- an articulated robot 100, an installation location 110, an installation location 120, an obstacle 130, and a work 150 are displayed in the 3D space 10.
- the user uses the function of the device 300 to generate a path for the articulated robot 100 to avoid the obstacle 130 and carry the workpiece 150 from the installation location 110 to the installation location 120 .
- the articulated robot 100 may be, for example, a vertical articulated robot, a horizontal articulated robot, or an articulated robot with any other mechanism.
- the device 300 can uniformly generate a path intended by the user regardless of the mechanism of the articulated robot.
- the installation locations 110 and 120 are locations where the work 150 is installed, and may be a box, cylinder, or any other shape. Also, the installation locations 110 and 120 may be bases or the like that do not have walls. Additionally, the locations 110, 120 may differ in shape and/or size.
- a path 170 is an example of a path generated using the functions of the device 300 .
- a workpiece 150S means the workpiece 150 at the initial position.
- Work 150E means the work 150 at the target position.
- Path 170 is a path passing through relay points 160A, 160B, 160C, and 160D.
- the relay points 160A, 160B, 160C, and 160D may be collectively referred to as the relay point 160.
- FIG. Path 170 is generated through these relay points 160A, 160B, 160C, 160D generated by device 300.
- the device 300 daringly limits the movement path of the articulated robot 100 to generate a path that is the path intended by the user.
- relay points 160A, 160B, 160C, and 160D are displayed on the setting screen (in the 3D space 10, for example). The user can easily confirm the generated path by referring to relay points 160A, 160B, 160C, and 160D.
- the device 300 may display not only the intermediate points 160 but also the predicted path (path 170) of the path of the articulated robot 100 to be generated on the setting screen (for example, in the 3D space 10).
- the user can easily generate each relay point 160 in the 3D space 10 using the function provided by the setting screen. Also, the user can easily predict the path 170 of the articulated robot 100 to be generated by confirming each relay point 160 displayed in the 3D space 10 . Also, the user can correct the path 170 of the articulated robot 100 simply by adjusting the position of each relay point 160 using the function provided by the setting screen.
- FIG. 2 is a diagram showing an example of a procedure for the device 300 to generate each relay point 160 and path 170.
- FIG. A procedure for the device 300 to generate each relay point 160 and path 170 will be described with reference to FIG. It should be noted that the following steps performed by device 300 may be performed based on user-inputted settings.
- the apparatus 300 In a first step, the apparatus 300 generates a first planar shape 200, a second planar shape 210, and a third planar shape 220 based on at least part of the workpieces 150S, 150E and the installation locations 110, 120. and
- the "first planar shape 200" is generated based on the position of the workpiece 150S (initial position of the workpiece 150) and the position of the workpiece 150E (target position of the workpiece 150).
- the "initial position of the work 150" is the point on the ground plane between the work 150 and the place where the work 150 is picked.
- the ground plane between work 150 and the location from which work 150 is picked is the ground plane between work 150S and the bottom of installation site 110.
- the “point on the ground surface between the workpiece 150 and the place where the workpiece 150 is picked” is, for example, the center point of the workpiece 150 on the ground surface or the center point of the bottom of the installation place 110 .
- the point on the ground plane between work 150 and where work 150 is picked is point 250 . That is, point 250 is the initial position of workpiece 150 .
- the “initial position of work 150” may be the center of work 150 set at the initial position. In this case, in the example of FIG. 1, the initial position of the workpiece 150 is the center (or center of gravity) of the workpiece 150S.
- the "target position of the work 150" is a point on the contact surface between the work 150 and the place where the work 150 is placed.
- the ground plane between the work 150 and the place where the work 150 is placed is the ground plane between the work 150E and the bottom of the installation place 120 .
- the “point on the ground plane between the work 150 and the place where the work 150 is placed” is, for example, the center point of the work 150 on the ground plane or the center point of the bottom of the installation place 120 .
- the point on the ground plane between the work 150 and the place where the work 150 is placed is point 251 . That is, point 251 is the target position of workpiece 150 .
- the "target position of the work 150" may be the center of the work 150 set at the target position. In this case, in the example of FIG. 1, the target position of work 150 is the center (or center of gravity) of work 150E.
- the first planar shape 200 is generated on a plane with a height that touches the upper surfaces of the workpieces 150S and 150E. More specifically, the initial position of the work 150 and the target position (points 250, 251) of the work 150 are projected as projection points 252, 253 to positions at a height that touches the upper surface of the work 150E.
- the first planar shape 200 is a planar shape including projection points 252 and 253 . As an example, when the projection points 252 and 253 have different X coordinates, the first planar shape 200 may be a quadrangle having the projection points 252 and 253 as diagonal vertices.
- the first planar shape 200 may be a quadrangle including sides parallel to the line segment connecting the projection points 252 and 253, such as when the projection points 252 and 253 have the same X coordinate.
- the first planar shape 200 may be any shape including projection points 252, 253, such as squares, rectangles, ellipses, combinations of rectangles and half circles.
- each plane shape is parallel to the XY axis plane, but this is an example, and the plane from which the lower plane shape is generated is not limited to this.
- each planar shape may be generated as a plane at any angle with respect to each of the XYZ axes.
- “Second planar shape 210” is a planar shape (also called “initial position planar shape") that includes a point (point 250) indicating the initial position.
- the second planar shape 210 may be the shape of the place where the work 150 is picked (the shape of the bottom of the installation place 110).
- second planar shape 210 may be the shape of workpiece 150S in the initial position.
- the second planar shape 210 may be any shape such as a square, a circle, etc.
- the size of the second planar shape 210 is the bottom of the work 150 or the installation place 110. can be determined based on the area of (the area on the XY plane).
- the "third planar shape 220" is a planar shape (also called “target position planar shape”) that includes a point (point 251) indicating the target position.
- the third planar shape 220 may be the shape of the place where the work 150 is placed (the shape of the bottom of the installation place 120).
- the third planar shape 220 may be the shape of the workpiece 150E at the target position.
- the third planar shape 220 may be any shape such as a square, a circle, etc. can be determined based on the area of (the area on the XY plane).
- the apparatus 300 extracts the above-described first planar shape 200, second planar shape 210, A third planar shape 220 may be automatically generated.
- the device 300 is set by the user through the setting screen to set the initial position of the work 150 to a point on the contact surface between the work 150 and the place where the work 150 is picked, or to set the work 150S It is also possible to receive a setting input as to whether the center of the .
- the device 300 allows the user, via the setting screen, to set the target position of the work 150 to a point on the contact surface between the work 150 and the place where the work 150 is placed, or , the center of the workpiece 150E.
- the device 300 allows the user to set the shapes (square, circle, ellipse, etc.) of the first planar shape 200, the second planar shape 210, and the third planar shape 220 via the setting screen. may be accepted.
- the device 300 generates the first planar shape 200, the second planar shape 210, and the third planar shape 220 based on the received settings, and generates the generated first planar shape 200, the second planar shape and a third planar shape 220 are displayed in the 3D space 10 .
- the device 300 moves the first planar shape 200, the second planar shape 210, and the third planar shape 220 in the same direction (hereinafter simply referred to as "moving direction 270") in the 3D space 10. ).
- the movement direction 270 is the Z-axis direction.
- the points 250 and 251 and the projected points 252 and 253 on each plane may be hidden, but move together with each plane shape.
- device 300 may receive in advance a setting input for moving direction 270 from the user via a setting screen. In this case, the device 300 moves the first planar shape 200 , the second planar shape 210 , and the third planar shape 220 based on the received setting regarding the moving direction 270 .
- apparatus 300 may determine movement direction 270 based on the positional relationship of all or part of workpiece 150, installation locations 110 and 120, and obstacle 130.
- FIG. the apparatus 300 uses the exit direction of the installation location 110 (the direction from the point 250 to the projection point 252) or the exit direction of the installation location 120 (the direction from the point 251 to the projection point 253) as the movement direction 270. You may choose.
- the device 300 In the third step, the device 300 generates the relay point 160A at the timing when the second planar shape 210 reaches the entrance of the installation location 110. Further, the device 300 generates the relay point 160D at the timing when the third planar shape 220 reaches the entrance of the installation location 120. FIG. Furthermore, device 300 displays generated relay points 160A and relay points 160D in 3D space 10 .
- the device 300 can relay to the center (point 250) of the second planar shape 210 at the timing when the second planar shape 210 reaches the height of the entrance of the installation location 110 (the height of the edge 260). Generate point 160A. In other words, the device 300 generates the relay point 160A at the point 250 (the center of the second planar shape 210) when the second planar shape 210 is positioned so as not to interfere with the side surface of the installation location 110. do.
- the relay point 160A is a relay point through which the workpiece 150 passes. That is, the relay point 160A indicates the position when the work 150 reaches the entrance of the installation place 110.
- the device 300 is positioned at the center (point 251) of the third planar shape 220 at the timing when the third planar shape 220 reaches the height of the entrance of the installation location 120 (the height of the edge 261). Generate point 160D. In other words, the device 300 generates the relay point 160D at the position where the point 251 (the center of the third planar shape 220) exists when the third planar shape 220 is at a position that does not interfere with the side surface of the installation location 120. do.
- the relay point 160D is a relay point through which the workpiece 150 passes. That is, the relay point 160D indicates the position when the work 150 reaches the entrance of the installation place 120.
- each of the relay points 160A and 160D is determined according to the height of the side surfaces of the installation locations 110 and 120, the height of each of the relay points 160A and 160D (coordinates on the axis of the movement direction 270, the figure 2, the Z-axis coordinates) are different.
- the height of each of relay points 160A and 160D may be the same.
- the heights of the relay points 160A and 160D may be the same as the height of either one of the relay points 160A and 160D.
- the device 300 may accept setting inputs regarding the generation positions of the relay points 160A and 160D from the user via the setting screen.
- the device 300 may accept an offset setting of the coordinates at which the relay points 160A and 160D are generated (such as offsetting the generation positions of the relay points 160A and 160D in the vertical direction from the height of the entrance of the installation locations 110 and 120). good.
- the device 300 In the fourth step, the device 300 generates relay points 160B and 160C at the timing when the first planar shape 200 reaches a position where it no longer interferes with the obstacle 130.
- Relay point 160B is generated at a position where projection point 252 exists when first planar shape 200 is at a position that does not interfere with obstacle 130 .
- 160 C of relay points are produced
- the device 300 may accept setting inputs regarding the generation positions of the relay points 160B and 160C from the user via the setting screen.
- the device 300 may accept an offset setting of the coordinates at which the relay points 160B and 160C are generated (such as vertically offsetting the generation positions of the relay points 160A and 160D).
- the device 300 generates a path that connects the relay points 160B and 160C with a straight line or a curved line. (eg offsetting the generation positions of the relay points 160A and 160D several centimeters above the upper surface of the obstacle 130) may be accepted.
- device 300 In a fifth step, device 300 generates path 170 that passes through relay points 160A, 160B, 160C, and 160D. In one aspect, device 300 may generate path 170 as a combination of straight-line paths through each relay point 160 . In another aspect, device 300 may modify the arrangement and number of relay points 160 to convert a path of orthogonal movement into a path of curvilinear movement.
- the device 300 translates the first planar shape 200, the second planar shape 210, and the third planar shape 220 to generate the plurality of relay points 160, and the generated plurality of relay points 160.
- Point 160 is displayed on the setting screen.
- the device 300 generates a path 170 that passes through multiple relay points 160 .
- the device 300 is on a path connecting the initial position (point 250), the projected point 252 included in the first planar shape after movement, the projected point 253 of the target position, and the target position (point 251).
- a path 170 for the articulated robot 100 is generated based on the relay points 160 .
- device 300 may switch display/non-display of relay points 160A, 160B, 160C, and 160D on the setting screen based on settings received from the user via the setting screen.
- the path 170 to be generated may be displayed on the setting screen based on settings received from the user or automatically.
- device 300 may generate more than four relay points based on settings received from the user via the setting screen. For example, device 300 may generate relay points that complement between relay points 160A, 160B, 160C, and 160D. This allows device 300 to generate a path that is more similar to the path intended by the user.
- FIG. 3 is a diagram showing an example of the configuration of device 300 for generating a path for articulated robot 100 according to this embodiment.
- the hardware configuration and software configuration of device 300 will be described with reference to FIG.
- the device 300 includes, as hardware, a CPU (Central Processing Unit) 1, a primary storage device 2, a secondary storage device 3, an external device interface 4, an input interface 5, an output interface 6, and a communication interface 7. including.
- a CPU Central Processing Unit
- the CPU 1 can execute programs for realizing various functions of the device 300 .
- the CPU 1 is composed of, for example, at least one integrated circuit.
- the integrated circuit may be composed of, for example, at least one CPU, at least one FPGA (Field Programmable Gate Array), or a combination thereof.
- the primary storage device 2 stores programs executed by the CPU 1 and data referenced by the CPU 1 .
- the primary storage device 2 can also be said to be the main memory of the device 300 .
- the primary storage device 2 may be realized by DRAM (Dynamic Random Access Memory) or SRAM (Static Random Access Memory) or the like.
- the secondary storage device 3 is a non-volatile memory and stores programs executed by the CPU 1 and data referred to by the CPU 1 .
- the CPU 1 executes the program read from the secondary storage device 3 to the primary storage device 2 and refers to the data read from the secondary storage device 3 to the primary storage device 2 .
- the secondary storage device 3 can also be said to be the storage of the device 300 .
- the secondary storage device 3 is implemented by a HDD (Hard Disk Drive), SSD (Solid State Drive), EPROM (Erasable Programmable Read Only Memory), EEPROM (Electrically Erasable Programmable Read Only Memory), flash memory, or the like. may
- the external device interface 4 can be connected to any external device.
- the external device interface 4 may be realized by a USB (Universal Serial Bus) terminal or the like.
- the input interface 5 can be connected to any input device such as a keyboard, mouse, touchpad or gamepad.
- the input interface 5 may be realized by a USB terminal, a PS/2 terminal, a Bluetooth (registered trademark) module, or the like.
- the output interface 6 can be connected to any output device such as a CRT display, a liquid crystal display, or an organic EL (Electro-Luminescence) display.
- the output interface 6 may be realized by a USB terminal, a D-sub terminal, a DVI (Digital Visual Interface) terminal, an HDMI (registered trademark) (High-Definition Multimedia Interface) terminal, or the like.
- the communication interface 7 is connected to wired or wireless network equipment.
- the communication interface 7 may be realized by a wired LAN (Local Area Network) port, a Wi-Fi (registered trademark) (Wireless Fidelity) module, or the like.
- the communication interface 7 may transmit and receive data using communication protocols such as TCP/IP (Transmission Control Protocol/Internet Protocol) and UDP (User Datagram Protocol).
- the secondary storage device 3 stores a simulator 310, which is a program that provides the path generation function described with reference to FIGS.
- the CPU 1 generates a path for the articulated robot 100 by executing the simulator 310 loaded from the secondary storage device 3 to the primary storage device 2 .
- simulator 310 may be executed by controller 350 .
- the device 300 presents a setting screen to the user, and transmits to the control device 350 a setting input received from the user or an instruction to execute a simulation (generating a path, etc.).
- the simulator 310 includes a position determination unit 311, a planar shape generation unit 312, a movement unit 313, a path generation unit 314, a screen display unit 315, and a 3D engine 316.
- a portion of each function provided by simulator 310 may be implemented as a combination of circuit elements configured to perform each function.
- the device 300 comprises circuit elements configured to perform each function as a hardware configuration.
- the position determining unit 311 determines the initial position of the workpiece 150 (corresponding to the point 250 in FIG. 2) and the target position of the workpiece 150 (corresponding to the point 251 in FIG. 2) based on the positional relationship of each object in the 3D space 10. Get the coordinates of The position determining unit 311 implements the first half of the process (the process of acquiring the coordinate values of the points 250 and 251) in step 1 of FIG. In one aspect, the position determination unit 311 may calculate coordinate values of the projection points 252 and 253 based on the coordinates of the points 250 and 251 .
- the planar shape generator 312 generates a first planar shape 200, a second planar shape 210, and a third planar shape 220 in the 3D space 10.
- the planar shape generation unit 312 implements the latter half of the processing (processing for generating the first planar shape 200, the second planar shape 210, and the third planar shape 220) in step 12 of FIG.
- the planar shape generator 312 generates the first planar shape 200 based on the projection points 252 and 253 .
- the first planar shape 200 may be a quadrangle having the projection points 252 and 253 as vertices on the diagonal.
- the first planar shape 200 may be a quadrangle including sides parallel to the line segment connecting the projection points 252 and 253 .
- the first planar shape 200 may be any shape including projection points 252, 253, such as squares, rectangles, ellipses, combinations of rectangles and half circles.
- planar shape generator 312 generates the second planar shape 210 based on the points 250 .
- planar shape generator 312 can determine the size of second planar shape 210 according to the area of workpiece 150 or installation location 110 .
- the planar shape generator 312 may match the second planar shape 210 with the shape of the bottom surface of the work 150 or the bottom surface of the installation location 110 (upper surface in the case of a base).
- the planar shape generation unit 312 may express the second planar shape 210 as an arbitrary shape such as a square or a circle in which the workpiece 150 can be accommodated.
- planar shape generation unit 312 generates a third planar shape 220 based on the points 251 .
- planar shape generator 312 can determine the size of third planar shape 220 according to the area of workpiece 150 or installation location 120 .
- the planar shape generator 312 may match the third planar shape 220 with the shape of the bottom surface of the workpiece 150 or the bottom surface of the installation location 120 (upper surface in the case of a base).
- the planar shape generator 312 may express the third planar shape 220 as an arbitrary shape such as a rectangle or a circle that can accommodate the work 150 .
- the moving unit 313 moves the first planar shape 200, the second planar shape 210, and the third planar shape 220 in the same direction.
- the moving unit 313 realizes the process of moving the first planar shape 200, the second planar shape 210, and the third planar shape 220 in the moving direction 270 in steps 2 to 4 in FIG. Note that the points 250 and 251 and the projected points 252 and 253 may be hidden, but move together with the first planar shape 200, the second planar shape 210, and the third planar shape 220.
- the path generation unit 314 generates relay points 160 based on the first planar shape 200 , second planar shape 210 and third planar shape 220 , and generates paths 170 based on the relay points 160 .
- the path generation unit 314 realizes the generation processing of the relay points 160A, 160B, 160C, and 160D and the generation processing of the path 170 in steps 3 to 5 in FIG.
- the path generation unit 314 generates each point (start point 501 (see FIG. 5), passing point 502 (see FIG. 5), and end point 503 (see FIG. 5) for creating the motion of the articulated robot 100 from the path 170. 5)) is selected, and the information of each of these points is stored in the secondary storage device 3.
- path generator 314 may select relay points 160 A, 160 B, 160 C, and 160 D as each of waypoints 502 .
- the screen display unit 315 outputs a setting screen including the 3D space 10.
- the screen display unit 315 When the user directly uses the device 300 , the screen display unit 315 outputs a setting screen to a display connected to the device 300 .
- screen display unit 315 transmits a setting screen to the user's terminal via the network.
- the screen display unit 315 may transmit a part of the information to be displayed on the screen of the client installed in the user's terminal to the user's terminal.
- the screen display unit 315 can receive setting inputs for various functions from the user via the setting screen.
- the device 300 or the control device 350 reflects the received setting input in the path generation process.
- the screen display unit 315 presents the execution status of the processes from step 1 to step 5 in FIG. 2 to the user via the setting screen.
- the user refers to the setting screen to select points 250, 251, projection points 252, 253, first planar shape 200, second planar shape 210, third planar shape 220, relay points 160A, 160B, 160C, 160D, one can see how paths 170 are generated in 3D space 10 and how they move.
- the 3D engine 316 generates the 3D space 10 and arranges each object (work 150 etc.) in the 3D space 10 .
- the 3D engine 316 may also render the motion of each object.
- the screen display unit 315 can use the functions of the 3D engine 316 to display a setting screen including the 3D space 10 .
- FIG. 4 is a diagram showing an example of the overall configuration of the setting screen.
- the setting screen 400 includes a 3D space display 410 and a path setting panel 420 as screens related to path generation and reproduction of the generated path for the articulated robot 100 .
- the 3D space display 410 displays the 3D space 10. Also, the 3D space display 410 displays how the path generation processing described with reference to FIGS. 1 and 2 is performed (each point, each planar shape, each relay point, path, etc.). In some aspects, 3D spatial representation 410 may be implemented as a panel or window. Also, the 3D space display 410 may be part of the setting screen 400 or may be displayed separately from the setting screen 400 .
- the path setting panel 420 is a screen for inputting settings related to path generation of the articulated robot 100 .
- path setting panel 420 may be implemented as a panel or window.
- the path setting panel 420 may be part of the setting screen 400 or may be displayed separately from the setting screen 400 . Details of setting items and display of the path setting panel 420 will be described with reference to FIGS. 5 and 6. FIG.
- FIG. 5 is a diagram showing a first example of the path setting panel 420.
- FIG. A screen 500 which is a first example of the path setting panel 420, has, as main display items, path information 540, setting items 510, a generate button 517, a test operation button 518, a variable generation item 519, an edit A button 530 is provided.
- the path information 540 includes a start point 501, a passing point 502, and an end point 503.
- the setting items 510 include a controller name setting item 511, a robot setting item 512, a coordinate system setting item 513, a passing point display switching item 514, a clearance setting item 515, and a movement direction setting item 516.
- the variable generation item 519 includes a variable name setting item 520 , a read variable generation button 521 , and a write variable generation button 522 .
- a start point 501 , a passing point 502 , and an end point 503 indicate the position and orientation of the tip tool of the articulated robot 100 at each point on the path 170 . More specifically, each of the points (starting point 501, passing point 502, and ending point 503) that make up the path 170 is based on the positional information (X-axis coordinates, Y-axis coordinates) of the tool at the tip of the articulated robot 100. coordinates, Z-axis coordinates) and attitude information (inclination in the X-axis direction, the inclination in the Y-axis direction, and the inclination in the Z-axis direction).
- a starting point 501 indicates the position and orientation of the tool when the articulated robot 100 picks (grabs) the workpiece 150 .
- a passing point 502 indicates the position and orientation of the tool at each passing point when the articulated robot 100 carries the workpiece 150 .
- An end point 503 indicates the position and orientation of the tool when the articulated robot 100 places the workpiece 150 .
- the coordinates of each of waypoints 502 may coincide with the coordinates of each of waypoints 160A-160D. In other aspects, the coordinates of each waypoint 502 may not match the coordinates of each of the waypoints 160A-160D.
- the edit button 530 is a button that allows the user to edit the position information and orientation information of each point. For example, the user can manually change each numerical value of starting point 501 by pressing edit button 530 next to starting point 501 .
- the setting item 510 includes various setting items for generating the path 170.
- the controller name setting item 511 is configured so that the name (or identifier) of the controller (PLC or the like) that controls the articulated robot 100 can be selected or input.
- the robot setting item 512 is configured so that the name (or identifier) of the articulated robot 100 for which the path 170 is to be generated can be selected or input.
- the coordinate system setting item 513 is configured so that the coordinate system used when generating the path 170 can be selected or input. As an example, coordinate systems selectable in the coordinate system setting item 513 may include the coordinate system of the 3D space 10 and the coordinate system of the articulated robot 100 .
- the passage point display switching item 514 is configured to enable selection of display/non-display switching of the passage point 502 (or the relay point 160).
- the clearance setting item 515 is configured so that the clearance (offset) at the time of path generation can be selected or input.
- the clearance set by the clearance setting item 515 may be the initial position of the workpiece 150 (point 250 ), the target position of the workpiece 150 (point 251 ), and the clearance viewed from the projection points 252 and 253 .
- the clearance set by clearance setting item 515 may be the clearance viewed from the center of workpiece 150 .
- Apparatus 300 can determine interference between work 150, installation locations 110 and 120, and obstacle 130 based on the set clearance.
- device 300 can adjust the generation positions of relay points 160A, 160B, 160C, and 160D based on the clearance. As an example, when the Z-axis clearance is 10, the device 300 generates the relay points 160B and 160C at positions shifted by 10 in the Z-axis direction from the position where the first planar shape 200 and the obstacle 130 no longer interfere. do.
- the movement direction setting item 516 is configured so that the direction in which each planar shape (first planar shape 200, second planar shape 210, and third planar shape 220) moves can be selected or input.
- each planar shape moves in the positive direction of the Z-axis (movement direction 270), as described with reference to FIG.
- the direction in which each planar shape moves can also be rephrased as the direction in which the articulated robot 100 or the workpiece 150 avoids the obstacle 130 .
- the generate button 517 is a button for generating the path 170 and displaying the passing points 502 (or relay points 160) on the setting screen 400.
- Device 300 generates relay point 160 and path 170 based on pressing of generate button 517 , and displays passing point 502 (or relay point 160 ) on setting screen 400 . Note that when the display switching item 514 of the passage point is set to hide the passage point 502 (or the relay point 160), the device 300 does not display the passage point 502 (or the relay point 160) on the setting screen 400. .
- the test motion button 518 is a button for playing an animation in which the articulated robot 100 moves along the generated path 170 within the 3D space 10 .
- Device 300 reproduces an animation in which articulated robot 100 moves along generated path 170 based on pressing of test motion button 518 .
- the variable generation item 519 includes operation items related to variables used in the robot control program.
- Device 300 generates a variable for each point (starting point 501, passing point 502, and ending point 503) that make up path 170.
- the variable name setting item 520 is configured so that the name of the variable to be generated can be selected or input.
- a read variable generation button 521 is a button for generating a read variable for each point.
- Device 300 generates a read variable for each point based on pressing of read variable generation button 521 .
- a write variable generation button 522 is a button for generating a write variable for each point.
- Device 300 generates a write variable for each point based on pressing of write variable generation button 522 .
- FIG. 6 is a diagram showing a second example of the path setting panel 420.
- FIG. Screen 600 is obtained by aggregating or simplifying a part of the input items of screen 500 . 6 that are the same as those shown in FIG. 5 are denoted by the same reference numerals, and description of the same configurations will not be repeated.
- the screen 600 includes a clearance setting item 615 having a single input field and a variable generation button 620.
- the value set in the clearance setting item 615 is a common clearance (offset) for the Z-axis, Y-axis, and Z-axis.
- variable generation button 620 When variable generation button 620 is pressed, device 300 generates a read variable and a write variable for each point (start point 501 , passing point 502 , and end point 503 ) making up path 170 .
- the read variables and write variables for each may be common variables or individual variables.
- FIG. 7 is a diagram showing an example of a procedure for the device 300 to generate a path including curves.
- the device 300 can generate a straight path 170 and then generate a curved path 770 based on the path 170 .
- the procedure by which the device 300 generates a path 770 including a curve based on the path 170 is described below.
- step S710 the device 300 newly generates a relay point 710 on the path 170.
- Relay point 710 is generated at a position where workpiece 150 does not interfere with obstacle 130 .
- device 300 may accept a setting input for the generation position of relay point 710 via a setting screen.
- the setting of the generation position of the relay point 710 may include the distance from the relay point 160B (the corner of the path 170) to the relay point 710, for example.
- the device 300 may move the relay point 160B located on the installation site 110 side when viewed from the obstacle 130 to the obstacle 130 side. In this case, the relay point 160B after movement becomes the relay point 710.
- FIG. device 300 may newly add relay point 710 at a position shifted from relay point 160B toward obstacle 130 by a certain distance.
- step S720 the device 300 generates a path 770 including curves connecting the relay points 160A, 721, and 710.
- apparatus 300 generates relay points 720 , 721 , 722 interpolating between relay point 160 A and relay point 710 at several positions on path 770 .
- relay points 720 , 721 , and 722 are examples, and device 300 can generate any number of relay points that complement between relay point 160 A and relay point 710 .
- step S730 the device 300 deletes some of the relay points that make up the curve (the relay points 720 and 722 in the example of FIG. 7), and removes the central points that make up the curve (the relay points in the example of FIG. 721).
- the device 300 stores the relay points 160A, 721, 710 in the secondary storage device 3 as each of the passing points 502 of the articulated robot 100.
- the device 300 selects a plurality of points apart from relay points on the generated path 770, and stores the selected plurality of points as passing points 502 of the articulated robot 100 in a secondary storage device. 3 may be stored. In another aspect, device 300 may not delete some of the relay points (relay points 720 and 722) that make up the curve. In this case, the device 300 can store the relay points 160A, 720, 721, 722, and 710 in the secondary storage device 3 as each of the passing points 502 of the articulated robot 100. FIG.
- the device 300 can also generate a path including a curved line by performing the same processing as the processing of steps S710 to S730 on the opposite side (the installation location 120 side when viewed from the obstacle 130).
- device 300 has a function of generating relay points using a plurality of planar shapes and generating a path passing through the generated relay points.
- the user can easily generate an intended path of the multi-joint robot 100 by performing only a few settings (moving direction of each planar shape, clearance of the workpiece 150, etc.). That is, the device 300 can generate the path intended by the user with only a few setting items by intentionally setting a restriction that passes through a plurality of relay points when generating the path.
- the device 300 has a function of displaying each generated relay point 160 and/or path 170 in the 3D space 10 and a function of moving the articulated robot 100 along the generated path 170 within the 3D space 10. Prepare. With this function, the user can confirm what kind of path the generated path 170 is, and whether or not it is the path intended by the user.
- the device 300 has a function of generating a path 770 including curved lines based on the straight path 170 .
- the user can generate a curvilinear path that places less load on the joints of the articulated robot 100 .
- the initial position is a point on the ground plane between the workpiece (150) and the location from which the workpiece (150) is picked;
- the apparatus (300) according to configuration 1, wherein the target position is a point on the ground plane between the workpiece (150) and where the workpiece (150) is placed.
- the first planar shape (200) is a quadrangle whose diagonal vertices are the projection point of the initial position and the projection point of the target position, or connects the projection point of the initial position and the projection point of the target position. 3.
- the device (300) of configuration 2 which is a rectangle with sides parallel to the line segments.
- the path generation section (314) is configured to: generating one of the relay points (160A, 160B, 160C, 160D) at a position of the projection point of the initial position; 4. Apparatus (300) according to any of the arrangements 1-3, wherein one of said relay points (160A, 160B, 160C, 160D) is generated at a position of a projected point of said target position.
- the planar shape generator (312) further generates a second planar shape (210) including the point indicating the initial position, and a third planar shape (220) including the point indicating the target position. 5.
- the moving part (313) moves the second planar shape (210) and the third planar shape (220) in the same direction as the first planar shape (200),
- the path generation unit (314) The relay point (160A, 160B, 160C, 160D), The relay point (160A, 160B, 160C, 160D).
- the path generation unit (314) Selecting the first relay points (160A, 160B, 160C, 160D) and the second relay points (160A, 160B, 160C, 160D) from the generated paths, generating one or more complementary points located on curves connecting the first relay points (160A, 160B, 160C, 160D) and the second relay points (160A, 160B, 160C, 160D); Based at least in part on said first relay point (160A, 160B, 160C, 160D), said second relay point (160A, 160B, 160C, 160D) and said one or more complementary points, a curve 7.
- a method for computer generating a path of an articulated robot (100) comprising: obtaining an initial position of a workpiece (150) in a 3D space (10) and a target position of the workpiece (150); generating a first planar shape (200) including a projection point of the initial position and a projection point of the target position; moving the first planar shape (200); relay points (160A, 160B, 160C) on a path connecting the initial position, the target position, the projection point of the initial position included in the first planar shape (200), and the projection point of the target position; , 160D) and generating a path for the articulated robot (100) based on the relay points (160A, 160B, 160C, 160D).
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Automation & Control Theory (AREA)
- Robotics (AREA)
- Mechanical Engineering (AREA)
- Geometry (AREA)
- Human Computer Interaction (AREA)
- Manufacturing & Machinery (AREA)
- Manipulator (AREA)
- Numerical Control (AREA)
Abstract
ユーザが意図する多関節ロボットのパスを生成する。装置は、3D空間(10)内のワーク(150)の初期位置と、ワーク(150)の目標位置とを取得する位置決定部と、初期位置の投影点および目標位置の投影点を含む第1の平面形状を生成する平面形状生成部と、第1の平面形状を移動させる移動部と、初期位置と、目標位置と、第1の平面形状に含まれる初期位置の投影点と、目標位置の投影点とを結ぶ経路上に中継点(160A,160B,160C,160D)を配置し、中継点(160A,160B,160C,160D)に基づいて多関節ロボット(100)のパス(170)を生成するパス生成部とを備える。
Description
本開示は、多関節ロボットのパスを生成する技術に関し、より特定的には、ユーザが意図する多関節ロボットのパスを生成する技術に関する。
工場の生産ライン等において産業用の多関節ロボットが使用されている。多関節ロボットによるワークのピックアンドプレイス(ある地点のワークを把持して、当該ワークをある地点から別の地点に運んで置く動作)を行う場合、多関節ロボットに、ワークを運ぶためのパスまたは多関節ロボットのモーションを予め設定する必要がある。以下、ワークを把持することを「ピックする」といい、ワークを把持する場所を「ピック位置」と呼ぶ。また、ワークを所定の場所に置くことを「プレイスする」といい、その場所を「プレイス位置」と呼ぶ。
既存の多関節ロボット用のソフトウェアは、静的パスプランニングの機能により、多関節ロボットのパスを生成することができる。しかしながら、静的パスプランニング等の速度の最適化を優先する手法を用いてパスを生成した場合、多関節ロボットは、ユーザが意図しない動作をすることがある。より具体的には、多関節ロボット用のソフトウェアは、ワークのピック位置およびプレイス位置等に基づいて、自動的にパスを生成する。その結果、自動生成されたパスは、ユーザが意図しないパスになることがある。別の手法として、静的パスプランニング等を繰り返し実行し、ランダムに生成された複数のパスの中から、ユーザが意図したパスを提案することが考えられる。しかしながら、この方法では、パスの生成に時間がかかってしまう。そこで、従来とは異なる多関節ロボットのパスの生成技術が求められている。
多関節ロボットのパスまたはモーションの生成技術に関し、例えば、特開2019-155509号公報(特許文献1)は、「ロボットが把持対象物を把持することのできる把持姿勢の候補を複数受け付ける把持姿勢受付部と、複数の把持姿勢の候補のそれぞれと、ロボットの初期姿勢とに基づいて、複数の把持姿勢の候補のそれぞれを評価し、当該評価に基づいて、複数の把持姿勢の候補の中から把持姿勢を選択する把持姿勢選択部と、初期姿勢から選択された把持姿勢までの間のロボットのモーションを生成するモーション生成部と、を備える」制御装置を開示している([要約]参照)。
また、多関節ロボットのパスまたはモーションの生成技術に関する他の技術が、例えば、特開2019-018272号公報(特許文献2)に開示されている。
特許文献1および2に開示された技術によると、多関節ロボットのパスを作成することはできるが、生成されたパスは必ずしもユーザが意図する多関節ロボットのパスとはならない。したがって、ユーザが意図する多関節ロボットのパスを生成するための技術が必要とされている。
本開示は、上記のような背景に鑑みてなされたものであって、ある局面における目的は、ユーザが意図する多関節ロボットのパスを生成する技術を提供することにある。
ある実施の形態に従うと、多関節ロボットのパスを生成するための装置が提供される。装置は、3D空間内のワークの初期位置と、ワークの目標位置とを取得する位置決定部と、初期位置の投影点および目標位置の投影点を含む第1の平面形状を生成する平面形状生成部と、第1の平面形状を移動させる移動部と、初期位置と、目標位置と、第1の平面形状に含まれる初期位置の投影点と、目標位置の投影点とを結ぶ経路上に中継点を配置し、中継点に基づいて多関節ロボットのパスを生成するパス生成部とを備える。
この開示によれば、装置は、初期位置と、目標位置と、第1の平面形状に含まれる初期位置の投影点および目標位置の投影点とを結ぶ経路上に生成された中継点に基づいて、多関節ロボットのパスを生成することができる。装置300は、敢えて中継点という制約に基づいて多関節ロボット100のパスを生成するため、生成されたパスはユーザが意図したパスになる。
上記の開示において、初期位置は、ワークとワークがピックされる場所との接地面上の点であり、目標位置は、ワークとワークがプレイスされる場所との接地面上の点である。
この開示によれば、装置は、初期位置を示す点の投影点および目標位置を示す点の投影点に基づいて第1の平面形状を生成し得る。
上記の開示において、第1の平面形状は、初期位置の投影点および目標位置の投影点を対角の頂点とする四角形、または、初期位置の投影点および目標位置の投影点を結ぶ線分と平行な辺を含む四角形である。
この開示によれば、装置は、初期位置の投影点および目標位置の投影点に基づいて四角形の第1の平面形状を生成し得る。
上記の開示において、パス生成部は、第1の平面形状が、初期位置および目標位置の間の障害物と干渉しない位置にあるときの、初期位置の投影点のある位置に、中継点の1つを生成し、目標位置の投影点のある位置に、中継点の1つを生成する。
この開示によれば、装置は、ワークが障害物に干渉せずに移動可能な経路上に中継点を生成し得る。
上記の開示において、平面形状生成部は、初期位置示す点を含む第2の平面形状と、目標位置を示す点を含む第3の平面形状とをさらに生成する。
この開示によれば、装置は、第1の平面形状に加えて、初期位置示す点を含む第2の平面形状と、目標位置を示す点を含む第3の平面形状とを生成し得る。
上記の開示において、移動部は、第2の平面形状および第3の平面形状を第1の平面形状と同じ方向に移動させる。パス生成部は、第2の平面形状が初期位置に配置された第1の設置場所の側面と干渉しない位置にあるときの、初期位置を示す点がある位置に、中継点の1つを生成し、第3の平面形状が目標位置に配置された第2の設置場所の側面と干渉しない位置にあるときの、目標位置を示す点がある位置に、中継点の1つを生成する。
この開示によれば、装置は、ワークが障害物に干渉しない位置に加えて、ワークが第1の設置場所に干渉しない位置と、ワークが第2の設置場所に干渉しない位置とに中継点を生成することができる。
上記の開示において、パス生成部は、生成したパスから、第1の中継点と、第2の中継点とを選択し、第1の中継点および第2の中継点を接続する曲線上に位置する1つ以上の補完点を生成し、第1の中継点、第2の中継点、および、1つ以上の補完点の少なくとも一部に基づいて、曲線を含むパスを生成する。
この開示によれば、装置は、曲線を含むパスを生成することができる。
他の実施の形態に従うと、コンピュータが多関節ロボットのパスを生成するための方法が提供される。方法は、3D空間内のワークの初期位置と、ワークの目標位置とを取得するステップと、初期位置の投影点および目標位置の投影点を含む第1の平面形状を生成するステップと、第1の平面形状を移動させるステップと、初期位置と、目標位置と、第1の平面形状に含まれる初期位置の投影点と、目標位置の投影点とを結ぶ経路上に中継点を配置し、中継点に基づいて多関節ロボットのパスを生成するステップとを含む。
他の実施の形態に従うと、コンピュータが多関節ロボットのパスを生成するための方法が提供される。方法は、3D空間内のワークの初期位置と、ワークの目標位置とを取得するステップと、初期位置の投影点および目標位置の投影点を含む第1の平面形状を生成するステップと、第1の平面形状を移動させるステップと、初期位置と、目標位置と、第1の平面形状に含まれる初期位置の投影点と、目標位置の投影点とを結ぶ経路上に中継点を配置し、中継点に基づいて多関節ロボットのパスを生成するステップとを含む。
この開示によれば、方法は、初期位置と、目標位置と、第1の平面形状に含まれる初期位置の投影点および目標位置の投影点とを結ぶ経路上に生成された中継点に基づいて、多関節ロボットのパスを生成することができる。多関節ロボット100のパスは、中継点という制約に基づいて生成されるため、当該生成されたパスはユーザが意図したパスになる。
他の実施の形態に従うと、コンピュータに多関節ロボットのパスを生成させるためのプログラムが提供される。プログラムは、3D空間内のワークの初期位置と、ワークの目標位置とを取得するステップと、初期位置の投影点および目標位置の投影点を含む第1の平面形状を生成するステップと、第1の平面形状を移動させるステップと、初期位置と、目標位置と、第1の平面形状に含まれる初期位置の投影点と、目標位置の投影点とを結ぶ経路上に中継点を配置し、中継点に基づいて多関節ロボットのパスを生成するステップとをコンピュータに実行させる。
この開示によれば、プログラムは、コンピュータに、初期位置と、目標位置と、第1の平面形状に含まれる初期位置の投影点および目標位置の投影点とを結ぶ経路上に生成された中継点に基づいて、多関節ロボットのパスを生成させることができる。多関節ロボット100のパスは、中継点という制約に基づいて生成されるため、当該生成されたパスはユーザが意図したパスになる。
ある実施の形態に従うと、ユーザが意図する多関節ロボットのパスを生成することが可能である。
この開示内容の上記および他の目的、特徴、局面および利点は、添付の図面と関連して理解される本開示に関する次の詳細な説明から明らかとなるであろう。
以下、図面を参照しつつ、本開示に係る技術思想の実施の形態について説明する。以下の説明では、同一の部品には同一の符号を付してある。それらの名称および機能も同じである。したがって、それらについての詳細な説明は繰り返さない。
<A.適用例>
図1および図2を参照して、本開示の技術の適用例について説明する。
図1および図2を参照して、本開示の技術の適用例について説明する。
図1は、本開示の技術を用いて生成される多関節ロボットのパスの一例を示す図である。図1を参照して、本開示の技術を用いることで生成される多関節ロボットのパスの一例について説明する。本明細書において、「パス」との用語は、多関節ロボットが通過する経路、多関節ロボットのモーション、多関節ロボットが経由する複数の点の集合、時系列の多関節ロボットの姿勢の集合等を包含する。
なお、これ以降の説明において、図面を参照して矢印等を用いて表現されるパスは、多関節ロボットの先端のツールまたはワークの移動経路を示している。実際に多関節ロボットに設定される情報は、時系列の多関節ロボットまたは先端ツールの位置および姿勢の情報である。
本実施の形態に従う多関節ロボットのパスを生成するための装置300(図3参照)は、多関節ロボット100のパスを生成するための設定画面(以降、関節ロボットのパスを生成するための設定画面を単に「設定画面」と呼ぶこともある)の一部として3D空間10を表示する。ユーザは、設定画面を操作することで、多関節ロボット100のパスを生成し、また、3D空間10内の多関節ロボット100に設定したパスを通る動作をシミュレートさせて多関節ロボット100の動作を確認することができる。
なお、本明細書において、「装置」との用語は、1または複数の装置からなる構成、サーバ、クラウド環境に構築された仮想マシンもしくはコンテナを包含する。また、装置は、パーソナルコンピュータ、ワークステーション、サーバ装置、タブレット、スマートフォン等の情報処理装置と、PLC(Programmable Logic Controller)とを含んでいてもよく、また、これらの組合せであってもよい。ある局面において、装置300は、ディスプレイおよびキーボード等の入出力機器と接続されて、ユーザに使用されてもよい。他の局面において、装置300は、ネットワークを介してユーザに、クラウドサービスまたはウェブアプリケーションとして各種機能を提供してもよい。この場合、ユーザは、自身の端末のブラウザを介して、装置300のユーザインタフェイスにアクセスし得る。
図1の例では、3D空間10には、多関節ロボット100と、設置場所110と、設置場所120と、障害物130と、ワーク150とが表示されている。ユーザは、装置300の機能を用いて、多関節ロボット100が障害物130を回避して設置場所110から設置場所120にワーク150を運ぶためのパスを生成するとする。
多関節ロボット100は、一例として、垂直多関節ロボット、水平多関節ロボット、または、その他の任意の機構を備える多関節ロボットであってもよい。本開示の技術を用いることで、装置300は、多関節ロボットの機構によらず、ユーザが意図したパスを一様に生成し得る。
設置場所110,120は、ワーク150を設置する場所であり、箱、筒、または、その他の任意の形状であってもよい。また、設置場所110,120は、壁面を有さない土台等であってもよい。さらに、設置場所110,120は、形状および/または大きさが異なっていてもよい。
パス170は、装置300の機能を用いて生成されるパスの一例である。ワーク150Sは初期位置にあるワーク150を意味する。ワーク150Eは目標位置にあるワーク150を意味する。パス170は、中継点160A,160B,160C,160Dを経由するパスとなっている。これ以降、中継点160A,160B,160C,160Dを総称する場合は、中継点160と呼ぶこともある。パス170は、装置300によって生成されたこれらの中継点160A,160B,160C,160Dを経由するように生成される。すなわち、装置300は、あえて多関節ロボット100の移動経路に制限を設けることで、ユーザが意図したパスとなるように、パスを生成する。また、中継点160A,160B,160C,160Dは、設定画面(例えば、3D空間10内)に表示される。ユーザは、中継点160A,160B,160C,160Dを参照することで、生成されるパスを容易に確認することができる。ある局面において、装置300は、中継点160だけでなく、生成される多関節ロボット100のパスの予想経路(パス170)を設定画面(例えば、3D空間10内)に表示してもよい。
上記のように、ユーザは、設定画面が提供する機能を用いて、3D空間10内に各中継点160を容易に生成し得る。また、ユーザは、3D空間10内に表示される各中継点160を確認することで、生成される多関節ロボット100のパス170を容易に予想し得る。また、ユーザは、設定画面が提供する機能を用いて、各中継点160の位置を調整するだけで、多関節ロボット100のパス170を修正することができる。
図2は、装置300が各中継点160およびパス170を生成する手順の一例を示す図である。図2を参照して、装置300が各中継点160およびパス170を生成する手順について説明する。なお、装置300が実行する以下のステップは、ユーザの入力した設定に基づいて実行され得る。
第1のステップにおいて、装置300は、ワーク150S,150E、設置場所110,120の少なくとも一部に基づいて、第1の平面形状200と、第2の平面形状210と、第3の平面形状220とを生成する。
「第1の平面形状200」は、ワーク150Sの位置(ワーク150の初期位置)と、ワーク150Eの位置(ワーク150の目標位置)とに基づいて生成される。
「ワーク150の初期位置」は、ワーク150と、ワーク150がピックされる場所との接地面上の点である。図1の例では、ワーク150と、ワーク150がピックされる場所との接地面は、ワーク150Sと設置場所110の底との接地面である。また、「ワーク150と、ワーク150がピックされる場所との接地面上の点」は、例えば、接地面上におけるワーク150の中心点、または、設置場所110の底の中心点である。図1の例では、ワーク150と、ワーク150がピックされる場所との接地面上の点は、点250である。すなわち、点250が、ワーク150の初期位置となる。ある局面において、「ワーク150の初期位置」は、初期位置に設置されたワーク150の中心であってもよい。この場合、図1の例では、ワーク150の初期位置は、ワーク150Sの中心(または重心)となる。
「ワーク150の目標位置」は、ワーク150と、ワーク150がプレイスされる場所との接地面上の点である。図1の例では、ワーク150と、ワーク150がプレイスされる場所との接地面は、ワーク150Eと設置場所120の底との接地面である。また、「ワーク150と、ワーク150がプレイスされる場所との接地面上の点」は、例えば、接地面上におけるワーク150の中心点、または、設置場所120の底の中心点である。図1の例では、ワーク150と、ワーク150がプレイスされる場所との接地面上の点は、点251である。すなわち、点251が、ワーク150の目標位置となる。ある局面において、「ワーク150の目標位置」は、目標位置に設置されたワーク150の中心であってもよい。この場合、図1の例では、ワーク150の目標位置は、ワーク150Eの中心(または重心)となる。
第1の平面形状200は、ワーク150S,ワーク150Eの上面に触れる高さの平面上に生成される。より具体的には、ワーク150の初期位置およびワーク150の目標位置(点250,251)を、ワーク150Eの上面に触れる高さの位置に、投影点252,253として投影する。第1の平面形状200は、投影点252,253を含む平面形状である。一例として、投影点252,253のX座標が異なる場合等において、第1の平面形状200は、投影点252,253を対角の頂点とする四角形であってもよい。他の局面において、第1の平面形状200は、投影点252,253のX座標が同じである場合等において、投影点252,253を結ぶ線分と平行な辺を含む四角形であってもよい。また、他の局面において、第1の平面形状200は、投影点252,253を含む、正方形、長方形、楕円、長方形および半円の組合せ等の任意の形状であってもよい。なお、図2の例では、各平面形状はいずれもXY軸平面と平行になっているが、これは一例であり、下位平面形状が生成される平面はこれに限られない。ある局面において、各平面形状はXYZ軸の各々に対して任意の角度の平面として生成されてもよい。
「第2の平面形状210」は、初期位置を示す点(点250)を含む平面形状(「初期位置平面形状」とも呼べる)である。ある局面において、第2の平面形状210は、ワーク150がピックされる場所の形状(設置場所110の底の形状)であってもよい。他の局面において、第2の平面形状210は、初期位置のワーク150Sの形状であってもよい。また、他の局面において、第2の平面形状210は、四角形、円等の任意の形状であってもよく、この場合の第2の平面形状210のサイズは、ワーク150または設置場所110の底の面積(XY平面上における面積)に基づいて決定され得る。
「第3の平面形状220」は、目標位置を示す点(点251)を含む平面形状(「目標位置平面形状」とも呼べる)である。ある局面において、第3の平面形状220は、ワーク150がプレイスされる場所の形状(設置場所120の底の形状)であってもよい。他の局面において、第3の平面形状220は、目標位置のワーク150Eの形状であってもよい。また、他の局面において、第3の平面形状220は、四角形、円等の任意の形状であってもよく、この場合の第3の平面形状220のサイズは、ワーク150または設置場所120の底の面積(XY平面上における面積)に基づいて決定され得る。
装置300は、3D空間10内に読み込まれた多関節ロボット100、設置場所110,120、および、ワーク150の3Dモデルの各々から、上記の第1の平面形状200、第2の平面形状210、第3の平面形状220を自動的に生成し得る。ある局面において、装置300は、設定画面を介して、ユーザから、ワーク150の初期位置を、ワーク150と、ワーク150がピックされる場所との接地面上の点とするか、または、ワーク150Sの中心とするかの設定入力を受け付けてもよい。また、他の局面において、装置300は、設定画面を介して、ユーザから、ワーク150の目標位置を、ワーク150と、ワーク150がプレイスされる場所との接地面上の点とするか、または、ワーク150Eの中心とするかの設定入力を受け付けてもよい。さらに、装置300は、設定画面を介して、ユーザから、上記の第1の平面形状200、第2の平面形状210、第3の平面形状220の形状(四角、円、楕円等)の設定入力を受け付けてもよい。装置300は、受け付けた設定に基づいて、上記の第1の平面形状200、第2の平面形状210、第3の平面形状220を生成し、生成した上記の第1の平面形状200、第2の平面形状210、第3の平面形状220を3D空間10に表示する。
第2のステップにおいて、装置300は、3D空間10内において、第1の平面形状200、第2の平面形状210、第3の平面形状220を同じ方向(以下、単に「移動方向270」と呼ぶ)に動かす。図2の例では、移動方向270は、Z軸方向となっている。なお、各平面上にある点250,251および投影点252,253は、非表示であってもよいが、各平面形状と一緒に移動する。ある局面において、装置300は、設定画面を介して、ユーザから、移動方向270の設定入力を事前に受け付けてもよい。この場合、装置300は、受け付けた移動方向270に関する設定に基づいて、第1の平面形状200、第2の平面形状210、第3の平面形状220を動かす。他の局面において、装置300は、ワーク150、設置場所110,120および障害物130の全てまたは一部の互いの位置関係に基づいて、移動方向270を決定してもよい。一例として、装置300は、設置場所110の出口方向(点250から投影点252に向かう方向)、または、設置場所120の出口方向(点251から投影点253に向かう方向)を、移動方向270として選択してもよい。
第3のステップにおいて、装置300は、第2の平面形状210が設置場所110の入り口に到達したタイミングで、中継点160Aを生成する。また、装置300は、第3の平面形状220が設置場所120の入り口に到達したタイミングで、中継点160Dを生成する。さらに、装置300は、生成した中継点160Aおよび中継点160Dを3D空間10に表示する。
一例として、装置300は、第2の平面形状210が設置場所110の入り口の高さ(へり260の高さ)に到達したタイミングにおける、第2の平面形状210の中心(点250)に、中継点160Aを生成する。言い換えれば、装置300は、第2の平面形状210が設置場所110の側面と干渉しない位置にあるときにおける、点250(第2の平面形状210の中心)がある位置に、中継点160Aを生成する。中継点160Aは、ワーク150が通過する中継点である。すなわち、中継点160Aは、ワーク150が設置場所110の入り口に到達したときの位置を示す。
同様に、装置300は、第3の平面形状220が設置場所120の入り口の高さ(へり261の高さ)まで到達したタイミングにおける、第3の平面形状220の中心(点251)に、中継点160Dを生成する。言い換えれば、装置300は、第3の平面形状220が設置場所120の側面と干渉しない位置にあるときにおける、点251(第3の平面形状220の中心)がある位置に、中継点160Dを生成する。中継点160Dは、ワーク150が通過する中継点である。すなわち、中継点160Dは、ワーク150が設置場所120の入り口に到達したときの位置を示す。
なお、中継点160A,160Dの各々の高さは、設置場所110,120の側面の高さに応じて決まるため、中継点160A,160Dの各々の高さ(移動方向270の軸における座標、図2の場合Z軸の座標)は異なる。ある局面において、中継点160A,160Dの各々の高さは同じであってもよい。この場合、中継点160A,160Dの高さは、中継点160A,160Dのいずれか一方の高さに統一されてもよい。
ある局面において、装置300は、設定画面を介して、ユーザから中継点160A,160Dの生成位置に関する設定入力を受け付けてもよい。例えば、装置300は、中継点160A,160Dが生成される座標のオフセット設定(中継点160A,160D生成位置を設置場所110,120の入り口の高さから上下方向にオフセットする等)を受け付けてもよい。
第4のステップにおいて、装置300は、第1の平面形状200が障害物130に干渉しなくなる位置に到達したタイミングで、中継点160B,160Cを生成する。中継点160Bは、第1の平面形状200が、障害物130と干渉しない位置にあるときにおける、投影点252がある位置に生成される。中継点160Cは、第1の平面形状200が、障害物130と干渉しない位置にあるときにおける、投影点253がある位置に生成される。
ある局面において、装置300は、設定画面を介して、ユーザから中継点160B,160Cの生成位置に関する設定入力を受け付けてもよい。例えば、装置300は、中継点160B,160Cが生成される座標のオフセット設定(中継点160A,160D生成位置を上下方向にオフセットする等)を受け付けてもよい。後述するように、装置300は、中継点160Bおよび中継点160Cを直線または曲線で結ぶパスを生成するため、予め、ワーク150が障害物130とぶつからないように、ワーク150の形状に応じたオフセットの設定(中継点160A,160D生成位置を障害物130の上面からさらに数センチメートル上にオフセットする等)を受け付けてもよい。
第5のステップにおいて、装置300は、中継点160A,160B,160C,160Dを経由するパス170を生成する。ある局面において、装置300は、各中継点160を経由する直線パスの組合せとしてパス170を生成してもよい。また、他の局面において、装置300は、中継点160の配置および個数を修正することで、直角移動となるパスを曲線移動のパスに変換してもよい。
上記のように、装置300は、第1の平面形状200、第2の平面形状210、第3の平面形状220を平行移動させて、複数の中継点160を生成し、当該生成した複数の中継点160を設定画面に表示する。さらに、装置300は、複数の中継点160を経由するパス170を生成する。言い換えれば、装置300は、初期位置(点250)と、移動後の第1の平面形状に含まれる投影点252と、目標位置の投影点253と、目標位置(点251)とを結ぶ経路上に中継点160を配置し、中継点160に基づいて多関節ロボット100のパス170を生成する。これにより、ユーザは、設定画面に表示される中継点160を参照することで生成されるパス170を容易に想像することができる。そのため、ユーザは、各中継点160の生成箇所の設定(オフセット等)、各平面の移動方向270(障害物130を避ける方向)の設定を行うだけで、容易に意図したとおりのパスを生成し得る。
ある局面において、装置300は、設定画面を介してユーザから受け付けた設定に基づいて、設定画面上における、中継点160A,160B,160C,160Dの表示・非表示を切り替えてもよい。他の局面において、ユーザから受け付けた設定に基づいて、または、自動的に、設定画面上における、生成予定のパス170を表示してもよい。
他の局面において、装置300は、設定画面を介してユーザから受け付けた設定に基づいて、4つより多くの中継点を生成してもよい。例えば、装置300は、中継点160A,160B,160C,160Dの間を補完する中継点を生成してもよい。これにより、装置300は、ユーザが意図したパスにより近似したパスを生成し得る。
<B.装置の構成>
図3は、本実施の形態に従う多関節ロボット100のパスを生成するための装置300の構成の一例を示す図である。図3を参照して、装置300のハードウェア構成およびソフトウェア構成について説明する。
図3は、本実施の形態に従う多関節ロボット100のパスを生成するための装置300の構成の一例を示す図である。図3を参照して、装置300のハードウェア構成およびソフトウェア構成について説明する。
装置300は、ハードウェアとして、CPU(Central Processing Unit)1と、1次記憶装置2と、2次記憶装置3と、外部機器インターフェイス4と、入力インターフェイス5と、出力インターフェイス6と、通信インターフェイス7とを含む。
CPU1は、装置300の各種機能を実現するためのプログラムを実行し得る。CPU1は、例えば、少なくとも1つの集積回路によって構成される。集積回路は、例えば、少なくとも1つのCPU、少なくとも1つのFPGA(Field Programmable Gate Array)、またはこれらの組み合わせ等によって構成されてもよい。
1次記憶装置2は、CPU1によって実行されるプログラムと、CPU1によって参照されるデータとを格納する。1次記憶装置2は、装置300のメインメモリであるとも言える。ある局面において、1次記憶装置2は、DRAM(Dynamic Random Access Memory)またはSRAM(Static Random Access Memory)等によって実現されてもよい。
2次記憶装置3は、不揮発性メモリであり、CPU1によって実行されるプログラムおよびCPU1によって参照されるデータを格納する。その場合、CPU1は、2次記憶装置3から1次記憶装置2に読み出されたプログラムを実行し、2次記憶装置3から1次記憶装置2に読み出されたデータを参照する。2次記憶装置3は、装置300のストレージであるとも言える。ある局面において、2次記憶装置3は、HDD(Hard Disk Drive)、SSD(Solid State Drive)、EPROM(Erasable Programmable Read Only Memory)、EEPROM(Electrically Erasable Programmable Read Only Memory)またはフラッシュメモリ等によって実現されてもよい。
外部機器インターフェイス4は、任意の外部機器に接続され得る。ある局面において、外部機器インターフェイス4は、USB(Universal Serial Bus)端子等によって実現されてもよい。
入力インターフェイス5は、キーボード、マウス、タッチパッドまたはゲームパッド等の任意の入力装置に接続され得る。ある局面において、入力インターフェイス5は、USB端子、PS/2端子およびBluetooth(登録商標)モジュール等によって実現されてもよい。
出力インターフェイス6は、ブラウン管ディスプレイ、液晶ディスプレイまたは有機EL(Electro-Luminescence)ディスプレイ等の任意の出力装置に接続され得る。ある局面において、出力インターフェイス6は、USB端子、D-sub端子、DVI(Digital Visual Interface)端子およびHDMI(登録商標)(High-Definition Multimedia Interface)端子等によって実現されてもよい。
通信インターフェイス7は、有線または無線のネットワーク機器と接続される。ある局面において、通信インターフェイス7は、有線LAN(Local Area Network)ポートおよびWi-Fi(登録商標)(Wireless Fidelity)モジュール等によって実現されてもよい。他の局面において、通信インターフェイス7は、TCP/IP(Transmission Control Protocol/Internet Protocol)、UDP(User Datagram Protocol)等の通信プロトコルを用いてデータを送受信してもよい。
2次記憶装置3は、図1および図2を参照して説明されたパスの生成機能を提供するプログラムであるシミュレータ310を格納する。CPU1は、2次記憶装置3から1次記憶装置2に読み込まれたシミュレータ310を実行することで、多関節ロボット100のパスを生成する。ある局面において、シミュレータ310は、制御装置350によって実行されてもよい。この場合、装置300は、設定画面をユーザに提示し、ユーザから受け付けた設定入力またはシミュレーション(パスの生成等)の実行命令を制御装置350に送信する。
シミュレータ310は、位置決定部311と、平面形状生成部312と、移動部313と、パス生成部314と、画面表示部315と、3Dエンジン316とを備える。ある局面において、シミュレータ310が備える各機能の一部は、各機能を実行するように構成された回路素子の組み合わせとして実現されてもよい。この場合、装置300は、各機能を実行するように構成された回路素子をハードウェア構成として備える。
位置決定部311は、3D空間10内の各オブジェクトの位置関係に基づいて、ワーク150の初期位置(図2の点250に相当)と、ワーク150の目標位置(図2の点251に相当)の座標値を取得する。位置決定部311は、図2のステップ1における前半の処理(点250,251の座標値を取得する処理)を実現する。ある局面において、位置決定部311は、点250,251の座標に基づいて、投影点252,253の座標値を算出してもよい。
平面形状生成部312は、3D空間10内に、第1の平面形状200、第2の平面形状210、第3の平面形状220を生成する。平面形状生成部312は、図2のステップ12における後半の処理(第1の平面形状200、第2の平面形状210、第3の平面形状220の生成処理)を実現する。
より具体的には、平面形状生成部312は、投影点252,253に基づいて、第1の平面形状200を生成する。ある局面において、第1の平面形状200は、投影点252,253を対角の頂点とする四角形であってもよい。他の局面において、第1の平面形状200は、投影点252,253を結ぶ線分と平行な辺を含む四角形であってもよい。また、他の局面において、第1の平面形状200は、投影点252,253を含む、正方形、長方形、楕円、長方形および半円の組合せ等の任意の形状であってもよい。
また、平面形状生成部312は、点250に基づいて、第2の平面形状210を生成する。ある局面において、平面形状生成部312は、ワーク150または設置場所110の面積に応じて、第2の平面形状210のサイズを決定し得る。一例として、平面形状生成部312は、第2の平面形状210を、ワーク150の底面または設置場所110の底(土台の場合は上面)の形状に合わせてもよい。他の例として、平面形状生成部312は、第2の平面形状210を、ワーク150が収まる四角形または円形等の任意の形状で表現してもよい。
さらに、平面形状生成部312は、点251に基づいて、第3の平面形状220を生成する。ある局面において、平面形状生成部312は、ワーク150または設置場所120の面積に応じて、第3の平面形状220のサイズを決定し得る。一例として、平面形状生成部312は、第3の平面形状220を、ワーク150の底面または設置場所120の底(土台の場合は上面)の形状に合わせてもよい。他の例として、平面形状生成部312は、第3の平面形状220を、ワーク150が収まる四角形または円形等の任意の形状で表現してもよい。
移動部313は、第1の平面形状200、第2の平面形状210、第3の平面形状220を同じ方向に移動させる。移動部313は、図2のステップ2~4における移動方向270に、第1の平面形状200、第2の平面形状210、第3の平面形状220を移動させる処理を実現する。なお、点250,251および投影点252,253は、非表示であってもよいが、第1の平面形状200、第2の平面形状210、第3の平面形状220と一緒に移動する。
パス生成部314は、第1の平面形状200、第2の平面形状210、第3の平面形状220に基づいて中継点160を生成し、また、中継点160に基づいてパス170を生成する。パス生成部314は、図2のステップ3~5における、中継点160A,160B,160C,160Dの生成処理と、パス170の生成処理とを実現する。また、パス生成部314は、パス170上から、多関節ロボット100のモーションを作成するための各点(開始点501(図5参照)、通過点502(図5参照)、および終了点503(図5参照))を選択し、これらの各点の情報を2次記憶装置3に格納する。ある局面において、パス生成部314は、中継点160A,160B,160C,160Dを、通過点502の各々として選択してもよい。
画面表示部315は、3D空間10を含む設定画面を出力する。ユーザが装置300を直接使用する場合、画面表示部315は、装置300に接続されたディスプレイに設定画面を出力する。ユーザが自身の端末から、装置300または制御装置350にインストールされたシミュレータ310を使用する場合、画面表示部315は、ネットワークを介して、設定画面をユーザの端末に送信する。ある局面において、画面表示部315は、ユーザの端末にインストールされたクライアントの画面に表示させる情報の一部をユーザの端末に送信してもよい。画面表示部315は、設定画面を介して、ユーザから各種機能の設定入力を受け付けることができる。装置300または制御装置350は、受け付けた設定入力をパスの生成処理に反映する。
また、画面表示部315は、設定画面を介して、図2のステップ1~ステップ5までの処理の実行状況をユーザに提示する。ユーザは、設定画面を参照して、点250,251、投影点252,253、第1の平面形状200、第2の平面形状210、第3の平面形状220、中継点160A,160B,160C,160D、パス170が3D空間10に生成される様子、および、これらが移動する様子を確認することができる。
3Dエンジン316は、3D空間10を生成し、3D空間10内に各オブジェクト(ワーク150等)を配置する。また、3Dエンジン316は、各オブジェクトの動作の描写も行い得る。画面表示部315は、3Dエンジン316の機能を使用して、3D空間10を含む設定画面を表示し得る。
<C.設定画面の例>
次に、図4~図6を参照して、装置300が提供する設定画面の構成の一例について説明する。
次に、図4~図6を参照して、装置300が提供する設定画面の構成の一例について説明する。
図4は、設定画面の全体構成の一例を示す図である。設定画面400は、多関節ロボット100のパスの生成および生成したパスの再生に関係する画面として、3D空間表示410と、パス設定パネル420とを含む。
3D空間表示410は、3D空間10を表示する。また、3D空間表示410は、図1および図2を参照して説明されたパス生成処理が行われる様子(各点、各平面形状、各中継点、および、パス等)を表示する。ある局面において、3D空間表示410は、パネルまたはウィンドウとして実現され得る。また、3D空間表示410は、設定画面400の一部であってもよいし、設定画面400から分離して表示されてもよい。
パス設定パネル420は、多関節ロボット100のパス生成に関係する設定を入力するための画面である。ある局面において、パス設定パネル420は、パネルまたはウィンドウとして実現され得る。また、パス設定パネル420は、設定画面400の一部であってもよいし、設定画面400から分離して表示されてもよい。パス設定パネル420の設定項目および表示の詳細については、図5および図6を用いて説明する。
図5は、パス設定パネル420の第1の例を示す図である。パス設定パネル420の第1の例である画面500は、主な表示項目として、パス情報540と、設定項目510と、生成ボタン517と、テスト動作ボタン518と、変数の生成項目519と、編集ボタン530とを備える。
パス情報540は、開始点501と、通過点502と、終了点503とを含む。また、設定項目510は、コントローラ名設定項目511と、ロボット設定項目512と、座標系設定項目513と、通過点の表示切替項目514と、クリアランス設定項目515と、移動方向設定項目516とを含む。また、変数の生成項目519は、変数名設定項目520と、読込変数生成ボタン521と、書込変数生成ボタン522とを含む。
開始点501、通過点502、および終了点503は、パス170上の各点における多関節ロボット100の先端ツールの位置および姿勢を示す。より具体的には、パス170を構成する各点(開始点501、通過点502、および終了点503)の各々は、多関節ロボット100の先端のツールの位置情報(X軸の座標、Y軸の座標、Z軸の座標)と、姿勢情報(X軸方向の傾き、Y軸方向の傾き、Z軸方向の傾き)とを含む。
開始点501は、多関節ロボット100がワーク150をピック(掴む)するときのツールの位置および姿勢を示す。通過点502は、多関節ロボット100がワーク150を運ぶときの各通過点におけるツールの位置および姿勢を示す。終了点503は、多関節ロボット100がワーク150をプレイスするときのツールの位置および姿勢を示す。ある局面において、通過点502の各々の座標は、中継点160A~160Dの各々の座標と一致していてもよい。他の局面において、通過点502の各々の座標は、中継点160A~160Dの各々の座標と一致していなくてもよい。
編集ボタン530は、ユーザが各点の位置情報および姿勢情報を編集可能にするためのボタンである。例えば、ユーザは、開始点501の隣にある編集ボタン530を押すことで、開始点501の各数値を手動で変更することができる。
設定項目510は、パス170の生成のための各種設定項目を含む。コントローラ名設定項目511は、多関節ロボット100を制御するコントローラ(PLC等)の名称(または識別子)を選択可能または入力可能に構成される。ロボット設定項目512は、パス170の生成の対象となる多関節ロボット100の名称(または識別子)を選択可能または入力可能に構成される。座標系設定項目513は、パス170生成時の座標系を選択可能または入力可能に構成される。一例として、座標系設定項目513において選択可能な座標系は、3D空間10の座標系と、多関節ロボット100の座標系とを含み得る。通過点の表示切替項目514は、通過点502(または中継点160)の表示・非表示の切り替えを選択可能に構成される。
クリアランス設定項目515は、パス生成時のクリアランス(オフセット)を選択可能または入力可能に構成される。ある局面において、クリアランス設定項目515により設定されるクリアランスは、ワーク150の初期位置(点250)、ワーク150の目標位置(点251)、投影点252,253から見たクリアランスであってもよい。他の局面において、クリアランス設定項目515により設定されるクリアランスは、ワーク150の中心から見たクリアランスであってもよい。装置300は、設定されたクリアランスに基づいて、ワーク150と、設置場所110,120および障害物130との干渉を判定し得る。また、装置300は、クリアランスに基づいて、中継点160A,160B,160C,160Dの生成位置を調整し得る。一例として、装置300は、Z軸のクリアランスが10の場合、第1の平面形状200と障害物130とが干渉しなくなった位置よりZ軸方向に10ずれた位置に中継点160B,160Cを生成する。
移動方向設定項目516は、各平面形状(第1の平面形状200、第2の平面形状210、第3の平面形状220)が移動する方向を選択可能または入力可能に構成される。一例として、各平面形状の移動方向がZ軸の正の方向である場合、図2を参照して説明したように、各平面形状は、Z軸の正方向(移動方向270)に動く。なお、各平面形状が移動する方向は、多関節ロボット100またはワーク150が障害物130を避ける方向と言い換えることもできる。
生成ボタン517は、パス170の生成を行い、通過点502(または中継点160)を設定画面400に表示するためのボタンである。装置300は、生成ボタン517が押されたことに基づいて、中継点160およびパス170の生成を行い、通過点502(または中継点160)を設定画面400に表示する。なお、通過点の表示切替項目514により、通過点502(または中継点160)が非表示設定になっている場合、装置300は、通過点502(または中継点160)を設定画面400に表示しない。
テスト動作ボタン518は、3D空間10内で、多関節ロボット100が生成されたパス170に沿って動作するアニメーションを再生するためのボタンである。装置300は、テスト動作ボタン518が押されたことに基づいて、多関節ロボット100が生成されたパス170に沿って動作するアニメーションを再生する。
変数の生成項目519は、ロボット制御プログラムで使用される変数に関する操作項目を含む。装置300は、パス170を構成する各点(開始点501、通過点502、および終了点503)についての変数を生成する。変数名設定項目520は、生成する変数の名前を選択可能または入力可能に構成される。読込変数生成ボタン521は、各点についての読込変数を生成するためのボタンである。装置300は、読込変数生成ボタン521が押されたことに基づいて、各点についての読込変数を生成する。書込変数生成ボタン522は、各点に対する書込変数を生成するためのボタンである。装置300は、書込変数生成ボタン522が押されたことに基づいて、各点についての書込変数を生成する。
図6は、パス設定パネル420の第2の例を示す図である。なお、画面600は、画面500の入力項目の一部を集約または簡略化したものである。図6に示される構成のうち、図5に示される構成と同じものについては同一の符号を付してあり、当該同じ構成の説明は繰り返さない。
画面600は、画面500と異なり、単一の入力欄を有するクリアランス設定項目615と、変数生成ボタン620とを備える。クリアランス設定項目615に設定される値は、Z軸、Y軸、Z軸に共通のクリアランス(オフセット)である。変数生成ボタン620が押されると、装置300は、パス170を構成する各点(開始点501、通過点502、および終了点503)の各々についての読込変数および書込変数を生成する。なお、各々についての読込変数および書込変数は、共通の変数であってもよいし、個別の変数であってもよい。
<D.曲線を含むパスの生成手順>
図1および図2を参照して、直線的なパス170の生成手順を説明したが、本実施の形態に従う装置300は、曲線を含むパスも生成することができる。以下、図7を参照して、曲線を含むパスの生成手順について説明する。
図1および図2を参照して、直線的なパス170の生成手順を説明したが、本実施の形態に従う装置300は、曲線を含むパスも生成することができる。以下、図7を参照して、曲線を含むパスの生成手順について説明する。
図7は、装置300が曲線を含むパスを生成する手順の一例を示す図である。装置300は、直線的なパス170を生成してから、当該パス170に基づいて曲線を含むパス770を生成することができる。以下に、装置300がパス170に基づいて曲線を含むパス770を生成する手順について説明する。
ステップS710において、装置300は、パス170上に、新しく中継点710を生成する。中継点710は、ワーク150が障害物130と干渉しない位置に生成される。ある局面において、装置300は、設定画面を介して、中継点710の生成位置の設定入力を受け付けてもよい。中継点710の生成位置の設定は、例えば、中継点160B(パス170の角)から中継点710までの距離を含み得る。一例として、装置300は、障害物130から見て設置場所110側に位置する中継点160Bを、障害物130側に移動させてもよい。この場合、移動後の中継点160Bが中継点710になる。他の例として、装置300は、中継点160Bから一定距離だけ障害物130側にずれた位置に中継点710を新たに追加してもよい。
ステップS720において、装置300は、中継点160A,721,710を結ぶ曲線を含むパス770を生成する。次に、装置300は、パス770上のいくつかの位置に、中継点160Aおよび中継点710の間を補完する中継点720,721,722を生成する。なお、中継点720,721,722は一例であり、装置300は、中継点160Aおよび中継点710の間を補完する任意の数の中継点を生成し得る。
ステップS730において、装置300は、曲線を構成する中継点の一部(図7の例では、中継点720,722)を削除し、曲線を構成する中央の点(図7の例では、中継点721)を残す。次に、装置300は、中継点160A,721,710を多関節ロボット100の通過点502の各々として2次記憶装置3に記憶する。
ある局面において、装置300は、生成されたパス770上から中継点とは別に複数の点を選択し、当該選択された複数の点を多関節ロボット100の通過点502の各々として2次記憶装置3に記憶してもよい。他の局面において、装置300は、曲線を構成する中継点の一部(中継点720,722)を削除しなくてもよい。この場合、装置300は、中継点160A,720,721,722,710を多関節ロボット100の通過点502の各々として2次記憶装置3に記憶し得る。
なお、装置300は、逆側(障害物130から見て設置場所120側)についても、ステップS710~S730の処理と同様の処理を行うことで、曲線を含むパスを生成し得る。
以上説明したように、本実施の形態に従う装置300は、複数の平面形状を用いて中継点を生成し、当該生成された中継点を経由するパスを生成する機能を備える。当該機能により、ユーザは、少ない設定(各平面形状の移動方向、ワーク150のクリアランス等)を行うだけで、容易に意図した多関節ロボット100のパスを生成し得る。すなわち、装置300は、パスの生成時に、複数の中継点を通るという制限を敢えて設けることにより、少ない設定項目のみで、ユーザが意図したパスを生成し得る。
また、装置300は、生成された各中継点160および/またはパス170を3D空間10に表示する機能と、3D空間10内で多関節ロボット100を生成されたパス170に沿って動かす機能とを備える。当該機能により、ユーザは、生成されたパス170がどのようなパスであるか、また、自身が意図したパスとなっているか否かを確認し得る。
さらに、装置300は、直線的なパス170に基づいて曲線を含むパス770を生成する機能を備える。当該機能により、ユーザは、多関節ロボット100の関節に負荷がかかりにくい曲線的なパスを生成し得る。
<E.付記>
以上のように、本実施の形態は以下のような開示を含む。
[構成1]
多関節ロボット(100)のパスを生成するための装置(300)であって、
3D空間(10)内のワーク(150)の初期位置と、上記ワーク(150)の目標位置とを取得する位置決定部(311)と、
上記初期位置の投影点および上記目標位置の投影点を含む第1の平面形状(200)を生成する平面形状生成部(312)と、
上記第1の平面形状(200)を移動させる移動部(313)と、
上記初期位置と、上記目標位置と、上記第1の平面形状(200)に含まれる上記初期位置の投影点と、上記目標位置の投影点とを結ぶ経路上に中継点(160A,160B,160C,160D)を配置し、上記中継点(160A,160B,160C,160D)に基づいて上記多関節ロボット(100)のパスを生成するパス生成部(314)とを備える、装置(300)。
[構成2]
上記初期位置は、上記ワーク(150)と上記ワーク(150)がピックされる場所との接地面上の点であり、
上記目標位置は、上記ワーク(150)と上記ワーク(150)がプレイスされる場所との接地面上の点である、構成1に記載の装置(300)。
[構成3]
上記第1の平面形状(200)は、上記初期位置の投影点および上記目標位置の投影点を対角の頂点とする四角形、または、上記初期位置の投影点および上記目標位置の投影点を結ぶ線分と平行な辺を含む四角形である、構成2に記載の装置(300)。
[構成4]
上記パス生成部(314)は、上記第1の平面形状(200)が、上記初期位置および上記目標位置の間の障害物と干渉しない位置にあるときの、
上記初期位置の投影点のある位置に、上記中継点(160A,160B,160C,160D)の1つを生成し、
上記目標位置の投影点のある位置に、上記中継点(160A,160B,160C,160D)の1つを生成する、構成1~3のいずれかに記載の装置(300)。
[構成5]
上記平面形状生成部(312)は、上記初期位置示す点を含む第2の平面形状(210)と、上記目標位置を示す点を含む第3の平面形状(220)とをさらに生成する、構成4に記載の装置(300)。
[構成6]
上記移動部(313)は、上記第2の平面形状(210)および上記第3の平面形状(220)を上記第1の平面形状(200)と同じ方向に移動させ、
上記パス生成部(314)は、
上記第2の平面形状(210)が上記初期位置に配置された第1の設置場所の側面と干渉しない位置にあるときの、上記初期位置を示す点がある位置に、上記中継点(160A,160B,160C,160D)の1つを生成し、
上記第3の平面形状(220)が上記目標位置に配置された第2の設置場所の側面と干渉しない位置にあるときの、上記目標位置を示す点がある位置に、上記中継点(160A,160B,160C,160D)の1つを生成する、構成5に記載の装置(300)。
[構成7]
上記パス生成部(314)は、
生成した上記パスから、第1の中継点(160A,160B,160C,160D)と、第2の中継点(160A,160B,160C,160D)とを選択し、
上記第1の中継点(160A,160B,160C,160D)および上記第2の中継点(160A,160B,160C,160D)を接続する曲線上に位置する1つ以上の補完点を生成し、
上記第1の中継点(160A,160B,160C,160D)、上記第2の中継点(160A,160B,160C,160D)、および、上記1つ以上の補完点の少なくとも一部に基づいて、曲線を含むパスを生成する、構成1~6のいずれかに記載の装置(300)。
[構成8]
コンピュータが多関節ロボット(100)のパスを生成するための方法であって、
3D空間(10)内のワーク(150)の初期位置と、上記ワーク(150)の目標位置とを取得するステップと、
上記初期位置の投影点および上記目標位置の投影点を含む第1の平面形状(200)を生成するステップと、
上記第1の平面形状(200)を移動させるステップと、
上記初期位置と、上記目標位置と、上記第1の平面形状(200)に含まれる上記初期位置の投影点と、上記目標位置の投影点とを結ぶ経路上に中継点(160A,160B,160C,160D)を配置し、上記中継点(160A,160B,160C,160D)に基づいて上記多関節ロボット(100)のパスを生成するステップとを含む、方法。
[構成9]
コンピュータに多関節ロボット(100)のパスを生成させるためのプログラムであって、
3D空間(10)内のワーク(150)の初期位置と、上記ワーク(150)の目標位置とを取得するステップと、
上記初期位置の投影点および上記目標位置の投影点を含む第1の平面形状(200)を生成するステップと、
上記第1の平面形状(200)を移動させるステップと、
上記初期位置と、上記目標位置と、上記第1の平面形状(200)に含まれる上記初期位置の投影点と、上記目標位置の投影点とを結ぶ経路上に中継点(160A,160B,160C,160D)を配置し、上記中継点(160A,160B,160C,160D)に基づいて上記多関節ロボット(100)のパスを生成するステップとを上記コンピュータに実行させる、プログラム。
以上のように、本実施の形態は以下のような開示を含む。
[構成1]
多関節ロボット(100)のパスを生成するための装置(300)であって、
3D空間(10)内のワーク(150)の初期位置と、上記ワーク(150)の目標位置とを取得する位置決定部(311)と、
上記初期位置の投影点および上記目標位置の投影点を含む第1の平面形状(200)を生成する平面形状生成部(312)と、
上記第1の平面形状(200)を移動させる移動部(313)と、
上記初期位置と、上記目標位置と、上記第1の平面形状(200)に含まれる上記初期位置の投影点と、上記目標位置の投影点とを結ぶ経路上に中継点(160A,160B,160C,160D)を配置し、上記中継点(160A,160B,160C,160D)に基づいて上記多関節ロボット(100)のパスを生成するパス生成部(314)とを備える、装置(300)。
[構成2]
上記初期位置は、上記ワーク(150)と上記ワーク(150)がピックされる場所との接地面上の点であり、
上記目標位置は、上記ワーク(150)と上記ワーク(150)がプレイスされる場所との接地面上の点である、構成1に記載の装置(300)。
[構成3]
上記第1の平面形状(200)は、上記初期位置の投影点および上記目標位置の投影点を対角の頂点とする四角形、または、上記初期位置の投影点および上記目標位置の投影点を結ぶ線分と平行な辺を含む四角形である、構成2に記載の装置(300)。
[構成4]
上記パス生成部(314)は、上記第1の平面形状(200)が、上記初期位置および上記目標位置の間の障害物と干渉しない位置にあるときの、
上記初期位置の投影点のある位置に、上記中継点(160A,160B,160C,160D)の1つを生成し、
上記目標位置の投影点のある位置に、上記中継点(160A,160B,160C,160D)の1つを生成する、構成1~3のいずれかに記載の装置(300)。
[構成5]
上記平面形状生成部(312)は、上記初期位置示す点を含む第2の平面形状(210)と、上記目標位置を示す点を含む第3の平面形状(220)とをさらに生成する、構成4に記載の装置(300)。
[構成6]
上記移動部(313)は、上記第2の平面形状(210)および上記第3の平面形状(220)を上記第1の平面形状(200)と同じ方向に移動させ、
上記パス生成部(314)は、
上記第2の平面形状(210)が上記初期位置に配置された第1の設置場所の側面と干渉しない位置にあるときの、上記初期位置を示す点がある位置に、上記中継点(160A,160B,160C,160D)の1つを生成し、
上記第3の平面形状(220)が上記目標位置に配置された第2の設置場所の側面と干渉しない位置にあるときの、上記目標位置を示す点がある位置に、上記中継点(160A,160B,160C,160D)の1つを生成する、構成5に記載の装置(300)。
[構成7]
上記パス生成部(314)は、
生成した上記パスから、第1の中継点(160A,160B,160C,160D)と、第2の中継点(160A,160B,160C,160D)とを選択し、
上記第1の中継点(160A,160B,160C,160D)および上記第2の中継点(160A,160B,160C,160D)を接続する曲線上に位置する1つ以上の補完点を生成し、
上記第1の中継点(160A,160B,160C,160D)、上記第2の中継点(160A,160B,160C,160D)、および、上記1つ以上の補完点の少なくとも一部に基づいて、曲線を含むパスを生成する、構成1~6のいずれかに記載の装置(300)。
[構成8]
コンピュータが多関節ロボット(100)のパスを生成するための方法であって、
3D空間(10)内のワーク(150)の初期位置と、上記ワーク(150)の目標位置とを取得するステップと、
上記初期位置の投影点および上記目標位置の投影点を含む第1の平面形状(200)を生成するステップと、
上記第1の平面形状(200)を移動させるステップと、
上記初期位置と、上記目標位置と、上記第1の平面形状(200)に含まれる上記初期位置の投影点と、上記目標位置の投影点とを結ぶ経路上に中継点(160A,160B,160C,160D)を配置し、上記中継点(160A,160B,160C,160D)に基づいて上記多関節ロボット(100)のパスを生成するステップとを含む、方法。
[構成9]
コンピュータに多関節ロボット(100)のパスを生成させるためのプログラムであって、
3D空間(10)内のワーク(150)の初期位置と、上記ワーク(150)の目標位置とを取得するステップと、
上記初期位置の投影点および上記目標位置の投影点を含む第1の平面形状(200)を生成するステップと、
上記第1の平面形状(200)を移動させるステップと、
上記初期位置と、上記目標位置と、上記第1の平面形状(200)に含まれる上記初期位置の投影点と、上記目標位置の投影点とを結ぶ経路上に中継点(160A,160B,160C,160D)を配置し、上記中継点(160A,160B,160C,160D)に基づいて上記多関節ロボット(100)のパスを生成するステップとを上記コンピュータに実行させる、プログラム。
今回開示された実施の形態は全ての点で例示であって制限的なものではないと考えられるべきである。本開示の範囲は上記した説明ではなくて請求の範囲によって示され、請求の範囲と均等の意味及び範囲内で全ての変更が含まれることが意図される。また、実施の形態および各変形例において説明された開示内容は、可能な限り、単独でも、組合わせても、実施することが意図される。
1 CPU、2 1次記憶装置、3 2次記憶装置、4 外部機器インターフェイス、5 入力インターフェイス、6 出力インターフェイス、7 通信インターフェイス、10 3D空間、100 多関節ロボット、110,120 設置場所、130 障害物、150 ワーク、160,710,720,721,722 中継点、170,770 パス、200 第1の平面形状、210 第2の平面形状、220 第3の平面形状、250,251 点、252,253 投影点、270 移動方向、300 装置、310 シミュレータ、311 位置決定部、312 平面形状生成部、313 移動部、314 パス生成部、315 画面表示部、316 3Dエンジン、350 制御装置、400 設定画面、410 3D空間表示、420 パス設定パネル、500,600 画面、501 開始点、502 通過点、503 終了点、510 設定項目、511 コントローラ名設定項目、512 ロボット設定項目、513 座標系設定項目、514 表示切替項目、515,615 クリアランス設定項目、516 移動方向設定項目、517 生成ボタン、518 テスト動作ボタン、519 変数の生成項目、520 変数名設定項目、521 読込変数生成ボタン、522 書込変数生成ボタン、530 編集ボタン、540 パス情報、620 変数生成ボタン。
Claims (9)
- 多関節ロボットのパスを生成するための装置であって、
3D空間内のワークの初期位置と、前記ワークの目標位置とを取得する位置決定部と、
前記初期位置の投影点および前記目標位置の投影点を含む第1の平面形状を生成する平面形状生成部と、
前記第1の平面形状を移動させる移動部と、
前記初期位置と、前記目標位置と、前記第1の平面形状に含まれる前記初期位置の投影点と、前記目標位置の投影点とを結ぶ経路上に中継点を配置し、前記中継点に基づいて前記多関節ロボットのパスを生成するパス生成部とを備える、装置。 - 前記初期位置は、前記ワークと前記ワークがピックされる場所との接地面上の点であり、
前記目標位置は、前記ワークと前記ワークがプレイスされる場所との接地面上の点である、請求項1に記載の装置。 - 前記第1の平面形状は、前記初期位置の投影点および前記目標位置の投影点を対角の頂点とする四角形、または、前記初期位置の投影点および前記目標位置の投影点を結ぶ線分と平行な辺を含む四角形である、請求項2に記載の装置。
- 前記パス生成部は、前記第1の平面形状が、前記初期位置および前記目標位置の間の障害物と干渉しない位置にあるときの、
前記初期位置の投影点のある位置に、前記中継点の1つを生成し、
前記目標位置の投影点のある位置に、前記中継点の1つを生成する、請求項1~3のいずれかに記載の装置。 - 前記平面形状生成部は、前記初期位置示す点を含む第2の平面形状と、前記目標位置を示す点を含む第3の平面形状とをさらに生成する、請求項4に記載の装置。
- 前記移動部は、前記第2の平面形状および前記第3の平面形状を前記第1の平面形状と同じ方向に移動させ、
前記パス生成部は、
前記第2の平面形状が前記初期位置に配置された第1の設置場所の側面と干渉しない位置にあるときの、前記初期位置を示す点がある位置に、前記中継点の1つを生成し、
前記第3の平面形状が前記目標位置に配置された第2の設置場所の側面と干渉しない位置にあるときの、前記目標位置を示す点がある位置に、前記中継点の1つを生成する、請求項5に記載の装置。 - 前記パス生成部は、
生成した前記パスから、第1の中継点と、第2の中継点とを選択し、
前記第1の中継点および前記第2の中継点を接続する曲線上に位置する1つ以上の補完点を生成し、
前記第1の中継点、前記第2の中継点、および、前記1つ以上の補完点の少なくとも一部に基づいて、曲線を含むパスを生成する、請求項1~6のいずれかに記載の装置。 - コンピュータが多関節ロボットのパスを生成するための方法であって、
3D空間内のワークの初期位置と、前記ワークの目標位置とを取得するステップと、
前記初期位置の投影点および前記目標位置の投影点を含む第1の平面形状を生成するステップと、
前記第1の平面形状を移動させるステップと、
前記初期位置と、前記目標位置と、前記第1の平面形状に含まれる前記初期位置の投影点と、前記目標位置の投影点とを結ぶ経路上に中継点を配置し、前記中継点に基づいて前記多関節ロボットのパスを生成するステップとを含む、方法。 - コンピュータに多関節ロボットのパスを生成させるためのプログラムであって、
3D空間内のワークの初期位置と、前記ワークの目標位置とを取得するステップと、
前記初期位置の投影点および前記目標位置の投影点を含む第1の平面形状を生成するステップと、
前記第1の平面形状を移動させるステップと、
前記初期位置と、前記目標位置と、前記第1の平面形状に含まれる前記初期位置の投影点と、前記目標位置の投影点とを結ぶ経路上に中継点を配置し、前記中継点に基づいて前記多関節ロボットのパスを生成するステップとを前記コンピュータに実行させる、プログラム。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2022-020099 | 2022-02-14 | ||
JP2022020099A JP2023117506A (ja) | 2022-02-14 | 2022-02-14 | 多関節ロボットのパスを生成する装置、多関節ロボットのパスを生成する方法および多関節ロボットのパスを生成するプログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2023153469A1 true WO2023153469A1 (ja) | 2023-08-17 |
Family
ID=87564534
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP2023/004322 WO2023153469A1 (ja) | 2022-02-14 | 2023-02-09 | 多関節ロボットのパスを生成する装置、多関節ロボットのパスを生成する方法および多関節ロボットのパスを生成するプログラム |
Country Status (2)
Country | Link |
---|---|
JP (1) | JP2023117506A (ja) |
WO (1) | WO2023153469A1 (ja) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS6235910A (ja) * | 1985-08-09 | 1987-02-16 | Fanuc Ltd | 工具干渉チエツク方法 |
JPH05127718A (ja) * | 1991-11-08 | 1993-05-25 | Fujitsu Ltd | マニピユレータの手先軌道自動生成装置 |
JP2016172293A (ja) * | 2015-03-16 | 2016-09-29 | ファナック株式会社 | 曲線部を有する軌道を生成するロボットの軌道生成装置 |
JP2018134703A (ja) * | 2017-02-21 | 2018-08-30 | 株式会社安川電機 | ロボットシミュレータ、ロボットシステム及びシミュレーション方法 |
-
2022
- 2022-02-14 JP JP2022020099A patent/JP2023117506A/ja active Pending
-
2023
- 2023-02-09 WO PCT/JP2023/004322 patent/WO2023153469A1/ja unknown
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS6235910A (ja) * | 1985-08-09 | 1987-02-16 | Fanuc Ltd | 工具干渉チエツク方法 |
JPH05127718A (ja) * | 1991-11-08 | 1993-05-25 | Fujitsu Ltd | マニピユレータの手先軌道自動生成装置 |
JP2016172293A (ja) * | 2015-03-16 | 2016-09-29 | ファナック株式会社 | 曲線部を有する軌道を生成するロボットの軌道生成装置 |
JP2018134703A (ja) * | 2017-02-21 | 2018-08-30 | 株式会社安川電機 | ロボットシミュレータ、ロボットシステム及びシミュレーション方法 |
Also Published As
Publication number | Publication date |
---|---|
JP2023117506A (ja) | 2023-08-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Ostanin et al. | Interactive robot programing using mixed reality | |
US10521522B2 (en) | Robot simulator and file generation method for robot simulator | |
US9984178B2 (en) | Robot simulator, robot teaching apparatus and robot teaching method | |
EP3643455B1 (en) | Method and system for programming a cobot for a plurality of industrial cells | |
US7606633B2 (en) | Robot simulation device, and robot simulation program | |
WO2014013605A1 (ja) | ロボットシミュレータ、ロボット教示装置およびロボット教示方法 | |
US11511415B2 (en) | System and method for robotic bin picking | |
Wolfartsberger et al. | A virtual reality supported 3D environment for engineering design review | |
JP2019177477A (ja) | 3次元ロボットワークセルデータの表示システム、表示方法及び表示装置 | |
US20130116828A1 (en) | Robot teach device with 3-d display | |
US20060279574A1 (en) | Systems and methods for generating 3d simulations | |
JP2017094406A (ja) | シミュレーション装置、シミュレーション方法、およびシミュレーションプログラム | |
CN107179743A (zh) | 机器人控制装置、信息处理装置以及机器人*** | |
US20170197308A1 (en) | Teaching data generating device and teaching data-generating method for work robot | |
JP2020110885A (ja) | 経路生成装置、経路生成方法、及び経路生成プログラム | |
JPS6179589A (ja) | ロボツト運転装置 | |
WO2023153469A1 (ja) | 多関節ロボットのパスを生成する装置、多関節ロボットのパスを生成する方法および多関節ロボットのパスを生成するプログラム | |
US20220395985A1 (en) | Information processing apparatus, information processing method, display apparatus, display method, robot system, article production method, program, and storage medium | |
JP2009166172A (ja) | ロボットのシミュレーション方法及びロボットのシミュレーション装置 | |
JP2018118330A (ja) | 演算装置、演算方法、演算プログラムおよびロボットシステム | |
TWI847257B (zh) | 機器人示教系統 | |
US20230226688A1 (en) | Robot programming | |
TW202416167A (zh) | 機器人模型的自動建立方法 | |
JP2023167643A (ja) | ロボット動作計画支援システム、ロボット動作計画支援方法、およびコンピュータプログラム | |
WO2018180297A1 (ja) | ロボット教示装置、ロボット教示プログラム、ロボット教示装置の制御方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 23752933 Country of ref document: EP Kind code of ref document: A1 |