WO2023135764A1 - 3次元センサを備えるロボット装置およびロボット装置の制御方法 - Google Patents

3次元センサを備えるロボット装置およびロボット装置の制御方法 Download PDF

Info

Publication number
WO2023135764A1
WO2023135764A1 PCT/JP2022/001188 JP2022001188W WO2023135764A1 WO 2023135764 A1 WO2023135764 A1 WO 2023135764A1 JP 2022001188 W JP2022001188 W JP 2022001188W WO 2023135764 A1 WO2023135764 A1 WO 2023135764A1
Authority
WO
WIPO (PCT)
Prior art keywords
robot
workpiece
dimensional
relative position
correction amount
Prior art date
Application number
PCT/JP2022/001188
Other languages
English (en)
French (fr)
Inventor
順一郎 吉田
Original Assignee
ファナック株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by ファナック株式会社 filed Critical ファナック株式会社
Priority to PCT/JP2022/001188 priority Critical patent/WO2023135764A1/ja
Priority to TW111148238A priority patent/TW202327835A/zh
Publication of WO2023135764A1 publication Critical patent/WO2023135764A1/ja

Links

Images

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J13/00Controls for manipulators
    • B25J13/08Controls for manipulators by means of sensing devices, e.g. viewing or touching devices

Definitions

  • the present invention relates to a robot device equipped with a three-dimensional sensor and a control method for the robot device.
  • a robot device equipped with a robot and a work tool can perform various tasks by changing the position and posture of the robot.
  • It is known to detect the position of a work with a three-dimensional sensor so that the robot can perform work in a position and posture corresponding to the position and posture of the work for example, Japanese Unexamined Patent Application Publication No. 2004-144557.
  • the robot device can perform the work with high accuracy.
  • a 3D sensor By using a 3D sensor, it is possible to set a plurality of 3D points on the surface of the work included in the measurement area and detect the position of each 3D point. Furthermore, based on the positions of a plurality of three-dimensional points, it is possible to generate a distance image or the like with different densities depending on the distance.
  • the robot device can measure at multiple positions while moving the 3D sensor.
  • Three-dimensional point clouds obtained by arranging three-dimensional sensors at a plurality of positions can be synthesized.
  • a three-dimensional camera is fixed to the hand of the robot device. Imaging can be performed at a plurality of positions by changing the position and posture of the robot. Then, the three-dimensional point clouds measured at each position can be combined to generate one large three-dimensional point cloud.
  • the position of a part of the work may not be measured due to light halation (for example, Japanese Patent Application Laid-Open No. 2019-113895).
  • light halation for example, Japanese Patent Application Laid-Open No. 2019-113895.
  • the controller of the robot device converts the position in the sensor coordinate system set in the three-dimensional sensor into a position in the robot coordinate system.
  • the positions of the three-dimensional points are transformed based on the position and orientation of the robot.
  • this error may affect the accuracy of the position of the three-dimensional point.
  • the robot device is controlled based on the synthesized three-dimensional point group, the control becomes inaccurate.
  • a robot apparatus includes a three-dimensional sensor for detecting the position of the surface of a work, and a robot that changes the relative position between the work and the three-dimensional sensor.
  • the robot apparatus includes a position information generator that generates three-dimensional position information of the surface of the workpiece based on the output of the three-dimensional sensor, and a surface that estimates surface information regarding a surface including the surface of the workpiece based on the three-dimensional position information. and an estimating unit.
  • the robot device includes a correction amount setting section that sets a correction amount for driving the robot.
  • the robot is configured to change the relative position between the workpiece and the three-dimensional sensor from a first relative position to a second relative position different from the first relative position.
  • the correction amount setting unit sets a first surface including the surface of the workpiece detected at the first relative position and a second surface including the surface of the workpiece detected at the second relative position.
  • a correction amount for driving the robot in the second relative position is set such that
  • a control method for a robot device comprises a step of placing a relative position between a workpiece and a three-dimensional sensor at a first relative position by the robot; generating three-dimensional position information of the surface of the workpiece at the first relative position based on the first relative position.
  • the control method includes a step of placing the relative positions of the workpiece and the three-dimensional sensor at a second relative position different from the first relative position by the robot; and generating three-dimensional position information of the surface of the workpiece at the second relative position based on the position of the workpiece.
  • the control method includes a step of estimating surface information about a surface including the surface of the workpiece, based on the three-dimensional position information at each relative position.
  • the correction amount setting unit determines, based on the surface information, the first surface including the surface of the workpiece detected at the first relative position and the surface of the workpiece detected at the second relative position. and setting a correction amount for driving the robot in the second relative position so as to match the second plane.
  • the robot device and the control method of the robot device according to the aspect of the present disclosure can set the correction amount of the robot that reduces the error of the three-dimensional position information acquired from the output of the three-dimensional sensor.
  • FIG. 1 is a perspective view of a workpiece and a first robot device according to an embodiment
  • FIG. 1 is a block diagram of a first robot device in an embodiment
  • FIG. 1 is a schematic diagram of a visual sensor in an embodiment
  • FIG. 3 is a perspective view of a visual sensor and a workpiece for explaining a 3D point group and a range image
  • FIG. 4 is a perspective view explaining a three-dimensional point group set on the surface of a work
  • It is an example of a distance image generated based on the output of a visual sensor.
  • FIG. 11 is a perspective view of the work and the first robot device when the visual sensor is moved to the second position;
  • FIG. 10 is a schematic cross-sectional view when no second position error occurs when the visual sensor is moved to the second position;
  • FIG. 10 is a schematic cross-sectional view when an error occurs in the second position when the visual sensor is moved to the second position;
  • FIG. 11 is a schematic cross-sectional view explaining the position of the three-dimensional point cloud in the robot coordinate system when an error occurs in the second position of the visual sensor;
  • 4A and 4B are schematic cross-sectional views of a visual sensor and a workpiece for explaining the correction amount of the position of the visual sensor;
  • 4 is a flow chart of control performed during teaching work of the robot device according to the embodiment.
  • 4 is a flow chart of control of work for conveying a work in the embodiment.
  • FIG. 10 is a perspective view of a second workpiece and a visual sensor in the embodiment
  • FIG. 11 is a block diagram of a face estimation unit in a modified example of the first robot device
  • FIG. 10 is a perspective view of a third workpiece and a visual sensor in the embodiment
  • FIG. 11 is a schematic cross-sectional view of a fourth workpiece and a visual sensor in the embodiment
  • It is a schematic diagram of a second robot device in an embodiment.
  • FIG. 1 A robot device and a method for controlling the robot device according to the embodiment will be described with reference to FIGS. 1 to 18.
  • FIG. The robot apparatus of this embodiment includes a three-dimensional sensor for detecting the position of the surface of a work as an object to be worked. Three-dimensional position information, such as the position of a three-dimensional point, is obtained by processing the output of the three-dimensional sensor. First, a description will be given of a first robot apparatus having a robot that changes the position and posture of a three-dimensional sensor.
  • FIG. 1 is a perspective view of the first robot device according to this embodiment.
  • FIG. 2 is a block diagram of the first robot device in this embodiment.
  • first robot device 3 conveys work 65 .
  • the first robot device 3 includes a hand 5 as a working tool for gripping a first workpiece 65 and a robot 1 as a moving mechanism for moving the hand 5 .
  • the robot device 3 has a control device 2 that controls the robot 1 and the hand 5 .
  • the robot device 3 includes a visual sensor 30 as a three-dimensional sensor that outputs signals for detecting the position of the surface of the workpiece 65 .
  • the first work 65 is a plate-like member having a planar surface 65a.
  • the workpiece 65 is arranged on a surface 69a of a mount 69 as a mounting member.
  • the position and attitude of the workpiece 65 are immovable.
  • the hand 5 of this embodiment grips the workpiece 65 by suction.
  • the work tool is not limited to this form, and any work tool suitable for the work performed by the robot device 3 can be adopted. For example, a work tool for welding or a work tool for applying a sealing material can be used.
  • the robot 1 is a vertical articulated robot including multiple joints 18 .
  • Robot 1 includes an upper arm 11 and a lower arm 12 .
  • the lower arm 12 is supported by a swivel base 13 .
  • the swivel base 13 is supported by the base 14 .
  • the base 14 is fixed to the installation surface.
  • Robot 1 includes a wrist 15 connected to the end of upper arm 11 .
  • Wrist 15 includes a flange 16 to which hand 5 is secured.
  • the robot 1 of this embodiment has six drive shafts, it is not limited to this form.
  • the robot can employ any robot capable of moving work tools.
  • the visual sensor 30 is attached to the flange 16 via a support member 36. In the first robot device 3 , the visual sensor 30 is supported by the robot 1 so that its position and posture change together with the hand 5 .
  • the robot 1 of this embodiment includes a robot driving device 21 that drives components of the robot 1 such as the upper arm 11 .
  • Robot drive 21 includes a plurality of drive motors for driving upper arm 11 , lower arm 12 , pivot base 13 and wrist 15 .
  • the hand 5 includes a hand drive device 22 that drives the hand 5 .
  • the hand drive device 22 of this embodiment drives the hand 5 by air pressure.
  • the hand driving device 22 includes a vacuum pump, an electromagnetic valve, and the like that supply decompressed air to the hand 5 .
  • the control device 2 includes an arithmetic processing device 24 (computer) including a CPU (Central Processing Unit) as a processor.
  • the arithmetic processing unit 24 has a RAM (Random Access Memory), a ROM (Read Only Memory), etc., which are connected to the CPU via a bus.
  • the robot device 3 is driven by the robot 1 and the hand 5 based on the operation program 41 .
  • the robot device 3 has a function of automatically transporting the workpiece 65 .
  • the arithmetic processing unit 24 of the control device 2 includes a storage unit 42 that stores information regarding control of the robot device 3 .
  • the storage unit 42 can be configured by a non-temporary storage medium capable of storing information.
  • the storage unit 42 can be configured with a storage medium such as a volatile memory, a nonvolatile memory, a magnetic storage medium, or an optical storage medium.
  • a motion program 41 prepared in advance for motion of the robot 1 is stored in the storage unit 42 .
  • the arithmetic processing unit 24 includes an operation control unit 43 that sends an operation command.
  • the motion control unit 43 sends a motion command for driving the robot 1 to the robot driving unit 44 based on the motion program 41 .
  • the robot drive 44 includes electrical circuitry that drives the drive motors.
  • the robot driving section 44 supplies electricity to the robot driving device 21 based on the operation command.
  • the motion control unit 43 sends an operation command for driving the hand drive device 22 to the hand drive unit 45 .
  • the hand drive unit 45 includes an electric circuit that drives a pump or the like. The hand driving unit 45 supplies electricity to the hand driving device 22 based on the operation command.
  • the operation control unit 43 corresponds to a processor driven according to the operation program 41.
  • the processor functions as an operation control unit 43 by reading the operation program 41 and performing control defined in the operation program 41 .
  • the robot 1 includes a state detector for detecting the position and orientation of the robot 1.
  • the state detector in this embodiment includes a position detector 23 attached to the drive motor of each drive shaft of the robot drive device 21 .
  • the position detector 23 is configured by an encoder, for example. The position and orientation of the robot 1 are detected from the output of the position detector 23 .
  • the control device 2 includes a teaching operation panel 49 as an operation panel for manually operating the robot device 3 by the operator.
  • the teaching operation panel 49 includes an input section 49a for inputting information about the robot device 3.
  • the input unit 49a is composed of operation members such as a keyboard and a dial.
  • the teaching operation panel 49 includes a display section 49b that displays information regarding control of the robot device 3.
  • FIG. The display unit 49b is composed of a display panel such as a liquid crystal display panel.
  • a robot coordinate system 71 that does not move even if the position and orientation of the robot 1 changes is set in the robot apparatus 3 of the present embodiment.
  • the origin of the robot coordinate system 71 is arranged on the base 14 of the robot 1 .
  • the robot coordinate system 71 is also called a world coordinate system.
  • the robot coordinate system 71 has a fixed origin position and a fixed direction of the coordinate axes.
  • the robot coordinate system 71 of this embodiment is set such that the Z axis is parallel to the vertical direction.
  • a tool coordinate system 73 having an origin set at an arbitrary position on the work tool is set in the robot device 3 .
  • the tool coordinate system 73 changes its position and orientation along with the hand 5 .
  • the origin of the tool coordinate system 73 is set at the tip point of the tool.
  • the position of the robot 1 corresponds to the position of the tip point of the tool (the position of the origin of the tool coordinate system 73).
  • the posture of the robot 1 corresponds to the posture of the tool coordinate system 73 with respect to the robot coordinate system 71 .
  • a sensor coordinate system 72 is set for the visual sensor 30 in the robot device 3 .
  • the sensor coordinate system 72 is a coordinate system whose origin is fixed at an arbitrary position such as the lens center point of the visual sensor 30 .
  • the sensor coordinate system 72 changes position and orientation along with the visual sensor 30 .
  • the sensor coordinate system 72 of this embodiment is set so that the Z axis is parallel to the optical axis of the camera included in the visual sensor 30 .
  • the sensor coordinate system 72 has a predetermined relative position and orientation with respect to the flange coordinate system set on the surface of the flange 16 or the tool coordinate system 73 .
  • the sensor coordinate system 72 is calibrated so that the coordinate values of the robot coordinate system 71 can be calculated from the coordinate values of the sensor coordinate system 72 based on the position and orientation of the robot 1 .
  • Each coordinate system has an X-axis, a Y-axis, and a Z-axis. Also defined are a W axis about the X axis, a P axis about the Y axis, and an R axis about the Z axis.
  • FIG. 3 shows a schematic diagram of the visual sensor in this embodiment.
  • the visual sensor of this embodiment is a three-dimensional camera capable of acquiring three-dimensional position information on the surface of an object.
  • visual sensor 30 of the present embodiment is a stereo camera including first camera 31 and second camera 32 .
  • Each camera 31, 32 is a two-dimensional camera capable of capturing a two-dimensional image.
  • the visual sensor 30 of this embodiment includes a projector 33 that projects pattern light such as a striped pattern toward the workpiece 65 .
  • Cameras 31 and 32 and projector 33 are arranged inside housing 34 .
  • the control device 2 of the robot device 3 includes a visual sensor 30.
  • the robot 1 changes the relative positions of the workpiece 65 and the visual sensor 30 .
  • the control device 2 includes a processing section 51 that processes the output of the visual sensor 30 .
  • Processing unit 51 includes a position information generating unit 52 that generates three-dimensional position information of the surface of workpiece 65 based on the output of visual sensor 30 .
  • the processing unit 51 includes a surface estimation unit 53 that estimates surface information regarding a surface including the surface of the workpiece based on the three-dimensional position information.
  • the surface information is information specifying the surface of the workpiece. For example, if the surface of the workpiece is flat, the surface information includes equations of the surface in the robot coordinate system.
  • the processing unit 51 includes a correction amount setting unit 55 that sets the correction amount for driving the robot 1 .
  • the robot 1 changes the relative position between the workpiece 65 and the visual sensor 30 from the first relative position to a second relative position different from the first relative position.
  • the processing unit 51 has a first plane including the surface of the workpiece 65 detected at the first relative position and a second plane including the surface of the workpiece 65 detected at the second relative position. It includes a determination unit 54 that determines whether or not there is a match within the determination range.
  • a correction amount setting unit 55 sets a correction amount for driving the robot in the second relative position so that the first surface and the second surface match based on the surface information. For example, the correction amount setting unit 55 sets the correction amount for driving the robot at the second relative position so that the first surface and the second surface match within a predetermined range based on the surface information. set.
  • the processing unit 51 includes a synthesizing unit 56 that synthesizes three-dimensional position information of a plurality of workpiece surfaces acquired at a plurality of relative positions.
  • the synthesizer 56 synthesizes the three-dimensional position information detected at the first relative position and the three-dimensional position information detected at the second relative position.
  • the synthesizing unit 56 uses the three-dimensional position information generated at the second relative position corrected based on the correction amount set by the correction amount setting unit 55 .
  • the processing unit 51 includes an imaging control unit 57 that controls imaging by the visual sensor 30 .
  • the processing unit 51 includes a command unit 58 that issues commands for the operation of the robot 1 .
  • the command unit 58 of the present embodiment sends a correction command for the position and orientation of the robot 1 to the motion control unit 43 based on the motion correction amount of the robot 1 set by the correction amount setting unit 55 .
  • the processing unit 51 described above corresponds to a processor driven according to the operating program 41 .
  • the processor functions as the processing unit 51 by executing control defined in the operation program 41 .
  • the position information generation unit 52 , the surface estimation unit 53 , the determination unit 54 , the correction amount setting unit 55 , and the synthesis unit 56 included in the processing unit 51 correspond to a processor driven according to the operation program 41 .
  • the imaging control unit 57 and command unit 58 correspond to a processor driven according to the operating program 41 .
  • the processors function as respective units by executing control defined in the operating program 41 .
  • the position information generator 52 of the present embodiment detects the surface of the object from the visual sensor 30 based on the parallax between the image captured by the first camera 31 and the image captured by the second camera 32 . Calculate the distance to the three-dimensional point set to .
  • a three-dimensional point can be set for each pixel of the image sensor, for example.
  • the position information generator 52 calculates the distance from the visual sensor 30 for each three-dimensional point. Further, the position information generator 52 calculates the coordinate values of the positions of the three-dimensional points in the sensor coordinate system 72 based on the distance from the visual sensor 30 .
  • Fig. 4 shows a perspective view of a visual sensor and a workpiece for explaining an example of a 3D point cloud and a range image.
  • the workpiece 65 is placed on the surface 69a of the pedestal 69 so as to be inclined.
  • a surface 69 a of the mount 69 extends perpendicularly to the optical axes of the cameras 31 and 32 of the visual sensor 30 .
  • the distance from visual sensor 30 to a three-dimensional point set on the surface of workpiece 63 is detected as indicated by arrows 102 and 103. be able to.
  • Fig. 5 shows a perspective view of a point cloud of three-dimensional points generated by the position information generation unit.
  • the outline of the workpiece 65 and the outline of the measurement area 91 are indicated by dashed lines.
  • a three-dimensional point 85 is located on the surface of the object facing the visual sensor 30 .
  • the position information generator 52 sets a three-dimensional point 85 on the surface of the object included inside the measurement area 91 .
  • a large number of three-dimensional points 85 are arranged on the surface 65a of the workpiece 65.
  • a large number of three-dimensional points 85 are arranged on the surface 69 a of the mount 69 inside the measurement area 91 .
  • the position information generator 52 can indicate the surface of the workpiece 65 as a three-dimensional point group.
  • the position information generator 52 can generate the three-dimensional position information of the surface of the object in the form of a range image or three-dimensional point position information (three-dimensional map).
  • a distance image is a two-dimensional image representing positional information on the surface of an object.
  • the density or color of each pixel represents the distance from the visual sensor 30 to the three-dimensional point.
  • a three-dimensional map expresses positional information on the surface of an object by a set of coordinate values (x, y, z) of three-dimensional points on the surface of the object.
  • coordinate values can be expressed in the robot coordinate system 71 or the sensor coordinate system 72 .
  • Fig. 6 shows an example of a distance image obtained from the output of the visual sensor.
  • the position information generator 52 can generate the distance image 81 in which the color depth is changed according to the distance from the visual sensor 30 to the three-dimensional point 85 .
  • the distance image 81 is generated such that the color becomes darker as the distance from the visual sensor 30 increases.
  • the color becomes lighter as it gets closer to the visual sensor 30 .
  • the position of a three-dimensional point is used as the three-dimensional position information on the surface of the object, but similar control can be performed using a distance image.
  • the position information generation unit 52 of the present embodiment is arranged in the processing unit 51 of the arithmetic processing unit 24, it is not limited to this form.
  • the position information generator may be arranged inside the three-dimensional sensor. That is, the three-dimensional sensor may be provided with an arithmetic processing device including a processor such as a CPU, and the processor of the arithmetic processing device of the three-dimensional sensor may function as the position information generator.
  • the visual sensor outputs three-dimensional position information such as a three-dimensional map or a range image.
  • FIG. 7 shows a perspective view of the robot device and the work when the visual sensor is moved to the second position in the first robot device. 1 and 7, the robot device 3 grips the surface 65a of the workpiece 65 with the hand 5. As shown in FIG. The robot device 3 performs control to transport the workpiece 65 from the surface 69a of the mount 69 to a predetermined position. For example, the robot device 3 performs control to transport the workpiece 65 to a nearby conveyor, shelf, or the like.
  • the workpiece 65 having the surface 65a larger than the measurement area 91 of the visual sensor 30 is measured when the robot 1 is in a predetermined position and posture. That is, the workpiece 65 has a size that cannot image the entire surface 65a in one imaging.
  • the surface 65 a is larger than the measurement area 91 and has a portion protruding from the measurement area 91 .
  • the length of the surface 65a in one predetermined direction is greater than the length of the measurement area 91 in one predetermined direction. For this reason, in the present embodiment, the position (viewpoint) of the visual sensor 30 is changed, and multiple images are captured.
  • the robot device 3 changes the relative position between the workpiece 65 and the visual sensor from the first relative position to a second relative position different from the first relative position.
  • Three-dimensional position information is generated for the entire surface 65a of the workpiece 65 by imaging at each position.
  • three-dimensional points are set on the entire surface 65 a of the work 65 .
  • the position and posture of the robot 1 when the hand 5 grips the workpiece 65 are calculated.
  • the visual sensor 30 is arranged at a first position and orientation (first viewpoint).
  • the position information generation unit 52 sets three-dimensional points on the surface 65 a arranged inside the measurement area 91 .
  • the position information generator 52 sets a three-dimensional point at one end of the surface 65a.
  • robot 1 changes its position and posture so that visual sensor 30 moves as indicated by arrow 101 .
  • the visual sensor 30 is translated in the horizontal direction.
  • the visual sensor 30 is arranged at the second position and orientation (second viewpoint).
  • the position information generator 52 sets a three-dimensional point at the other end of the surface 65a.
  • the synthesis unit 56 sets three-dimensional points on the entire surface 65a by synthesizing the three-dimensional point group acquired at the first position and the three-dimensional point group acquired at the second position. In the example here, three-dimensional points can be set on the entire surface 65a by imaging the visual sensor 30 twice.
  • the command unit 58 can calculate the position and orientation of the surface 65a of the workpiece 65 based on the three-dimensional point group set on the surface 65a.
  • the command unit 58 can calculate the position and orientation of the robot 1 for gripping the work 65 based on the position and orientation of the work 65 .
  • the first position and orientation of the visual sensor 30 for measuring the surface of the workpiece 65 and the second position and orientation of the visual sensor 30 can be set by arbitrary control.
  • the operator can display an image captured by one of the two-dimensional cameras of the visual sensor 30 on the display section 49b of the teaching operation panel 49. FIG.
  • the position and posture of the robot 1 can be adjusted.
  • the operator can adjust the position and posture of the robot so that one side of the workpiece 65 is placed inside the measurement area 91 as shown in FIG. Also, as shown in FIG. 7, the position and posture of the robot can be manually adjusted so that the other side of the workpiece 65 is placed inside the measurement area 91 .
  • the operator can store the position and orientation of the robot in the storage unit 42 when the visual sensor 30 is arranged at the desired position and orientation. Alternatively, the position and orientation of the visual sensor may be set in advance using a simulation device or the like.
  • Fig. 8 shows a schematic cross-sectional view of the visual sensor and the work when the robot is ideally driven.
  • a surface 69a of the pedestal 69 of this embodiment is planar and extends in the horizontal direction.
  • the surface 65a of the workpiece 65 is flat and extends horizontally.
  • Visual sensor 30 is moving from first position P30a to second position P30b as indicated by arrow 105 .
  • the visual sensor 30 changes its position without changing its posture.
  • the visual sensor 30 is moving horizontally parallel to the Y-axis of the robot coordinate system 71 .
  • FIG. 8 shows a case where there is no error in the actual position and posture of the robot 1 with respect to the command values of the robot 1.
  • Three-dimensional points 85a and 85b indicate the positions of the coordinate values of the sensor coordinate system 72.
  • the three-dimensional points 85a and 85b are located at the same positions. placed in
  • a three-dimensional point 85a is set on the surface 65a of the workpiece 65 and the surface 69a of the pedestal 69 by the output of the visual sensor 30 arranged at the first position P30a.
  • a three-dimensional point 85b is set on the surface 65a and the surface 69a by the output of the visual sensor 30 arranged at the second position P30b.
  • a portion of the measurement region 91a at the first position P30a and a portion of the measurement region 91b at the second position P30b overlap each other.
  • a three-dimensional point 85a and a three-dimensional point 85b are arranged in the overlapping area.
  • the processing unit 51 can combine the point group of the three-dimensional points 85a and the point group of the three-dimensional points 85b to estimate the position and orientation of the workpiece 65 with high accuracy.
  • Fig. 9 shows a schematic cross-sectional view of the visual sensor and the workpiece when an error occurs in the position and posture of the robot when moving the visual sensor to the second position.
  • errors in actual position and orientation may occur with respect to the command values defined in the motion program.
  • the actual position and orientation of the robot may deviate from the command values due to movement errors that occur in the drive mechanism, such as backlash of the transmission.
  • the movement error of the robot corresponds to the positional error of the three-dimensional point.
  • a command value is generated to move the visual sensor 30 in the horizontal direction.
  • visual sensor 30 has moved from first position P30a to second position P30c shifted upward.
  • the position information generator 52 detects three-dimensional points 85 a and 85 c in the sensor coordinate system 72 .
  • the coordinate value of the Z-axis in the sensor coordinate system 72 of the three-dimensional point 85a differs from the coordinate value of the Z-axis in the sensor coordinate system 72 of the three-dimensional point 85c.
  • FIG. 10 shows the positions of the three-dimensional points represented by the coordinate values of the robot coordinate system when the three-dimensional points are detected at the second position including the error.
  • the processing unit 51 converts the coordinate values of the sensor coordinate system 72 to the coordinate values of the robot coordinate system 71 assuming that the visual sensor 30 is arranged at the second position P30b.
  • the coordinate values of the sensor coordinate system 72 are converted into the coordinate values of the robot coordinate system 71 using the coordinate values of the robot coordinate system of the second position P30b. Therefore, the position of the three-dimensional point 85c in the robot coordinate system 71 is calculated under the condition that the visual sensor 30 is arranged at the second position P30b.
  • the Z-axis coordinate value of the three-dimensional point 85 c in the sensor coordinate system 72 increases, and the three-dimensional point 85 c is arranged at a position shifted from the surface 65 a of the workpiece 65 .
  • the position of the three-dimensional point 85c is calculated below the surface 65a.
  • the three-dimensional point 85a and the three-dimensional point 85c in the area where the measurement area 91a and the measurement area 91b overlap for example, the three-dimensional point 85a close to the visual sensor 30 can be adopted. In this case, it is determined that there is a step on the surface of the workpiece 65 as shown by the surface 99 . Thus, there is a problem that the position of the three-dimensional point on the entire surface 65a of the workpiece 65 cannot be detected accurately if there is an error in the driving of the robot.
  • the processing unit 51 of the present embodiment arranges the visual sensor 30 at the second position P30b corresponding to the command values for the position and orientation of the robot 1 when arranging the visual sensor 30 at the second position.
  • the correction amount for driving the robot 1 is set as follows.
  • Fig. 11 shows a schematic diagram of the visual sensor and the work when the correction value is calculated and the robot is driven.
  • the processing unit 51 of the present embodiment sets the correction amount indicated by the arrow 107 so that the visual sensor 30 arranged at the second position P30c is arranged at the second position P30b.
  • a correction amount for command values of the position and orientation of the robot can be used.
  • the correction amount setting unit 55 sets the plane determined by the first three-dimensional point 85a acquired at the first position and the plane determined by the first three-dimensional point 85a acquired at the second position.
  • a second position is searched so that the plane defined by the second three-dimensional point 85c obtained by the second position is on the same plane. That is, surface matching control is performed to match the two surfaces.
  • a correction amount for driving the robot is set based on the corrected second position of the visual sensor 30 .
  • FIG. 12 shows a flowchart of the control of the first robot device in this embodiment.
  • the control shown in FIG. 12 includes surface matching control for matching the first surface and the second surface.
  • the first plane is a plane including the surface of the workpiece 65 detected at the first relative position, and serves as a reference plane for plane matching control.
  • the second plane is a plane including the surface of the workpiece 65 detected at the second relative position.
  • the control shown in FIG. 12 can be implemented during teaching work before actual work is performed.
  • a first position P30a and a second position P30c of the visual sensor 30 for imaging the workpiece are set.
  • the operator operates the teaching operation panel 49 to set the first position P30a and the second position P30c.
  • the storage unit 42 stores command values for the robot 1 at each position.
  • the position of the visual sensor is translated so that the orientation of the visual sensor 30 at the first position P30a and the orientation of the visual sensor 30 at the second position P30b are the same.
  • the visual sensor is moved in the negative direction of the Y-axis of the robot coordinate system 71 .
  • the visual sensor 30 also moves in the Z-axis direction.
  • the command unit 58 drives the robot 1 to move the visual sensor 30 to the first position P30a.
  • the robot 1 is driven with no error in the actual position and orientation of the robot 1 with respect to the command value of the robot 1.
  • the imaging control unit 57 sends a command to the visual sensor 30 to capture an image.
  • a visual sensor 30 captures an image.
  • the position information generation unit 52 generates first three-dimensional position information in the measurement area 91 a based on the image of the first camera 31 and the image of the second camera 32 .
  • a first three-dimensional point 85a is set on the surface 65a of the workpiece 65 and the surface 69a of the pedestal 69.
  • the position information generator 52 is calibrated so that coordinate values in the sensor coordinate system 72 can be converted into coordinate values in the robot coordinate system 71 .
  • the position information generator 52 calculates the position of the three-dimensional point 85 a in the sensor coordinate system 72 .
  • the position information generator 52 converts the coordinate values of the sensor coordinate system 72 into the coordinate values of the robot coordinate system 71 .
  • the position of the first three-dimensional point 85 a as the first three-dimensional position information is calculated using the coordinate values of the robot coordinate system 71 .
  • the surface estimation unit 53 calculates surface information regarding the first surface including the surface 65 a of the workpiece 65 .
  • the plane estimator 53 calculates an equation of a plane including the three-dimensional point 85a in the robot coordinate system 71 as the plane information of the first plane.
  • the surface estimation unit 53 eliminates, from the acquired three-dimensional points 85a, three-dimensional points whose coordinate values differ significantly from a predetermined judgment value.
  • the three-dimensional point 85a located on the surface 69a of the pedestal 69 is eliminated.
  • a range for estimating a plane in an image may be determined in advance.
  • the operator may specify a range for estimating a plane on the image while looking at the image captured by the two-dimensional camera. .
  • the plane estimator 53 extracts the three-dimensional points 85a within the plane estimation range.
  • the plane estimation unit 53 calculates a plane equation in the robot coordinate system 71 along the point group of the three-dimensional points 85a.
  • the equation of the plane of the first surface in the robot coordinate system 71 is calculated by the method of least squares so as to reduce the error with respect to the coordinate values of the three-dimensional points.
  • step 115 the command unit 58 moves the visual sensor 30 from the first position P30a to the second position P30c as indicated by the arrow 106. By driving the robot 1, the visual sensor 30 moves.
  • the imaging control unit 57 sends a command to the visual sensor 30 to capture an image.
  • a visual sensor 30 captures an image.
  • the position information generator 52 sets a second three-dimensional point 85c corresponding to the surface 65a of the workpiece 65. As shown in FIG.
  • the position information generator 52 calculates the position of the three-dimensional point 85c as second three-dimensional position information.
  • the position information generation unit 52 calculates the position of the second three-dimensional point 85 c using the coordinate values of the robot coordinate system 71 .
  • the surface estimation unit 53 calculates surface information of the second surface including the surface 65 a of the workpiece 65 .
  • the plane estimator 53 can exclude the second three-dimensional point 85c arranged on the surface 69a of the pedestal 69.
  • FIG. Alternatively, a range for estimating a plane in an image may be determined in advance. For example, when the operator manually sets the second position and orientation of the visual sensor 30, the operator may specify the range for estimating the plane on the screen while viewing the image captured by the two-dimensional camera. .
  • the plane estimator 53 extracts three-dimensional points 85c within the plane estimation range.
  • the surface estimation unit 53 calculates surface information of the second surface based on the positions of the plurality of second three-dimensional points 85c.
  • the surface estimator 53 calculates a plane equation of the second surface including the three-dimensional point 85c in the robot coordinate system 71 by the method of least squares.
  • the determination unit 54 determines whether or not the first surface and the second surface match within a predetermined determination range. Specifically, the determination unit 54 calculates whether the difference between the position and orientation of the first surface and the position and orientation of the second surface is within the determination range. In this example, the determination unit 54 calculates a normal vector from the origin of the robot coordinate system 71 toward the first surface based on the equation of the first surface by the first three-dimensional point 85a. Similarly, the determination unit 54 calculates a normal vector from the origin of the robot coordinate system 71 toward the second surface based on the equation of the second surface by the second three-dimensional point 85c.
  • the determination unit 54 compares the length of the normal vector and the direction of the normal vector for the first surface and the second surface. Then, when the difference in length of the normal vector is within a predetermined determination range and the difference in direction of the normal vector is within a predetermined determination range, the first surface and the second surface can be determined to be within the determination range. The determination unit 54 determines that the degree of matching between the first surface and the second surface is high. In step 118 , if the difference between the position and orientation of the first surface and the position and orientation of the second surface deviates from the determination range, control proceeds to step 119 . It should be noted that there are cases where the relative orientation between the visual sensor and the work does not change when the relative position between the visual sensor and the work is changed.
  • the posture of the visual sensor hardly changes when the visual sensor is moved with respect to the workpiece. If there is no error in the relative orientation between the work and the visual sensor, it is not necessary to evaluate the relative orientation based on the first and second surfaces of the work in step 118 . For example, the direction of the normal vector may not be evaluated.
  • the command unit 58 sends a command to change the position and posture of the robot 1.
  • the command unit 58 changes the position and orientation of the robot 1 by minute amounts.
  • the command unit 58 can perform control to slightly move the position and posture of the robot 1 in a predetermined direction. For example, control is performed to move the visual sensor 30 slightly upward or downward in the vertical direction.
  • the command unit 58 may perform control to drive the drive motor so as to rotate the constituent members in a predetermined direction at a predetermined angle for each drive shaft. If the relative posture between the visual sensor and the work does not change when the relative position between the visual sensor and the work is changed, the posture of the robot need not be changed in step 119 .
  • control After changing the position and orientation of the robot 1, the control returns to step 116.
  • the processing unit 51 repeats the control from step 116 to step 118 .
  • control is performed to search for the position of the visual sensor 30 where the first surface and the second surface are aligned while changing the position of the visual sensor 30 . If in step 118 the difference in position and orientation between the first and second surfaces is within the determination range, control proceeds to step 120 . In this case, referring to FIG. 11, it can be determined that the visual sensor 30 has moved from the second position P30c to the second position P30b.
  • the correction amount setting unit 55 sets the correction amount for moving the visual sensor 30 from the second position P30c to the second position P30b.
  • An arrow 107 shown in FIG. 11 corresponds to the correction amount.
  • the storage unit 42 stores a correction amount for driving the robot to place the visual sensor 30 at the second position.
  • the correction amount setting unit 55 of the present embodiment sets correction amounts for command values of the position and orientation of the robot 1 .
  • the correction amount is not limited to this form, and may be determined by the rotation angle of the drive motor on each drive shaft. Further, in step 118, if the relative orientation is not evaluated based on the first and second planes, it is not necessary to calculate the correction amount for the robot orientation command value.
  • the degree of matching between the first surface and the second surface is high.
  • the position and orientation of the robot with the highest degree of surface matching may be adopted.
  • the correction amount at the second position may be set based on the position and orientation of the robot 1 at this time.
  • correction amount setting unit 55 sets the coordinate value of a three-dimensional point 85a of sensor coordinate system 72 at first position P30a and the three-dimensional point of sensor coordinate system 72 at second position P30c.
  • the correction amount may be set based on the coordinate values of 85c.
  • the first plane equation is calculated in the sensor coordinate system 72 based on the first three-dimensional point 85a
  • the second plane equation is calculated in the sensor coordinate system 72 based on the second three-dimensional point 85c.
  • the correction amount may be calculated based on the difference in position and the difference in orientation between the first plane and the second plane.
  • the correction amount in the Z-axis direction of the sensor coordinate system 72 is calculated.
  • the correction amount in the sensor coordinate system 72 can be converted into the correction amount in the robot coordinate system 71 .
  • the second position is determined so as to keep the orientation of the visual sensor 30 constant.
  • the second position is determined so that the visual sensor 30 is translated without changing the orientation of the visual sensor 30, but the configuration is not limited to this.
  • the robot 1 of this embodiment is an articulated robot.
  • the robot 1 can change the relative posture between the workpiece 65 and the visual sensor 30 from the first relative posture to the second relative posture.
  • the position and orientation of the visual sensor may be changed from the first position and orientation to the second position and orientation.
  • the processing unit can control the orientation of the visual sensor as well as control the position of the visual sensor.
  • the correction amount setting unit can set a correction amount for the second position and a correction amount for the second posture of the visual sensor. That is, the correction amount setting unit may set the posture correction amount in addition to the position correction amount.
  • Fig. 13 shows a flow chart of the control when carrying out the actual work of transporting the work.
  • the correction amount set by the correction amount setting unit 55 is used to move the visual sensor to the second position.
  • an operator or other device places the workpiece 65 on the surface 69a of the pedestal 69 at a predetermined position.
  • a workpiece is placed inside a measurement area obtained by adding the measurement area at the first position and the measurement area at the second position of the visual sensor 30 .
  • the motion control unit 43 drives the robot 1 to move the visual sensor 30 to the first position.
  • the imaging control unit 57 captures an image with the visual sensor 30 .
  • the position information generator 52 generates first three-dimensional position information.
  • step 134 the motion control unit 43 uses the correction amounts for the position and orientation of the robot 1 set by the correction amount setting unit 55 in the teaching work to move the visual sensor 30 to the corrected second position.
  • the robot 1 is driven so as to The motion control unit 43 arranges the visual sensor at a position reflecting the correction amount with respect to the command value. That is, the robot is driven with command values obtained by correcting the position and orientation command values (coordinate values) by the correction amount.
  • a correction amount is applied as indicated by arrow 107 to position visual sensor 30 at second position P30b.
  • the correction amount setting unit 55 calculates the correction amount for the robot position, but there are cases where the correction amount for the robot orientation is not calculated. be. In this case, the visual sensor 30 may be moved using only the correction amount for the position of the robot.
  • the imaging control section 57 captures an image with the visual sensor 30 .
  • the position information generator 52 acquires an image from the visual sensor 30 and generates second three-dimensional position information. Since the position of the robot 1 at the second position has been corrected, the three-dimensional points arranged on the surface 65a of the workpiece 65 can be calculated with high accuracy in the robot coordinate system 71.
  • FIG. Here, when the command value of the robot with respect to the second position is corrected, the position information generation unit 52 uses the command value of the robot before correction to determine the position of the three-dimensional point expressed in the sensor coordinate system 72. (coordinate values) are converted into three-dimensional point positions (coordinate values) expressed in the robot coordinate system 71 .
  • the synthesizing unit 56 synthesizes the first three-dimensional position information obtained at the first position and the second three-dimensional position information obtained at the second position.
  • the position of a three-dimensional point is used as the three-dimensional position information.
  • the three-dimensional It adopts point position.
  • the average position of the three-dimensional point obtained at the first position and the position of the three-dimensional point obtained at the second position may be calculated in the overlapping range.
  • both three-dimensional points may be adopted.
  • the command section 58 calculates the position and orientation of the work 65 .
  • the command unit 58 excludes three-dimensional points whose coordinate values deviate from a predetermined range from the acquired three-dimensional points. That is, the command unit 58 excludes the three-dimensional point 85a arranged on the surface 69a of the gantry 69.
  • the command unit 58 estimates the contour of the surface 65a of the workpiece 65 from a plurality of three-dimensional points.
  • the command unit 58 calculates the gripping position on the surface 65a of the workpiece 65 where the hand 5 is arranged substantially at the center of the surface 65a. Furthermore, the command unit 58 calculates the posture of the workpiece at the gripping position.
  • the command unit 58 calculates the position and posture of the robot 1 so that the hand 5 is placed at the gripping position for gripping the workpiece 65 .
  • the command section 58 sends the position and orientation of the robot 1 to the motion control section 43 .
  • the motion control unit 43 drives the robot 1 to grip the workpiece 65 with the hand 5 .
  • the motion control unit 43 drives the robot 1 to transport the workpiece 65 to a predetermined position based on the motion program 41 .
  • the control method of the robot apparatus includes the step of arranging the relative positions of the workpiece and the visual sensor in the robot at the first relative position, and generating three-dimensional position information of the surface of the workpiece at the first relative position based on the first relative position.
  • the control method comprises a step of placing the relative positions of the workpiece and the visual sensor by the robot at a second relative position different from the first relative position; and generating three-dimensional position information for the workpiece at the second relative position.
  • the control method includes a step of estimating surface information about a surface including the surface of the work by the surface estimating unit based on the three-dimensional position information.
  • the control method includes a correction amount setting unit setting a correction amount for driving the robot in the second relative position based on the surface information.
  • the correction amount setting unit adjusts the first plane including the surface of the workpiece detected at the first relative position and the second plane including the surface of the workpiece detected at the second relative position. Set the correction amount.
  • the correction amount for driving the robot is set so that the planes generated from the respective three-dimensional position information are aligned. do. For this reason, it is possible to set a robot correction amount that reduces the error in the three-dimensional position information obtained from the output of the three-dimensional sensor.
  • the position and posture of the robot by correcting the position and posture of the robot with the set correction amount, it is possible to accurately set three-dimensional points on the surface of the workpiece even if measurements are performed a plurality of times.
  • the surface of the work can be detected with high accuracy, and the work of the robot device can be performed with high accuracy.
  • the three-dimensional point can be set with high accuracy.
  • the position and orientation of the robot when the visual sensor is placed at the first position may be adjusted in advance so as to exactly match the position and orientation command values in the robot coordinate system.
  • the robot 1 moves the visual sensor 30 to two positions so that the workpiece 65 and the visual sensor 30 are arranged at two relative positions.
  • the robot may change the relative positions of the workpiece and the visual sensor to three or more different relative positions.
  • the visual sensor can be moved to three or more positions to make measurements with the visual sensor.
  • the position information generator can generate three-dimensional position information of the work surface at each relative position.
  • the plane estimator can estimate plane information at each relative position.
  • the correction amount setting unit drives the robot at at least one relative position so that surfaces including the surface of the workpiece detected at the plurality of relative positions match within a predetermined determination range. can be set.
  • the correction amount setting unit creates a reference plane as a reference based on the three-dimensional position information acquired at one relative position, and creates a plane generated from the three-dimensional position information acquired at another relative position. Other relative positions may be corrected so that is aligned with the reference plane.
  • the plane first and second planes are calculated from the three-dimensional points set on the surface 65a. Then, the position of the visual sensor is corrected so that the first surface and the second surface are aligned. Alternatively, the orientation of the visual sensor may be corrected so that the first surface and the second surface are aligned. However, the relative position of the second surface with respect to the first surface in the direction in which the first surface and the second surface extend is not specified. Also, the angle of rotation about the normal directions of the first and second surfaces is not specified.
  • FIG. 14 shows a perspective view of the second workpiece and visual sensor of this embodiment.
  • the second work 66 is formed in a plate shape.
  • the workpiece 66 has a hole portion 66b having a circular planar shape.
  • the position and orientation of the surface 66a of the workpiece 66 are detected by placing the visual sensor 30 at the first position P30a and the second position P30c and performing measurements.
  • FIG. 15 shows a block diagram of a modification of the face estimation unit of the first robot device of the present embodiment. 14 and 15, in the modified example of the first robot apparatus, face estimating section 53 has feature detecting section 59.
  • the feature detection unit 59 is formed so as to be able to detect the position of the feature portion of the workpiece.
  • the feature detection unit 59 is formed to perform pattern matching using three-dimensional position information.
  • the feature detection unit 59 is formed to perform pattern matching using a two-dimensional image.
  • the feature detection unit 59 detects the hole in the workpiece 66 in the measurement area 91a based on the first three-dimensional position information acquired at the first position P30a. The position of the portion 66b is detected. Also, the feature detection unit 59 detects the position of the hole 66b of the workpiece 66 in the measurement area 91c based on the second three-dimensional position information acquired at the second position P30c. The surface estimation unit 53 estimates surface information about the first surface and surface information about the second surface.
  • the determination unit 54 compares the positions of the hole portions 66b in addition to comparing the lengths and orientations of the normal vectors of the first and second surfaces. Change the position and posture of the robot at the second position until the difference between the position of the hole in the first three-dimensional position information and the position of the hole in the second three-dimensional position information is within the determination range. be able to.
  • the correction amount setting unit 55 sets the correction amount so that the first surface and the second surface match within the determination range. Furthermore, the correction amount setting unit 55 determines the position of the hole 66b in the first three-dimensional position information acquired at the first position and the position of the hole 66b in the second three-dimensional position information acquired at the second position. The correction amount can be set so that the position of . By driving the robot with this correction amount, it is possible to align three-dimensional points in a direction parallel to the direction in which the first and second surfaces extend. In addition to the W-, P-, and Z-axis directions of the robot coordinate system 71, three-dimensional points in the X- and Y-axis directions can be aligned. The amount of correction for the position and orientation of the robot can be set so that the position of the hole 66b of the second work 66 matches.
  • FIG. 16 shows a perspective view of the third workpiece and visual sensor of this embodiment.
  • a hole portion 66b as a characteristic portion of the second work 66 has a circular planar shape.
  • the hole portion 66b has a point-symmetric planar shape.
  • the third work 67 a characteristic portion having an asymmetric planar shape is formed.
  • the third work 67 is formed in a flat plate shape.
  • a hole 67b having a triangular planar shape is formed in the third work 67 .
  • the feature detector 59 can detect the position of the hole 67b in the measurement area.
  • the determination unit 54 compares the position of the hole 67b in the first three-dimensional position information and the position of the hole 67b in the second three-dimensional position information. Then, the position and posture of the robot at the second position can be changed until the positional difference of the hole 67b falls within the determination range.
  • the correction amount setting unit 55 adjusts the position of the hole 67b in the three-dimensional position information acquired at the first position to match the position of the hole 67b in the three-dimensional position information acquired at the second position. , the amount of correction can be set.
  • a characteristic portion having an asymmetric planar shape is formed in the third work 67 .
  • an alignment around the normal direction of the first and second surfaces can be performed.
  • three-dimensional points in the X-axis direction, Y-axis direction, and R-axis direction can be aligned.
  • the amount of correction of the position and orientation of the robot 1 can be set so that the position and orientation of the hole 67b of the third work 67 match.
  • the characteristic portion may be formed at a plurality of asymmetric positions on the workpiece.
  • a characteristic portion such as a protrusion may be formed at the portion corresponding to the vertex of the triangle of the hole of the third work.
  • FIG. 17 shows a schematic diagram of the fourth work and the visual sensor in this embodiment.
  • a surface 68a of the fourth work 68 is curved.
  • a three-dimensional point 85c is set.
  • the correction amount setting unit 55 sets the first surface including the surface of the workpiece 68 detected at the first position P30a and the A correction amount for driving the robot 1 at the second position P30c such that the second surface including the surface of the workpiece 68 detected at the second position P30c matches within a predetermined determination range. can be set.
  • the position and posture of the robot can be corrected based on the correction amount, and three-dimensional position information can be detected.
  • a reference plane that serves as a reference for the surface 68a of the workpiece 68 can be set in advance in a three-dimensional space.
  • the shape of the surface 68a can be generated, for example, based on three-dimensional shape data output from a CAD (Computer Aided Design) device.
  • CAD Computer Aided Design
  • the work 68 is first placed on the pedestal.
  • a touch-up pen is attached to the robot 1 and brought into contact with contact points set at a plurality of positions on the surface 68 a of the workpiece 68 .
  • Positions of a plurality of contact points are detected in the robot coordinate system 71 .
  • a reference plane in the robot coordinate system 71 can be generated by determining the position of the workpiece 68 in the robot coordinate system 71 based on the positions of the plurality of contact points.
  • the storage unit stores the generated reference surface of the workpiece 68 .
  • the processing unit can adjust the first position and the second position of the visual sensor 30 so as to match the shape and position of the reference surface of the work 68.
  • the correction amount setting unit 55 can calculate the position and posture of the robot so that the first plane matches the reference plane. Further, the correction amount setting unit 55 can calculate the position and posture of the robot 1 so that the second plane matches the reference plane. Then, the correction amount setting section 55 can calculate the correction amount for driving the robot 1 at each position.
  • the measurement area at the first position and the measurement area at the second position substantially overlap. Therefore, it is suitable for control to interpolate missing three-dimensional points due to halation.
  • the position and orientation of the visual sensor are changed by the robot while the position and orientation of the work are immovable, but it is not limited to this form.
  • the robot device can adopt any form that changes the relative positions of the workpiece and the visual sensor.
  • FIG. 18 shows a side view of the second robot device according to this embodiment.
  • the position and orientation of the visual sensor 30 are fixed, and the robot 4 changes the position and orientation of the workpiece 64 .
  • a second robot device 7 includes a robot 4 and a hand 6 as a work tool attached to the robot 4 .
  • the robot 4 is a 6-axis vertical articulated robot.
  • the hand 6 has two fingers facing each other. The hand 6 is formed to grip the work 64 by pinching the work 64 between the fingers.
  • the second robot device 7 like the first robot device 3, includes a control device 2 that controls the robot 4 and the hand 6.
  • the second robot device 7 has a visual sensor 30 as a three-dimensional sensor. The position and posture of the visual sensor 30 are fixed by a mount 35 as a fixing member.
  • the second robot device 7 of the present embodiment inspects the surface 64 a of the workpiece 64 .
  • the processing unit can inspect the shape of the contour of the surface of the work 64, and the shape of the characteristic portion formed on the surface of the work 64. can be done.
  • the processing unit can determine whether each variable is within a predetermined determination range.
  • the second robot device 7 generates three-dimensional position information of the surface 64 a of the workpiece 64 based on the output of the visual sensor 30 .
  • the area of the surface 64 a of the workpiece 64 is larger than the measurement area 91 of the visual sensor 30 .
  • the robot device 7 places the workpiece 64 at the first position P70a and generates first three-dimensional position information.
  • the robot device 7 places the workpiece 64 at the second position P70c and generates second three-dimensional position information.
  • the robot 4 changes the relative position between the work 64 and the visual sensor 30 from the first relative position to the second position by moving the work 64 from the first position P70a to the second position P70c. relative position.
  • the robot 4 moves the workpiece 64 horizontally as indicated by arrow 108 .
  • the second position P70c may deviate from the desired position due to an error in driving the drive mechanism of the robot.
  • the position information generator 52 of the second robot device generates first three-dimensional position information based on the output of the visual sensor 30 that captures the surface 64a of the workpiece 64 placed at the first position P70a. In addition, the position information generator 52 generates second three-dimensional position information based on the output of the visual sensor 30 capturing the surface 64a of the workpiece 64 placed at the second position P70c.
  • the plane estimating unit 53 generates plane information about the first plane and the second plane including the surface 64a based on the respective three-dimensional position information.
  • the correction amount setting unit 55 matches the first plane estimated from the first three-dimensional position information and the second plane estimated from the second three-dimensional position information within a predetermined determination range. , the correction amount for driving the robot 4 at the second position P70c can be set. In actual inspection work, the position and orientation of the robot at the second position can be corrected based on the correction amount set by the correction amount setting unit 55 .
  • the robot device 7 can perform accurate inspection.
  • the three-dimensional sensor of this embodiment is a visual sensor including two two-dimensional cameras, but is not limited to this form. Any sensor capable of generating three-dimensional position information on the surface of the workpiece can be adopted as the three-dimensional sensor.
  • a TOF (Time of Flight) camera that acquires three-dimensional position information based on the time of flight of light can be employed.
  • the stereo camera as the visual sensor of the present embodiment includes a projector, it is not limited to this form. A stereo camera does not have to be equipped with a projector.
  • control device that controls the robot functions as a processing unit that processes the output of the three-dimensional sensor, but it is not limited to this form.
  • the processing unit may be configured by an arithmetic processing device (computer) different from the control device that controls the robot.
  • a tablet terminal that functions as a processing unit may be connected to a control device that controls the robot.
  • the robot apparatus of the present embodiment carries out the work of transporting the work or inspecting the work, it is not limited to this form.
  • the robotic device can perform any task.
  • the robot of the present embodiment is a vertically articulated robot, but is not limited to this form. Any robot that moves the workpiece can be employed. For example, a horizontal articulated robot can be employed.

