WO2018180297A1 - ロボット教示装置、ロボット教示プログラム、ロボット教示装置の制御方法 - Google Patents
ロボット教示装置、ロボット教示プログラム、ロボット教示装置の制御方法 Download PDFInfo
- Publication number
- WO2018180297A1 WO2018180297A1 PCT/JP2018/008718 JP2018008718W WO2018180297A1 WO 2018180297 A1 WO2018180297 A1 WO 2018180297A1 JP 2018008718 W JP2018008718 W JP 2018008718W WO 2018180297 A1 WO2018180297 A1 WO 2018180297A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- point
- robot
- workpiece
- work
- virtual space
- Prior art date
Links
Images
Classifications
-
- 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 invention relates to a robot teaching device, a robot teaching program, and a control method for the robot teaching device.
- Patent Document 1 discloses a technique (teaching technique) in which a work or a robot that is a work target is placed in a virtual space by a computer and a robot operation program is created.
- the trajectory when the robot moves the workpiece is calculated based on the tip position (TCP: Tool Center Point) of the robot hand.
- TCP Tool Center Point
- the workpiece is accurately moved due to a change in the workpiece position with respect to the robot hand (for example, whether the workpiece is held at the tip of the hand or the workpiece at the back of the hand). It may not be possible to move to a desired position.
- the present invention has been made in view of the above problems, and an object of the present invention is to provide a technique by which a robot can accurately move a workpiece to a desired position.
- the robot teaching apparatus of the present invention that solves the above-described problems includes a first acquisition unit that acquires a predetermined point of a workpiece provided at a first position in a virtual space as a first point, and a second point in the virtual space.
- a second acquisition unit that acquires the predetermined point of the workpiece provided at the position as a second point, and a robot in the virtual space based on the first and second points,
- a calculation unit that calculates a trajectory of the holding unit when moving from the first position to the second position.
- the robot since the trajectory is calculated based on a predetermined point of the workpiece, the robot can move the workpiece to a desired position with high accuracy.
- FIG. 1 is a diagram illustrating a configuration of a robot teaching device 10.
- FIG. 2 is a diagram showing a list of blocks arranged in a virtual space 100.
- FIG. FIG. 3 is a diagram showing blocks arranged in a virtual space 100. It is a figure which shows the setting screen. It is a figure which shows the functional block of the robot teaching apparatus. It is a figure which shows an example when various information is input into the setting screen. It is a flowchart which shows an example of the process which the robot teaching apparatus 10 performs.
- 4 is a diagram illustrating an example of an approach point P3 in the virtual space 100.
- FIG. 4 is a diagram illustrating an example of an operation of a hand 50 in a virtual space 100.
- FIG. 1 is a diagram illustrating a configuration of the robot teaching apparatus 10.
- the robot teaching device 10 is a device for teaching an operation to an arm type robot X (not shown) installed in a factory line, and includes a CPU (Central Processing Unit) 20, a memory 21, a storage device 22, and an input device. 23, a display device 24, and a communication device 25.
- the arm type robot X is a multi-joint robot having six axes (x axis, y axis, z axis, and rotation directions ⁇ x, ⁇ y, ⁇ z of each axis).
- the CPU 20 implements various functions in the robot teaching device 10 by executing programs stored in the memory 21 and the storage device 22.
- the memory 21 is, for example, a RAM (Random-Access Memory) or the like, and is used as a temporary storage area for programs and data.
- RAM Random-Access Memory
- the storage device 22 is a non-volatile storage means area such as a hard disk, and stores a teaching program and various data.
- the storage device 22 is loaded with 3D CAD (Computer Aided Design) data Da indicating a 3D model of the arm type robot X, 3D CAD data Db indicating a 3D model of a work that is a work object, and a work.
- 3D CAD data Dc indicating a 3D model of the shelf to be stored is stored.
- the three-dimensional CAD data Da includes information on the world coordinate system of the virtual space where the model of the arm type robot X is arranged and the local coordinate system of the model of the arm type robot X.
- the three-dimensional CAD data Db and Dc are the same as the three-dimensional CAD data Da.
- the storage device 22 since a plurality (n) of works are used, stores three-dimensional CAD data Db1 to three-dimensional CAD data Dbn corresponding to each of the plurality of works.
- the input device 23 is, for example, a touch panel or a keyboard, and is a device that receives an input of a user operation result.
- the display device 24 is a display, for example, and is a device that displays various information and processing results.
- the communication device 25 is a communication means such as a network interface, and transmits / receives data to / from an external computer or the arm robot 40 via a communication network (not shown) such as the Internet or a LAN (Local Area Network). Do.
- a communication network such as the Internet or a LAN (Local Area Network).
- FIG. 2 is a diagram showing an example of a hierarchical structure screen that a user refers to and edits in order to determine the arrangement of models such as the arm type robot X in the virtual space.
- the screen 30 is a screen showing a world coordinate system and a hierarchical structure (tree structure) of various configurations, and is displayed on the display device 24 when the CPU 20 executes a predetermined teaching program.
- “World” indicating the world coordinate system is set in the highest hierarchy.
- “Robot” indicating a model of the arm type robot X and “shelf” indicating a shelf on which a work is placed are set. For this reason, “Robot” and “shelf” are arranged at positions determined in the world coordinate system in the virtual space.
- HAND indicating the model of the hand of the arm type robot X is set.
- OG A1 indicating the music box A1 that is a work is set. Is set. For this reason, “HAND” is arranged at a position defined in the local coordinate system based on “Robot”, and “OG A1” is arranged at a position defined in the local coordinate system based on “HAND”. Is done.
- “OG B1” to “OG B10” indicating ten music boxes B1 to B10 are set under the “shelf” hierarchy. For this reason, “OG B1” to “OG B10” are arranged at positions determined in the local coordinate system with “shelf” as a reference.
- the position of the configuration arranged under the hierarchy is also changed. For example, if the value of the three-dimensional CAD data D3 is changed and the position of the “shelf” in the world coordinate system is changed, the world of “OG B1” to “OG B10” provided in the hierarchy below the “shelf” The position in the coordinate system also moves with the “shelf”. However, the position of each of “OG B1” to “OG B10” with respect to the “shelf” is determined in a local coordinate system based on the “shelf”. Therefore, even when the position of the “shelf” with respect to the world coordinate system is changed, the position of each of “OG B1” to “OG B10” with respect to the “shelf” does not change.
- FIG. 3 is a diagram illustrating the virtual space 100 reflecting the configuration included in the screen 30.
- the virtual space 100 is displayed on the display device 24 when the CPU 20 executes a predetermined teaching program.
- an arm type robot 40 In the virtual space 100, an arm type robot 40, music boxes A1, B1 to B10, and a shelf 45 are provided.
- the arm type robot 40 is a model expressed based on “Robot” (three-dimensional CAD data Da), and includes a hand (holding unit) 50 and an arm 51 to which the hand 50 is attached. As described above, the position of the arm 51 in the virtual space 100 is arranged at a position determined in the world coordinate system, and the position of the hand 50 is set at a position determined in the local coordinate system with the arm 51 as a reference. Be placed.
- the music box A1 is a model representing a work expressed based on “OG A1” (three-dimensional CAD data Db1).
- the position of the music box A1 in the virtual space 100 is arranged at a position determined by a local coordinate system with the hand 50 as a reference, in this case, a position held (held) by the hand 50. That is, the workpiece is held by the holding unit. Further, the state where the work is not held by the holding unit is a state where the hand 50 is not holding the work.
- Music boxes B1 to B10 are models expressed based on “OG B1” to “OG B10” (three-dimensional CAD data Db2 to Db11).
- the positions of the music boxes B1 to B10 in the virtual space 100 are arranged at positions determined by a local coordinate system with the shelf 45 as a reference. For example, here, the music boxes B1 to B10 are arranged in two rows on the shelf 45.
- the shelf 45 is a model expressed based on “shelf” (three-dimensional CAD data Dc), and is arranged at a position determined in the world coordinate system.
- FIG. 4 is a diagram showing an example of a setting screen 60 displayed on the display device 24 when teaching the arm type robot X.
- the setting screen 60 includes a function name designation area 70, a work start position input area 71, a work end position input area 72, an approach point setting area 73, and an escape point setting area 74.
- the function name designation area 70 a “function name” indicating an operation program (subroutine) to be created is designated.
- the function name designation area 70 includes a work type designation area 70a and a function name input area 70b.
- work to be executed by the arm type robot X is designated.
- a work such as placing (“place”), taking (grabbing) (“pick up”), or discarding (“dispose”) can be selected.
- a file name for example, a date or reference number
- the work start position input area 71 (first information input section), information (first information) indicating a work provided at the start position of the operation of the hand 50 of the arm type robot 40 is input.
- first information information indicating a work provided at the start position of the operation of the hand 50 of the arm type robot 40 is input.
- the work end position input area 72 (second information input unit), information (second information) indicating the work provided at the end position of the operation of the hand 50 of the arm type robot 40 is input.
- second information information indicating the work provided at the end position of the operation of the hand 50 of the arm type robot 40 is input.
- the user has previously placed the work to be moved at the work end position (second position) after the movement.
- the approach point setting area 73 includes a work work designation area 73a, a distance designation area 73b, and a direction instruction area 73c. Information input to each of the work work designation area 73a, the distance designation area 73b, and the direction instruction area 73c corresponds to third information.
- the distance d1 (first distance) from the workpiece selected in the work workpiece designation area 73a is input to the distance designation area 73b.
- a direction v1 that is substantially perpendicular to the surface (for example, the bottom surface) of the workpiece selected in the work workpiece designation area 73a is instructed.
- the escape point setting area 74 (fourth information input unit), a point (escape point) through which the TCP of the hand 50 passes when the movement of the hand 50 is finished and the hand 50 is returned to the original position or the like is set.
- the escape point is a point set to prevent the hand 50 from hitting an obstacle or another workpiece after the workpiece is placed.
- the escape point setting area 74 includes a work work designation area 74a, a distance designation area 74b, and a direction instruction area 74c.
- the information input to each of the work work designation area 74a, the distance designation area 74b, and the direction instruction area 74c corresponds to fourth information.
- the work work designation area 74a information indicating the work placed at the end position of the operation of the hand 50 is input.
- information other than information indicating the work placed at the end position of the operation of the hand 50 may be input.
- the distance designation area 74b In the distance designation area 74b, the distance d2 (second distance) from the workpiece selected in the work workpiece designation area 74a is input.
- a direction v2 that is substantially perpendicular to the surface (for example, the bottom surface) of the workpiece selected in the work workpiece designation area 74a is instructed.
- the directions v1 and v2 are determined based on the workpiece edge, the workpiece normal vector, the workpiece center axis, and the like included in the workpiece model.
- FIG. 5 is a diagram showing functional blocks implemented in the CPU 20 when the CPU 20 executes a predetermined teaching program.
- the CPU 20 includes functional blocks of a display control unit 80, a first acquisition unit 81, a second acquisition unit 82, a third acquisition unit 83, a fourth acquisition unit 84, a calculation unit 85, and a transmission unit 86. Is provided.
- the display control unit 80 displays various information on the display device 24 based on the instruction from the input device 23, the processing result of the teaching program executed by the CPU 20, and the like. For example, the display control unit 80 displays the virtual space 100 illustrated in FIG. 3 and the setting screen 60 illustrated in FIG. 4 on the display device 24. Further, the display control unit 80 displays an animation of the hand 50 when moving the work on the display device 24.
- the first acquisition unit 81 Based on the information (three-dimensional CAD data) indicating the workpiece input to the work start position input area 71, the first acquisition unit 81 uses the workpiece TCP (predetermined point) as the teaching point P1 (first point). get.
- 2nd acquisition part 82 acquires TCP of a work as teaching point P2 (2nd point) based on information (three-dimensional CAD data) which shows a work inputted into work end position input area 72.
- information three-dimensional CAD data
- work the point which the 1st acquisition part 81 and the 2nd acquisition part 82 acquire here was set as TCP of the workpiece
- 3rd acquisition part 83 acquires approach point P3 (3rd point) which a work passes, when a work is moved based on information inputted into approach point setting area 73. Specifically, the third acquisition unit 83 acquires the TCP (predetermined point) of the workpiece from information indicating the workpiece selected in the work workpiece designation area 73a. Then, the third acquisition unit 83 acquires, as an approach point P3, a point separated from the workpiece TCP by the distance d1 in the designated direction v1.
- the fourth acquisition unit 84 acquires an escape point P4 (fourth point) through which the hand 50 passes when the hand 50 is moved based on the information input in the escape point setting area 74. Specifically, the fourth acquisition unit 84 acquires the TCP of the work from information indicating the work selected in the work work designation area 74a. Then, the fourth acquisition unit 84 acquires, as an escape point P4, a point separated from the workpiece TCP by the distance d2 in the designated direction v2. Note that the starting point for determining the approach point P3 and the escape point P4 is the TCP of the workpiece, but it may be a point indicating the center of gravity of the workpiece, for example.
- the calculation unit 85 calculates a trajectory for moving the hand 50 based on the teaching points P1, P2, the approach point P3, and the escape point P4. Further, the calculation unit 85 stores the calculation result in the storage device 22.
- the transmission unit 86 transmits a calculation result to a control device (not shown) of the arm type robot X based on an instruction from the user. As a result, the arm type robot X can operate according to the calculation result. Although details are omitted, the arm robot X generates an operation program for operating each joint of the arm robot X based on the calculation result. Further, the CPU 20 may generate an operation program and send it to the arm type robot X.
- FIG. 6 is a diagram illustrating a setting screen 61 in a state where various information is input to the setting screen 60.
- FIG. 7 is a flowchart illustrating an example of processing executed by the robot teaching apparatus 10.
- the trajectory of the hand 50 when the arm type robot 40 moves the “music box” from the “music box A1” position (first position) to the “music box B9” position (second position).
- a case where the trajectory of the hand 50 after the “music box” is placed on the shelf 45 is calculated will be described.
- “music box A1” and ten “music boxes B1” to “music box B10” are arranged. Is arranged to calculate For example, when “music box A1” and “music box B1” are selected, the trajectory of hand 50 when moving “music box” from the position of “music box A1” to the position of “music box B1” is calculated.
- a work placing ("place") work is designated as the work, and "OG1_to_shelf” is input as the file name indicating the work.
- “music box A1” (“OG A1”) gripped by the hand 50 is input to the work start position input area 71, and “music box B9 placed on the shelf 45 is input to the work end position input area 72.
- “(" OG B9 ") is entered.
- “Music box B9” is input to the work work specification area 73a of the approach point setting area 73, “200” is input to the distance specification area 73b, and “edge” of the music box B9 is input to the direction instruction area 73c. It is specified.
- “Music box B9” is input to the work work designation area 74a of the escape point setting area 74, “100” is input to the distance designation area 74b, and “edge” of the music box B9 is displayed in the direction indication area 74c. It is specified.
- the first acquisition unit 81 acquires the TCP of the music box A1 as the teaching point P1 based on the information of the music box A1 input to the work start position input area 71 (S100).
- the second acquisition unit 82 acquires the TCP of the music box B9 as the teaching point P2 based on the information of the music box B9 input to the work end position input area 72 (S101).
- the third acquisition unit 83 starts from the TCP of the music box B9 selected in the work work designation area 73a, and is separated by a distance d1 “200” mm in the edge direction v1 of the music box B9.
- a point is acquired as an approach point P3 (S102).
- S102 approach point
- the x-axis direction is the longitudinal direction of the surface on which the music box of the shelf 45 is placed (hereinafter referred to as the placement surface), the y-axis direction is the direction perpendicular to the x-axis on the placement surface, and the z-axis The direction is a direction perpendicular to the placement surface.
- the bottom surface of the music box B9 is the xy plane in FIG. 8, and the specified edge of the music box B9 is perpendicular to the bottom surface of the music box B9. Therefore, the edge direction v1 is the z-axis direction (+ z direction).
- the fourth acquisition unit 84 starts from the TCP of the music box B9 selected in the work work designation area 74a, and has a distance d2 “100” from the direction v2 (+ z direction) based on the edge of the music box B9. A point separated by “mm” is acquired as the escape point P4 (S103).
- the distances d1 and d2 are distances longer than the height of the music box B9 in the z direction, for example.
- the calculation unit 85 calculates the trajectory of the hand 50 when moving the hand 50 based on the teaching points P1, P2, the approach point P3, and the escape point P4 (S104). Specifically, first, the calculation unit 85 calculates the trajectory O1 of the hand 50 when moving the “music box” from the teaching point P1 to the approach point P3. Further, the calculation unit 85 calculates the trajectory O2 of the hand 50 when moving the “music box” from the approach point P3 to the teaching point P2. Further, the calculation unit 85 calculates a trajectory O3 for moving the hand 50 to the escape point P4. When the trajectory O3 is calculated, for example, the TCP of the hand 50 stored in the storage device 22 is used.
- FIG. 9 is a diagram illustrating an example of the operation of the hand 50 when an animation is displayed. First, the hand 50 moves along the trajectory O1 so that the music box TCP gripped by the hand 50 coincides with the approach point P3. Next, the hand 50 moves along the trajectory O2 so that the gripped TCP of the music box matches the TCP2.
- the hand 50 moves along the track O3 so that the TCP of the hand 50 coincides with the escape point P4. Since the hand 50 moves along the tracks O2 and O3, the hand 50 moves along a substantially vertical direction of a position where the music box is placed (position of “music box B9”). For this reason, when the hand 50 places the music box, even if there are other music boxes (for example, music box B4) in the vicinity, the music box held by the hand 50 or the hand 50 hits another obstacle. There is no. The trajectory of the hand 50 is calculated based on the music box TCP. For this reason, the music box is accurately placed at a desired position regardless of the position of the music box in the hand 50.
- the robot teaching apparatus 10 calculates the trajectory of the hand 50 when moving the music box based on the TCP of the music box A1 at the position before the movement and the TCP of the music box B9 at the position after the movement. (For example, step S104).
- the music box TCP is used instead of the TCP of the hand 50, a change in the position of the work with respect to the hand 50 (for example, whether the work is gripped at the tip of the hand or the back of the hand), etc. The influence of is suppressed.
- the arm type robot X can move the workpiece to a desired position with high accuracy by using the calculation result of the calculation unit 85.
- the calculation unit 85 calculates a trajectory passing through the approach point P3 in a state where the hand 50 holds the music box by the holding unit (for example, processing S104). For example, another music box or the like may be placed around the position where the music box is placed (for example, the position of the music box B9). In such a case, if the music box to be moved is directly moved to a target position, the music box to be moved may hit another music box. In the present embodiment, the music box is placed via the approach point P3 defined in the vertical direction from the TCP of the music box B9. Therefore, the calculation unit 85 can calculate a trajectory that prevents the moving target work from hitting an obstacle or the like even when there is an obstacle around the target position.
- the calculation unit 85 calculates a trajectory through the escape point P4 in a state where the hand 50 does not hold the music box as a trajectory for moving the hand 50 after placing the music box (for example, processing S104). For example, another music box may be placed around the position of the placed music box (for example, the position of the music box B9). In such a case, if the hand 50 is directly moved to the set position, the hand 50 may hit another music box. In the present embodiment, a trajectory for moving the hand 50 from the music box B9 TCP via the escape point P4 defined in the vertical direction is calculated. Therefore, the calculation unit 85 can calculate a trajectory that prevents the hand 50 from hitting an obstacle or the like even when there is an obstacle around the target position.
- the trajectory calculation of the calculation unit 85 at the time of placing the workpiece (“place”) has been described, but the same applies to the work of picking up the workpiece (“pick up”). That is, when grasping the music box, the hand 50 passes through the approach point P3 in a state where the music box is not held. Then, as a trajectory for moving the hand 50 after grabbing the music box, the hand 50 passes through the escape point P4 while holding the music box.
- the display control unit 80 displays an animation of the hand 50 moving along the trajectory on the display device 24. Since the display control unit 80 displays only the animation of the hand 50 without displaying the animation of the entire arm type robot 40, the load on the CPU 20 is reduced.
- the user can set the movement start position and the end position of the work in the work start position input area 71 and the work end position input area 72 when moving the work. Therefore, since the user does not need to specify complicated coordinates or the like, the user can easily teach the arm type robot X.
- the approach point P3 is set based on the music box information provided in the virtual space 100.
- the user can easily set the approach point P3 as compared with the case of directly specifying the coordinates of the approach point P3.
- the escape point P4 is set based on the music box information provided in the virtual space 100. As a result, the user can easily set the escape point P4 as compared with the case of directly specifying the coordinates of the escape point P4.
- Example 2 is for making an understanding of this invention easy, and is not for limiting and interpreting this invention.
- the present invention can be changed and improved without departing from the gist thereof, and the present invention includes equivalents thereof.
- the same processing as that of the present embodiment is executed also in the work of picking up (grabbing) a workpiece (“pick up”).
- the robot teaching apparatus 10 calculates the trajectory of the hand 50 based on the TCP of the music box A1 at the position before the movement and the TCP of the music box B9 at the position after the movement even when taking the workpiece ( For example, process S104).
- the hand 50 takes a workpiece, the hand 50 does not actually hold the workpiece.
- the trajectory calculated in step S104 or the like assuming that the hand 50 is gripping the workpiece is the same as the trajectory when taking the workpiece.
- the “work” provided at the work start position is calculated as a trajectory to be moved to the “work” provided at the work end position. That is, the trajectory for moving the “workpiece” from the work start position (first position) to the work end position (second position) is not only the trajectory for actually moving the “workpiece” but also the hand. 50 also includes a trajectory when the “work” is virtually moved (trajectory when the workpiece is picked up (“pick up”)).
- the hand 50 “holds” the “music box”, which is a work, as a held state, but is not limited thereto.
- a suction pad that can vacuum-suck a workpiece may be used. In such a case, the workpiece is “held” by the suction pad.
- the work is “music box” and the support member on which “music box” is placed (supported) is the shelf 45, but is not limited thereto.
- the workpiece may be a “cup (container)” and the “cup” may be stored (supported) in a “cup holder”.
- the “cup holder” may be configured not only to store the “cup” but also to support only a part of the outer surface of the “cup holder”. Even when such a “cup” and “cup holder” are used, the same effects as in the present embodiment can be obtained. For example, when the robot moves so that the “cup” is supported by the tilted “cup holder”, the approach point P3 and the escape point P4 are based on the bottom surface of the tilted “cup”. Is acquired.
- the robot to be taught is a 6-axis multi-joint robot, but it may be a 3-axis robot, for example.
- the robot teaching device 10 can increase the degree of freedom of TCP (teaching point) when only the three-axis trajectory needs to be calculated when moving the workpiece even if the robot to be taught is a six-axis robot.
- the trajectory may be calculated by changing from 6 to 3.
- the designated direction v1 at the approach point P3 is a direction that is substantially perpendicular to the bottom surface of the workpiece from the TCP, but is not limited thereto.
- the direction v2 at the escape point P4 is also a direction that is substantially perpendicular to the bottom surface of the workpiece from the TCP, but may be a substantially horizontal direction with respect to the bottom surface of the workpiece, for example.
- FIG. 3 shows a state in which the hand 50 is holding a workpiece, but when the hand 50 is not holding a workpiece, the display control unit 80 does not display the workpiece on the display device 24.
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Automation & Control Theory (AREA)
- Numerical Control (AREA)
- Manipulator (AREA)
Abstract
【課題】ロボットがワークを精度良く所望の位置に移動することができる技術を提供する。 【解決手段】ロボット教示装置は、仮想空間における第1の位置に設けられたワークの所定の点を、第1の点として取得する第1取得部と、前記仮想空間における第2の位置に設けられた前記ワークの所定の点を、第2の点として取得する第2取得部と、前記第1及び第2の点に基づいて、前記仮想空間におけるロボットが、前記ワークを前記第1の位置から前記第2の位置に移動させる際の前記保持部の軌道を計算する計算部と、を備える。
Description
本発明は、ロボット教示装置、ロボット教示プログラム、ロボット教示装置の制御方法に関する。
ロボットを工場のライン等で使用するためには、利用者は、ロボットに対して動きを教示(ティーチング)する必要がある。例えば、特許文献1には、作業対象物であるワークやロボットをコンピュータにより仮想空間上に配置し、ロボットの動作プログラムを作成する技術(ティーチング技術)が開示されている。
特許文献1では、例えば、ロボットのハンドの先端位置(TCP:Tool Center Point)に基づいて、ロボットがワークを移動する際の軌道が計算されている。そのような軌道でワークが移動されると、ロボットのハンドに対するワーク位置の変化(例えば、ハンドの先端でワークを把持するか、ハンドの奥でワークを把持するか)等により、ワークを精度良く所望の位置に移動することができないことがある。
本発明は上記課題を鑑みてなされたものであり、ロボットがワークを精度良く所望の位置に移動することができる技術を提供することを目的とする。
上記課題を解決する本発明のロボット教示装置は、仮想空間における第1の位置に設けられたワークの所定の点を、第1の点として取得する第1取得部と、前記仮想空間における第2の位置に設けられた前記ワークの前記所定の点を、第2の点として取得する第2取得部と、前記第1及び第2の点に基づいて、前記仮想空間におけるロボットが、前記ワークを前記第1の位置から前記第2の位置に移動させる際の前記保持部の軌道を計算する計算部と、を備えることを特徴とする。
本発明によれば、ワークの所定の点に基づいて軌道が計算されるため、ロボットがワークを精度良く所望の位置に移動することが可能となる。
---ロボット教示装置10の構成---
以下に本発明の実施形態について図面を用いて詳細に説明する。図1は、ロボット教示装置10の構成を示す図である。ロボット教示装置10は、工場のラインに設置されたアーム型ロボットX(不図示)に対し動作を教示するための装置であり、CPU(Central Processing Unit)20、メモリ21、記憶装置22、入力装置23、表示装置24、及び通信装置25を含んで構成される。なお、アーム型ロボットXは、6軸(x軸、y軸、z軸、および各軸の回転方向θx、θy、θz)の多関節のロボットである。
以下に本発明の実施形態について図面を用いて詳細に説明する。図1は、ロボット教示装置10の構成を示す図である。ロボット教示装置10は、工場のラインに設置されたアーム型ロボットX(不図示)に対し動作を教示するための装置であり、CPU(Central Processing Unit)20、メモリ21、記憶装置22、入力装置23、表示装置24、及び通信装置25を含んで構成される。なお、アーム型ロボットXは、6軸(x軸、y軸、z軸、および各軸の回転方向θx、θy、θz)の多関節のロボットである。
CPU20は、メモリ21や記憶装置22に格納されたプログラムを実行することにより、ロボット教示装置10における様々機能を実現する。
メモリ21は、例えばRAM(Random-Access Memory)等であり、プログラムやデータ等の一時的な記憶領域として用いられる。
記憶装置22は、例えばハードディスク等の不揮発性の記憶手段領域であり、教示プログラムや様々なデータが格納される。記憶装置22には、アーム型ロボットXの3次元モデルを示す3次元CAD(Computer Aided Design)データDa、作業対象物であるワークの3次元モデルを示す3次元CADデータDb、ワークが載置される棚の3次元モデルを示す3次元CADデータDcが格納されている。
なお、3次元CADデータDaは、アーム型ロボットXのモデルが配置される仮想空間のワールド座標系、およびアーム型ロボットXのモデルのローカル座標系の情報を含む。また、3次元CADデータDb,Dcに関しても、3次元CADデータDaと同様である。ただし、本実施形態では、複数(n個)のワークが用いられるため、記憶装置22には、複数のワークのそれぞれに対応する3次元CADデータDb1~3次元CADデータDbnが格納されている。
入力装置23は、例えばタッチパネルやキーボードであり、利用者の操作結果が入力を受け付ける装置である。
表示装置24は、例えばディスプレイであり、各種情報や処理結果を表示する装置である。
通信装置25は、ネットワークインターフェイスなどの通信手段であって、インターネットやLAN(Local Area Network)等の通信網(不図示)を介して外部のコンピュータやアーム型ロボット40との間でデータの送受信を行う。
---階層構造画面---
図2は、仮想空間においてアーム型ロボットX等のモデルの配置を定めるために、利用者が参照・編集する階層構造画面の一例を示す図である。
図2は、仮想空間においてアーム型ロボットX等のモデルの配置を定めるために、利用者が参照・編集する階層構造画面の一例を示す図である。
画面30は、ワールド座標系や各種構成の階層構造(ツリー構造)を示す画面であり、CPU20が、所定の教示プログラムを実行することにより表示装置24に表示される。
画面30では、最上位の階層に、ワールド座標系を示す「World」が設定されている。そして、ワールド座標系の下の階層には、アーム型ロボットXのモデルを示す「Robot」と、ワークが載置される棚を示す「棚」が設定されている。このため、「Robot」および「棚」は、仮想空間において、ワールド座標系で定められた位置に配置される。
また、「Robot」の階層の下には、アーム型ロボットXのハンドのモデルを示す「HAND」が設定され、「HAND」の階層の下には、ワークであるオルゴールA1を示す「OG A1」が設定されている。このため、「HAND」は、「Robot」を基準とするローカル座標系で定められた位置に配置され、「OG A1」は、「HAND」を基準とするローカル座標系で定められた位置に配置される。
また、「棚」の階層の下には、10個のオルゴールB1~B10を示す「OG B1」~「OG B10」が設定されている。このため、「OG B1」~「OG B10」は、「棚」を基準とするローカル座標系で定められた位置に配置される。
なお、画面30で示された階層構造では、ある階層の構成の位置が変更されると、その階層の下に配置された構成の位置も同様に変更される。例えば、3次元CADデータD3の値が変更され、「棚」のワールド座標系における位置が変更されると、「棚」の下の階層に設けられた「OG B1」~「OG B10」のワールド座標系における位置も「棚」に伴って移動する。ただし、「OG B1」~「OG B10」のそれぞれの「棚」に対する位置は、「棚」を基準とするローカル座標系で定められている。したがって、「棚」のワールド座標系に対する位置が変更された場合であっても、「OG B1」~「OG B10」のそれぞれの「棚」に対する位置は変化しない。
---仮想空間---
図3は、画面30に含まれる構成を反映した仮想空間100を示す図である。仮想空間100は、CPU20が、所定の教示プログラムを実行することにより表示装置24に表示される。
図3は、画面30に含まれる構成を反映した仮想空間100を示す図である。仮想空間100は、CPU20が、所定の教示プログラムを実行することにより表示装置24に表示される。
仮想空間100には、アーム型ロボット40、オルゴールA1,B1~B10、棚45が設けられている。
アーム型ロボット40は、「Robot」(3次元CADデータDa)に基づいて表現されたモデルであり、ハンド(保持部)50と、ハンド50が取り付けられるアーム51とを含む。なお、上述したように、仮想空間100におけるアーム51の位置は、ワールド座標系で定められた位置に配置され、ハンド50の位置は、アーム51を基準とするローカル座標系で定められた位置に配置される。
オルゴールA1は、「OG A1」(3次元CADデータDb1)に基づいて表現された、ワークを示すモデルである。仮想空間100におけるオルゴールA1の位置は、ハンド50を基準とするローカル座標系で定められた位置、ここでは、ハンド50で把持(保持)される位置に配置される。すなわち、ワークを保持部により保持した状態である。また、ワークを保持部により保持していない状態とは、ハンド50がワークを把持していない状態である。
オルゴールB1~B10は、「OG B1」~「OG B10」(3次元CADデータDb2~Db11)に基づいて表現されたモデルである。仮想空間100におけるオルゴールB1~B10の位置は、棚45を基準とするローカル座標系で定められた位置に配置されている。例えば、ここでは、オルゴールB1~B10は、棚45の上に2列で配置される。
棚45は、「棚」(3次元CADデータDc)に基づいて表現されたモデルであり、ワールド座標系で定められた位置に配置される。
---設定画面---
図4は、アーム型ロボットXを教示する際に表示装置24に表示される設定画面60の一例を示す図である。
図4は、アーム型ロボットXを教示する際に表示装置24に表示される設定画面60の一例を示す図である。
設定画面60は、関数名指定エリア70、作業開始位置入力エリア71、作業終了位置入力エリア72、アプローチポイント設定エリア73、およびエスケープポイント設定エリア74を含んで構成される。
関数名指定エリア70では、作成される動作プログラム(サブルーチン)を示す「関数名」が指定される。関数名指定エリア70は、作業種類指定エリア70aおよび関数名入力エリア70bを含む。作業種類指定エリア70aでは、アーム型ロボットXに実行させる作業が指定される。具体的には、作業種類指定エリア70aでは、置く(“place”)、取る(つかむ)(“pick up”)、捨てる(“dispose”)等の作業を選択可能である。
関数名入力エリア70bには、利用者が指定する作業を示すファイル名(例えば、日付や整理番号)が入力される。
関数名入力エリア70bには、利用者が指定する作業を示すファイル名(例えば、日付や整理番号)が入力される。
作業開始位置入力エリア71(第1情報入力部)では、アーム型ロボット40のハンド50の動作の開始位置に設けられたワークを示す情報(第1情報)が入力される。なお、本実施形態では、利用者は、予め移動対象となるワークを、移動前の作業開始位置(第1の位置)に配置していることとする。
作業終了位置入力エリア72(第2情報入力部)では、アーム型ロボット40のハンド50の動作の終了位置に設けられたワークを示す情報(第2情報)が入力される。なお、本実施形態では、利用者は、予め移動対象となるワークを、移動後の作業終了位置(第2の位置)に配置していることとする。
アプローチポイント設定エリア73(第3情報入力部)では、ハンド50の移動が開始してから終了するまでに、ハンド50に把持されたワークが経由する点(アプローチポイント)が設定される。なお、詳細は後述するが、アプローチポイントは、ハンド50に把持されたワークが障害物や他のワーク等に当たることを防ぐために設定される点である。アプローチポイント設定エリア73は、作業ワーク指定エリア73a、距離指定エリア73b、および方向指示エリア73cを含む。なお、作業ワーク指定エリア73a、距離指定エリア73b、および方向指示エリア73cのそれぞれに入力される情報は、第3情報に相当する。
作業ワーク指定エリア73aには、ハンド50の動作の終了位置に載置されたワークを示す情報が入力される。
距離指定エリア73bには、作業ワーク指定エリア73aで選択されたワークからの距離d1(第1の距離)が入力される。
方向指示エリア73cには、作業ワーク指定エリア73aで選択されたワークの面(例えば、底面)に対して略垂直となる方向v1が指示される。
エスケープポイント設定エリア74(第4情報入力部)では、ハンド50の移動が終了し、ハンド50を元の位置等に戻す際にハンド50のTCPが通過する点(エスケープポイント)が設定される。なお、詳細は後述するが、エスケープポイントは、ワークが載置された後、ハンド50が障害物や他のワーク等に当たることを防ぐために設定される点である。エスケープポイント設定エリア74は、作業ワーク指定エリア74a、距離指定エリア74b、および方向指示エリア74cを含む。なお、作業ワーク指定エリア74a、距離指定エリア74b、および方向指示エリア74cのそれぞれに入力される情報は、第4情報に相当する。
作業ワーク指定エリア74aには、ハンド50の動作の終了位置に載置されたワークを示す情報が入力される。なお、作業ワーク指定エリア73a、74aには、ハンド50の動作の終了位置に載置されたワークを示す情報以外が入力されても良い。
距離指定エリア74bには、作業ワーク指定エリア74aで選択されたワークからの距離d2(第2の距離)が入力される。
方向指示エリア74cには、作業ワーク指定エリア74aで選択されたワークの面(例えば、底面)に対して略垂直となる方向v2が指示される。なお、方向v1,v2は、ワークのモデルに含まれる、ワークのエッジ、ワークの法線ベクトル、ワークの中心軸等に基づいて定められる。
---CPU20に実現される機能ブロック---
図5は、CPU20が所定の教示プログラムを実行することによりCPU20に実現される機能ブロックを示す図である。同図に示すように、CPU20は、表示制御部80、第1取得部81、第2取得部82、第3取得部83、第4取得部84、計算部85、及び送信部86の機能ブロックを備える。
図5は、CPU20が所定の教示プログラムを実行することによりCPU20に実現される機能ブロックを示す図である。同図に示すように、CPU20は、表示制御部80、第1取得部81、第2取得部82、第3取得部83、第4取得部84、計算部85、及び送信部86の機能ブロックを備える。
表示制御部80は、入力装置23からの指示やCPU20で実行される教示プログラムの処理結果等に基づいて、表示装置24に各種情報を表示する。例えば、表示制御部80は、図3に示した仮想空間100や図4に示す設定画面60を表示装置24に表示する。また、表示制御部80は、ワークを移動する際のハンド50のアニメーションを表示装置24に表示する。
第1取得部81は、作業開始位置入力エリア71に入力されたワークを示す情報(3次元CADデータ)に基づいて、ワークのTCP(所定の点)を教示点P1(第1の点)として取得する。
第2取得部82は、作業終了位置入力エリア72に入力されたワークを示す情報(3次元CADデータ)に基づいて、ワークのTCPを教示点P2(第2の点)として取得する。なお、ここでは、第1取得部81および第2取得部82が取得する点をワークのTCPとしたが、例えば、ワークの重心を示す点であっても良い。
第3取得部83は、アプローチポイント設定エリア73に入力された情報に基づいて、ワークが移動される際に、ワークが経由するアプローチポイントP3(第3の点)を取得する。具体的には、第3取得部83は、作業ワーク指定エリア73aで選択されるワークを示す情報から、ワークのTCP(所定の点)を取得する。そして、第3取得部83は、ワークのTCPを始点とし、指定された方向v1に距離d1だけ離間した点をアプローチポイントP3として取得する。
第4取得部84は、エスケープポイント設定エリア74に入力された情報に基づいて、ハンド50が移動される際に、ハンド50が経由するエスケープポイントP4(第4の点)を取得する。具体的には、第4取得部84は、作業ワーク指定エリア74aで選択されるワークを示す情報から、ワークのTCPを取得する。そして、第4取得部84は、ワークのTCPを始点とし、指定された方向v2に距離d2だけ離間した点をエスケープポイントP4として取得する。なお、アプローチポイントP3、エスケープポイントP4を定める際の始点はワークのTCPであるとしたが、例えばワークの重心を示す点等でも良い。
計算部85は、教示点P1,P2、アプローチポイントP3、エスケープポイントP4に基づいて、ハンド50を移動させる軌道の計算を行う。また、計算部85は、計算結果を、記憶装置22に格納する。
送信部86は、利用者からの指示に基づいて、計算結果を、アーム型ロボットXの制御装置(不図示)に送信する。この結果、アーム型ロボットXは、計算結果に応じた動作をすることができる。なお、詳細は省略するが、アーム型ロボットXは、計算結果に基づいて、アーム型ロボットXの各関節を動作させる動作プログラムを生成する。また、CPU20が、動作プログラムを生成し、アーム型ロボットXに送信することとしても良い。
---ロボット教示装置10で実行される処理の一例---
以下、ワークが移動される際にロボット教示装置10が実行する一連の処理を、図面を適宜参照しつつ説明する。図6は、設定画面60に対し各種情報が入力された状態の設定画面61を示す図である。図7は、ロボット教示装置10が実行する処理の一例を示すフローチャートである。なお、ここでは、アーム型ロボット40が「オルゴール」を、「オルゴールA1」の位置(第1の位置)から「オルゴールB9」の位置(第2の位置)へ移動させる際のハンド50の軌道と、「オルゴール」が棚45に載置された後のハンド50の軌道と、が計算される場合を説明する。また、図3の仮想空間100においては、「オルゴールA1」と、10個の「オルゴールB1」~「オルゴールB10」が配置されているが、これらは「置く」作業を教示し、ハンド50の軌道を計算するために配置されているものである。例えば「オルゴールA1」と、「オルゴールB1」とが選択されると、「オルゴールA1」の位置から、「オルゴールB1」の位置へ「オルゴール」を移動させる際のハンド50の軌道が計算される。
以下、ワークが移動される際にロボット教示装置10が実行する一連の処理を、図面を適宜参照しつつ説明する。図6は、設定画面60に対し各種情報が入力された状態の設定画面61を示す図である。図7は、ロボット教示装置10が実行する処理の一例を示すフローチャートである。なお、ここでは、アーム型ロボット40が「オルゴール」を、「オルゴールA1」の位置(第1の位置)から「オルゴールB9」の位置(第2の位置)へ移動させる際のハンド50の軌道と、「オルゴール」が棚45に載置された後のハンド50の軌道と、が計算される場合を説明する。また、図3の仮想空間100においては、「オルゴールA1」と、10個の「オルゴールB1」~「オルゴールB10」が配置されているが、これらは「置く」作業を教示し、ハンド50の軌道を計算するために配置されているものである。例えば「オルゴールA1」と、「オルゴールB1」とが選択されると、「オルゴールA1」の位置から、「オルゴールB1」の位置へ「オルゴール」を移動させる際のハンド50の軌道が計算される。
設定画面61の作業種類指定エリア70aに示すように、作業としては、ワークを置く(“place”)作業が指定されており、作業を示すファイル名としては、“OG1_to_shelf”が入力されている。また、作業開始位置入力エリア71には、ハンド50に把持された「オルゴールA1」(「OG A1」)が入力され、作業終了位置入力エリア72には、棚45に載置された「オルゴールB9」(「OG B9」)が入力されている。アプローチポイント設定エリア73の作業ワーク指定エリア73aには、「オルゴールB9」が入力され、距離指定エリア73bには、「200」が入力され、方向指示エリア73cには、オルゴールB9の「エッジ」が指定されている。エスケープポイント設定エリア74の作業ワーク指定エリア74aには、「オルゴールB9」が入力され、距離指定エリア74bには、「100」が入力され、方向指示エリア74cには、オルゴールB9の「エッジ」が指定されている。
まず、第1取得部81は、作業開始位置入力エリア71に入力されたオルゴールA1の情報に基づいて、オルゴールA1のTCPを教示点P1として取得する(S100)。つぎに、第2取得部82は、作業終了位置入力エリア72に入力されたオルゴールB9の情報に基づいて、オルゴールB9のTCPを教示点P2として取得する(S101)。
また、第3取得部83は、図8に示すように、作業ワーク指定エリア73aで選択されるオルゴールB9のTCPを始点とし、オルゴールB9のエッジの方向v1で距離d1「200」mmだけ離れた点を、アプローチポイントP3として取得する(S102)。なお、図8においては、便宜上、棚45の表面の一部と、オルゴールB9のみが描かれている。また、図8では、x軸方向は、棚45のオルゴールが載置される面(以下、載置面)の長手方向、y軸方向は、載置面においてx軸と直交する方向、z軸方向は、載置面と垂直方向である。そして、オルゴールB9の底面は、図8のxy平面であり、指定されたオルゴールB9のエッジは、オルゴールB9の底面に対して垂直となっている。このため、エッジの方向v1は、z軸方向(+z方向)となる。
第4取得部84は、第3取得部83と同様に、作業ワーク指定エリア74aで選択されるオルゴールB9のTCPを始点とし、オルゴールB9のエッジに基づく方向v2(+z方向)から距離d2「100」mmだけ離れた点を、エスケープポイントP4として取得する(S103)。なお、距離d1,d2は、例えば、オルゴールB9のz方向の高さよりも長い距離である。
計算部85は、教示点P1,P2、アプローチポイントP3、エスケープポイントP4に基づいて、ハンド50を移動させる際のハンド50の軌道を計算する(S104)。具体的には、まず、計算部85は、「オルゴール」を教示点P1からアプローチポイントP3まで移動させる際のハンド50の軌道O1を計算する。また、計算部85は、「オルゴール」をアプローチポイントP3から教示点P2に移動させる際のハンド50の軌道O2を計算する。さらに計算部85は、ハンド50をエスケープポイントP4に移動させる軌道O3を計算する。なお、軌道O3が計算される際には、例えば、記憶装置22に格納されたハンド50のTCPが用いられる。そして、計算部85は、計算結果(軌道O1~O3)を、記憶装置22に格納する(S105)。また、表示制御部80は、記憶装置22に格納された計算結果を取得し、仮想空間100上のハンド50が計算された軌道に沿って動くアニメーションを表示装置24に表示させる(S106)。図9は、アニメーションが表示されている際にハンド50の動作の一例を示す図である。ハンド50は、まず、軌道O1に沿って、ハンド50に把持されたオルゴールのTCPが、アプローチポイントP3に一致するよう移動する。つぎに、ハンド50は、軌道O2に沿って、把持されたオルゴールのTCPがTCP2に一致するよう移動する。そして、オルゴールが載置された後、ハンド50は、軌道O3に沿って、ハンド50のTCPがエスケープポイントP4に一致するように移動する。なお、ハンド50は、軌道O2,O3に沿って動くため、オルゴールが載置される位置(「オルゴールB9」の位置)の略垂直方向に沿って移動する。このため、ハンド50がオルゴールを載置する際に、周囲の他のオルゴール(例えば、オルゴールB4)がある場合であっても、ハンド50やハンド50に把持されたオルゴールが他の障害物に当たることはない。また、ハンド50の軌道は、オルゴールのTCPに基づいて計算されている。このため、ハンド50におけるオルゴールの位置によらず、オルゴールは所望の位置に精度良く置かれることになる。
---まとめ---
以上、本実施形態のロボット教示装置10について説明した。ロボット教示装置10の計算部85は、オルゴールを移動する際のハンド50の軌道を、移動前の位置にあるオルゴールA1のTCPと、移動後の位置にあるオルゴールB9のTCPと、に基づいて計算する(例えば、処理S104)。この際、ハンド50のTCPではなく、オルゴールのTCPが用いられるため、ハンド50に対するワークの位置の変化(例えば、ハンドの先端でワークを把持するか、ハンドの奥でワークを把持するか)等の影響が抑制される。この結果、アーム型ロボットXは、計算部85の計算結果を用いることにより、ワークを精度良く所望の位置に移動することが可能となる。
以上、本実施形態のロボット教示装置10について説明した。ロボット教示装置10の計算部85は、オルゴールを移動する際のハンド50の軌道を、移動前の位置にあるオルゴールA1のTCPと、移動後の位置にあるオルゴールB9のTCPと、に基づいて計算する(例えば、処理S104)。この際、ハンド50のTCPではなく、オルゴールのTCPが用いられるため、ハンド50に対するワークの位置の変化(例えば、ハンドの先端でワークを把持するか、ハンドの奥でワークを把持するか)等の影響が抑制される。この結果、アーム型ロボットXは、計算部85の計算結果を用いることにより、ワークを精度良く所望の位置に移動することが可能となる。
また、計算部85は、オルゴールが載置される際に、ハンド50がオルゴールを保持部により保持した状態でアプローチポイントP3を経る軌道を計算する(例えば、処理S104)。例えば、オルゴールを載置する位置(例えば、オルゴールB9の位置)の周辺に他のオルゴール等が載置されていることがある。このような場合に、移動対象のオルゴールを目標とする位置に直接移動させると、移動対象のオルゴールが、他のオルゴールに当たることがある。本実施形態では、オルゴールB9のTCPから垂直方向に定められたアプローチポイントP3を経由してオルゴールが載置される。したがって、計算部85は、目標位置の周辺に障害物がある場合であっても、移動対象のワークが障害物等に当たることを防ぐ軌道を計算できる。
また、計算部85は、オルゴールを載置した後にハンド50を移動させる軌道として、ハンド50がオルゴールを保持していない状態で、エスケープポイントP4を経る軌道を計算する(例えば、処理S104)。例えば、載置されたオルゴールの位置(例えば、オルゴールB9の位置)の周辺に他のオルゴールが載置されていることがある。このような場合に、ハンド50を設定された位置に直接移動させると、ハンド50が、他のオルゴールに当たることがある。本実施形態では、オルゴールB9のTCPから垂直方向に定められたエスケープポイントP4を経由してハンド50を移動させる軌道が計算される。したがって、計算部85は、目標位置の周辺に障害物がある場合であっても、ハンド50が障害物等に当たることを防ぐ軌道を計算できる。
ワークを置く(“place”)作業時の計算部85の軌道計算を説明したが、ワークを取る(つかむ)(“pick up”)作業時も同様である。すなわち、オルゴールをつかむ際に、ハンド50はオルゴールを保持していない状態で、アプローチポイントP3を経る。そして、オルゴールをつかんだ後にハンド50を移動させる軌道として、ハンド50がオルゴールを保持している状態で、エスケープポイントP4を経る。
また、表示制御部80は、軌道に沿って動くハンド50のアニメーションを表示装置24に表示する。表示制御部80は、アーム型ロボット40全体のアニメーションを表示せず、ハンド50のみのアニメーションを表示することから、CPU20への負荷は軽減される。
また、本実施形態では、利用者は、ワークを移動させる際に、ワークの移動開始位置と、終了位置を、作業開始位置入力エリア71と、作業終了位置入力エリア72で設定できる。したがって、利用者は、複雑な座標等を指定する必要がないため、利用者は容易にアーム型ロボットXを教示できる。
また、本実施形態では、仮想空間100に設けられたオルゴールの情報に基づいて、アプローチポイントP3が設定される。この結果、アプローチポイントP3の座標等を直接指定する場合と比較すると、利用者は、容易にアプローチポイントP3を設定できる。
また、本実施形態では、仮想空間100に設けられたオルゴールの情報に基づいて、エスケープポイントP4が設定される。この結果、エスケープポイントP4の座標等を直接指定する場合と比較すると、利用者は、容易にエスケープポイントP4を設定できる。
なお、上記実施例は本発明の理解を容易にするためのものであり、本発明を限定して解釈するためのものではない。本発明は、その趣旨を逸脱することなく、変更、改良され得ると共に、本発明にはその等価物も含まれる。
例えば、ワークを取る(つかむ)(“pick up”)作業の際においても、本実施形態と同様の処理が実行される。例えば、ロボット教示装置10は、ワークを取る場合においても、移動前の位置にあるオルゴールA1のTCPと、移動後の位置にあるオルゴールB9のTCPと、に基づいてハンド50の軌道を計算する(例えば、処理S104)。ハンド50がワークを取る際には、ハンド50は実際にはワークを把持していない。しかしながら、ハンド50が仮にワークを把持しているとして処理S104等で計算された軌道は、ワークを取る際の軌道と同様である。したがって、本実施形態では、ワークを取る際にも、作業開始位置に設けられた「ワーク」を、作業終了位置に設けられた「ワーク」に移動させる軌道として計算する。つまり、「ワーク」を作業開始位置(第1の位置)から作業終了位置(第2の位置)に移動させる際の軌道とは、実際に「ワーク」を移動させる際の軌道のみならず、ハンド50が仮想的に「ワーク」を移動させる際の軌道(ワークを取る(つかむ)(“pick up”)際の軌道)も含む。
本実施形態では、ハンド50がワークである「オルゴール」を「把持」することを、保持した状態として説明したが、これに限られない。例えば、ハンド50の代わりにワークを真空吸着することが可能な吸着パッドを用いても良い。このような場合、ワークは、吸着パッドにより「保持」されることになる。
本実施形態では、ワークは「オルゴール」であり、「オルゴール」が載置(支持)される支持部材は、棚45であることとしたが、これに限られない。例えば、ワークが「カップ(容器)」であり、「カップ」は「カップホルダー」に収納(支持)されることとしても良い。また、「カップホルダー」は、「カップ」を収納する構成のみならず、「カップい」の外側の面の一部だけを支持する構成であっても良い。このような、「カップ」および「カップホルダー」が用いられる場合であっても、本実施形態と同様の効果を得ることができる。なお、例えば、ロボットが「カップ」を、傾いた「カップホルダー」に支持されるように移動する際には、傾いて支持された「カップ」の底面に基づいて、アプローチポイントP3、エスケープポイントP4が取得される。
また、ここでは、教示対象となるロボットが6軸の多関節のロボットであることとしたが、例えば、3軸のロボットであっても良い。また、ロボット教示装置10は、教示対象となるロボットが6軸のロボットであっても、ワークを移動させる際に3軸の軌道のみを計算すれば良い場合、TCP(教示点)の自由度を6から3に変更し、軌道を計算しても良い。このようにTCPの自由度を低下させることにより、CPU20の負荷を軽減することができる。また、本実施形態では、アプローチポイントP3における指定された方向v1は、TCPから、ワークの底面に対して略垂直となる方向であることとしたが、これに限られない。例えば、ワークの底面に対して略水平方向であっても良い。また、エスケープポイントP4における方向v2も、TCPから、ワークの底面に対して略垂直となる方向であることとしたが、例えば、ワークの底面に対して略水平方向であっても良い。
例えば、図3では、ハンド50がワークを保持している状態が示されているが、ハンド50がワークを保持していない場合、表示制御部80は、ワークを表示装置24に表示しない。
また、ロボットの動作プログラミングをする際、座標値を扱うのは煩雑である。3DCADからは座標値も抽出することも可能であるが、煩雑であることに変わりない。また、この煩雑さは、機械技術者、ソフトウェア技術者などの異なる技術者が必要となる。そのためロボットを利用したオートメーションシステムを構築するために、膨大な時間を要する。本実施形態は、ロボットのオートメーションシステムを短時間で行うことができる。
10…ロボット教示装置、20…CPU、21…メモリ、22…記憶装置、23…入力装置、24…表示装置、25…通信装置、30…画面、40…アーム型ロボット、50…ハンド、51…アーム、60,61…設定画面、70…関数名指定エリア、71…作業開始位置入力エリア、72…作業終了位置入力エリア、73…アプローチポイント設定エリア、74…エスケープポイント設定エリア、80…表示制御部、81…第1取得部、82…第2取得部、83…第3取得部、84…第4取得部、85…計算部、86…送信部、100…仮想空間
Claims (10)
- 仮想空間における第1の位置に設けられたワークの所定の点を、第1の点として取得する第1取得部と、
前記仮想空間における第2の位置に設けられた前記ワークの所定の点を、第2の点として取得する第2取得部と、
前記第1及び第2の点に基づいて、前記仮想空間におけるロボットが、前記ワークを前記第1の位置から前記第2の位置に移動させる際の前記保持部の軌道を計算する計算部と、
を備えることを特徴とするロボット教示装置。 - 請求項1に記載のロボット教示装置であって、
前記第2の位置に支持された前記ワークの前記第2の点から離れた第3の点を取得する第3取得部を更に備え、
前記計算部は、
前記第1~第3の点に基づいて、前記ロボットが、前記ワークを前記第1の位置から前記第3の点を経由して前記第2の位置に移動させる際の前記保持部の軌道を計算すること、
を特徴とするロボット教示装置。 - 請求項1または請求項2に記載のロボット教示装置であって、
前記第2の位置に支持された前記ワークの前記第2の点から離れた第4の点を取得する第4取得部を更に備え、
前記計算部は、
前記ロボットが、前記保持部を前記第4の点まで移動させる際の前記保持部の軌道を計算すること、
を特徴とするロボット教示装置。 - 請求項1~3の何れか一項に記載のロボット教示装置であって、
前記ロボットが前記保持部を移動させる際、前記ロボットのうち、前記保持部の動きを表示装置に表示させる表示制御部を更に備えること、
を特徴とするロボット教示装置。 - 仮想空間における第1の位置に設けられたワークを示す第1情報が入力される第1情報入力部と、
前記仮想空間における第2の位置に設けられた前記ワークを示す第2情報が入力される第2情報入力部と、
前記第1情報に基づいて、前記第1の位置に設けられた前記ワークの所定の点を、第1の点として取得する第1取得部と、
前記第2情報に基づいて、前記第2の位置に設けられた前記ワークの所定の点を、第2
の点として取得する第2取得部と、
前記第1及び第2の点に基づいて、前記仮想空間におけるロボットが、前記ワークを前記第1の位置から前記第2の位置に移動させる際の前記保持部の軌道を計算する計算部と、
を備えることを特徴とするロボット教示装置。 - 請求項5に記載のロボット教示装置であって、
前記第2の位置に支持された前記ワークの前記第2の点から離れた点に関する第3情報が入力される第3情報入力部と、
前記第3情報に基づいて定まる第3の点を取得する第3取得部と、
を更に備え、
前記計算部は、
前記第1~第3の点に基づいて、前記ロボットが、前記ワークを前記第1の位置から前記第3の点を経由して前記第2の位置に移動させる際の前記保持部の軌道を計算すること、
を特徴とするロボット教示装置。 - 請求項5または請求項6に記載のロボット教示装置であって、
前記第2の位置に支持された前記ワークの前記第2の点から離れた点に関する第4情報が入力される第4情報入力部と、
前記第4情報に基づいて定まる第4の点を取得する第4取得部と、
を更に備え、
前記計算部は、
前記ロボットが、前記保持部を前記第4の点まで移動させる際の前記保持部の軌道を計算すること、
を特徴とするロボット教示装置。 - 請求項5~7の何れか一項に記載のロボット教示装置であって、
前記ロボットが前記保持部を移動させる際、前記ロボットのうち、前記保持部の動きを表示装置に表示させる表示制御部を更に備えること、
を特徴とするロボット教示装置。 - コンピュータに、
仮想空間における第1の位置に設けられたワークの所定の点を、第1の点として取得する機能と、
前記仮想空間における第2の位置に設けられた前記ワークの所定の点を、第2の点として取得する機能と、
前記第1及び第2の点に基づいて、前記仮想空間におけるロボットが、前記ワークを前記第1の位置から前記第2の位置に移動させる際の前記保持部の軌道を計算する機能と、
を実現させるロボット教示プログラム。 - 仮想空間における第1の位置に設けられたワークの所定の点を、第1の点として取得し、
前記仮想空間における第2の位置に設けられた前記ワークの所定の点を、第2の点として取得し、
前記第1及び第2の点に基づいて、前記仮想空間におけるロボットが、前記ワークを前記第1の位置から前記第2の位置に移動させる際の前記保持部の軌道を計算する、
ことを特徴とするロボット教示装置の制御方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2019509114A JPWO2018180297A1 (ja) | 2017-03-31 | 2018-03-07 | ロボット教示装置、ロボット教示プログラム、ロボット教示装置の制御方法 |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017-073211 | 2017-03-31 | ||
JP2017073211 | 2017-03-31 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2018180297A1 true WO2018180297A1 (ja) | 2018-10-04 |
Family
ID=63675364
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP2018/008718 WO2018180297A1 (ja) | 2017-03-31 | 2018-03-07 | ロボット教示装置、ロボット教示プログラム、ロボット教示装置の制御方法 |
Country Status (2)
Country | Link |
---|---|
JP (1) | JPWO2018180297A1 (ja) |
WO (1) | WO2018180297A1 (ja) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS60191307A (ja) * | 1984-03-12 | 1985-09-28 | Hitachi Ltd | ロボツトの積付動作簡易教示方式 |
JPH05289736A (ja) * | 1992-04-15 | 1993-11-05 | Matsushita Electric Works Ltd | ロボットのオフライン教示方法 |
JP2016013589A (ja) * | 2014-07-01 | 2016-01-28 | セイコーエプソン株式会社 | 教示装置、及びロボットシステム |
JP2016209969A (ja) * | 2015-05-12 | 2016-12-15 | キヤノン株式会社 | 情報処理方法、および情報処理装置 |
-
2018
- 2018-03-07 JP JP2019509114A patent/JPWO2018180297A1/ja active Pending
- 2018-03-07 WO PCT/JP2018/008718 patent/WO2018180297A1/ja active Application Filing
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS60191307A (ja) * | 1984-03-12 | 1985-09-28 | Hitachi Ltd | ロボツトの積付動作簡易教示方式 |
JPH05289736A (ja) * | 1992-04-15 | 1993-11-05 | Matsushita Electric Works Ltd | ロボットのオフライン教示方法 |
JP2016013589A (ja) * | 2014-07-01 | 2016-01-28 | セイコーエプソン株式会社 | 教示装置、及びロボットシステム |
JP2016209969A (ja) * | 2015-05-12 | 2016-12-15 | キヤノン株式会社 | 情報処理方法、および情報処理装置 |
Also Published As
Publication number | Publication date |
---|---|
JPWO2018180297A1 (ja) | 2020-02-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6458713B2 (ja) | シミュレーション装置、シミュレーション方法、およびシミュレーションプログラム | |
JP3708097B2 (ja) | ロボットの手動送り装置 | |
JP4137909B2 (ja) | ロボットプログラム補正装置 | |
JP5071361B2 (ja) | 複腕ロボットの作業プログラム作成方法および複腕ロボット | |
JP2019018272A (ja) | モーション生成方法、モーション生成装置、システム及びコンピュータプログラム | |
JP6469159B2 (ja) | 接触センサによるワーク位置検出プログラム生成機能を備えたオフラインプログラミング装置及び方法 | |
JP2018020412A (ja) | シミュレーション装置、ロボット制御装置およびロボット | |
JP6750909B2 (ja) | ロボット軌道生成方法、ロボット軌道生成装置、および製造方法 | |
JP2021045797A (ja) | シミュレーション装置、シミュレーションプログラムおよびシミュレーション方法 | |
JP4942924B2 (ja) | 仮想多関節物体を仮想環境で動きの連続により動かす方法 | |
JP2009190113A (ja) | ロボットシミュレーション装置 | |
JP2019089201A (ja) | 教示データ作成装置、教示データ作成装置の制御方法及びロボットシステム | |
JPS6179589A (ja) | ロボツト運転装置 | |
JP7475841B2 (ja) | 情報処理方法、ロボットシステム、物品の製造方法、および情報処理装置 | |
WO2018180300A1 (ja) | ロボット作業管理システム、ロボット作業管理プログラム | |
JP3639873B2 (ja) | ロボット制御方法およびロボット制御システム | |
WO2018180297A1 (ja) | ロボット教示装置、ロボット教示プログラム、ロボット教示装置の制御方法 | |
JP7467932B2 (ja) | シミュレーション装置およびシミュレーションプログラム | |
WO2018180298A1 (ja) | ロボット教示装置、ロボット教示装置の制御方法及びロボット教示プログラム | |
CN115008439A (zh) | 信息处理设备和方法、机器人系统、产品制造方法 | |
WO2018180299A1 (ja) | ロボット教示装置、ロボット教示装置の制御方法及びロボット教示プログラム | |
JP2018118330A (ja) | 演算装置、演算方法、演算プログラムおよびロボットシステム | |
JPH06134684A (ja) | ロボット軌道を教示するための方法 | |
JP7424122B2 (ja) | シミュレーション装置およびプログラム | |
WO2023153469A1 (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: 18776903 Country of ref document: EP Kind code of ref document: A1 |
|
ENP | Entry into the national phase |
Ref document number: 2019509114 Country of ref document: JP Kind code of ref document: A |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 18776903 Country of ref document: EP Kind code of ref document: A1 |