Landscapes

  • Engineering & Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Robotics (AREA)
  • Mechanical Engineering (AREA)
  • Manipulator (AREA)

Abstract

ロボット装置は、視覚センサの出力に基づいてワークの表面の3次元位置情報を生成する位置情報生成部と、3次元位置情報に基づいて、ワークの表面を含む面に関する面情報を推定する面推定部とを備える。ロボットは、視覚センサを第1の位置から第2の位置に移動する。補正量設定部は、第1の位置にて検出されたワークの表面を含む第1面と、第2の位置にて検出されたワークの表面を含む第2面とが一致するように、第2の位置におけるロボットを駆動するための補正量を設定する。

Description

3次元センサを備えるロボット装置およびロボット装置の制御方法
 本発明は、3次元センサを備えるロボット装置およびロボット装置の制御方法に関する。
 ロボットおよび作業ツールを備えるロボット装置は、ロボットの位置および姿勢を変更することにより、様々な作業を行うことができる。ロボットがワークの位置および姿勢に対応した位置および姿勢にて作業を行うために、3次元センサにてワークの位置を検出することが知られている(例えば、特開2004-144557号公報)。3次元センサにて検出されたワークの位置および姿勢に基づいてロボットを駆動することにより、ロボット装置は精度よく作業を行うことができる。
 3次元センサを使用することにより、計測領域の内部に含まれるワークの表面に複数の3次元点を設定し、それぞれの3次元点の位置を検出することができる。更に、複数の3次元点の位置に基づいて、距離に応じて濃さが異なる距離画像等を生成することができる。
 3次元センサの計測領域に対してワークが大きい場合に、ロボット装置は、3次元センサを移動させながら複数の位置において計測を行うことができる。複数の位置に3次元センサを配置して取得した3次元点群を合成することができる。例えば、ロボット装置のハンドに3次元カメラを固定する。ロボットの位置および姿勢を変更して複数の位置にて撮像を行うことができる。そして、それぞれの位置で計測された3次元点群を合成して、一つの大きな3次元点群を生成することができる。
 または、ワークの表面に光沢がある場合に、光のハレーションによってワークの一部分の位置が計測できない場合がある(例えば、特開2019-113895号公報)。このようなハレーションが生じた場合には、3次元センサの位置を変えながら複数の位置にて撮像を行うことにより、位置を計測できなかった部分の3次元点を補うことができる。
特開2004-144557号公報 特開2019-113895号公報
 ロボット装置の制御装置は、ワークの表面に設定される3次元点の位置を算出する場合に、3次元センサに設定されたセンサ座標系における位置を、ロボット座標系における位置に変換する。この時に、ロボットの位置および姿勢に基づいて、3次元点の位置を変換する。ところが、ロボットの位置および姿勢に誤差が有ると、この誤差が3次元点の位置の精度に影響する場合が有る。例えば、減速機のバックラッシによるロボットの位置および姿勢の誤差により、ロボット座標系における3次元点の位置に誤差が生じるという問題が有る。特に、複数の位置から3次元点を計測して3次元点群を合成する場合に、合成された3次元点群に基づいてロボット装置の制御を行うと、制御が不正確になるという問題が有る。
 本開示の態様のロボット装置は、ワークの表面の位置を検出するための3次元センサと、ワークと3次元センサとの相対的な位置を変更するロボットとを備える。ロボット装置は、3次元センサの出力に基づいてワークの表面の3次元位置情報を生成する位置情報生成部と、3次元位置情報に基づいて、ワークの表面を含む面に関する面情報を推定する面推定部とを備える。ロボット装置は、ロボットを駆動するための補正量を設定する補正量設定部を備える。ロボットは、ワークと3次元センサとの相対的な位置を、第1の相対位置から第1の相対位置とは異なる第2の相対位置に変更するように形成されている。補正量設定部は、面情報に基づいて、第1の相対位置にて検出されたワークの表面を含む第1面と、第2の相対位置にて検出されたワークの表面を含む第2面とが一致するように、第2の相対位置におけるロボットを駆動するための補正量を設定する。
 本開示の態様のロボット装置の制御方法は、ロボットが、ワークと3次元センサとの相対的な位置を第1の相対位置に配置する工程と、位置情報生成部が、3次元センサの出力に基づいて第1の相対位置におけるワークの表面の3次元位置情報を生成する工程とを含む。制御方法は、ロボットが、ワークおよび3次元センサの相対的な位置を、第1の相対位置とは異なる第2の相対位置に配置する工程と、位置情報生成部が、3次元センサの出力に基づいて第2の相対位置におけるワークの表面の3次元位置情報を生成する工程とを含む。制御方法は、面推定部が、それぞれの相対位置における3次元位置情報に基づいて、ワークの表面を含む面に関する面情報を推定する工程を含む。制御方法は、補正量設定部が、面情報に基づいて、第1の相対位置にて検出されたワークの表面を含む第1面と、第2の相対位置にて検出されたワークの表面を含む第2面とが一致するように、第2の相対位置におけるロボットを駆動するための補正量を設定する工程とを含む。
 本開示の態様のロボット装置およびロボット装置の制御方法は、3次元センサの出力から取得される3次元位置情報の誤差が小さくなるロボットの補正量を設定することができる。
実施の形態におけるワークおよび第1のロボット装置の斜視図である。 実施の形態における第1のロボット装置のブロック図である。 実施の形態における視覚センサの概略図である。 3次元点群および距離画像を説明するための視覚センサおよびワークの斜視図である。 ワークの表面に設定される3次元点群を説明する斜視図である。 視覚センサの出力に基づいて生成される距離画像の例である。 視覚センサを第2の位置に移動したときのワークおよび第1のロボット装置の斜視図である。 視覚センサを第2の位置に移動した時に第2の位置の誤差が生じない場合の概略断面図である。 視覚センサを第2の位置に移動した時に第2の位置に誤差が生じる場合の概略断面図である。 視覚センサの第2の位置に誤差が生じた場合に、ロボット座標系における3次元点群の位置を説明する概略断面図である。 視覚センサの位置の補正量を説明する視覚センサおよびワークの概略断面図である。 実施の形態におけるロボット装置の教示作業の時に行う制御のフローチャートである。 実施の形態におけるワークを搬送する作業の制御のフローチャートである。 実施の形態における第2のワークおよび視覚センサの斜視図である。 第1のロボット装置の変形例における面推定部のブロック図である。 実施の形態における第3のワークおよび視覚センサの斜視図である。 実施の形態における第4のワークおよび視覚センサの概略断面図である。 実施の形態における第2のロボット装置の概略図である。
 図1から図18を参照して、実施の形態におけるロボット装置およびロボット装置の制御方法について説明する。本実施の形態のロボット装置は、作業を行う対象物としてのワークの表面の位置を検出するための3次元センサを備える。3次元センサの出力を処理することにより、3次元点の位置などの3次元位置情報を取得する。始めに3次元センサの位置および姿勢を変更するロボットを備える第1のロボット装置について説明する。
 図1は、本実施の形態における第1のロボット装置の斜視図である。図2は、本実施の形態における第1のロボット装置のブロック図である。図1および図2を参照して、第1のロボット装置3は、ワーク65を搬送する。第1のロボット装置3は、第1のワーク65を把持するための作業ツールとしてのハンド5と、ハンド5を移動する移動機構としてのロボット1とを備える。ロボット装置3は、ロボット1およびハンド5を制御する制御装置2を備える。ロボット装置3は、ワーク65の表面の位置を検出するための信号を出力する3次元センサとしての視覚センサ30を備える。
 第1のワーク65は、平面状の表面65aを有する板状の部材である。ワーク65は、載置部材としての架台69の表面69aに配置されている。第1のロボット装置3では、ワーク65の位置および姿勢は不動である。本実施の形態のハンド5は、吸着によりワーク65を把持する。作業ツールは、この形態に限られず、ロボット装置3が行う作業に応じた任意の作業ツールを採用することができる。例えば、溶接を行う作業ツールまたはシール材を塗布する作業ツール等を採用することができる。
 ロボット1は、複数の関節部18を含む垂直多関節ロボットである。ロボット1は、上部アーム11と下部アーム12とを含む。下部アーム12は、旋回ベース13に支持されている。旋回ベース13は、ベース14に支持されている。ベース14は、設置面に固定されている。ロボット1は、上部アーム11の端部に連結されているリスト15を含む。リスト15は、ハンド5を固定するフランジ16を含む。本実施の形態のロボット1は、6個の駆動軸を有するが、この形態に限られない。ロボットは、作業ツールを移動可能な任意のロボットを採用することができる。
 視覚センサ30は、支持部材36を介して、フランジ16に取り付けられている。第1のロボット装置3では、視覚センサ30は、ハンド5と共に位置および姿勢が変化するようにロボット1に支持されている。
 本実施の形態のロボット1は、上部アーム11等のロボット1の構成部材を駆動するロボット駆動装置21を含む。ロボット駆動装置21は、上部アーム11、下部アーム12、旋回ベース13、およびリスト15を駆動するための複数の駆動モータを含む。ハンド5は、ハンド5を駆動するハンド駆動装置22を含む。本実施の形態のハンド駆動装置22は、空気圧によりハンド5を駆動する。ハンド駆動装置22は、ハンド5に減圧された空気を供給する真空ポンプおよび電磁弁等を含む。
 制御装置2は、プロセッサとしてのCPU(Central Processing Unit)を含む演算処理装置24(コンピュータ)を備える。演算処理装置24は、CPUにバスを介して互いに接続されたRAM(Random Access Memory)およびROM(Read Only Memory)等を有する。ロボット装置3は、動作プログラム41に基づいてロボット1およびハンド5が駆動する。ロボット装置3は、ワーク65を自動的に搬送する機能を有する。
 制御装置2の演算処理装置24は、ロボット装置3の制御に関する情報を記憶する記憶部42を含む。記憶部42は、情報の記憶が可能で非一時的な記憶媒体にて構成されることができる。例えば、記憶部42は、揮発性メモリ、不揮発性メモリ、磁気記憶媒体、または光記憶媒体等の記憶媒体にて構成することができる。ロボット1の動作を行うために予め作成された動作プログラム41が記憶部42に記憶される。
 演算処理装置24は、動作指令を送出する動作制御部43を含む。動作制御部43は、動作プログラム41に基づいてロボット1を駆動するための動作指令をロボット駆動部44に送出する。ロボット駆動部44は、駆動モータを駆動する電気回路を含む。ロボット駆動部44は、動作指令に基づいてロボット駆動装置21に電気を供給する。また、動作制御部43は、ハンド駆動装置22を駆動する動作指令をハンド駆動部45に送出する。ハンド駆動部45は、ポンプ等を駆動する電気回路を含む。ハンド駆動部45は、動作指令に基づいてハンド駆動装置22に電気を供給する。
 動作制御部43は、動作プログラム41に従って駆動するプロセッサに相当する。プロセッサが動作プログラム41を読み込んで、動作プログラム41に定められた制御を実施することにより、動作制御部43として機能する。
 ロボット1は、ロボット1の位置および姿勢を検出するための状態検出器を含む。本実施の形態における状態検出器は、ロボット駆動装置21の各駆動軸の駆動モータに取り付けられた位置検出器23を含む。位置検出器23は、例えばエンコーダにより構成されている。位置検出器23の出力により、ロボット1の位置および姿勢が検出される。
 制御装置2は、作業者がロボット装置3を手動にて操作する操作盤としての教示操作盤49を含む。教示操作盤49は、ロボット装置3に関する情報を入力する入力部49aを含む。入力部49aは、キーボードおよびダイヤルなどの操作部材により構成されている。教示操作盤49は、ロボット装置3の制御に関する情報を表示する表示部49bを含む。表示部49bは、液晶表示パネル等の表示パネルにて構成されている。
 本実施の形態のロボット装置3には、ロボット1の位置および姿勢が変化しても不動のロボット座標系71が設定されている。図1に示す例では、ロボット1のベース14に、ロボット座標系71の原点が配置されている。ロボット座標系71は、ワールド座標系とも称される。ロボット座標系71は、原点の位置が固定され、座標軸の向きが固定されている。本実施の形態のロボット座標系71は、Z軸が鉛直方向と平行になるように設定されている。
 ロボット装置3には、作業ツールの任意の位置に設定された原点を有するツール座標系73が設定されている。ツール座標系73は、ハンド5と共に位置および姿勢が変化する。本実施の形態では、ツール座標系73の原点は、ツール先端点に設定されている。ロボット1の位置は、ツール先端点の位置(ツール座標系73の原点の位置)に対応する。また、ロボット1の姿勢は、ロボット座標系71に対するツール座標系73の姿勢に対応する。
 更に、ロボット装置3には、視覚センサ30に対してセンサ座標系72が設定されている。センサ座標系72は、原点が視覚センサ30のレンズ中心点等の任意の位置に固定された座標系である。センサ座標系72は、視覚センサ30と共に位置および姿勢が変化する。本実施の形態のセンサ座標系72は、Z軸が視覚センサ30に含まれるカメラの光軸と平行になるように設定されている。
 センサ座標系72は、フランジ16の表面に設定されたフランジ座標系またはツール座標系73に対する相対位置および相対姿勢が予め定められている。センサ座標系72は、ロボット1の位置および姿勢に基づいて、センサ座標系72の座標値からロボット座標系71の座標値が算出できるように較正されている。
 それぞれの座標系には、X軸、Y軸、およびZ軸が定められている。また、X軸の周りのW軸、Y軸の周りのP軸、およびZ軸の周りのR軸が定められている。
 図3に、本実施の形態における視覚センサの概略図を示す。本実施の形態の視覚センサは、対象物の表面の3次元位置情報が取得可能な3次元カメラである。図2および図3を参照して、本実施の形態の視覚センサ30は、第1のカメラ31および第2のカメラ32を含むステレオカメラである。それぞれのカメラ31,32は、2次元の画像を撮像することができる2次元カメラである。本実施の形態の視覚センサ30は、ワーク65に向かって縞模様などのパターン光を投影するプロジェクタ33を含む。カメラ31,32およびプロジェクタ33は、筐体34の内部に配置されている。
 図2を参照して、ロボット装置3の制御装置2は、視覚センサ30を含む。ロボット1は、ワーク65と視覚センサ30との相対的な位置を変更する。制御装置2は、視覚センサ30の出力を処理する処理部51を含む。処理部51は、視覚センサ30の出力に基づいて、ワーク65の表面の3次元位置情報を生成する位置情報生成部52を含む。処理部51は、3次元位置情報に基づいて、ワークの表面を含む面に関する面情報を推定する面推定部53を含む。面情報は、ワークの表面を特定する情報である。例えば、ワークの表面が平面の場合に、面情報にはロボット座標系における表面の方程式が含まれる。
 処理部51は、ロボット1を駆動するための補正量を設定する補正量設定部55を含む。ロボット1は、ワーク65と視覚センサ30との相対的な位置を、第1の相対位置から第1の相対位置とは異なる第2の相対位置に変更する。処理部51は、第1の相対位置にて検出されたワーク65の表面を含む第1面と第2の相対位置にて検出されたワーク65の表面を含む第2面とが予め定められた判定範囲内にて一致するか否かを判定する判定部54を含む。補正量設定部55は、面情報に基づいて第1面と第2面とが一致するように、第2の相対位置におけるロボットを駆動するための補正量を設定する。例えば、補正量設定部55は、面情報に基づいて第1面と第2面とが予め定められた範囲内にて一致するように、第2の相対位置におけるロボットを駆動するための補正量を設定する。
 処理部51は、複数の相対位置において取得した複数のワークの表面の3次元位置情報を合成する合成部56を備える。ここでの例では、合成部56は、第1の相対位置において検出された3次元位置情報と、第2の相対位置において検出された3次元位置情報とを合成する。特に、合成部56は、補正量設定部55にて設定された補正量に基づいて補正された第2の相対位置にて生成された3次元位置情報を使用する。
 処理部51は、視覚センサ30の撮像に関する制御を行う撮像制御部57を含む。処理部51は、ロボット1の動作に対する指令を送出する指令部58を含む。本実施の形態の指令部58は、補正量設定部55により設定されたロボット1の動作の補正量に基づいて、ロボット1の位置および姿勢の修正指令を動作制御部43に送出する。
 上記の処理部51は、動作プログラム41に従って駆動するプロセッサに相当する。プロセッサが動作プログラム41に定められた制御を実施することにより、処理部51として機能する。また、処理部51に含まれる位置情報生成部52、面推定部53、判定部54、補正量設定部55、および合成部56は、動作プログラム41に従って駆動するプロセッサに相当する。また、撮像制御部57および指令部58は、動作プログラム41に従って駆動するプロセッサに相当する。プロセッサが動作プログラム41に定められた制御を実施することにより、それぞれのユニットとして機能する。
 本実施の形態の位置情報生成部52は、第1のカメラ31にて撮像された画像と第2のカメラ32にて撮像された画像とにおける視差に基づいて、視覚センサ30から対象物の表面に設定される3次元点までの距離を算出する。3次元点は、例えば、撮像素子の画素ごとに設定することができる。位置情報生成部52は、3次元点ごとに視覚センサ30からの距離を算出する。さらに、位置情報生成部52は、視覚センサ30からの距離に基づいて、センサ座標系72における3次元点の位置の座標値を算出する。
 図4に、3次元点群および距離画像の例を説明するための視覚センサおよびワークの斜視図を示す。この例においては、架台69の表面69aにワーク65が傾いて配置されている。架台69の表面69aは、視覚センサ30のカメラ31,32の光軸に対して垂直に延びている。視覚センサ30のカメラ31,32にて撮像された画像を処理することにより、矢印102,103に示すように、視覚センサ30からワーク63の表面に設定された3次元点までの距離を検出することができる。
 図5に、位置情報生成部にて生成された3次元点の点群の斜視図を示す。図5では、ワーク65の輪郭および計測領域91の輪郭を破線にて示している。3次元点85は、視覚センサ30に対向する物体の表面上に配置される。位置情報生成部52は、計測領域91の内部に含まれる物体の表面に対して3次元点85を設定する。ここでは、ワーク65の表面65aに多数の3次元点85が配置されている。また、計測領域91の内部における架台69の表面69aに多数の3次元点85が配置されている。
 このように、位置情報生成部52は、ワーク65の表面を3次元点群にて示すことができる。位置情報生成部52は、対象物の表面の3次元位置情報を、距離画像または3次元点の位置情報(3次元マップ)の形式にて生成することができる。距離画像は、2次元の画像により対象物の表面の位置情報を表現したものである。距離画像では、それぞれの画素の濃さ又は色により、視覚センサ30から3次元点までの距離を表す。一方で、3次元マップとは、対象物の表面の3次元点の座標値(x,y,z)の集合にて対象物の表面の位置情報を表現したものである。このような座標値は、ロボット座標系71またはセンサ座標系72にて表現することができる。
 図6に、視覚センサの出力によって得られた距離画像の例を示す。位置情報生成部52は、視覚センサ30から3次元点85までの距離に応じて色の濃さを変化させた距離画像81を生成することができる。ここでの例では、視覚センサ30からの距離が遠くなるほど色が濃くなるように距離画像81が生成されている。ワーク65の表面65aでは、視覚センサ30に近くなるほど色が薄くなっている。本実施の形態では、対象物の表面の3次元位置情報として3次元点の位置を用いて説明するが、距離画像を用いても同様の制御を実施することができる。
 なお、本実施の形態の位置情報生成部52は、演算処理装置24の処理部51に配置されているが、この形態に限られない。位置情報生成部は、3次元センサの内部に配置されていても構わない。すなわち、3次元センサがCPU等のプロセッサを含む演算処理装置を備え、3次元センサの演算処理装置のプロセッサが位置情報生成部として機能しても構わない。この場合に、視覚センサからは、3次元マップまたは距離画像等の3次元位置情報が出力される。
 図7に、第1のロボット装置にて視覚センサを第2の位置に移動したときのロボット装置およびワークの斜視図を示す。図1および図7を参照して、ロボット装置3は、ワーク65の表面65aをハンド5にて把持する。ロボット装置3は、ワーク65を架台69の表面69aから予め定められた所定の位置まで搬送する制御を実施する。例えば、ロボット装置3は、ワーク65を、近くのコンベヤまたは棚などに搬送する制御を実施する。
 本実施の形態では、ロボット1を所定の位置および姿勢にした時に、視覚センサ30の計測領域91よりも面積が大きな表面65aを有するワーク65を計測する。すなわち、ワーク65は、1回の撮像にて表面65aの全体を撮像できない大きさを有する。表面65aは、計測領域91よりも大きく、計測領域91からはみ出る部分を有する。または、表面65aの所定の一つの方向の長さは、計測領域91の所定の一つの方向の長さよりも大きい。このために、本実施の形態では、視覚センサ30の位置(視点)を変えて複数回の撮像を行う。ロボット装置3は、ワーク65と視覚センサとの相対的な位置を、第1の相対位置から第1の相対位置とは異なる第2の相対位置に変更する。それぞれの位置で撮像することにより、ワーク65の表面65aの全体に対して3次元位置情報を生成する。ここでは、ワーク65の表面65aの全体に3次元点を設定する。そして、3次元位置情報に基づいて、ハンド5にてワーク65を把持する時のロボット1の位置および姿勢を算出する。
 図1では、視覚センサ30は第1の位置および姿勢(第1の視点)に配置されている。位置情報生成部52は、計測領域91の内部に配置される表面65aに3次元点を設定する。位置情報生成部52は、表面65aの一方の端部に3次元点を設定する。次に、矢印101に示すように視覚センサ30が移動するように、ロボット1は位置および姿勢を変更する。ここでは、水平方向に視覚センサ30を平行移動している。図7では、視覚センサ30は第2の位置および姿勢(第2の視点)に配置されている。位置情報生成部52は、表面65aの他方の端部に3次元点を設定する。
 図1に示す第1の位置における視覚センサ30の計測領域91と、図7に示す第2の位置における視覚センサ30の計測領域91とは一部が重複している。合成部56は、第1の位置にて取得した3次元点群と、第2の位置にて取得した3次元点群とを合成することにより、表面65aの全体に3次元点を設定する。ここでの例では、2回の視覚センサ30の撮像により、表面65aの全体に3次元点を設定することができる。
 そして、指令部58は、表面65aに設定された3次元点群に基づいて、ワーク65の表面65aの位置および姿勢を算出することができる。指令部58は、ワーク65の位置および姿勢に基づいて、ワーク65を把持するためのロボット1の位置および姿勢を算出することができる。
 ワーク65の表面の計測を行うための視覚センサ30の第1の位置および姿勢と、視覚センサ30の第2の位置および姿勢は、任意の制御により設定することができる。例えば、作業者は、教示操作盤49の表示部49bに視覚センサ30の一方の2次元カメラにて撮像される画像を表示することができる。そして、表示部49bに表示される画像を見ながら入力部49aを操作することにより、ロボット1の位置および姿勢を調整することができる。
 作業者は、図1に示すように、計測領域91の内部にワーク65の一方の側が配置されるように、ロボットの位置および姿勢を調整することができる。また、図7に示すように、計測領域91の内部にワーク65の他方の側が配置されるように、ロボットの位置および姿勢を手動にて調整することができる。作業者は、視覚センサ30が所望の位置および姿勢に配置されたときのロボットの位置および姿勢を記憶部42に記憶させることができる。または、シミュレーション装置などにより視覚センサの位置および姿勢を予め設定しても構わない。
 図8に、ロボットが理想的に駆動した場合の視覚センサおよびワークの概略断面図を示す。本実施の形態の架台69の表面69aは、平面状であり、水平方向に延びている。または、ワーク65の表面65aは、平面であり水平方向に延びている。視覚センサ30は、矢印105に示すように、第1の位置P30aから第2の位置P30bに移動している。ここでの例では、視覚センサ30は、姿勢を変えずに位置が変化している。視覚センサ30は、ロボット座標系71のY軸に平行な水平方向に移動している。
 図8は、ロボット1の指令値に対して、実際のロボット1の位置および姿勢に誤差がない場合が示されている。3次元点85a,85bは、センサ座標系72の座標値の位置が示されている。また、実際のロボットの位置および姿勢に誤差が無い場合には、センサ座標系72の座標値をロボット座標系71の座標値に変換した場合にも、3次元点85a,85bは、同一の位置に配置される。
 第1の位置P30aに配置された視覚センサ30の出力により、ワーク65の表面65aおよび架台69の表面69aに、3次元点85aが設定される。また、第2の位置P30bに配置された視覚センサ30の出力により、表面65aおよび表面69aに3次元点85bが設定される。第1の位置P30aにおける計測領域91aの一部と、第2の位置P30bにおける計測領域91bの一部とは、互いに重複している。重複した領域には、3次元点85aと3次元点85bとが配置されている。しかしながら、ロボットの位置および姿勢の誤差がないために、表面65aに設定されている3次元点85a,85bは、同一平面状である。このために、処理部51は、3次元点85aの点群と3次元点85bの点群とを合成して、ワーク65の位置および姿勢を精度よく推定することができる。
 図9に、視覚センサを第2の位置に移動するときにロボットの位置および姿勢に誤差が生じた場合の視覚センサおよびワークの概略断面図を示す。ロボットを駆動すると、動作プログラムに定められた指令値に対して、実際の位置および姿勢の誤差が生じる場合がある。例えば、変速機のバックラッシなどの駆動機構にて生じる移動誤差により、実際のロボットの位置および姿勢が指令値に対してずれる場合がある。この場合に、ロボットの移動誤差は3次元点の位置の誤差に相当する。
 図9に示す例においては、図8と同様に、視覚センサ30を水平方向に移動するように指令値を生成している。ところが、視覚センサ30は、矢印106に示すように、第1の位置P30aから、上側にずれた第2の位置P30cに移動している。位置情報生成部52は、センサ座標系72にて3次元点85a,85cを検出する。3次元点85aのセンサ座標系72におけるZ軸の座標値は、3次元点85cのセンサ座標系72におけるZ軸の座標値と異なる。
 図10に、誤差を含む第2の位置において3次元点を検出した場合に、ロボット座標系の座標値にて表現された3次元点の位置を示す。処理部51は、視覚センサ30が第2の位置P30bに配置されているとして、センサ座標系72の座標値をロボット座標系71の座標値に変換する。第2の位置P30bのロボット座標系の座標値を用いて、センサ座標系72の座標値をロボット座標系71の座標値に変換する。このために、第2の位置P30bに視覚センサ30が配置されている条件にて、ロボット座標系71における3次元点85cの位置が算出される。
 センサ座標系72における3次元点85cのZ軸の座標値は大きくなり、3次元点85cは、ワーク65の表面65aからずれた位置に配置される。ここでの例では、表面65aよりも下側に3次元点85cの位置が計算される。
 計測領域91aと計測領域91bとが重複している領域の3次元点85aおよび3次元点85cについては、例えば、視覚センサ30に近い3次元点85aを採用することができる。この場合には、面99に示すように、ワーク65の表面に段差があると判定されてしまう。このように、ロボットの駆動の誤差があるとワーク65の表面65aの全体について正確な3次元点の位置を検出することができないという問題がある。
 そこで、本実施の形態の処理部51は、視覚センサ30を第2の位置に配置するときに、視覚センサ30がロボット1の位置および姿勢の指令値に対応した第2の位置P30bに配置されるように、ロボット1を駆動するための補正量を設定する。
 図11に、補正値を算出してロボットを駆動したときの視覚センサとワークの概略図を示す。本実施の形態の処理部51は、第2の位置P30cに配置される視覚センサ30が、第2の位置P30bに配置されるように、矢印107に示す補正量を設定する。補正量としては、ロボットの位置および姿勢の指令値に対する補正量を採用することができる。特に、補正量設定部55は、視覚センサ30を第2の位置に配置したときに、第1の位置にて取得した第1の3次元点85aにより定まる平面と、第2の位置にて取得した第2の3次元点85cにより定まる平面とが同一平面状になるように第2の位置を探索する。すなわち、2つの面を一致させる面合わせ制御を実施する。視覚センサ30の補正後の第2の位置に基づいてロボットの駆動の補正量を設定する。
 図12に、本実施の形態における第1のロボット装置の制御のフローチャートを示す。図12に示す制御は、第1面と第2面とを合わせる面合わせ制御を含む。第1面は、第1の相対位置にて検出されたワーク65の表面を含む面であり、面合わせ制御の基準面となる。第2面は、第2の相対位置にて検出されたワーク65の表面を含む面である。図12に示す制御は、実際の作業を行う前の教示作業において実施することができる。
 図9および図12を参照して、ステップ111においては、ワークの撮像を行うための視覚センサ30の第1の位置P30aと第2の位置P30cとを設定する。本実施の形態では、作業者が、教示操作盤49を操作することにより、第1の位置P30aと第2の位置P30cとを設定している。記憶部42は、それぞれの位置におけるロボット1の指令値を記憶する。
 ここでは、第1の位置P30aにおける視覚センサ30の姿勢と、第2の位置P30bにおける視覚センサ30の姿勢とが同一になるように、視覚センサの位置を平行移動している。例えば、ロボット座標系71のY軸の負側の方向に視覚センサを移動している。ところが、ロボット1の駆動機構の誤差等により、視覚センサ30がZ軸の方向にも移動している。
 次に、ステップ112において、指令部58は、第1の位置P30aに視覚センサ30を移動するようにロボット1を駆動する。ここでの例では、視覚センサ30が第1の位置P30aに配置された時に、ロボット1の指令値に対して実際のロボット1の位置および姿勢に誤差が無くロボット1が駆動されている。
 ステップ113において、撮像制御部57は、視覚センサ30に画像を撮像する指令を送出する。視覚センサ30が画像を撮像する。位置情報生成部52は、第1のカメラ31の画像と第2のカメラ32の画像に基づいて、計測領域91aにおいて第1の3次元位置情報を生成する。ここでは、ワーク65の表面65aおよび架台69の表面69aに第1の3次元点85aを設定する。位置情報生成部52は、センサ座標系72における座標値からロボット座標系71における座標値に変換できるように較正されている。位置情報生成部52は、センサ座標系72における3次元点85aの位置を算出する。位置情報生成部52は、センサ座標系72の座標値をロボット座標系71の座標値に変換する。第1の3次元の位置情報としての第1の3次元点85aの位置は、ロボット座標系71の座標値にて算出される。
 ステップ114において、面推定部53は、ワーク65の表面65aを含む第1面に関する面情報を算出する。面推定部53は、第1面の面情報として、ロボット座標系71における3次元点85aを含む平面の方程式を算出する。面推定部53は、取得された3次元点85aのうち、座標値が所定の判定値よりも大きく異なる3次元点を排除する。ここでは、架台69の表面69aに配置されている3次元点85aを排除する。または、画像において平面を推定する範囲を予め定めておいても構わない。例えば、作業者が手動で視覚センサ30の第1の位置および姿勢を設定する際に、2次元カメラにて撮像される画像を見ながら画像上で平面を推定する範囲を指定しても構わない。面推定部53は、平面を推定する範囲内の3次元点85aを抽出する。次に、面推定部53は、3次元点85aの点群に沿うように、ロボット座標系71にて平面の方程式を算出する。例えば、3次元点の座標値に対する誤差が小さくなるように、最小二乗法にてロボット座標系71における第1面の平面の方程式を算出する。
 次に、ステップ115において、指令部58は、矢印106に示すように視覚センサ30を第1の位置P30aから第2の位置P30cに移動する。ロボット1を駆動することにより、視覚センサ30が移動する。
 ステップ116において、撮像制御部57は、視覚センサ30に画像を撮像する指令を送出する。視覚センサ30が画像を撮像する。位置情報生成部52は、ワーク65の表面65aに対応する第2の3次元点85cを設定する。位置情報生成部52は、第2の3次元位置情報として、3次元点85cの位置を算出する。位置情報生成部52は、ロボット座標系71の座標値にて第2の3次元点85cの位置を算出する。
 次に、ステップ117において、面推定部53は、ワーク65の表面65aを含む第2面の面情報を算出する。面推定部53は、架台69の表面69aに配置されている第2の3次元点85cを排除することができる。または、画像において平面を推定する範囲を予め定めておいても構わない。例えば、作業者が手動で視覚センサ30の第2の位置および姿勢を設定する際に、2次元カメラにて撮像される画像を見ながら画面上で平面を推定する範囲を指定しても構わない。面推定部53は、平面を推定する範囲内の3次元点85cを抽出する。次に、面推定部53は、複数の第2の3次元点85cの位置に基づいて、第2面の面情報を算出する。面推定部53は、最小二乗法にて3次元点85cが含まれる第2面の平面の方程式をロボット座標系71にて算出する。
 次に、ステップ118において、判定部54は、第1面と第2面とが予め定められた判定範囲内にて一致しているか否かを判定する。具体的には、判定部54は、第1面の位置および姿勢と第2面の位置および姿勢との差が判定範囲内か否かを算出する。ここでの例では、判定部54は、第1の3次元点85aによる第1面の方程式に基づいて、ロボット座標系71の原点から第1面に向かって法線ベクトルを算出する。同様に、判定部54は、第2の3次元点85cによる第2面の方程式に基づいて、ロボット座標系71の原点から第2面に向かって法線ベクトルを算出する。
 判定部54は、第1面および第2面について、法線ベクトルの長さおよび法線ベクトルの向きを比較する。そして、法線ベクトルの長さの差が予め定められた判定範囲内であり、更に、法線ベクトルの向きの差が予め定められた判定範囲内である場合に、第1面と第2面との位置および姿勢の差は、判定範囲内であると判定することができる。判定部54は、第1面と第2面の一致度が高いと判定する。ステップ118において、第1面の位置および姿勢と第2面の位置および姿勢との差が判定範囲を逸脱する場合に、制御は、ステップ119に移行する。なお、視覚センサとワークとの相対位置を変更する際に、視覚センサとワークとの相対姿勢が変化しない場合がある。例えば、図9に示すように、ワークに対して視覚センサを移動する場合に、視覚センサの姿勢が殆ど変化しないことが予め分かっている場合が有る。ワークと視覚センサとの相対姿勢に誤差が生じない場合には、ステップ118において、ワークの第1面と第2面に基づく相対姿勢の評価は行わなくても構わない。例えば、法線ベクトルの向きの評価は行わなくても構わない。
 ステップ119において、指令部58は、ロボット1の位置および姿勢を変更する指令を送出する。ここでの例では、指令部58は、ロボット1の位置および姿勢を微小量にて変化させる。指令部58は、ロボット1の位置および姿勢を予め定められた方向に僅かに移動させる制御を実施することができる。例えば、視覚センサ30を僅かに鉛直方向の上側または下側に移動させる制御を実施する。または、指令部58は、各駆動軸について、予め定められた方向に予め定められた角度にて構成部材を回転するように駆動モータを駆動する制御を実施しても構わない。なお、視覚センサとワークとの相対位置を変更する際に視覚センサとワークとの相対姿勢が変化しない場合には、ステップ119において、ロボットの姿勢は変化させなくても構わない。
 ロボット1の位置および姿勢を変更した後に、制御は、ステップ116に戻る。処理部51は、ステップ116からステップ118の制御を繰り返す。このように、図12の制御では、視覚センサ30の位置を変更しながら、第1面と第2面とが一致する視覚センサ30の位置を探索する制御を実施する。ステップ118において、第1面と第2面との位置および姿勢の差が判定範囲内である場合に、制御は、ステップ120に移行する。この場合に、図11を参照して、視覚センサ30が第2の位置P30cから第2の位置P30bに移動していると判定することができる。
 図12を参照して、ステップ120において、補正量設定部55は、視覚センサ30を第2の位置P30cから第2の位置P30bに移動するための補正量を設定する。図11に示す矢印107が補正量に相当する。記憶部42は、第2の位置に視覚センサ30を配置するためにロボットを駆動するための補正量を記憶する。本実施の形態の補正量設定部55は、ロボット1の位置および姿勢の指令値に対する補正量を設定する。補正量としては、この形態に限られず、それぞれの駆動軸における駆動モータの回転角により定められていても構わない。また、ステップ118において、第1面および第2面に基づく相対姿勢の評価を行わない場合には、ロボットの姿勢の指令値に対する補正量は算出しなくても構わない。
 上記の実施の形態においては、第1面の位置および姿勢と第2面の位置および姿勢との差が判定範囲内である場合に、第1面と第2面の一致度が高いと判定しているが、この形態に限られない。予め定められた回数にてロボットの位置を変更した後に、最も面の一致度が高いロボットの位置および姿勢を採用しても構わない。この時のロボット1の位置および姿勢に基づいて、第2の位置における補正量を設定しても構わない。
 または、図9を参照して、補正量設定部55は、第1の位置P30aにおけるセンサ座標系72の3次元点85aの座標値と、第2の位置P30cにおけるセンサ座標系72の3次元点85cの座標値とに基づいて補正量を設定しても構わない。ここでの例では、第1の3次元点85aに基づいてセンサ座標系72にて第1の平面の方程式を算出し、第2の3次元点85cに基づいてセンサ座標系72にて第2の平面の方程式を算出する。そして、第1の平面と第2の平面との位置の差および姿勢の差に基づいて、補正量を算出しても構わない。ここでは、センサ座標系72のZ軸方向における補正量を算出する。そして、センサ座標系72における補正量をロボット座標系71における補正量に変換することができる。
 図8から図11に示す例では、視覚センサ30の姿勢を一定に維持するように第2の位置を定めている。すなわち、視覚センサ30の姿勢を変更せずに視覚センサ30を平行移動するように第2の位置を定めているが、この形態に限られない。本実施の形態のロボット1は、多関節ロボットである。ロボット1は、ワーク65と視覚センサ30との相対的な姿勢を、第1の相対姿勢から第2の相対姿勢に変更することができる。このために、視覚センサの位置および姿勢を第1の位置および姿勢から第2の位置および姿勢に変更しても構わない。処理部は、視覚センサの位置の制御と同様に、視覚センサの姿勢の制御を実施することができる。補正量設定部は、視覚センサの第2の位置の補正量および第2の姿勢の補正量を設定することができる。すなわち、補正量設定部は、位置の補正量に加えて姿勢の補正量を設定しても構わない。
 図13に、ワークを搬送する実際の作業を実施するときの制御のフローチャートを示す。実際の作業では、補正量設定部55にて設定された補正量を使用して第2の位置に視覚センサを移動する。ステップ131において、作業者または他の装置は、ワーク65を架台69の表面69aの予め定められた位置に配置する。視覚センサ30の第1の位置における計測領域と第2の位置における計測領域とを加算した計測領域の内部にワークを配置する。
 ステップ132において、動作制御部43は、第1の位置に視覚センサ30を移動するようにロボット1を駆動する。ステップ133において、撮像制御部57は、視覚センサ30にて画像を撮像する。位置情報生成部52は、第1の3次元位置情報を生成する。
 次にステップ134において、動作制御部43は、教示作業において補正量設定部55により設定されたロボット1の位置および姿勢の補正量を用いて、補正後の第2の位置に視覚センサ30を移動するようにロボット1を駆動する。動作制御部43は、指令値に対して補正量を反映した位置に視覚センサを配置する。すなわち、位置および姿勢の指令値(座標値)を補正量にて補正した指令値にてロボットを駆動する。図11を参照して、矢印107に示すように補正量が適用されて、視覚センサ30は第2の位置P30bに配置される。なお、ワークと視覚センサとの相対姿勢に誤差が生じないことが予め分かっており、補正量設定部55がロボットの位置の補正量を算出するが、ロボットの姿勢の補正量を算出しない場合がある。この場合には、ロボットの位置の補正量のみを用いて視覚センサ30を移動しても構わない。
 次に、ステップ135において、撮像制御部57は視覚センサ30にて画像を撮像する。位置情報生成部52は、視覚センサ30から画像を取得して第2の3次元位置情報を生成する。第2の位置におけるロボット1の位置が補正されているために、ワーク65の表面65aに配置された3次元点をロボット座標系71にて精度よく算出することができる。ここで、第2の位置に対するロボットの指令値を補正した場合に、位置情報生成部52は、補正前のロボットの指令値を用いて、センサ座標系72にて表現された3次元点の位置(座標値)をロボット座標系71にて表現された3次元点の位置(座標値)に変換する。
 次に、ステップ136において、合成部56は、第1の位置において取得した第1の3次元位置情報と第2の位置において取得した第2の3次元位置情報とを合成する。3次元位置情報としては、3次元点の位置を採用している。本実施の形態においては、第1の位置における視覚センサの計測領域と第2の位置における視覚センサの計測領域とが重複している領域については、視覚センサ30からの距離が短い方の3次元点の位置を採用している。または、重複する範囲において、第1の位置にて取得した3次元点の位置と、第2の位置により取得した3次元点の位置との平均的な位置を算出しても構わない。または、両方の3次元点を採用しても構わない。
 次に、ステップ137において、指令部58は、ワーク65の位置および姿勢を算出する。指令部58は、取得された3次元点のうち座標値が所定の範囲から逸脱する3次元点を排除する。すなわち、指令部58は、架台69の表面69aに配置されている3次元点85aを排除する。指令部58は、複数の3次元点によりワーク65の表面65aの輪郭を推定する。指令部58は、ハンド5がワーク65の表面65aのほぼ中央に配置される表面65aにおける把持位置を算出する。更に、指令部58は、把持位置におけるワークの姿勢を算出する。
 ステップ138において、指令部58は、ワーク65を把持する把持位置にハンド5を配置するように、ロボット1の位置および姿勢を算出する。ステップ139において、指令部58は、ロボット1の位置および姿勢を動作制御部43に送出する。動作制御部43は、ロボット1を駆動して、ハンド5にてワーク65を把持する。この後に、動作制御部43は、動作プログラム41に基づいてワーク65を予め定められた位置まで搬送するようにロボット1を駆動する。
 このように、本実施の形態のロボット装置の制御方法は、ロボットがワークと視覚センサとの相対的な位置を第1の相対位置に配置する工程と、位置情報生成部が視覚センサの出力に基づいて第1の相対位置におけるワークの表面の3次元位置情報を生成する工程とを含む。制御方法は、ロボットがワークおよび視覚センサの相対的な位置を、第1の相対位置とは異なる第2の相対位置に配置する工程と、位置情報生成部が、視覚センサの出力に基づいて、第2の相対位置におけるワークの3次元位置情報を生成する工程とを含む。そして、制御方法は、面推定部が3次元位置情報に基づいてワークの表面を含む面に関する面情報を推定する工程を含む。制御方法は、補正量設定部が、面情報に基づいて、第2の相対位置におけるロボットを駆動するための補正量を設定する工程を含む。補正量設定部は、第1の相対位置にて検出されたワークの表面を含む第1面と、第2の相対位置にて検出されたワークの表面を含む第2面とが一致するように補正量を設定する。
 本実施の形態においては、1つのワークに対して視覚センサにて複数回の計測を行う場合に、それぞれの3次元位置情報から生成された面を合わせるように、ロボットの駆動の補正量を設定する。このために、3次元センサの出力から取得される3次元位置情報の誤差が小さくなるロボットの補正量を設定することができる。実際の作業において、設定された補正量にてロボットの位置および姿勢を補正することにより、複数回の計測を行ってもワークの表面に精度よく3次元点を設定することができる。ワークの表面を精度よく検出することができて、ロボット装置の作業を精度良く実施することができる。例えば、本実施の形態では、ワークの位置および姿勢を精度よく検出して、ロボット装置がワークの把持に失敗したり、ワークの把持が不安定だったりすることを抑制することができる。または、ハレーションが生じた時に3次元点を補完する場合にも、精度よく3次元点を設定することができる。
 なお、第1の位置に視覚センサを配置したときのロボットの位置および姿勢が、ロボット座標系における位置および姿勢の指令値と厳密に一致するように予め調整されていても構わない。また、上記の実施の形態においては、ロボット1が視覚センサ30を2つの位置に移動することにより、ワーク65と視覚センサ30とを2つの相対的な位置に配置しているが、この形態に限られない。ロボットは、ワークと視覚センサとの相対的な位置を3つ以上の互いに異なる相対位置に変更しても構わない。たとえば、視覚センサを3つ以上の位置に移動して、視覚センサによる計測を行うことができる。
 この時に、位置情報生成部は、それぞれの相対位置におけるワークの表面の3次元位置情報を生成することができる。面推定部は、それぞれの相対位置における面情報を推定することができる。また、補正量設定部は、複数の相対位置にて検出されたワークの表面を含む面が、予め定められた判定範囲内にて一致するように、少なくとも1つの相対位置におけるロボットを駆動するための補正量を設定することができる。
 例えば、補正量設定部は、1つの相対位置において取得された3次元位置情報に基づいて基準となる基準面を作成し、他の相対位置にて取得された3次元位置情報から生成される面が基準面に一致するように、他の相対位置を補正しても構わない。
 上記の平板状の第1のワーク65を使用した場合には、表面65aに設定された3次元点から平面である第1面および第2面を算出している。そして、第1面および第2面が一致するように視覚センサの位置を補正している。または、第1面および第2面が一致するように視覚センサの姿勢を補正しても構わない。ところが、第1面および第2面が延びる方向において、第1面に対する第2面の相対的な位置は、特定されていない。また、第1面および第2面の法線方向の周りの回転角度は、特定されていない。
 例えば、図11を参照して、ロボット座標系71のZ軸の方向のワーク65の位置の補正と、W軸およびP軸の周りのワーク65の姿勢の補正とを実施することができる。ところが、ロボット座標系71のX軸の方向およびY軸の方向の位置の誤差およびR軸の周りの姿勢の誤差が残存する。そこで、特徴的な形状の特徴部分が表面に形成されているワークを採用して、視覚センサおよびロボットの位置および姿勢の補正を行っても構わない。
 図14に、本実施の形態の第2のワークおよび視覚センサの斜視図を示す。第2のワーク66は、板状に形成されている。ワーク66は、平面形状が円の穴部66bを有する。第1の位置P30aおよび第2の位置P30cに視覚センサ30を配置して計測することにより、ワーク66の表面66aの位置および姿勢を検出する。
 図15に、本実施の形態の第1のロボット装置の面推定部の変形例のブロック図を示す。図14および図15を参照して、第1のロボット装置の変形例において、面推定部53は、特徴検出部59を有する。特徴検出部59は、ワークの特徴部分の位置を検出可能に形成されている。例えば、特徴検出部59は、3次元位置情報を用いたパターンマッチングを行うように形成されている。または、特徴検出部59は、2次元画像によるパターンマッチングを行うように形成されている。
 教示作業においてロボット1の駆動の補正量を設定する場合に、特徴検出部59は、第1の位置P30aにて取得した第1の3次元位置情報に基づいて、計測領域91aにおけるワーク66の穴部66bの位置を検出する。また、特徴検出部59は、第2の位置P30cにて取得した第2の3次元位置情報に基づいて、計測領域91cにおけるワーク66の穴部66bの位置を検出する。面推定部53は、第1面の面情報および第2面の面情報を推定する。
 判定部54は、第1面および第2面の法線ベクトルの長さおよび向きの比較に加えて、穴部66bの位置を比較する。第1の3次元位置情報における穴部の位置と、第2の3次元位置情報における穴部の位置との差が判定範囲内になるまで、第2の位置におけるロボットの位置および姿勢を変更することができる。
 補正量設定部55は、第1面と第2面とが判定範囲内にて一致するように補正量を設定する。更に、補正量設定部55は、第1の位置にて取得した第1の3次元位置情報における穴部66bの位置と第2の位置にて取得した第2の3次元位置情報における穴部66bの位置とが判定範囲内で一致するように、補正量を設定することができる。この補正量にてロボットを駆動することにより、第1面および第2面が延びる方向に平行な方向の3次元点の位置合わせを実施することができる。ロボット座標系71のW軸の方向、P軸の方向、およびZ軸の方向に加えて、X軸の方向およびY軸の方向の3次元点の位置を合わせることができる。第2のワーク66の穴部66bの位置が合致するように、ロボットの位置および姿勢の補正量を設定することができる。
 図16に、本実施の形態の第3のワークおよび視覚センサの斜視図を示す。第2のワーク66の特徴部分としての穴部66bは、平面形状が円である。穴部66bは、点対称な平面形状を有する。これに対して、第3のワーク67では、平面形状が非対称の特徴部分が形成されている。第3のワーク67は平板状に形成されている。第3のワーク67には、三角形の平面形状を有する穴部67bが形成されている。特徴検出部59は、計測領域における穴部67bの位置を検出することができる。
 判定部54は、第1の3次元位置情報における穴部67bの位置と、第2の3次元位置情報における穴部67bの位置とを比較する。そして、穴部67bの位置の差が判定範囲内になるまで、第2の位置におけるロボットの位置および姿勢を変更することができる。補正量設定部55は、第1の位置にて取得した3次元位置情報における穴部67bの位置と第2の位置にて取得した3次元位置情報における穴部67bの位置とが一致するように、補正量を設定することができる。
 第3のワーク67では、非対称の平面形状を有する特徴部分が形成されている。このために、第1面および第2面の法線方向の周りの位置合わせを実施することができる。図16を参照して、ロボット座標系71のW軸の方向、P軸の方向、およびZ軸の方向に加えて、X軸の方向、Y軸の方向、およびR軸の方向の3次元点の位置を合わせることができる。第3のワーク67の穴部67bの位置および姿勢が合致するように、ロボット1の位置および姿勢の補正量を設定することができる。
 第3のワークでは、特徴部分の平面形状が点対称でもなく線対称でもない例を説明している。非対称な特徴部分としては、ワークの非対称な複数の位置に特徴部分が形成されていても構わない。例えば、第3のワークの穴部の三角形が頂点に対応する部分に、突起部等の特徴部分が形成されていていても構わない。
 前述の実施の形態においては、ワークの表面が平面状である場合を説明しているが、この形態に限られない。ワークの表面が曲面状の場合にも、本実施の形態における制御を適用することができる。
 図17に、本実施の形態における第4のワークと視覚センサとの概略図を示す。第4のワーク68の表面68aは、曲面状に形成されている。第1の位置P30aに配置された視覚センサ30の出力にて設定された第1の3次元点85aと、第2の位置P30cに配置された視覚センサ30の出力にて設定された第2の3次元点85cとが設定されている。
 このような曲面の場合でも、前述と同様の教示作業における面合わせの制御により、補正量設定部55は、第1の位置P30aにて検出されたワーク68の表面を含む第1面と、第2の位置P30cにて検出されたワーク68の表面を含む第2面とが、予め定められた判定範囲内にて一致するように、第2の位置P30cにおけるロボット1を駆動するための補正量を設定することができる。ロボット装置の実際の作業においては、補正量に基づいてロボットの位置および姿勢を補正して、3次元位置情報を検出することができる。
 または、ワークの表面が曲面状の場合には、3次元空間にワーク68の表面68aの基準となる基準面を予め設定することができる。表面68aの形状は、例えば、CAD(Computer Aided Design)装置から出力される3次元形状データに基づいて生成することができる。ロボット座標系71におけるワーク68の表面68aの位置については、始めにワーク68を架台に配置する。次に、ロボット1にタッチアップペンを取り付けて、タッチアップペンをワーク68の表面68aの複数の位置に設定された接触点に接触させる。複数の接触点の位置をロボット座標系71にて検出する。複数の接触点の位置に基づいて、ロボット座標系71におけるワーク68の位置を定めて、ロボット座標系71における基準面を生成することができる。記憶部は、生成されたワーク68の基準面を記憶する。
 処理部は、ワーク68の基準面の形状および位置に一致するように、視覚センサ30の第1の位置および第2の位置を調整することができる。補正量設定部55は、第1面が基準面に一致するようにロボットの位置および姿勢を算出することができる。また、補正量設定部55は、第2面が基準面に一致するようにロボット1の位置および姿勢を算出することができる。そして、補正量設定部55は、それぞれの位置においてロボット1を駆動するための補正量を算出することがとできる。
 CAD装置の出力等により、ワークの表面に対応する基準面を予め生成する場合には、第1の位置における計測領域と第2の位置における計測領域とが概ね重なっていることが好ましい。このため、ハレーションによる3次元点の欠落を補間する制御に好適である。
 上記の実施の形態では、視覚センサの位置および姿勢がロボットにて変更される一方で、ワークの位置および姿勢は不動であるが、この形態に限られない。ロボット装置は、ワークと視覚センサとの相対的な位置を変更する任意の形態を採用することができる。
 図18に、本実施の形態における第2のロボット装置の側面図を示す。第2のロボット装置7では、視覚センサ30の位置および姿勢が固定され、ロボット4がワーク64の位置および姿勢を変更する。第2のロボット装置7は、ロボット4と、ロボット4に取り付けられた作業ツールとしてのハンド6とを備える。ロボット4は、第1のロボット装置3のロボット1と同様に、6軸の垂直多関節ロボットである。ハンド6は、互いに対向する2つの指部を有する。ハンド6は、指部にてワーク64を挟むことにより、ワーク64を把持するように形成されている。
 第2のロボット装置7は、第1のロボット装置3と同様に、ロボット4およびハンド6を制御する制御装置2を備える。第2のロボット装置7は、3次元センサとしての視覚センサ30を備える。視覚センサ30は、固定部材としての架台35により位置および姿勢が固定されている。
 本実施の形態の第2のロボット装置7では、ワーク64の表面64aの表面の検査を実施する。例えば、処理部は、ワーク64の合成した3次元位置情報に基づいて、ワーク64の表面の輪郭の形状の検査、およびワーク64の表面に形成された特徴部分の形状の検査などを実施することができる。処理部は、それぞれの変数が予め定められた判定範囲内であるか否かを判定することができる。
 第2のロボット装置7では、視覚センサ30の出力に基づいてワーク64の表面64aの3次元位置情報を生成する。視覚センサ30の計測領域91よりもワーク64の表面64aの面積が大きい。このために、ロボット装置7は、ワーク64を第1の位置P70aに配置して、第1の3次元位置情報を生成する。また、ロボット装置7は、ワーク64を第2の位置P70cに配置して、第2の3次元位置情報を生成する。このように、ロボット4は、ワーク64を第1の位置P70aから第2の位置P70cに移動することにより、ワーク64と視覚センサ30との相対的な位置を、第1の相対位置から第2の相対位置に変更する。ここでの例では、ロボット4は、矢印108に示すように、水平方向にワーク64を移動する。第2の位置P70cにおいて、ロボットの駆動機構の駆動の誤差により、第2の位置P70cが所望の位置からずれる場合が有る。
 第2のロボット装置の位置情報生成部52は、第1の位置P70aに配置されたワーク64の表面64aを撮像した視覚センサ30の出力に基づいて、第1の3次元位置情報を生成する。また、位置情報生成部52は、第2の位置P70cに配置されたワーク64の表面64aを撮像した視覚センサ30の出力に基づいて、第2の3次元位置情報を生成する。
 面推定部53は、それぞれの3次元位置情報に基づいて、表面64aを含む第1面および第2面に関する面情報を生成する。補正量設定部55は、第1の3次元位置情報から推定された第1面と、第2の3次元位置情報から推定された第2面とが予め定められた判定範囲内にて一致するように、第2の位置P70cにおけるロボット4を駆動するための補正量を設定することができる。実際の検査の作業においては、補正量設定部55にて設定された補正量に基づいて、第2の位置におけるロボットの位置および姿勢を補正することができる。
 第2のロボット装置7においても、ロボット4の駆動誤差に起因する3次元位置情報の誤差を抑制することができる。第2の位置においてロボット4を駆動するための補正量に基づいてロボット4を駆動することにより、ロボット装置7は、正確な検査を行うことができる。
 第2のロボット装置のその他の構成、作用、および効果については、第1のロボット装置と同様であるので、ここでは説明を繰り返さない。
 本実施の形態の3次元センサは、2台の2次元カメラを含む視覚センサであるが、この形態に限られない。3次元センサは、ワークの表面の3次元位置情報を生成可能な任意のセンサを採用することができる。例えば、3次元センサとしては、光の飛行時間に基づいて3次元位置情報を取得するTOF(Time of Flight)カメラを採用することができる。また、本実施の形態の視覚センサとしてのステレオカメラはプロジェクタを備えるが、この形態に限られない。ステレオカメラは、プロジェクタを備えなくても構わない。
 本実施の形態においては、ロボットを制御する制御装置が3次元センサの出力を処理する処理部として機能するが、この形態に限られない。処理部は、ロボットを制御する制御装置とは異なる演算処理装置(コンピュータ)にて構成されていても構わない。例えば、処理部として機能するタブレット端末がロボットを制御する制御装置に接続されていても構わない。
 本実施の形態のロボット装置は、ワークの搬送またはワークの検査の作業を実施するが、この形態に限られない。ロボット装置は、任意の作業を行うことができる。また、本実施の形態のロボットは、垂直多関節ロボットであるが、この形態に限られない。ワークを移動する任意のロボットを採用することができる。例えば、水平多関節ロボットを採用することができる。
 上記の実施の形態は、適宜組み合わせることができる。上述のそれぞれの制御においては、機能および作用が変更されない範囲において適宜ステップの順序を変更することができる。
 上述のそれぞれの図において、同一または相等する部分には同一の符号を付している。なお、上記の実施の形態は例示であり発明を限定するものではない。また、実施の形態においては、請求の範囲に示される実施の形態の変更が含まれている。
 1,4 ロボット
 2 制御装置
 3,7 ロボット装置
 5,6 ハンド
 24 演算処理装置
 30 視覚センサ
 P30a,P30b,P30c 位置
 51 処理部
 52 位置情報生成部
 53 面推定部
 55 補正量設定部
 56 合成部
 64,65,66,67,68 ワーク
 64a,65a,66a,67a,68a 表面
 66b,67b 穴部
 P70a,P70c 位置
 81 距離画像
 85,85a,85b,85c 3次元点

Claims (7)

  1.  ワークの表面の位置を検出するための3次元センサと、
     前記ワークと前記3次元センサとの相対的な位置を変更するロボットと、
     前記3次元センサの出力に基づいて前記ワークの表面の3次元位置情報を生成する位置情報生成部と、
     3次元位置情報に基づいて、前記ワークの表面を含む面に関する面情報を推定する面推定部と、
     前記ロボットを駆動するための補正量を設定する補正量設定部と、を備え、
     前記ロボットは、前記ワークと前記3次元センサとの相対的な位置を、第1の相対位置から第1の相対位置とは異なる第2の相対位置に変更するように形成されており、
     前記補正量設定部は、前記面情報に基づいて、第1の相対位置にて検出された前記ワークの表面を含む第1面と、第2の相対位置にて検出された前記ワークの表面を含む第2面とが一致するように、第2の相対位置における前記ロボットを駆動するための補正量を設定する、ロボット装置。
  2.  前記ロボットは、前記ワークと前記3次元センサとの相対的な姿勢を、第1の相対姿勢から第2の相対姿勢に変更するように形成されている、請求項1に記載のロボット装置。
  3.  前記3次元センサは、前記ロボットに取り付けられており、
     前記ワークは、位置および姿勢が不動であるように配置されており、
     前記ロボットは、前記3次元センサを第1の位置から第2の位置に移動することにより、前記ワークと前記3次元センサとの相対的な位置を第1の相対位置から第2の相対位置に変更する、請求項1または2に記載のロボット装置。
  4.  前記ロボットに取り付けられ、前記ワークを把持する作業ツールを備え、
     前記3次元センサは、固定部材にて位置および姿勢が固定されており、
     前記ロボットは、前記ワークを第1の位置から第2の位置に移動することにより、前記ワークと前記3次元センサとの相対的な位置を第1の相対位置から第2の相対位置に変更する、請求項1または2に記載のロボット装置。
  5.  前記ロボットは、前記ワークと前記3次元センサとの相対的な位置を、3つ以上の互いに異なる相対位置に変更し、
     前記位置情報生成部は、それぞれの相対位置における前記ワークの表面の3次元位置情報を生成し、
     前記面推定部は、それぞれの相対位置における前記面情報を推定し、
     前記補正量設定部は、複数の相対位置にて検出された前記ワークの表面を含む面が、予め定められた判定範囲内にて一致するように、少なくとも1つの相対位置における前記ロボットを駆動するための補正量を設定する、請求項1から4のいずれか一項に記載のロボット装置。
  6.  複数の相対位置において取得した前記ワークの表面の複数の3次元位置情報を合成する合成部を備え、
     前記合成部は、第1の相対位置において生成された3次元位置情報と、前記補正量設定部にて設定された補正量に基づいて補正された第2の相対位置において生成された3次元位置情報とを合成する、請求項1に記載のロボット装置。
  7.  ロボットが、ワークと3次元センサとの相対的な位置を第1の相対位置に配置する工程と、
     位置情報生成部が、前記3次元センサの出力に基づいて第1の相対位置における前記ワークの表面の3次元位置情報を生成する工程と、
     前記ロボットが、前記ワークおよび前記3次元センサの相対的な位置を、第1の相対位置とは異なる第2の相対位置に配置する工程と、
     前記位置情報生成部が、前記3次元センサの出力に基づいて第2の相対位置における前記ワークの表面の3次元位置情報を生成する工程と、
     面推定部が、それぞれの相対位置における3次元位置情報に基づいて、前記ワークの表面を含む面に関する面情報を推定する工程と、
     補正量設定部が、前記面情報に基づいて、第1の相対位置にて検出された前記ワークの表面を含む第1面と、第2の相対位置にて検出された前記ワークの表面を含む第2面とが一致するように、第2の相対位置における前記ロボットを駆動するための補正量を設定する工程とを含む、ロボット装置の制御方法。
PCT/JP2022/001188 2022-01-14 2022-01-14 3次元センサを備えるロボット装置およびロボット装置の制御方法 WO2023135764A1 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
PCT/JP2022/001188 WO2023135764A1 (ja) 2022-01-14 2022-01-14 3次元センサを備えるロボット装置およびロボット装置の制御方法
TW111148238A TW202327835A (zh) 2022-01-14 2022-12-15 具備三維感測器的機器人裝置及機器人裝置的控制方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2022/001188 WO2023135764A1 (ja) 2022-01-14 2022-01-14 3次元センサを備えるロボット装置およびロボット装置の制御方法

Publications (1)

Publication Number Publication Date
WO2023135764A1 true WO2023135764A1 (ja) 2023-07-20

Family

ID=87278616

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2022/001188 WO2023135764A1 (ja) 2022-01-14 2022-01-14 3次元センサを備えるロボット装置およびロボット装置の制御方法

Country Status (2)

Country Link
TW (1) TW202327835A (ja)
WO (1) WO2023135764A1 (ja)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08132373A (ja) * 1994-11-08 1996-05-28 Fanuc Ltd ロボット−センサシステムにおける座標系結合方法
JP2018126857A (ja) * 2017-02-09 2018-08-16 キヤノン株式会社 ロボットの制御方法、ロボットの教示方法、ロボットシステム、プログラム及び記録媒体
JP2021137946A (ja) * 2020-03-09 2021-09-16 リンクウィズ株式会社 情報処理方法、情報処理システム、プログラム

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08132373A (ja) * 1994-11-08 1996-05-28 Fanuc Ltd ロボット−センサシステムにおける座標系結合方法
JP2018126857A (ja) * 2017-02-09 2018-08-16 キヤノン株式会社 ロボットの制御方法、ロボットの教示方法、ロボットシステム、プログラム及び記録媒体
JP2021137946A (ja) * 2020-03-09 2021-09-16 リンクウィズ株式会社 情報処理方法、情報処理システム、プログラム

Also Published As

Publication number Publication date
TW202327835A (zh) 2023-07-16

Similar Documents

Publication Publication Date Title
US11911914B2 (en) System and method for automatic hand-eye calibration of vision system for robot motion
JP4021413B2 (ja) 計測装置
US11050983B2 (en) System and method for recalibrating a projector system
KR20140008262A (ko) 로봇 시스템, 로봇, 로봇 제어 장치, 로봇 제어 방법 및 로봇 제어 프로그램
JP2019113895A (ja) ワークを撮像する視覚センサを備える撮像装置
US11679508B2 (en) Robot device controller for controlling position of robot
JPH0713613A (ja) プログラム式ロボット制御器に経路補償データを自動的に供給する方法と装置
JP2015090298A (ja) 情報処理装置、情報処理方法
CN112775545A (zh) 用于判定机器人的位置或姿势的修正方法的控制装置
JP6693981B2 (ja) ロボットの動作をシミュレーションするシミュレーション装置
CN109773589B (zh) 对工件表面进行在线测量和加工导引的方法及装置、设备
KR101972432B1 (ko) 레이저비전 센서 및 그 보정방법
JPH07237158A (ja) 位置・姿勢検出方法及びその装置並びにフレキシブル生産システム
WO2023135764A1 (ja) 3次元センサを備えるロボット装置およびロボット装置の制御方法
Qiao Advanced sensing development to support robot accuracy assessment and improvement
Ravn et al. Auto-calibration in automation systems using vision
JP7384653B2 (ja) ロボットの位置を制御するロボット装置の制御装置
WO2022163580A1 (ja) 視覚センサにて取得される3次元の位置情報から断面画像を生成する処理装置および処理方法
WO2022244212A1 (ja) 視覚センサにて撮像された画像に基づいて3次元の位置を算出する撮像装置
JPH0774964B2 (ja) ロボットの位置決め誤差補正方法
JPH012104A (ja) ロボットの位置決め誤差補正方法
US20240066701A1 (en) Simulation device using three-dimensional position information obtained from output from vision sensor
WO2022249410A1 (ja) 視覚センサにて撮像された画像に基づいて3次元の位置を算出する撮像装置
KR100784734B1 (ko) 산업용 로봇 시스템의 타원 보간방법
US20230123629A1 (en) 3d computer-vision system with variable spatial resolution

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: 22920289

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2023573766

Country of ref document: JP

Kind code of ref document: A