WO2022074998A1 - 制御装置、ロボットアームシステム及びロボットアーム装置の制御方法 - Google Patents

制御装置、ロボットアームシステム及びロボットアーム装置の制御方法 Download PDF

Info

Publication number
WO2022074998A1
WO2022074998A1 PCT/JP2021/032999 JP2021032999W WO2022074998A1 WO 2022074998 A1 WO2022074998 A1 WO 2022074998A1 JP 2021032999 W JP2021032999 W JP 2021032999W WO 2022074998 A1 WO2022074998 A1 WO 2022074998A1
Authority
WO
WIPO (PCT)
Prior art keywords
robot arm
target
tip
coordinate system
image pickup
Prior art date
Application number
PCT/JP2021/032999
Other languages
English (en)
French (fr)
Inventor
典 岡田
智英 石上
柚香 磯邉
弘造 江澤
吉成 松山
憲治 徳田
Original Assignee
パナソニックIpマネジメント株式会社
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 パナソニックIpマネジメント株式会社 filed Critical パナソニックIpマネジメント株式会社
Priority to CN202180068577.4A priority Critical patent/CN116323115A/zh
Priority to JP2022555320A priority patent/JPWO2022074998A1/ja
Publication of WO2022074998A1 publication Critical patent/WO2022074998A1/ja
Priority to US18/121,155 priority patent/US20230219231A1/en

Links

Images

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1694Programme controls characterised by use of sensors other than normal servo-feedback from position, speed or acceleration sensors, perception control, multi-sensor controlled systems, sensor fusion
    • B25J9/1697Vision controlled systems
    • 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
    • B25J13/088Controls for manipulators by means of sensing devices, e.g. viewing or touching devices with position, velocity or acceleration sensors
    • B25J13/089Determining the position of the robot with reference to its environment
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J19/00Accessories fitted to manipulators, e.g. for monitoring, for viewing; Safety devices combined with or specially adapted for use in connection with manipulators
    • B25J19/02Sensing devices
    • B25J19/021Optical sensing devices
    • B25J19/023Optical sensing devices including video camera means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/70Determining position or orientation of objects or cameras
    • G06T7/73Determining position or orientation of objects or cameras using feature-based methods
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/37Measurements
    • G05B2219/37555Camera detects orientation, position workpiece, points of workpiece
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/40Robotics, robotics mapping to robotics vision
    • G05B2219/40609Camera to monitor end effector as well as object to be handled
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/45Nc applications
    • G05B2219/45026Circuit board, pcb
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10016Video; Image sequence
    • G06T2207/10021Stereoscopic video; Stereoscopic image sequence
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10028Range image; Depth image; 3D point clouds
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/30Subject of image; Context of image processing
    • G06T2207/30108Industrial image inspection
    • G06T2207/30141Printed circuit board [PCB]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/30Subject of image; Context of image processing
    • G06T2207/30108Industrial image inspection
    • G06T2207/30164Workpiece; Machine component
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/30Subject of image; Context of image processing
    • G06T2207/30204Marker

Definitions

  • the present disclosure relates to a control device and a control method of the robot arm device, and a robot arm system.
  • Patent Document 1 discloses an operation method of a surgical instrument that remotely operates a surgical instrument connected to a robot arm provided with a position detector at each joint based on the operation of an input device.
  • Patent Document 2 discloses a control device for a robot including an end effector for moving a work object.
  • the robot arm device refers to a coordinate system based on the position and orientation of an immovable part such as the main body or the base thereof (hereinafter referred to as "coordinate system of the robot arm device” or “robot coordinate system”). It controls the position and movement of the arm and hand.
  • the work object of the work by the robot arm device does not have a known position in the robot coordinate system.
  • the position of the work object may change during work. If the position of the work object is unknown, the robot arm device cannot be used to accurately perform the work on the work object. Therefore, even when the work object does not have a fixed and known position in the robot coordinate system, it is required to accurately perform the work on the work object by using the robot arm device.
  • An object of the present disclosure is to control a robot arm device to accurately perform work on a work object, even if the work object does not have a fixed and known position in the robot coordinate system. It is an object of the present invention to provide a control device and a control method of a robot arm device. It is also an object of the present disclosure to provide a robot arm system including such a control device and a robot arm device.
  • a control device that controls a robot arm device that holds an object to be held.
  • a target setter that sets the position of at least one target on the work object,
  • a feature point recognizer that detects a feature point of a work object from a photographed image acquired by at least one imaging device and including at least a part of the work object and the tip of the holding object.
  • a first position calculator that calculates the position of the target object in the coordinate system of the image pickup device based on the feature points of the work object.
  • a second position calculator that calculates the position of the tip of the holding object in the coordinate system of the image pickup device based on the captured image, and
  • the position of the target object and the position of the tip of the holding object in the coordinate system of the imaging device are converted into positions in the coordinate system of the robot arm device, and the converted position of the target object and the holding object are converted.
  • the robot arm device includes a control signal generator that outputs a first control signal for moving the tip of the holding object to the position of the target based on the position of the tip.
  • the robot arm device is controlled so that the work on the work object can be performed accurately even when the work object does not have a fixed and known position in the robot coordinate system. be able to.
  • FIG. 1 It is a schematic diagram which shows the structure of the robot arm system which concerns on 1st Embodiment. It is a partially enlarged view of the electric screwdriver 5 and the marker 6 of FIG. It is a perspective view which shows the circuit board 8 of FIG. It is a figure which shows the feature point F included in the circuit board 8 of FIG. It is a block diagram which shows the structure of the control device 1 of FIG. It is a figure which shows the exemplary photographed image 70 acquired by the image pickup apparatus 7 of FIG. It is a figure explaining the map point and the key frame of the feature point map stored in the storage device 15 of FIG. It is a figure which shows the exemplary feature point map stored in the storage device 15 of FIG.
  • step S24 of FIG. It is a figure explaining the calculation of the position of the tip of the holding object in the camera coordinate system, which is executed in step S24 of FIG. It is a figure which shows the exemplary image 30 displayed on the display device 3 of FIG. It is a schematic diagram which shows the structure of the robot arm system which concerns on 2nd Embodiment. It is a block diagram which shows the structure of the control device 1A of FIG. It is a flowchart which shows the robot arm control process executed by the control device 1A of FIG. It is a flowchart which shows the subroutine of step S4A (target position calculation process) of FIG. It is a figure explaining the recognition of the target object by the image processing, which is executed in step S35 of FIG.
  • FIG. 42 shows the details of the window 35 of FIG. 42 and shows radar charts 36 and 37 when the tip of the object to be held is at the first distance with respect to the target.
  • FIG. 42 shows the details of the window 35 of FIG. 42 and shows radar charts 36 and 37 when the tip of the object to be held is at a second distance shorter than the first distance with respect to the target object.
  • the work object of the work by the robot arm device does not have a known position in the robot coordinate system.
  • the robot arm device holds some holding object for work on the working object, the holding object also has no known position in the robot coordinate system.
  • the positions of the work and hold objects may fluctuate during work.
  • a robot arm device holds an electric screwdriver as a holding object, and the electric screwdriver is used to insert a screw into a screw hole of a circuit board that is a work object and automatically fasten the circuit board to other parts.
  • the circuit board is not always fixed to the workbench.
  • the position of the electric screwdriver held by the robot arm device changes each time it is held. Therefore, the electric screwdriver and circuit board do not have a fixed, known position in the robot coordinate system.
  • the position of the holding object or the working object is unknown, it is not possible to accurately perform the work on the working object using the holding object held by the robot arm device. Therefore, even if at least one of the held object and the work object does not have a fixed known position in the robot coordinate system, the work object is held by using the held object held by the robot arm device. It is required to work on things accurately.
  • the holding object is used with respect to the working object even when at least one of the holding object and the working object does not have a fixed known position in the robot coordinate system.
  • a robot arm system capable of controlling a robot arm device to perform work accurately will be described.
  • FIG. 1 is a schematic view showing a configuration of a robot arm system according to a first embodiment.
  • the robot arm system of FIG. 1 includes a control device 1, an input device 2, a display device 3, a robot arm device 4, an electric driver 5, a marker 6, an image pickup device 7, and a circuit board 8.
  • the control device 1 controls the robot arm device 4 that holds the electric driver 5 based on the captured image acquired by the image pickup device 7 and / or based on the user input input via the input device 2. ..
  • the control device 1 is, for example, a general-purpose personal computer or a dedicated device.
  • the input device 2 includes a keyboard and a pointing device, and acquires user input for controlling the robot arm device 4.
  • the robot arm device 4 includes a main body 4a, an arm 4b, and a hand 4c.
  • the main body 4a is fixed to the floor surface (or a wall surface, a ceiling, etc.).
  • the hand 4c is connected to the main body 4a via the arm 4b. Further, the hand 4c holds an arbitrary article, that is, the electric screwdriver 5 in the example of FIG.
  • the arm 4b includes a plurality of links and a plurality of joints, and each link is rotatably connected via the joints. As a result, the robot arm device 4 can move the electric screwdriver 5 within a predetermined range around the main body 4a.
  • the electric screwdriver 5 is held by the hand 4c of the robot arm device 4.
  • the marker 6 is fixed at a known position of the electric screwdriver 5.
  • the marker 6 is fixed to the electric screwdriver 5 so that the image pickup device 7 can take a picture of the marker 6 when the robot arm device 4 holds the electric screwdriver 5.
  • the marker 6 is a pattern formed so that the direction and distance of the marker 6 as seen from the image pickup apparatus 7 can be calculated, for example, a marker used in the field of augmented reality (also referred to as “AR marker”). Have.
  • FIG. 2 is a partially enlarged view of the electric screwdriver 5 and the marker 6 of FIG.
  • the marker 6 has a pattern formed so that the direction and distance of the marker 6 as seen from the image pickup apparatus 7 can be calculated.
  • the tip 5a of the electric screwdriver 5 has a known offset with respect to a predetermined position (eg, center) of the marker 6. This offset is represented by the vector tooffset . Therefore, the relative position (that is, the direction and distance) of the tip 5a of the electric screwdriver 5 with respect to the marker 6 is known, and if the position of the marker 6 is known, the position (that is, the direction and distance) of the tip 5a of the electric screwdriver 5 is calculated. can do.
  • the electric screwdriver 5 comes into contact with the circuit board 8 at its tip 5a.
  • the image pickup apparatus 7 acquires a photographed image including at least a part of the tip 5a of the electric screwdriver 5 and the circuit board 8.
  • the image pickup device 7 may be a monocular camera or the like that does not have a function of detecting the distance from the image pickup device 7 to each point photographed by the image pickup device 7. Further, the image pickup device 7 may be a stereo camera, an RGB-D camera, or the like that detects the distance from the image pickup device 7 to each point photographed by the image pickup device 7.
  • the image pickup apparatus 7 may take a still image at predetermined time intervals, or may extract frames from a series of frames of a moving image at predetermined time intervals. The image pickup apparatus 7 gives each image a time stamp of the time when the image was taken.
  • the image pickup device 7 can photograph the tip 5a of the electric driver 5 and the marker 6 when the robot arm device 4 holds the electric driver 5, the image pickup device 7 is relative to the electric driver 5 in the image pickup device 7. It may be fixed to the robot arm device 4 so that the position changes.
  • FIG. 4 is a diagram showing a feature point F included in the circuit board 8 of FIG.
  • the feature point F is a point where the luminance value or the color can be distinguished from the surrounding pixels and the position thereof can be accurately determined.
  • the feature point F is detected from the apex or edge of the structure such as the printed wiring board 80, the circuit element 81, and the screw hole 82.
  • the circuit board 8 is arranged on a workbench, a belt conveyor, or the like (not shown).
  • a plurality of coordinate systems that is, the coordinate system of the robot arm device 4, the coordinate system of the image pickup device 7, the coordinate system of the electric driver 5, and the coordinate system of the circuit board 8. And the coordinate system of the screw hole 82.
  • the image pickup apparatus 7 has a three-dimensional coordinate system based on the position and orientation of the image pickup apparatus 7 ⁇ hereinafter, referred to as “the coordinate system of the image pickup device” or “the camera coordinate system”).
  • the camera coordinate system has coordinate axes Xc, Yc, Zc.
  • the origin of the camera coordinate system is provided on the optical axis of the image pickup apparatus 7, and the orientation of the camera coordinate system is such that one of the coordinate axes coincides with the optical axis and the remaining two coordinate axes. Is set to be perpendicular to the optical axis.
  • the position in the camera coordinate system indicates the position when viewed from the image pickup apparatus 7.
  • the electric screwdriver 5 has a three-dimensional coordinate system based on the position and posture of the electric screwdriver 5 ⁇ hereinafter, referred to as “holding object coordinate system”).
  • the coordinate system of the object to be held has coordinate axes Xt, Yt, and Zt.
  • the origin of the coordinate system of the object to be held is provided at the center of the electric driver 5, and the direction of the coordinate system of the object to be held is such that one of the coordinate axes coincides with the rotation axis of the tip 5a of the electric driver 5.
  • the remaining two coordinate axes are set to be perpendicular to the rotation axis.
  • the origin of the coordinate system of the object to be held may be provided at the tip 5a of the electric screwdriver 5.
  • the circuit board 8 has a three-dimensional coordinate system based on the position and orientation of the circuit board 8 ⁇ hereinafter, referred to as “work object coordinate system”).
  • the work object coordinate system has coordinate axes Xb, Yb, Zb.
  • the origin of the work object coordinate system is provided on the optical axis of the image pickup device 7 associated with the key frame first acquired when the feature point map of the circuit board 8 described later is generated, and the work object is provided.
  • the orientation of the physical coordinate system is such that one of its axes coincides with the optical axis of the imager 7 associated with the same keyframe, and the remaining two axes are perpendicular to the optical axis.
  • the orientation of the work object coordinate system may be set based on the design data of the circuit board 8, and the coordinate axes may be set so as to be parallel or perpendicular to the sides of the circuit board 8, for example.
  • the screw hole 82 set as the target object has a three-dimensional coordinate system based on the position and orientation of the screw hole 82 ⁇ hereinafter, referred to as “target object coordinate system”). ..
  • FIG. 3 shows a case where the screw hole 82-2 is set as a target.
  • the target coordinate system has coordinate axes Xh, Yh, Zh.
  • the origin of the target coordinate system is provided at the center of the screw hole 82-2, and the orientation of the target coordinate system is such that two of the coordinate axes are parallel to the plane of the circuit board 8.
  • the remaining one coordinate axis is set to be perpendicular to the plane of the circuit board 8.
  • the positions of the origins of the robot coordinate system, the camera coordinate system, the retained object coordinate system, the work object coordinate system, and the target coordinate system and the orientation of each coordinate axis shown in FIGS. 1 to 3 are merely examples.
  • the coordinate system may have different origin positions and / or different coordinate axis orientations.
  • the electric driver 5 Since the position of the electric screwdriver 5 in the camera coordinate system changes each time the robot arm device 4 holds the electric driver 5, the electric driver 5 does not have a known position in the camera coordinate system.
  • FIG. 5 is a block diagram showing the configuration of the control device 1 of FIG.
  • the control device 1 includes a feature point recognizer 11, a position calculator 12, a marker recognizer 13, a position calculator 14, a storage device 15, a target setting device 16, a control signal generator 17, and an image generator 18.
  • the control device 1 acquires a photographed image acquired by the image pickup device 7, including at least a part of the tip 5a of the electric screwdriver 5 and the circuit board 8.
  • the feature point recognizer 11 detects the feature points of the circuit board 8 from the captured image acquired by the image pickup apparatus 7 and includes at least a part of the circuit board 8 and the tip 5a of the electric screwdriver 5. Further, the feature point recognizer 11 extracts the corresponding feature amount by using, for example, SIFT (ScaleInvariantFeatureTransform) or ORB (OrientedFAST andRotatedBRIEF).
  • SIFT ScaleInvariantFeatureTransform
  • ORB OrientedFAST andRotatedBRIEF
  • FIG. 6 is a diagram showing an exemplary photographed image 70 acquired by the image pickup apparatus 7 of FIG.
  • the captured image 70 includes the circuit board 8 and the tip 5a of the electric screwdriver 5.
  • FIG. 6 further shows the feature point F of the circuit board 8 detected by the feature point recognizer 11 for the sake of explanation.
  • the key frame is the position (three-dimensional coordinates) and the posture of the image pickup device 7 in the work object coordinate system, the position (two-dimensional coordinates) and the feature amount of each feature point in the captured image, and each feature point in the captured image. Includes the corresponding map point identifier.
  • FIG. 7 is a diagram illustrating map points and key frames of the feature point map stored in the storage device 15 of FIG.
  • the circuit board 8 having the feature points F1 to F4 is schematically shown.
  • the map point includes the positions of the feature points F1 to F4 of the circuit board 8 in the work object coordinate system, the feature amount of each feature point, and the identifier of each feature point.
  • the key frame K1 shows the state of the image pickup device 7 (shown as the image pickup device 7') and the photographed image when the circuit board 8 is photographed from the first position.
  • the captured image of the image pickup apparatus 7' includes the feature points F1'to F4' corresponding to the feature points F1 to F4 of the circuit board 8.
  • the key frame K1 is the position and orientation of the image pickup device 7'in the coordinate system of the work object, the position and feature amount of each feature point F1'to F4' in the captured image, and each feature point F1'to in the captured image. Includes the identifier of the map point corresponding to F4'.
  • the key frame K2 shows the state of the image pickup device 7 (shown as the image pickup device 7 ") and the photographed image when the circuit board 8 is photographed from the second position.
  • the photographed image of the image pickup device 7" is the circuit board.
  • the feature points F1 "to F4" corresponding to the feature points F1 to F4 of 8 are included.
  • the key frame K2 is the position and orientation of the image pickup device 7 "in the coordinate system of the work object, the position and feature amount of each feature point F1" to F4 "in the captured image, and each feature point F1" to in the captured image. Includes a map point identifier corresponding to "F4".
  • the storage device 15 may store the captured image itself captured to generate the map point in association with each key frame.
  • the feature point map is generated by using, for example, Visual-SLAM (Visual Simultaneous Localization and Mapping) based on a plurality of captured images of the circuit board 8 captured from a plurality of different positions.
  • Visual-SLAM Visual Simultaneous Localization and Mapping
  • the location of map points is calculated as follows:
  • the feature points of the circuit board 8 are detected from the captured image acquired by the image pickup device 7 having a predetermined position and posture.
  • a translation vector T1 and a rotation matrix R1 indicating the position and orientation of the image pickup apparatus 7 when the detected feature points are photographed are calculated with reference to a point having known three-dimensional coordinates.
  • the image pickup device 7 is moved, and the feature points of the circuit board 8 are detected from the captured images acquired by the image pickup devices 7 having different positions and postures.
  • a translation vector T2 and a rotation matrix R2 indicating the position and orientation of the image pickup apparatus 7 when the detected feature points are photographed are calculated with reference to a point having known three-dimensional coordinates.
  • the scale of the feature point map may be calibrated based on, for example, the design data of the circuit board 8. Also, the scale of the feature point map is calibrated by detecting the distance from the image pickup device to each point captured (see second and third embodiments) when the feature point map is pre-generated. May be good. Also, the scale of the feature point map is calibrated by detecting at least one marker fixed at a known position on the circuit board 8 (see fourth embodiment) when the feature point map is pre-generated. You may.
  • SfM structure from motion
  • FIG. 8 is a diagram showing an exemplary feature point map stored in the storage device 15 of FIG.
  • FIG. 8 is a perspective view of a three-dimensional plot of the plurality of feature points F and the positions and postures of the image pickup apparatus 7 related to the plurality of key frames K. Assuming that the image pickup device 7 photographs the circuit board 8 at various positions and postures during the operation of the robot arm device 4, the feature point map includes a large number of key frames K.
  • the target object setting device 16 sets the position of at least one screw hole 82 on the circuit board 8 as the position of the target object.
  • the target setting device 16 sets a target by, for example, selecting at least one of a plurality of map points stored in the storage device 15 based on the user input acquired via the input device 2.
  • the target object setting device 16 may store the set target object in the storage device 15.
  • the position calculator 12 refers to the feature point map read from the storage device 15 based on the feature points of the circuit board 8 detected by the feature point recognizer 11, and the screw hole 82 in the camera coordinate system. Calculate the position and orientation of.
  • the orientation of the screw hole 82 is represented, for example, by the orientation of the axis passing through the screw hole 82 and perpendicular to the surface of the circuit board 8.
  • the marker recognizer 13 detects the marker 6 fixed at a known position of the electric screwdriver 5 from the captured image.
  • the position calculator 14 calculates the orientation of the electric driver 5 in the camera coordinate system based on the image of the marker 6 recognized by the marker recognizer 13, and calculates the position of the tip 5a of the electric driver 5 in the camera coordinate system. ..
  • the orientation of the electric screwdriver 5 is represented by, for example, the orientation of the rotation axis of the tip 5a of the electric screwdriver 5.
  • the control signal generator 17 converts the position and orientation of the screw hole 82 in the camera coordinate system calculated by the position calculator 12 into the position and orientation in the robot coordinate system. Further, the control signal generator 17 converts the orientation of the electric screwdriver 5 and the position of the tip 5a of the electric screwdriver 5 in the camera coordinate system calculated by the position calculator 14 into the orientation and the position in the robot coordinate system. Since the robot arm device 4 operates under the control of the control device 1 and the image pickup device 7 is fixed to the arm 4b of the robot arm device 4, the image pickup device 7 has a known position and posture in the robot coordinate system. .. Therefore, the control signal generator 17 can convert the coordinates of the screw hole 82 and the electric screwdriver 5 based on the position and orientation of the image pickup device 7.
  • control signal generator 17 places the tip of the electric screwdriver 5 at the position of the screw hole 82 based on the position and orientation of the converted screw hole 82, the orientation of the electric screwdriver 5, and the position of the tip 5a of the electric screwdriver 5.
  • the control signal to be moved to is output to the robot arm device 4.
  • the control device 1 automatically controls the robot arm device 4.
  • the robot arm device 4 moves the tip 5a of the electric screwdriver 5 to the screw hole 82 so that the electric screwdriver 5 has a predetermined angle with respect to the screw hole 82 according to the control signal from the control device 1.
  • the robot arm device 4 moves the tip 5a of the electric screwdriver 5 to the screw hole 82 so that the direction of the electric screwdriver 5 matches the direction of the screw hole 82, for example.
  • the image generator 18 outputs the captured image to the display device 3. Further, the image generator 18 may superimpose the feature points of the circuit board 8, the positions of the screw holes 82, and the positions of the tip 5a of the electric screwdriver 5 on the captured image and output them to the display device 3.
  • each component 11 to 18 of the control device 1 may be integrated.
  • Each component 11 to 14, 16 to 18 of the control device 1 may be implemented as a dedicated circuit or as a program executed by a general-purpose processor.
  • FIG. 9 is a flowchart showing a robot arm control process executed by the control device 1 of FIG.
  • the target object setting device 16 sets at least one screw hole 82 in the circuit board 8 as a target object (step S1).
  • the control device 1 acquires a captured image from the image pickup device 7 (step S2).
  • the feature point recognizer 11 detects the feature points of the circuit board 8 from the captured image, and acquires their positions and feature quantities (step S3).
  • the position calculator 12 executes the target position calculation process and calculates the position and orientation of the screw hole 82 in the camera coordinate system (step S4).
  • the marker recognizer 13 detects the image of the marker 6 from the captured image (step S5).
  • the position calculator 14 executes the holding object position calculation process, and calculates the direction of the electric screwdriver 5 and the position of the tip 5a of the electric screwdriver 5 in the camera coordinate system (step S6).
  • Steps S3 to S6 may be executed in parallel or sequentially as shown in FIG.
  • the control signal generator 17 converts the position and orientation of the screw hole 82 in the camera coordinate system, the orientation of the electric screwdriver 5, and the position of the tip 5a of the electric screwdriver 5 into the position and orientation in the robot coordinate system (step S7). ..
  • the coordinate transformation from the position (xc, yc, zc) in the camera coordinate system to the position (xr, yr, zr) in the robot coordinate system is expressed by, for example, the following equation using a simultaneous coordinate transformation matrix.
  • R cr is a matrix indicating the orientation of the robot coordinate system with respect to the orientation of the camera coordinate system
  • t cr is a vector indicating the position of the origin of the robot coordinate system in the camera coordinate system.
  • the matrix R cr can be decomposed into matrices R ⁇ , R ⁇ , R ⁇ representing each rotation angle ⁇ , ⁇ , ⁇ around the X-axis, Y-axis, and Z-axis, respectively.
  • the matrix R cr and the vector t cr can be obtained from the design data of the robot arm device 4 and the current state (that is, the content of the control signal).
  • the control signal generator 17 is such that the electric screwdriver 5 has a predetermined angle with respect to the screw hole 82 (for example, the direction of the electric screwdriver 5 matches the direction of the screw hole 82).
  • a control signal for moving the tip 5a of the screw hole 82 to the position of the screw hole 82 is output (step S8).
  • the control device 1 may repeat steps S2 to S8 while moving the tip 5a of the electric screwdriver 5 to the position of the screw hole 82.
  • step S9 determines whether or not all the targets have been processed (step S9), and if YES, performs the processing. If the result is NO, the process proceeds to step S10.
  • the control signal generator 17 outputs a control signal for moving the tip 5a of the electric screwdriver 5 in the direction of the next screw hole 82 (step S10). After that, the control device 1 repeats steps S2 to S10.
  • FIG. 10 is a flowchart showing the subroutine of step S4 (target position calculation process) of FIG.
  • the position calculator 12 acquires a captured image, a feature point, and a feature amount from the feature point recognizer 11 (step S11).
  • the position calculator 12 searches for a similar image of the captured image from the key frame of the feature point map stored in the storage device 15 (step S12).
  • the position calculator 12 obtains a key frame from the storage device 15 including feature points having similar positions and feature amounts based on the positions and feature amounts of the feature points of the captured image acquired by the image pickup device 7. It may be read out as a similar image.
  • the position calculator 12 is similar from the storage device 15 based on the captured image acquired by the image pickup device 7.
  • the key frame associated with the captured image may be read out as a similar image.
  • the position calculator 12 may use, for example, BoVW (Bag of Visual Words).
  • BoVW is a feature vector in which local feature quantities of an image are clustered in an n-dimensional space and the features of the image are represented by "the number of appearances of the feature quantity for each cluster".
  • the local feature quantity of an image is a feature vector whose distribution is not transformed by rotation, enlargement, and reduction. That is, it is expected that an image having a similar shape of the distribution of the feature amount is an image having a similar arrangement of the feature points.
  • the position calculator 12 associates (matches) the feature points of the captured image with the feature points of a similar image (step S13).
  • the position calculator 12 may use, for example, an ORB feature amount.
  • the position calculator 12 calculates the ORB feature amount of a certain feature point in the captured image, calculates the ORB feature amount of all the feature points in the similar image, and each of the ORB feature amount related to the captured image and the similar image.
  • the distance from the ORB feature (for example, the humming distance between the feature vectors) is calculated.
  • the position calculator 12 associates a pair of feature points corresponding to the feature amount that minimizes this distance with each other.
  • FIG. 11A and 11B are diagrams for explaining the correspondence of feature points executed in step S13 of FIG. 10, where FIG. 11A shows a captured image 70A acquired by the image pickup apparatus 7, and FIG. 11B shows the captured image 70A from the storage device 15.
  • the read similar image 70B is shown.
  • the similar image 70B may include only the feature point F (or the feature point F and the feature amount), or may include a captured image taken to generate a map point.
  • the position calculator 12 calculates the position and orientation of the image pickup device 7 in the work object coordinate system (step S14). Therefore, the position calculator 12 has, for example, the positions (two-dimensional coordinates) of n feature points included in the captured image and n features of the map points corresponding to the n feature points included in the similar image. Solve the PnP (perspective n point) problem based on the position of the point (three-dimensional coordinates).
  • the position calculator 12 calculates the position and orientation of the screw hole 82 in the camera coordinate system based on the position and orientation of the image pickup device 7 in the work object coordinate system (step S15).
  • FIG. 12 is a diagram illustrating the calculation of the position and orientation of the target object in the camera coordinate system, which is executed in step S15 of FIG.
  • FIG. 12 shows an exemplary feature point map as in FIG. 8, and is a perspective view of a plurality of feature points F and the position and orientation of the image pickup apparatus 7 related to the key frame K in a three-dimensional plot. be.
  • FIG. 12 shows the origin Ob and the coordinate axes Xb, Yb, Zb of the work object coordinate system, and the origin Occ and the coordinate axes Xc, Yc, Zc of the camera coordinate system.
  • the orientation of the screw hole 82 is represented by the orientation of the axis A that passes through the screw hole 82 and is perpendicular to the surface of the circuit board 8.
  • the vector t bh indicates the position of the screw hole 82 in the work object coordinate system. Since the position of the screw hole 82 is set by the target setting device 16, the vector t bh is known.
  • the vector t bc and the matrix R bc (not shown) indicate the position and orientation of the image pickup apparatus 7 in the work object coordinate system, respectively. Since the position and orientation of the image pickup apparatus 7 in the work object coordinate system can be calculated by associating the feature points in step S13 of FIG. 10, the vector t bc and the matrix R bc are known.
  • step S13 if the captured image does not include the feature point corresponding to the screw hole 82 set as the target object, the position calculator 12 ends step S4.
  • the control signal generator 17 outputs a control signal for moving the electric screwdriver 5 to another position, whereby the image pickup device 7 causes another part of the circuit board 8 to be photographed. After that, the process returns to step S2.
  • FIG. 13 is a flowchart showing the subroutine of step S6 (holding object position calculation process) of FIG.
  • the position calculator 14 acquires an image of the detected marker 6 from the marker recognizer 13 (step S21).
  • the position calculator 14 calculates the position and orientation of the marker 6 in the camera coordinate system based on the image of the marker 6 (step S22).
  • the position calculator 14 calculates the orientation of the electric driver 5 in the camera coordinate system based on the position and orientation of the marker 6 (step S23).
  • the position calculator 14 calculates the position of the tip 5a of the electric screwdriver 5 in the camera coordinate system based on the known offset tooffset between the marker 6 and the tip 5a of the electric screwdriver 5 (step S24).
  • FIG. 14 is a diagram illustrating the calculation of the position of the tip 5a of the holding object in the camera coordinate system, which is executed in step S24 of FIG.
  • FIG. 14 also shows an exemplary feature point map, similar to FIG.
  • the orientation of the electric screwdriver 5 is represented by the orientation of the rotation axis B of the tip 5a of the electric screwdriver 5.
  • the vector t cm indicates the position of the marker 6 in the camera coordinate system (eg, the position of the center of the marker 6). Since the position of the marker 6 in the camera coordinate system is calculated in step S22, the vector t cm is known.
  • the vector offset indicates a known offset of the position of the tip 5a of the electric screwdriver 5 with respect to the position of the marker 6.
  • the vector tcd indicates the position of the tip 5a of the electric screwdriver 5 in the camera coordinate system.
  • the robot arm device 4 moves the tip 5a of the electric screwdriver 5 to the position of the screw hole 82 so that the rotation axis B of the electric screwdriver 5 coincides with the axis A of the screw hole 82.
  • FIG. 15 is a diagram showing an exemplary image 30 displayed on the display device 3 of FIG.
  • the display image 30 includes a captured image, a feature point F of the circuit board 8, a frame 31 indicating a recognized target object, and a frame 32 indicating the tip of the recognized object to be held.
  • the example of FIG. 15 shows a case where the screw hole 82-2 is set as a target. Therefore, the frame 31 is displayed at the position of the screw hole 82-2. Further, the frame 32 is displayed at the position of the tip 5a of the electric screwdriver 5. According to the first embodiment, even when the electric driver 5 and the circuit board 8 do not have a fixed known position in the robot coordinate system, the position and orientation in the robot coordinate system are determined based on the captured image.
  • the robot arm device 4 can be controlled so as to accurately perform the work on the circuit board 8 by using the electric driver 5. According to the first embodiment, even if at least one of the electric screwdriver 5 and the circuit board 8 moves, the electric screwdriver 5 is used to accurately perform the work on the circuit board 8 by following the change in the position and orientation thereof.
  • the robot arm device 4 can be controlled as described above.
  • the control device 1 for controlling the robot arm device 4 for holding the object to be held is a target object setting device 16, a feature point recognizer 11, a first position calculator 12, and a second. It includes a position calculator 14 and a control signal generator 17.
  • the target setting device 16 sets the position of at least one target on the work object.
  • the feature point recognizer 11 detects the feature points of the work object from the photographed image acquired by at least one image pickup device 7 and includes at least a part of the work object and the tip of the holding object. do.
  • the first position calculator 12 calculates the position of the target object in the coordinate system of the image pickup apparatus 7 based on the feature points of the work object.
  • the first position calculator 12 may further calculate the orientation of the target object in the coordinate system of the image pickup apparatus 7 based on the feature points of the work object.
  • the second position calculator 14 may further calculate the orientation of the object to be held in the coordinate system of the image pickup apparatus 7 based on the captured image.
  • the control signal generator 17 converts the orientation of the target object and the orientation of the holding object in the coordinate system of the image pickup apparatus 7 into the orientation in the coordinate system of the robot arm device 4.
  • the first control signal further includes angular information based on the transformed orientation of the target and the orientation of the object to be held.
  • the robot arm device 4 can be controlled to do so.
  • the control device 1 may further include a first marker recognizer 13 that detects the first marker 6 fixed at a known position of the object to be held from the captured image. ..
  • the first marker 6 has a pattern formed so that the position of the first marker 6 in the coordinate system of the image pickup apparatus 7 can be calculated.
  • the second position calculator 14 calculates the position of the tip of the holding object based on the first marker 6.
  • the position of the tip of the holding object in the coordinate system of the image pickup apparatus 7 can be calculated based on the image of the first marker 6.
  • the control device 1 has three-dimensional coordinates of a plurality of feature points included in the work object, and each feature in a plurality of captured images obtained by photographing the work object from a plurality of positions different from each other.
  • a storage device 15 that previously stores a feature point map including two-dimensional coordinates of points may be further provided.
  • the first position calculator 12 calculates the position of the target object with reference to the feature point map.
  • the position of the target object in the coordinate system of the image pickup device 7 can be calculated with reference to the feature point map stored in the storage device 15 in advance.
  • the image pickup device 7 is fixed to the robot arm device 4 so that the image pickup device 7 can photograph the tip of the hold object when the robot arm device 4 holds the hold object. May be done.
  • the image pickup device 7 can follow the movement of the object to be held.
  • the robot arm system includes a robot arm device 4, at least one image pickup device 7, and a control device 1.
  • the holding object can be used to accurately work on the working object.
  • the robot arm device 4 can be controlled to do so.
  • a control method for controlling the robot arm device 4 that holds the object to be held comprises setting the position of at least one target on the work object.
  • the present method is also a step of detecting a feature point of a work object from a photographed image acquired by at least one image pickup device 7 including at least a part of the work object and the tip of the holding object. including.
  • the method also includes calculating the position of the target object in the coordinate system of the image pickup apparatus 7 based on the feature points of the work object.
  • the method also includes calculating the position of the tip of the object to be held in the coordinate system of the image pickup device 7 based on the captured image.
  • the method also converts the position of the target object and the position of the tip of the holding object in the coordinate system of the image pickup apparatus 7 into the positions in the coordinate system of the robot arm device 4, and the converted position of the target object and the holding object.
  • a step of outputting a control signal for moving the tip of the object to be held to the position of the target based on the position of the tip of the robot arm device 4 is included.
  • the holding object can be used to accurately work on the working object.
  • the robot arm device 4 can be controlled to do so.
  • the robot arm system according to the second embodiment will be described.
  • the position of the target object is calculated with reference to the feature point map of the work object stored in advance in the storage device.
  • the second embodiment the case where the feature point map of the work object is unknown in the initial state will be described.
  • FIG. 16 is a schematic view showing the configuration of the robot arm system according to the second embodiment.
  • the robot arm system of FIG. 16 includes a control device 1A and an image pickup device 7A in place of the control device 1 and the image pickup device 7 of FIG.
  • the control device 1A does not store the feature point map of the circuit board 8 inside in the initial state, and executes the robot arm control process (described later) of FIG. 18 instead of the robot arm control process of FIG.
  • the image pickup device 7A acquires a photographed image including at least a part of the tip 5a of the electric screwdriver 5 and the circuit board 8, and also obtains a distance from the image pickup device 7A to each point photographed by the image pickup device 7A. To detect.
  • the image pickup apparatus 7A is, for example, a stereo camera or an RGB-D camera.
  • the other components of the robot arm system of FIG. 16 are configured in the same manner as the corresponding components of the robot arm system of FIG.
  • FIG. 17 is a block diagram showing the configuration of the control device 1A of FIG.
  • the control device 1A includes a position calculator 12A and a target setting device 16A in place of the position calculator 12 and the target setting device 16 in FIG.
  • the position calculator 12A generates a feature point map of the circuit board 8 based on the captured image and the distance acquired by the image pickup apparatus 7A.
  • the position calculator 12A stores the generated feature point map in the storage device 15.
  • the position calculator 12A calculates the position and orientation of the screw hole 82 in the camera coordinate system based on the feature points of the circuit board 8 detected by the feature point recognizer 11 and with reference to the generated feature point map. do.
  • the target object setting device 16A sets at least one screw hole 82 in the circuit board 8 as a target object. However, since the feature point map of the circuit board 8 is unknown in the initial state, the target setting device 16A may recognize and set the position of the screw hole 82 on the circuit board 8 by, for example, image processing. Alternatively, it may be set based on the user input acquired via the input device 2.
  • control device 1A of FIG. 17 The other components of the control device 1A of FIG. 17 are configured in the same manner as the corresponding components of the control device 1 of FIG.
  • FIG. 18 is a flowchart showing a robot arm control process executed by the control device 1A of FIG. The process of FIG. 18 deletes step S1 of FIG. 9 and includes step S4A in place of step S4 of FIG.
  • FIG. 19 is a flowchart showing the subroutine of step S4A (target position calculation process) of FIG.
  • the position calculator 12A acquires captured images, feature points, and feature quantities over a plurality of consecutive image frames from the feature point recognizer 11.
  • the position calculator 12A acquires the distance from the image pickup device 7A to each point taken by the image pickup device 7A together with the captured image (step S31).
  • the position calculator 12A associates feature points over a plurality of consecutive image frames (step S32).
  • the position calculator 12A calculates the position and orientation of the image pickup apparatus 7A with reference to the position of each feature point (step S33).
  • the position calculator 12A generates a feature point map based on the position of each feature point (step S34).
  • the scale of the feature point map is calibrated based on the distance from the image pickup device 7A to each point imaged by the image pickup device 7A.
  • steps S32 to S34 is substantially equivalent to the above-mentioned Visual-SLAM.
  • the position calculator 12A recognizes the screw hole 82 in the image (step S35).
  • FIG. 20 is a diagram illustrating recognition of a target object by image processing, which is executed in step S35 of FIG.
  • a plurality of feature points F are detected with a known positional relationship around a desired target object such as a screw hole 82. Therefore, the target object setting device 16A may recognize and set the position of the target object on the work object by image processing such as template matching or deep learning.
  • the position calculator 12A calculates the position and orientation of the target set by the target setter 16A in the image.
  • FIG. 21 is a diagram illustrating recognition of a target object based on user input, which is executed in step S35 of FIG. 19, and is a diagram showing an exemplary image 30A displayed on the display device 3 of FIG. ..
  • the image generator 18 may output an image 30A including a frame 33 indicating the target object candidate to the display device 3.
  • Image 30A further includes a cursor 34.
  • the user can set the screw hole 82-2 as an actual target by operating the cursor 34 using the input device 2 to select the frame 33.
  • the target object setting device 16A sets the position of the target object on the work object based on the user input acquired via the input device 2.
  • the position calculator 12A calculates the position and orientation of the target set by the target setter 16A in the image.
  • the position calculator 12A stores the recognized target object, that is, the position of the feature point around the screw hole 82 in the storage device 15 as the position of the target object (step S35).
  • the position calculator 12A calculates the position and orientation of the screw hole 82 in the camera coordinate system based on the position and orientation of the image pickup device 7A in the work object coordinate system (step S37).
  • the feature point map of the work object is generated and generated based on the captured image acquired by the image pickup apparatus 7A.
  • the position of the target can be calculated by referring to the feature point map.
  • the control device 1A for controlling the robot arm device 4 for holding the object to be held is the target object setting device 16A, the feature point recognizer 11, the first position calculator 12A, and the second. It includes a position calculator 14 and a control signal generator 17.
  • the target setting device 16A sets the position of at least one target on the work object.
  • the feature point recognizer 11 detects the feature points of the work object from the photographed image acquired by at least one image pickup apparatus 7A and includes at least a part of the work object and the tip of the holding object. do.
  • the first position calculator 12A calculates the position of the target object in the coordinate system of the image pickup apparatus 7A based on the feature points of the work object.
  • the second position calculator 14 calculates the position of the tip of the holding object in the coordinate system of the image pickup apparatus 7A based on the captured image.
  • the control signal generator 17 converts the position of the target object and the position of the tip of the holding object in the coordinate system of the image pickup apparatus 7A into the positions in the coordinate system of the robot arm device 4, and the converted position and holding of the target object.
  • a control signal for moving the tip of the holding object to the position of the target based on the position of the tip of the object is output to the robot arm device 4.
  • the holding object can be used to accurately work on the working object.
  • the robot arm device 4 can be controlled to do so.
  • the first position calculator 12A may further calculate the orientation of the target object in the coordinate system of the image pickup apparatus 7A based on the feature points of the work object.
  • the second position calculator 14 may further calculate the orientation of the holding object in the coordinate system of the image pickup apparatus 7A based on the captured image.
  • the control signal generator 17 converts the orientation of the target object and the orientation of the holding object in the coordinate system of the image pickup apparatus 7A into the orientation in the coordinate system of the robot arm device 4.
  • the control signal further includes the orientation of the converted target and the orientation of the object to be held.
  • the robot arm device 4 can be controlled to do so.
  • control device 1A may further include a first marker recognizer 13 that detects the first marker 6 fixed at a known position of the object to be held from the captured image. ..
  • the first marker 6 has a pattern formed so that the position of the first marker 6 in the coordinate system of the image pickup apparatus 7A can be calculated.
  • the second position calculator 14 calculates the position of the tip of the holding object based on the first marker 6.
  • the position of the tip of the holding object in the coordinate system of the image pickup apparatus 7A can be calculated based on the image of the first marker 6.
  • the image pickup device 7A may further acquire the distance from the image pickup device 7A to each point photographed by the image pickup device 7A.
  • the first position calculator 12A captures the three-dimensional coordinates of a plurality of feature points included in the work object and a plurality of images of the work object from a plurality of different positions based on the captured image and the distance. Generate a feature point map including the two-dimensional coordinates of each feature point in the captured image of.
  • the first position calculator 12A calculates the position of the target object with reference to the feature point map.
  • a feature point map of the work object can be generated based on the captured image acquired by the image pickup apparatus 7A, and the position of the target can be calculated with reference to the generated feature point map.
  • a storage device 15 for storing the feature point map generated by the first position calculator 12A may be further provided.
  • control device 1A can operate in the same manner as in the first embodiment with reference to the feature point map stored in the storage device. be.
  • the target object setting device 16A may recognize and set the position of the target object on the work object by image processing.
  • the target object setting device 16A may set the position of the target object on the work object based on the user input acquired via the input device 2.
  • the image pickup device 7A is fixed to the robot arm device 4 so that the image pickup device 7A can photograph the tip of the holding object when the robot arm device 4 holds the holding object. May be done.
  • the image pickup apparatus 7A can follow the movement of the object to be held.
  • the robot arm system includes a robot arm device 4, at least one image pickup device 7A, and a control device 1A.
  • the holding object can be used to accurately work on the working object.
  • the robot arm device 4 can be controlled to do so.
  • the robot arm system according to the third embodiment will be described.
  • the position of the tip of the object to be retained was calculated based on a marker fixed at a known position of the object to be retained.
  • the third embodiment a case where the position of the tip of the holding object is calculated without using the marker will be described.
  • FIG. 22 is a schematic view showing the configuration of the robot arm system according to the third embodiment.
  • the robot arm system of FIG. 22 does not include the marker 6 of FIG. 16 and includes a control device 1B in place of the control device 1A of FIG.
  • the control device 1B executes the robot arm control process (described later) of FIG. 24 instead of the robot arm control process of FIG.
  • the other components of the robot arm system of FIG. 22 are configured in the same manner as the corresponding components of the robot arm system of FIG.
  • FIG. 23 is a block diagram showing the configuration of the control device 1B of FIG. 22.
  • the control device 1B includes a feature point recognizer 11B, a position calculator 12B, a storage device 15, a target setting device 16B, a control signal generator 17B, and an image generator 18B.
  • the feature point recognizer 11B detects the feature points of the circuit board 8 from the captured image acquired by the image pickup device 7, and further detects the feature points of the electric screwdriver 5.
  • the position calculator 12B generates a feature point map of the circuit board 8 and calculates the position and orientation of the screw hole 82 in the camera coordinate system, similarly to the position calculator 12A of FIG.
  • the position calculator 12B is further based on the feature points of the electric screwdriver 5 detected by the feature point recognizer 11, and each point taken by the image pickup device 7A from the image pickup device 7A detected by the image pickup device 7A.
  • the orientation of the electric screwdriver 5 and the position of the tip 5a of the electric screwdriver 5 are calculated based on the distance to.
  • the position calculator 12B calculates the position of the target object and the position of the tip of the object to be held, both the functions of the position calculators 12A and 14 (or the position calculators 12 and 14 in FIG. 1) of FIG. 17 are used. It can be said that it has.
  • the target object setting device 16B sets at least one screw hole 82 in the circuit board 8 as a target object, similarly to the target object setting device 16A in FIG. Further, in the third embodiment, the marker fixed at the known position of the electric screwdriver 5 is not used, and the position of the tip 5a of the electric screwdriver 5 cannot be calculated based on the image of the marker. Therefore, the target setting device 16B Further, the position of the tip 5a of the electric screwdriver 5 may be set. The target setting device 16B may recognize and set the position of the tip 5a of the electric screwdriver 5 by, for example, image processing, or set it based on the user input acquired via the input device 2. May be good.
  • the storage device 15 in FIG. 23 is configured in the same manner as the storage device 15 in FIG.
  • the control signal generator 17B and the image generator 18B of FIG. 23 simply acquire the position of the screw hole 82 and the position of the tip 5a of the electric screwdriver 5 from the position calculators 12A and 14 of FIG. 17, respectively. It is configured similarly to the corresponding component of FIG. 17, except that it is obtained from one position calculator 12B.
  • FIG. 24 is a flowchart showing a robot arm control process executed by the control device 1B of FIG. 22.
  • the process of FIG. 24 deletes steps S5 and S6 of FIG. 18 and includes step S4B in place of step S4A of FIG.
  • FIG. 25 is a flowchart showing the subroutine of step S4B (position calculation process) of FIG. 24.
  • Steps S41 to S44 in FIG. 25 are the same as steps S31 to S34 in FIG.
  • the position calculator 12B stores the recognized target object, that is, the position of the feature point around the screw hole 82 in the storage device 15 as the position of the target object (step S46).
  • the position calculator 12B calculates the position and orientation of the screw hole 82 in the camera coordinate system based on the position and orientation of the image pickup device 7A in the work object coordinate system (step S47).
  • the position calculator 12B calculates the orientation of the electric screwdriver 5 in the camera coordinate system based on the feature points of the electric screwdriver 5 (step S48).
  • the position calculator 12B acquires the distance from the image pickup device 7A to the electric driver 5 based on the distance from the image pickup device 7A to each point photographed by the image pickup device 7A (step S49).
  • the lower region is considered to represent the circuit board 8
  • the portion of the upper region where the distance from the image pickup apparatus 7A is small is considered to represent the electric screwdriver 5.
  • the lower end of the region of the electric screwdriver 5 represents the tip 5a of the electric screwdriver 5.
  • the position calculator 12B calculates the position of the tip 5a of the electric screwdriver 5 in the camera coordinate system based on the distance from the image pickup device 7A to the electric screwdriver 5 and the internal parameters of the image pickup device 7 (step S50).
  • the internal parameters of the image pickup device 7 include, for example, the focal length of the image pickup device 7 and the coordinates of the center of the image.
  • ( x , y ) represents the coordinates of the tip 5a of the electric screwdriver 5 in the captured image
  • d represents the distance from the image pickup device 7A to the electric screwdriver 5
  • (fx, fy) represents the image pickup device 7.
  • FIG. 26 is a diagram showing an exemplary image 30B displayed on the display device 3 of FIG. 22. According to the third embodiment, even when the marker fixed to the known position of the electric screwdriver 5 is not used, FIG. 26 shows the feature point F of the electric screwdriver 5 detected from the captured image. As shown, the position of the tip 5a of the electric screwdriver 5 can be calculated.
  • the control device 1B for controlling the robot arm device 4 for holding the object to be held is a target object setting device 16B, a feature point recognizer 11B, a position calculator 12B, and a control signal generator 17B.
  • the target setting device 16B sets the position of at least one target on the work object.
  • the feature point recognizer 11B detects the feature points of the work object from the photographed image acquired by at least one image pickup apparatus 7A and includes at least a part of the work object and the tip of the holding object. do.
  • the position calculator 12B calculates the position of the target object in the coordinate system of the image pickup apparatus 7A based on the feature points of the work object.
  • the position calculator 12B calculates the position of the tip of the holding object in the coordinate system of the image pickup apparatus 7A based on the captured image.
  • the control signal generator 17B converts the position of the target object and the position of the tip of the holding object in the coordinate system of the image pickup apparatus 7A into the positions in the coordinate system of the robot arm device 4, and the converted position and holding of the target object.
  • a control signal for moving the tip of the holding object to the position of the target based on the position of the tip of the object is output to the robot arm device 4.
  • the holding object can be used to accurately work on the working object.
  • the robot arm device 4 can be controlled to do so.
  • the position calculator 12B may further calculate the orientation of the target object in the coordinate system of the image pickup apparatus 7A based on the feature points of the work object.
  • the position calculator 12B may further calculate the orientation of the object to be held in the coordinate system of the image pickup apparatus 7A based on the captured image.
  • the control signal generator 17B converts the orientation of the target object and the orientation of the holding object in the coordinate system of the image pickup apparatus 7A into the orientation in the coordinate system of the robot arm device 4.
  • the control signal further includes the orientation of the converted target and the orientation of the object to be held.
  • the robot arm device 4 can be controlled to do so.
  • the image pickup device 7A may further acquire the distance from the image pickup device 7A to each point photographed by the image pickup device 7A.
  • the feature point recognizer 11B further detects the feature points of the retained object from the captured image.
  • the position calculator 12B calculates the position of the tip of the holding object based on the feature points and the distance of the holding object.
  • the image pickup device 7A may further acquire the distance from the image pickup device 7A to each point photographed by the image pickup device 7A.
  • the position calculator 12B captures the three-dimensional coordinates of a plurality of feature points included in the work object and a plurality of captured images obtained by capturing the work object from a plurality of different positions based on the captured image and the distance. Generate a feature point map containing the two-dimensional coordinates of each feature point in.
  • the position calculator 12B calculates the position of the target object with reference to the feature point map.
  • the storage device 15 for storing the feature point map generated by the position calculator 12B may be further provided.
  • control device 1B then refers to the feature point map stored in the storage device for the calculation of the position of the target object, and first. It is possible to operate in the same manner as in the embodiment of.
  • the target object setting device 16B may recognize and set the position of the target object on the work object by image processing.
  • the target object setting device 16B may set the position of the target object on the work object based on the user input acquired via the input device 2.
  • the image pickup device 7A is fixed to the robot arm device 4 so that the image pickup device 7A can photograph the tip of the holding object when the robot arm device 4 holds the holding object. May be done.
  • the image pickup apparatus 7A can follow the movement of the object to be held.
  • the robot arm system includes a robot arm device 4, at least one image pickup device 7A, and a control device 1B.
  • the holding object can be used to accurately work on the working object.
  • the robot arm device 4 can be controlled to do so.
  • FIG. 27 is a schematic view showing the configuration of the robot arm system according to the fourth embodiment.
  • the robot arm system of FIG. 27 includes a control device 1C and a circuit board 8C in place of the control device 1 and the circuit board 8 of FIG.
  • the control device 1C executes the same processing as the robot arm control processing of FIG. 18, but executes the position calculation processing (described later) of FIG. 30 instead of the step S4A (position calculation processing) of FIG.
  • FIG. 28 is a plan view showing the circuit board 8C of FIG. 27.
  • the circuit board 8C has a plurality of markers 83-1, 83-2, ... (collectively referred to as “marker 83”) fixed at known positions.
  • markers 83 have a pattern formed so that the direction and distance of the marker 83 as seen from the image pickup apparatus 7 can be calculated, similarly to the marker 6 in FIG.
  • the image pickup device 7 may be a monocular camera or the like that does not have a function of detecting the distance from the image pickup device 7 to each point photographed by the image pickup device 7.
  • FIG. 29 is a block diagram showing the configuration of the control device 1C of FIG. 27.
  • the control device 1C includes a position calculator 12C instead of the position calculator 12A of FIG. 17, and further includes a marker recognizer 19.
  • the marker recognizer 19 detects the marker 83 fixed at a known position on the circuit board 8C from the captured image.
  • control device 1C of FIG. 29 are configured in the same manner as the corresponding components of the control device 1A of FIG.
  • FIG. 30 is a flowchart showing a position calculation process executed by the position calculator 12C of FIG. 29.
  • the position calculation process of FIG. 30 further includes steps S51 and S52 between steps S31 and S32 of FIG.
  • the position calculator 12C determines whether or not the scale of the feature point map has been calibrated (step S51), and if YES, proceeds to step S42, and if NO, proceeds to step S52.
  • calibrating the scale means calibrating the conversion coefficient that converts the length (for example, in units of pixels) in the captured image into the actual length (for example, in mm).
  • the position calculator 12C executes the scale calibration process (step S52).
  • FIG. 31 is a diagram illustrating calibration of the scale of the feature point map according to the comparative example.
  • the scale is calibrated as follows, for example.
  • the scale of the feature point map is calibrated as follows.
  • FIG. 32 is a flowchart showing the subroutine of step S52 (scale calibration process) of FIG.
  • the position calculator 12C acquires the feature points and feature quantities of the first image frame (step S61).
  • the position calculator 12C acquires the feature points and feature quantities of the second image frame (step S62).
  • the position calculator 12C associates the feature points of the first and second image frames (step S63).
  • the position calculator 12C acquires the image of the marker 83 in the first and second image frames (step S64).
  • the position calculator 12C calculates the matrices Rt 1 and Rt 2 representing the positions and orientations of the image pickup devices 7 corresponding to the first and second image frames in the coordinate system with the center of the marker 83 as the origin (step S65). ).
  • the position calculator 12C calculates the transformation matrix Rt 12 of the position and orientation of the image pickup apparatus 7 between the image frames based on the matrices Rt 1 and Rt 2 (step S66).
  • the position calculator 12C calibrates the scale of the feature point map by triangulation (step S67).
  • FIG. 33 is a diagram illustrating the correspondence of the feature points executed in step S63 of FIG. 32.
  • FIG. 34 is a diagram illustrating the calibration of the scale of the feature point map performed in step S67 of FIG.
  • the captured images 70D and 70E contain the same marker 83-1. By performing a triangulation based on the image of marker 83-1, the scale of the feature point map can be calibrated correctly.
  • the scale of the feature point map can be correctly calibrated by using the marker 83-1 or the like. can.
  • the work is performed without acquiring the distance from the image pickup device to each point to be imaged, that is, without using an expensive image pickup device such as a stereo camera or an RGB-D camera. It is possible to generate a feature point map of an object.
  • the control device 1C for controlling the robot arm device 4 for holding the object to be held is the target object setting device 16A, the feature point recognizer 11, the first position calculator 12C, and the second. It includes a position calculator 14 and a control signal generator 17.
  • the target setting device 16A sets the position of at least one target on the work object.
  • the feature point recognizer 11 detects the feature points of the work object from the photographed image acquired by at least one image pickup device 7 and includes at least a part of the work object and the tip of the holding object. do.
  • the first position calculator 12C calculates the position of the target object in the coordinate system of the image pickup apparatus 7 based on the feature points of the work object.
  • the second position calculator 14 calculates the position of the tip of the holding object in the coordinate system of the image pickup apparatus 7 based on the captured image.
  • the control signal generator 17 converts the position of the target object and the position of the tip of the holding object in the coordinate system of the image pickup device 7 into the positions in the coordinate system of the robot arm device 4, and the converted position and holding of the target object.
  • a control signal for moving the tip of the holding object to the position of the target based on the position of the tip of the object is output to the robot arm device 4.
  • the holding object can be used to accurately work on the working object.
  • the robot arm device 4 can be controlled to do so.
  • the first position calculator 12C may further calculate the orientation of the target object in the coordinate system of the image pickup apparatus 7 based on the feature points of the work object.
  • the second position calculator 14 may further calculate the orientation of the object to be held in the coordinate system of the image pickup apparatus 7 based on the captured image.
  • the control signal generator 17 converts the orientation of the target object and the orientation of the holding object in the coordinate system of the image pickup apparatus 7 into the orientation in the coordinate system of the robot arm device 4.
  • the control signal further includes the orientation of the converted target and the orientation of the object to be held.
  • the robot arm device 4 can be controlled to do so.
  • control device 1C may further include a first marker recognizer 13 that detects the first marker 6 fixed at a known position of the object to be held from the captured image. ..
  • the first marker 6 has a pattern formed so that the position of the first marker 6 in the coordinate system of the image pickup apparatus 7 can be calculated.
  • the second position calculator 14 calculates the position of the tip of the holding object based on the first marker 6.
  • the position of the tip of the holding object in the coordinate system of the image pickup apparatus 7 can be calculated based on the image of the first marker 6.
  • the control device 1C further includes a second marker recognizer 19 that detects at least one second marker 83 fixed at a known position of the work object from the captured image.
  • the second marker 83 has a pattern formed so that the position of the second marker 83 in the coordinate system of the image pickup apparatus 7 can be calculated.
  • the first position calculator 12C calculates the distance from the image pickup apparatus 7 to the work object based on the second marker 83.
  • the first position calculator 12C has three-dimensional coordinates of a plurality of feature points included in the work object and a plurality of photographed images obtained by photographing the work object from a plurality of different positions based on the photographed image and the distance. Generate a feature point map containing the two-dimensional coordinates of each feature point in.
  • the first position calculator 12C calculates the position of the target object with reference to the feature point map.
  • a feature point map of the work object can be generated based on the captured image acquired by the image pickup device 7, and the position of the target can be calculated with reference to the generated feature point map.
  • the storage device 15 for storing the feature point map generated by the first position calculator 12C may be further provided.
  • control device 1C then refers to the feature point map stored in the storage device for the calculation of the position of the target object, and first. It is possible to operate in the same manner as in the embodiment of.
  • the target object setting device 16A may recognize and set the position of the target object on the work object by image processing.
  • the target object setting device 16A may set the position of the target object on the work object based on the user input acquired via the input device 2.
  • the image pickup device 7 is fixed to the robot arm device 4 so that the image pickup device 7 can photograph the tip of the hold object when the robot arm device 4 holds the hold object. May be done.
  • the image pickup device 7 can follow the movement of the object to be held.
  • the robot arm system includes a robot arm device 4, at least one image pickup device 7, and a control device 1C.
  • the holding object can be used to accurately work on the working object.
  • the robot arm device 4 can be controlled to do so.
  • FIG. 35 and 36 are schematic views showing the configuration of the robot arm system according to the fifth embodiment.
  • FIG. 35 shows a state when the holding object is in the first position
  • FIG. 36 shows a state when the holding object is in the second position.
  • 35 and 36 include a control device 1D and a plurality of image pickup devices 7-1 and 7-2 in place of the control device 1 and the image pickup device 7 of FIG.
  • the image pickup devices 7-1 and 7-2 are fixed to the ceiling, floor surface, wall surface, etc. by the pedestals 9-1, 9-2 so as to photograph different parts of the circuit board 8, respectively.
  • the control device 1D selectively acquires captured images including at least a part of the circuit board 8 and the tip 5a of the electric screwdriver 5 from the plurality of image pickup devices 7-1 and 7-2.
  • the control device 1D acquires the captured image of the image pickup device 7-1.
  • the control device 1D is the image pickup device 7-. Acquire the captured image of 2.
  • the control device 1D can selectively acquire captured images from a plurality of imaging devices 7-1 and 7-2 according to the imaging conditions, and has a higher degree of freedom in imaging than when only one imaging device is used. Is improved.
  • control device 1D selectively acquires captured images including at least a part of the work object and the tip of the holding object from the plurality of image pickup devices 7-1 and 7-2. ..
  • control device 1D can selectively acquire captured images from a plurality of imaging devices 7-1 and 7-2 according to the imaging conditions, and captures images as compared with the case where only one imaging device is used.
  • the degree of freedom is improved.
  • the robot arm system according to the sixth embodiment will be described.
  • the robot arm device directly works on the work object without the intervention of the holding object, and the tip of the robot arm device in contact with the work object has a known position in the camera coordinate system. Will be explained.
  • FIG. 37 is a schematic view showing the configuration of the robot arm system according to the sixth embodiment.
  • the robot arm system of FIG. 37 includes a control device 1E, a robot arm device 4E, and a panel 8E in place of the control device 1, the robot arm device 4, and the circuit board 8 of FIG.
  • the control device 1E controls the robot arm device 4E based on the captured image acquired by the image pickup device 7 and / or based on the user input input via the input device 2.
  • the panel 8E is, for example, a control panel provided with one or more switches 84.
  • the switch 84 includes, for example, a push switch, a toggle switch, a rotary switch, and the like.
  • the robot arm device 4E includes an end effector 4d instead of the hand 4c of the robot arm device 4 of FIG.
  • the end effector 4d is configured to be in contact with the switch 84 at its tip 4da so that operations such as pressing, gripping, and rotation can be performed according to the form of the switch 84.
  • the image pickup apparatus 7 acquires a photographed image including at least a part of the tip 4da of the end effector 4d and the panel 8E.
  • the image pickup device 7 is fixed at a known position with respect to the tip 4da of the end effector 4d.
  • the image pickup apparatus 7 is fixed to the same link among the plurality of links of the arm 4b to which the end effector 4d is connected.
  • there is no movable part such as a joint of the arm 4b between the image pickup device 7 and the end effector 4d, and therefore, the relative position of the image pickup device 7 with respect to the tip 4da of the end effector 4d is fixed.
  • the tip 4da of the end effector 4d has a known position in the camera coordinate system.
  • the robot arm device 4E moves the tip of the robot arm device 4E to the position of at least one target object on the work object under the control of the control device 1E.
  • the panel 8E is a work object for work performed directly by the robot arm device 4E.
  • the robot arm device 4E moves the tip 4da of the end effector 4d to the position of the switch 84 and operates the switch 84 using the end effector 4d.
  • the tip 4da of the end effector 4d is regarded as the tip of the robot arm device 4E (also referred to as "arm tip").
  • FIG. 38 is a block diagram showing the configuration of the control device 1E of FIG. 37.
  • the control device 1E includes a storage device 20 in place of the marker recognizer 13 and the position calculator 14 in FIG.
  • FIG. 39 is an enlarged view showing the tip of the arm 4b of FIG. 37. With reference to FIG. 39, the calculation of the position and orientation of the tip 4da of the end effector 4d in the camera coordinate system will be described.
  • the coordinate system of the end effector 4d has a three-dimensional coordinate system based on the position and orientation of the end effector 4d.
  • the coordinate system of the end effector 4d has coordinate axes Xe, Ye, Ze.
  • the origin of the coordinate system of the end effector 4d is provided inside the housing of the end effector 4d, and the orientation of the coordinate system of the end effector 4d is such that one of the coordinate axes passes through the tip 4da of the end effector 4d. Is set to.
  • the coordinate transformation from the position (xe, yes, ze) in the coordinate system of the end effector 4d to the position (xc, yc, zc) in the camera coordinate system is expressed by, for example, the following equation using a simultaneous coordinate transformation matrix.
  • R ec is a matrix indicating the direction of the camera coordinate system with respect to the direction of the coordinate system of the end effector 4d, and ter is the position of the origin of the camera coordinate system in the coordinate system of the end effector 4d (dx). , Dy, dz).
  • the matrix R ec can be represented, for example, by the product of the matrices R ⁇ , R ⁇ , R ⁇ representing each rotation angle ⁇ , ⁇ , ⁇ around the X-axis, the Y-axis, and the Z-axis.
  • the position and orientation of the tip 4da of the end effector 4d in the coordinate system of the end effector 4d is known from the design data of the robot arm device 4E. Therefore, the position and orientation of the tip 4da of the end effector 4d in the camera coordinate system can be calculated using the mathematical formula (6) based on the position and orientation of the tip 4da of the end effector 4d in the coordinate system of the end effector 4d. ..
  • the trajectory of the tip 4da in the coordinate system of the end effector 4d is known, and therefore the tip 4da has a known position and orientation in the camera coordinate system.
  • the feature point recognizer 11, the position calculator 12, the storage device 15, and the target setting device 16 of FIG. 38 are configured and operate substantially in the same manner as the corresponding components of FIG. However, the components 11, 12, 15, and 16 of FIG. 38 calculate the position and orientation of the switch 84 of the panel 8E instead of the position and orientation of the screw holes 82 of the circuit board 8.
  • the control signal generator 17 converts the position and orientation of the switch 84 in the camera coordinate system calculated by the position calculator 12 into the position and orientation in the robot coordinate system. Further, the control signal generator 17 converts the position and orientation of the tip 4da of the end effector 4d in the camera coordinate system read from the storage device 20 into the orientation and position in the robot coordinate system. Further, the control signal generator 17 moves the tip 4da of the end effector 4d to the position of the switch 84 based on the position and orientation of the converted switch 84 and the position and orientation of the tip 4da of the converted end effector 4d. The control signal is output to the robot arm device 4. As a result, the control device 1E automatically controls the robot arm device 4E.
  • the image generator 18 outputs the captured image to the display device 3. Further, the image generator 18 may superimpose the feature points of the panel 8E, the positions of the switches 84, and the positions of the tip 4da of the end effector 4d on the captured image and output them to the display device 3.
  • FIG. 38 shows a case where the control device 1E includes two storage devices 15 and 20, but these storage devices may be integrated with each other.
  • FIG. 40 is a flowchart showing a robot arm control process executed by the control device 1E of FIG. 37.
  • the target setting device 16 sets at least one switch 84 on the panel 8E as a target (step S71).
  • the control device 1 acquires a captured image from the image pickup device 7 (step S72).
  • the feature point recognizer 11 detects the feature points of the panel 8E from the captured image, and acquires their positions and feature amounts (step S73).
  • the position calculator 12 executes the target position calculation process and calculates the position and orientation of the switch 84 in the camera coordinate system (step S74).
  • Step 74 is substantially the same as step S4 of FIG. 9, except that the position and orientation of the switch 84 of the panel 8E are calculated instead of the position and orientation of the screw hole 82 of the circuit board 8.
  • the control signal generator 17 reads out the position and orientation of the tip 4da of the end effector 4d in the camera coordinate system from the storage device 20 (step S75).
  • the control signal generator 17 converts the position and orientation of the switch 84 and the tip 4da of the end effector 4d in the camera coordinate system into the position and orientation in the robot coordinate system (step S76).
  • the control signal generator 17 is such that the tip 4da of the end effector 4d has a predetermined angle with respect to the switch 84 (for example, the end effector 4d presses the switch 84, which is a push switch, in the vertical direction). , Outputs a control signal for moving the tip 4da of the end effector 4d to the position of the switch 84 (step S77).
  • the control device 1 may repeat steps S72 to S77 while moving the tip 4da of the end effector 4d to the position of the switch 84.
  • step S78 determines whether or not all the targets have been processed. If NO, the process proceeds to step S79.
  • the control signal generator 17 outputs a control signal for moving the tip 4da of the end effector 4d in the direction of the next switch 84 (step S79). After that, the control device 1 repeats steps S72 to S79.
  • the position and orientation in the robot coordinate system are calculated based on the captured image.
  • the robot arm device 4 can be controlled so as to accurately perform the work on the panel 8E.
  • the robot arm device 4 can be controlled so as to follow the change in the position and orientation thereof and accurately perform the work on the panel 8E.
  • the control device 1E for controlling the robot arm device 4E includes a target setting device, a feature point recognizer 11, a position calculator 12, and a control signal generator 17.
  • the target setting device 16 sets the position of at least one target on the work object.
  • the feature point recognizer 11 is a photographed image acquired by an image pickup device 7 fixed at a known position with respect to the tip of the robot arm device 4E, and works from a photographed image including at least a part of a work object. Detect the feature points of the object.
  • the position calculator 12 calculates the position of the target object in the coordinate system of the image pickup apparatus based on the feature points of the work object.
  • the control signal generator 17 converts the position of the target object in the coordinate system of the image pickup device and the position of the tip of the robot arm device 4E into the position in the coordinate system of the robot arm device 4E, and the converted position of the target object and the robot.
  • a control signal for moving the tip of the robot arm device 4E to the position of the target based on the position of the tip of the arm device 4E is output to the robot arm device 4E.
  • FIG. 41 is a block diagram showing the configuration of the control device 1F of the robot arm system according to the seventh embodiment.
  • the control device 1F is used in place of the control device 1 of the robot arm system of FIG. 1, for example.
  • the control device 1F includes a control signal generator 17F and an image generator 18F in place of the control signal generator 17 and the image generator 18 of FIG.
  • control signal generator 17F moves the tip of the holding object to the position of the target object based on the captured image acquired by the image pickup apparatus 7. Is output to the robot arm device 4. Further, the control signal generator 17F outputs a second control signal for moving the tip of the holding object to the position of the target object to the robot arm device based on the user input acquired via the input device 2.
  • the image generator 18F generates a radar chart showing the distance of the tip of the object to be held with respect to the target object, superimposes the radar chart on the captured image, and outputs the radar chart to the display device 3.
  • the user By referring to the radar chart displayed on the display device 3, the user provides the control device 1F with the user input for moving the tip of the holding object to the position of the target object via the input device 2. Can be done.
  • FIG. 42 is a diagram showing an exemplary image 30C displayed on the display device 3 of the robot arm system according to the seventh embodiment.
  • Image 30C includes a window 35 in addition to the content of image 30 in FIG.
  • FIG. 43 shows the details of the window 35 of FIG. 42, and is a diagram showing radar charts 36 and 37 when the tip of the object to be held is at the first distance with respect to the target object.
  • FIG. 44 shows the details of the window 35 of FIG. 42 and is a diagram showing radar charts 36 and 37 when the tip of the object to be held is at a second distance shorter than the first distance with respect to the target. ..
  • the window 35 includes a radar chart 36 in a horizontal plane and a radar chart 37 in a vertical plane.
  • the radar chart 36 represents the distance of the tip of the object to be held relative to the target in the horizontal plane.
  • the radar chart 37 represents the distance of the tip of the object to be held relative to the target in the vertical plane.
  • the radar charts 36 and 37 have coordinate axes Xh, Yh, Zh of the target coordinate system.
  • the scale of the radar chart may be changed according to the distance of the tip of the object to be held with respect to the target. By reducing the width of the radar chart scale when the tip of the object to be held approaches the target, and increasing the width of the scale of the radar chart when the tip of the object to be held moves away from the target. The distance of the tip of the object to be held with respect to the target can be recognized more clearly.
  • the radius of the smallest circle in the radar chart 36 in the horizontal plane may be set to, for example, 0.25, 1, 5, 25, or 100 mm.
  • the vertical scale on the radar chart 37 in the vertical plane may be set to, for example, 2 or 10 mm.
  • the distance of the tip of the holding object to the target can be clearly presented to the user as compared with the case of displaying only the captured image including the target and the holding target.
  • the user can reliably determine whether or not the tip of the object to be held has reached the target. Can be done.
  • the user may monitor the work by the robot arm device 4 by referring to the window 35. Further, the user may operate the robot arm device 4 via the input device 2 with reference to the window 35.
  • the control device 1 executes the robot arm control process of FIG. At this time, as described above, the control device 1 repeats steps S2 to S8 while moving the tip of the holding object to the position of the target object. If there is no user input, the control signal generator 17F outputs a control signal generated based on the captured image acquired by the image pickup apparatus 7. On the other hand, when the control signal generator 17F acquires the user input via the input device 2, it interrupts the robot arm control process and outputs the control signal generated based on the user input.
  • the robot arm with reference to the window 35 and via the input device 2 even when the holding object and the target object do not have a fixed known position in the robot coordinate system.
  • the robot arm device 4 can be controlled so as to accurately perform work on the target object using the holding object.
  • the captured image that can be confirmed remotely is two-dimensional, but three-dimensional information is required to align the holding object and the working object.
  • the lateral deviation of the holding object and the working object can be read from the two-dimensional captured image, but the deviation in the vertical (depth) direction and the height direction of the holding object and the working object is It is difficult to read from the captured image because it appears to be combined vertically on the two-dimensional captured image.
  • the process of empirically obtaining the three-dimensional deviation amount from the deviation of the captured image becomes unnecessary. Therefore, for example, even an amateur can easily control the robot arm device 4 by simply pressing the control button of the input device 2 according to the physical quantity.
  • FIG. 45 is a diagram showing an alternative window 35A displayed on the display device 3 of the robot arm system according to the seventh embodiment.
  • the image 30C displayed on the display device 3 may include the window 35A of FIG. 45 instead of the window 35 of FIG. 42.
  • Radar charts 36 in a plurality of horizontal planes having different scales may be displayed simultaneously in the window 35A.
  • radar charts 37 in multiple vertical planes with different scales may be displayed simultaneously in window 35A.
  • the example of FIG. 45 shows a case where radar charts 36-1 to 36-3 in three horizontal planes are simultaneously displayed in the window 35A, and radar charts 37 in one vertical plane are displayed in the window 35A.
  • the one having the most appropriate scale for observing the distance of the tip of the held object to the target that is, the tip of the held object is the most from the target in the display area of the radar chart. You may highlight things that are far apart (for example, frame them, change their color, etc.).
  • the example of FIG. 45 shows the case of highlighting the border of the radar chart 36-2 in the horizontal plane.
  • FIG. 46 is a schematic view showing the configuration of the robot arm system according to the first modification of the seventh embodiment.
  • the robot arm system of FIG. 46 includes a control device 1F and a touch panel device 3F in place of the control device 1, the input device 2, and the display device 3 of FIG.
  • the control device 1F of FIG. 46 is configured and operates in the same manner as the control device 1F of FIG. 41. However, the control device 1F of FIG. 46 acquires user input from the touch panel device 3F instead of the input device 2, and displays an image on the touch panel device 3F instead of the display device 3. Further, the image generator 18F of the control device 1F of FIG. 46 further superimposes the image of the operation button for acquiring the user input on the captured image and outputs it to the touch panel device 3F.
  • the touch panel device 3F has the functions of both the control device 1 and the input device 2 in FIG.
  • FIG. 47 is a diagram showing an exemplary image 30D displayed on the touch panel device 3F of the robot arm system of FIG. 46.
  • Image 30D includes a window 90 in addition to the content of image 30C of FIG. 42.
  • the window 90 includes, for example, a plurality of operation buttons 91 to 94.
  • the operation button 91 instructs the movement of the electric screwdriver 5 in the horizontal direction.
  • the operation button 92 instructs the movement of the electric screwdriver 5 in the vertical direction.
  • the operation button 93 instructs the start of screw tightening by the electric screwdriver 5.
  • the operation button 94 instructs the electric screwdriver 5 to stop tightening the screws.
  • the control device 1F By displaying the window 90, even when the robot arm system includes the touch panel device 3F, it is possible to provide the control device 1F with a user input for moving the tip of the holding object to the position of the target object. ..
  • FIG. 48 is a block diagram showing the configuration of the control device 1G of the robot arm system according to the second modification of the seventh embodiment.
  • the control device 1G includes a control signal generator 17G instead of the control signal generator 17F of FIG. 41.
  • the control signal generator 17G outputs a control signal for moving the tip of the holding object to the position of the target object to the robot arm device 4 based on the user input acquired via the input device 2.
  • the control signal generator 17G does not generate a control signal based on the captured image acquired by the image pickup device 7, but generates a control signal based only on the user input acquired via the input device 2. do.
  • the robot refers to the window 35 and the robot via the input device 2.
  • the robot arm device 4 can be controlled so as to accurately perform work on the target object using the holding object.
  • the control device 1F is an image generator that generates a radar chart showing the distance of the tip of the object to be held with respect to the target object, superimposes the radar chart on the captured image, and outputs the radar chart to the display device 3. 18F may be further provided.
  • the control signal generator 17F outputs a second control signal for moving the tip of the holding object to the position of the target object to the robot arm device 4 based on the user input acquired via the input device 2.
  • the distance of the tip of the holding object to the target can be presented to the user more clearly than when only the captured image including the target and the holding object is displayed on the display device 3. Further, by referring to the radar chart and operating the robot arm device 4 via the input device 2, the robot arm device 4 can be controlled so as to accurately perform the work on the target object using the holding object. ..
  • the image generator 18F may generate a radar chart having a variable scale according to the distance of the tip of the object to be held with respect to the target.
  • the image generator 18F may superimpose the image of the operation button for acquiring the user input on the captured image and output it to the display device.
  • the robot arm system is provided with the touch panel device 3F, the user input for moving the tip of the holding object to the position of the target object can be provided to the control device 1F.
  • the control device for controlling the robot arm device 4 for holding the object to be held is the target object setting device 16, the feature point recognizer 11, the first position calculator 12, and the second position. It includes a computer 14, an image generator 18F, and a control signal generator 17G.
  • the target setting device 16 sets the position of at least one target on the work object.
  • the feature point recognizer 11 detects the feature points of the work object from the photographed image acquired by at least one image pickup device and includes at least a part of the work object and the tip of the holding object. ..
  • the first position calculator 12 calculates the position of the target object in the coordinate system of the image pickup apparatus based on the feature points of the work object.
  • the second position calculator 14 calculates the position of the tip of the holding object in the coordinate system of the image pickup apparatus based on the captured image.
  • the image generator 18F generates a radar chart showing the distance of the tip of the object to be held with respect to the target object, superimposes the radar chart on the captured image, and outputs the radar chart to the display device 3.
  • the control signal generator 17G outputs a control signal for moving the tip of the holding object to the position of the target object to the robot arm device 4 based on the user input acquired via the input device 2.
  • the input device and the display device may be integrated with the control device. Further, the control device, the input device, and the display device may be integrated into the robot arm device.
  • the image generator may superimpose a three-dimensional plot of the feature point map as shown in FIG. 12 on the captured image and output it to the display device.
  • the holding object is the electric screwdriver 5 and the target object in the working object is a screw hole in the circuit board has been described.
  • the object to be held may be, for example, a soldering iron, a tester (multimeter), a test tube, a pipette, a cotton swab, or the like.
  • the object to be held is a soldering iron
  • the object to be worked may be a circuit board, and the object may be a circuit board or an electrode of an electronic component. If the object to be held is a probe of a tester, the object to be worked on may be an electronic device and the object may be an electrode.
  • the object to be worked on may be a rack of test tubes and the target may be a hole in the rack of test tubes.
  • the object to be worked is a container in which chemicals and the like are taken in and out by a pipette, and the object may be an opening of the container.
  • the work object may be the patient in contact with the swab and the target may be the site of the patient in contact with the swab. In these cases as well, even if at least one of the holding object and the working object does not have a fixed known position in the robot coordinate system, the holding object is used to work on the working object.
  • the robot arm device can be controlled to perform the above accurately.
  • the holding object is held so that the direction of the holding object (electric screwdriver 5) matches the direction of the target object (screw hole 82)
  • the holding object is the target object.
  • it may be held so as to have another predetermined angle.
  • the object to be held is a soldering iron or a tester, the object to be held may be held at an angle to the circuit board or electrodes.
  • the step of calculating the orientation of the work object and the holding object may be omitted. ..
  • the "tip of the object to be held” is not limited to a sharp portion such as the tip 5a of the electric screwdriver 5, but the distal end of the object to be held as viewed from the main body of the robot arm device 4. means.
  • the tip of the object to be held may be a head of a hammer, a bottom surface of a container such as a beaker, a bottom surface of a rectangular member, or the like, depending on the shape of the object to be held.
  • the work object and the target object are not limited thereto.
  • the work object may be a circuit board, and the target object may be a screw hole or an electrode.
  • the work object may be a container, and the target object may be an opening of the container.
  • the work object may be a patient, and the target may be a patient's site.
  • the robot arm device includes a device integrated at the tip of the arm (such as an electric screwdriver).
  • the control device is a hand holding the object to be held. You may control the robot arm device provided with.
  • the robot arm device may hold the holding object so that the imaging device has a known position with respect to the tip of the robot arm device, for example, by providing the hand with a guide that fits the holding object.
  • the control device reads out the position and orientation of the holding object stored in advance in the storage device instead of calculating the position and orientation of the holding object based on the captured image.
  • the seventh embodiment can be applied to any of the first to sixth embodiments.
  • Each of the image generator 18 of FIG. 17, the image generator 18B of FIG. 23, and the image generator 18 of FIG. 29 superimposes and displays a radar chart showing the distance of the tip of the holding object to the target on the captured image. It may be output to the device 3.
  • each of the control signal generator 17 of FIG. 17, the control signal generator 17B of FIG. 23, and the control signal generator 17 of FIG. 29 are to be held based on the user input acquired via the input device 2.
  • a control signal for moving the tip of the object to the position of the target object is output to the robot arm device 4. Further, the image generator 18 of FIG.
  • the control signal generator 17 of FIG. 38 outputs a control signal for moving the tip of the robot arm device to the position of the target based on the user input acquired via the input device 2 to the robot arm device 4. ..
  • control device and the robot arm system according to each aspect of the present disclosure, it can be applied to an industrial or medical robot arm device.

Landscapes

  • Engineering & Computer Science (AREA)
  • Robotics (AREA)
  • Mechanical Engineering (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Multimedia (AREA)
  • Manipulator (AREA)

Abstract

目標物設定器(16)は、作業対象物における少なくとも1つの目標物の位置を設定する。特徴点認識器(11)は、撮像装置(7)によって取得された撮影画像であって、作業対象物の少なくとも一部及び保持対象物の先端を含む撮影画像から、作業対象物の特徴点を検出する。第1の位置計算器(12)は、作業対象物の特徴点に基づいて、撮像装置(7)の座標系における目標物の位置を計算する。第2の位置計算器(14)は、撮影画像に基づいて、撮像装置(7)の座標系における保持対象物の先端の位置を計算する。制御信号生成器(17)は、撮像装置(7)の座標系における目標物の位置及び保持対象物の先端の位置を、ロボットアーム装置(4)の座標系における位置に変換し、変換された目標物の位置及び保持対象物の先端の位置に基づいて保持対象物の先端を目標物の位置に移動させる制御信号をロボットアーム装置(4)に出力する。

Description

[規則37.2に基づきISAが決定した発明の名称] 制御装置、ロボットアームシステム及びロボットアーム装置の制御方法
 本開示は、ロボットアーム装置の制御装置及び制御方法、ならびにロボットアームシステムに関する。
 少子高齢化に起因する労働者の不足を解消するために、また、人件費を抑制するために、さまざまな分野において、ロボットアーム装置又はロボットハンド装置を用いることで、従来は人が行っていた作業が自動化されている。
 例えば、特許文献1は、入力装置の操作に基づいて、各関節に位置検出器を備えたロボットアームに連結された手術器具を遠隔で操作する、手術器具の動作方法を開示している。また、特許文献2は、作業対象物を動かすエンドエフェクターを備えるロボットの制御装置を開示している。
国際公開第2018/150489号 特開2015-136764号公報
 一般に、ロボットアーム装置は、その本体又は基部などの非可動部分の位置及び姿勢を基準とする座標系(以下、「ロボットアーム装置の座標系」又は「ロボット座標系」という)を参照して、そのアーム及びハンドの位置及び動きを制御する。
 しかしながら、ロボットアーム装置による作業の作業対象物は、ロボット座標系において既知の位置をもたない。また、作業対象物の位置は作業中に変動することがある。作業対象物の位置が未知であると、ロボットアーム装置を用いて作業対象物に対する作業を正確に行うことができない。従って、作業対象物がロボット座標系において固定された既知の位置をもたない場合であっても、ロボットアーム装置を用いて作業対象物に対する作業を正確に行うことが求められる。
 本開示の目的は、作業対象物がロボット座標系において固定された既知の位置をもたない場合であっても、作業対象物に対する作業を正確に行うようにロボットアーム装置を制御することができるロボットアーム装置の制御装置及び制御方法を提供することにある。また、本開示の目的は、そのような制御装置及びロボットアーム装置を含むロボットアームシステムを提供することにある。
 本開示の一態様によれば、
 保持対象物を保持するロボットアーム装置を制御する制御装置であって、
 作業対象物における少なくとも1つの目標物の位置を設定する目標物設定器と、
 少なくとも1つの撮像装置によって取得された撮影画像であって、前記作業対象物の少なくとも一部及び前記保持対象物の先端を含む撮影画像から、前記作業対象物の特徴点を検出する特徴点認識器と、
 前記作業対象物の特徴点に基づいて、前記撮像装置の座標系における前記目標物の位置を計算する第1の位置計算器と、
 前記撮影画像に基づいて、前記撮像装置の座標系における前記保持対象物の先端の位置を計算する第2の位置計算器と、
 前記撮像装置の座標系における前記目標物の位置及び前記保持対象物の先端の位置を、前記ロボットアーム装置の座標系における位置に変換し、変換された前記目標物の位置及び前記保持対象物の先端の位置に基づいて前記保持対象物の先端を前記目標物の位置に移動させる第1の制御信号を前記ロボットアーム装置に出力する制御信号生成器とを備える。
 これらの概括的かつ特定の態様は、システム、方法、コンピュータプログラム並びにシステム、方法及びコンピュータプログラムの任意の組み合わせにより実現してもよい。
 本開示の一態様によれば、作業対象物がロボット座標系において固定された既知の位置をもたない場合であっても、作業対象物に対する作業を正確に行うようにロボットアーム装置を制御することができる。
第1の実施形態に係るロボットアームシステムの構成を示す概略図である。 図1の電動ドライバー5及びマーカー6の一部拡大図である。 図1の回路基板8を示す斜視図である。 図3の回路基板8に含まれる特徴点Fを示す図である。 図1の制御装置1の構成を示すブロック図である。 図1の撮像装置7によって取得された例示的な撮影画像70を示す図である。 図5の記憶装置15に格納された特徴点マップのマップポイント及びキーフレームを説明する図である。 図5の記憶装置15に格納された例示的な特徴点マップを示す図である。 図1の制御装置1によって実行されるロボットアーム制御処理を示すフローチャートである。 図9のステップS4(目標物位置計算処理)のサブルーチンを示すフローチャートである。 図10のステップS13において実行される特徴点の対応付けを説明する図であり、(a)は撮像装置7によって取得された撮影画像70Aを示し、(b)は記憶装置15から読み出された類似画像70Bを示す。 図10のステップS15において実行される、カメラ座標系における目標物の位置の計算を説明する図である。 図9のステップS6(保持対象物位置計算処理)のサブルーチンを示すフローチャートである。 図13のステップS24において実行される、カメラ座標系における保持対象物の先端の位置の計算を説明する図である。 図1の表示装置3に表示される例示的な画像30を示す図である。 第2の実施形態に係るロボットアームシステムの構成を示す概略図である。 図16の制御装置1Aの構成を示すブロック図である。 図16の制御装置1Aによって実行されるロボットアーム制御処理を示すフローチャートである。 図18のステップS4A(目標物位置計算処理)のサブルーチンを示すフローチャートである。 図19のステップS35において実行される、画像処理による目標物の認識を説明する図である。 図19のステップS35において実行される、ユーザ入力に基づく目標物の認識を説明する図であって、図16の表示装置3に表示される例示的な画像30Aを示す図である。 第3の実施形態に係るロボットアームシステムの構成を示す概略図である。 図22の制御装置1Bの構成を示すブロック図である。 図22の制御装置1Bによって実行されるロボットアーム制御処理を示すフローチャートである。 図24のステップS4B(位置計算処理)のサブルーチンを示すフローチャートである。 図22の表示装置3に表示される例示的な画像30Bを示す図である。 第4の実施形態に係るロボットアームシステムの構成を示す概略図である。 図27の回路基板8Cを示す平面図である。 図27の制御装置1Cの構成を示すブロック図である。 図29の位置計算器12Cによって実行される位置計算処理を示すフローチャートである。 比較例に係る特徴点マップのスケールの較正を説明する図である。 図30のステップS52(スケール較正処理)のサブルーチンを示すフローチャートである。 図32のステップS63において実行される特徴点の対応付けを説明する図である。 図32のステップS67において実行される、特徴点マップのスケールの較正を説明する図である。 第5の実施形態に係るロボットアームシステムの構成を示す概略図であって、保持対象物が第1の位置にあるときの状態を示す図である。 第5の実施形態に係るロボットアームシステムの構成を示す概略図であって、保持対象物が第2の位置にあるときの状態を示す図である。 第6の実施形態に係るロボットアームシステムの構成を示す概略図である。 図37の制御装置1Eの構成を示すブロック図である。 図37のアーム4bの先端を示す拡大図である。 図37の制御装置1Eによって実行されるロボットアーム制御処理を示すフローチャートである。 第7の実施形態に係るロボットアームシステムの制御装置1Fの構成を示すブロック図である。 第7の実施形態に係るロボットアームシステムの表示装置3に表示される例示的な画像30Cを示す図である。 図42のウィンドウ35の詳細を示し、目標物に対して保持対象物の先端が第1の距離にあるときのレーダーチャート36,37を示す図である。 図42のウィンドウ35の詳細を示し、目標物に対して保持対象物の先端が第1の距離よりも短い第2の距離にあるときのレーダーチャート36,37を示す図である。 第7の実施形態に係るロボットアームシステムの表示装置3に表示される代替のウィンドウ35Aを示す図である。 第7の実施形態の第1の変形例に係るロボットアームシステムの構成を示す概略図である。 図46のロボットアームシステムのタッチパネル装置3Fに表示される例示的な画像30Dを示す図である。 第7の実施形態の第2の変形例に係るロボットアームシステムの制御装置1Gの構成を示すブロック図である。
 以下、本開示に係る実施形態について図面を参照して説明する。なお、以下の各実施形態において、同様の構成要素については同一の符号を付している。
[第1の実施形態]
 以下、第1の実施形態に係るロボットアームシステムについて説明する。
 前述したように、ロボットアーム装置による作業の作業対象物は、ロボット座標系において既知の位置をもたない。また、ロボットアーム装置が作業対象物への作業のために何らかの保持対象物を保持する場合、保持対象物もまた、ロボット座標系において既知の位置をもたない。さらに、作業対象物及び保持対象物の位置は作業中に変動することがある。例えば、ロボットアーム装置が保持対象物として電動ドライバーを保持し、電動ドライバーを用いて作業対象物である回路基板のネジ穴にネジを挿入して回路基板を他の部品に対して自動的に締結する場合を考える。この場合、回路基板は作業台に固定されているとは限らない。また、ロボットアーム装置によって保持される電動ドライバーの位置は、保持するごとに変動する。従って、電動ドライバー及び回路基板は、ロボット座標系において固定された既知の位置をもたない。
 保持対象物又は作業対象物の位置が未知であると、ロボットアーム装置によって保持された保持対象物を用いて作業対象物に対する作業を正確に行うことができない。従って、保持対象物及び作業対象物のうちの少なくとも一方がロボット座標系において固定された既知の位置をもたない場合であっても、ロボットアーム装置によって保持された保持対象物を用いて作業対象物に対する作業を正確に行うことが求められる。
 第1の実施形態では、保持対象物及び作業対象物のうちの少なくとも一方がロボット座標系において固定された既知の位置をもたない場合であっても、保持対象物を用いて作業対象物に対する作業を正確に行うようにロボットアーム装置を制御することができるロボットアームシステムについて説明する。
[第1の実施形態の構成]
[全体構成]
 図1は、第1の実施形態に係るロボットアームシステムの構成を示す概略図である。図1のロボットアームシステムは、制御装置1、入力装置2、表示装置3、ロボットアーム装置4、電動ドライバー5、マーカー6、撮像装置7、及び回路基板8を備える。
 ロボットアーム装置4は、制御装置1の制御下で、ロボットアーム装置4によって保持された保持対象物を、作業対象物における少なくとも1つの目標物の位置に移動させる。図1の例では、電動ドライバー5が、ロボットアーム装置4によって保持される保持対象物であり、回路基板8が、ロボットアーム装置4により電動ドライバー5を用いて実行される作業の作業対象物である。回路基板8における少なくとも1つのネジ穴82が目標物として設定されたとき、ロボットアーム装置4は、電動ドライバー5の先端をネジ穴82の位置に移動させ、電動ドライバー5を用いてネジ穴82にネジを挿入して回路基板8を他の部品に対して締結する。
 制御装置1は、撮像装置7によって取得された撮影画像に基づいて、及び/又は、入力装置2を介して入力されたユーザ入力に基づいて、電動ドライバー5を保持するロボットアーム装置4を制御する。制御装置1は、例えば、汎用のパーソナルコンピュータ又は専用装置である。
 入力装置2は、キーボード及びポインティングデバイスを含み、ロボットアーム装置4を制御するためのユーザ入力を取得する。
 表示装置3は、撮像装置7によって取得された撮影画像、ロボットアーム装置4の状態、ロボットアーム装置4の制御に関連した情報、などを表示する。
 入力装置2は、表示装置3に一体化されたタッチパネルとして構成されてもよい。
 ロボットアーム装置4は、本体4a、アーム4b、及びハンド4cを備える。本体4aは床面(又は、壁面もしくは天井など)に固定される。ハンド4cはアーム4bを介して本体4aに連結される。また、ハンド4cは、任意の物品、図1の例では電動ドライバー5を保持する。アーム4bは複数のリンク及び複数の関節を備え、各リンクは関節を介して回動可能に連結される。これにより、ロボットアーム装置4は、本体4aの周りの所定範囲内において、電動ドライバー5を移動させることができる。
 電動ドライバー5は、上述したように、ロボットアーム装置4のハンド4cによって保持される。
 マーカー6は、電動ドライバー5の既知の位置に固定される。なお、マーカー6は、ロボットアーム装置4が電動ドライバー5を保持したときに撮像装置7がマーカー6を撮影可能であるように、電動ドライバー5に固定される。マーカー6は、例えば拡張現実の分野で使用されるマーカー(「ARマーカー」ともいう)のように、撮像装置7から見たマーカー6の方向及び距離を計算可能であるように形成されたパターンを有する。
 図2は、図1の電動ドライバー5及びマーカー6の一部拡大図である。マーカー6は、前述したように、撮像装置7から見たマーカー6の方向及び距離を計算可能であるように形成されたパターンを有する。電動ドライバー5の先端5aは、マーカー6の所定の位置(例えば中心)に対して既知のオフセットを有する。このオフセットは、ベクトルtoffsetによって表される。従って、マーカー6に対する電動ドライバー5の先端5aの相対位置(すなわち、向き及び距離)は既知であり、マーカー6の位置がわかれば電動ドライバー5の先端5aの位置(すなわち、向き及び距離)を計算することができる。電動ドライバー5は、その先端5aにおいて、回路基板8に接触する。
 撮像装置7は、電動ドライバー5の先端5a及び回路基板8の少なくとも一部を含む撮影画像を取得する。撮像装置7は、当該撮像装置7から当該撮像装置7によって撮影される各点までの距離を検出する機能をもたない単眼カメラなどであってもよい。また、撮像装置7は、当該撮像装置7から当該撮像装置7によって撮影される各点までの距離を検出する、ステレオカメラ又はRGB-Dカメラなどであってもよい。撮像装置7は、所定時間ごとに静止画像を撮影してもよく、動画像の一連のフレームから所定時間ごとにフレームを抽出してもよい。撮像装置7は、各画像に、当該画像を撮影した時刻のタイムスタンプを付与する。
 撮像装置7は、ロボットアーム装置4が電動ドライバー5を保持したときに、電動ドライバー5に対する撮像装置7の相対位置が固定されるように、かつ、撮像装置7が電動ドライバー5の先端5aを撮影可能であるように、ロボットアーム装置4に固定されてもよい。この場合、撮像装置7は、アーム4bの複数のリンクのうち、ハンド4cが連結されたものと同じリンクに固定される。これにより、撮像装置7及びハンド4cの間にアーム4bの関節などの可動部が存在せず、従って、ロボットアーム装置4が電動ドライバー5を保持したときに、電動ドライバー5に対する撮像装置7の相対位置が固定される。また、ロボットアーム装置4が電動ドライバー5を保持したときに撮像装置7が電動ドライバー5の先端5a及びマーカー6を撮影可能であるならば、撮像装置7は、電動ドライバー5に対する撮像装置7の相対位置が変化するように、ロボットアーム装置4に固定されてもよい。
 図3は、図1の回路基板8を示す斜視図である。回路基板8は、プリント配線基板80、複数の回路素子81、複数のネジ穴82-1~82-4(総称して「ネジ穴82」ともいう)を備える。本開示の各実施形態では、ネジ穴82-1~82-4のうちの少なくとも1つが目標物として設定される。
 図4は、図3の回路基板8に含まれる特徴点Fを示す図である。特徴点Fは、輝度値あるいは色が周囲の画素と区別でき、その位置を正確に決定することができる点である。特徴点Fは、例えば、プリント配線基板80、回路素子81、及びネジ穴82などの構造物の頂点又はエッジから検出される。
 回路基板8は、作業台又はベルトコンベアなど(図示せず)の上に配置される。
 図1のロボットアームシステムの動作を記述するために、複数の座標系、すなわち、ロボットアーム装置4の座標系、撮像装置7の座標系、電動ドライバー5の座標系、回路基板8の座標系、及びネジ穴82の座標系を参照する。
 ロボットアーム装置4は、図1に示すように、その本体4a又は基部などの非可動部分の位置及び姿勢を基準とする三次元の座標系(「ロボットアーム装置の座標系」又は「ロボット座標系」)を有する。ロボット座標系は座標軸Xr,Yr,Zrを有する。例えば、ロボット座標系の原点は、ロボットアーム装置4の本体4aの底面の中心に設けられ、ロボット座標系の向きは、その座標軸のうちの2つが床面に平行になるように、かつ、残りの1つの座標軸が床面に垂直になるように設定される。
 また、撮像装置7は、図1に示すように、当該撮像装置7の位置及び姿勢を基準とする三次元の座標系{以下、「撮像装置の座標系」又は「カメラ座標系」という)を有する。カメラ座標系は座標軸Xc,Yc,Zcを有する。例えば、カメラ座標系の原点は、撮像装置7の光軸の上に設けられ、カメラ座標系の向きは、その座標軸のうちの1つが光軸に一致するように、かつ、残りの2つの座標軸が光軸に垂直になるように設定される。なお、カメラ座標系における位置は、撮像装置7から見たときの位置を示す。
 電動ドライバー5は、図2に示すように、当該電動ドライバー5の位置及び姿勢を基準とする三次元の座標系{以下、「保持対象物座標系」という)を有する。保持対象物座標系は座標軸Xt,Yt,Ztを有する。例えば、保持対象物座標系の原点は、電動ドライバー5の中心に設けられ、保持対象物座標系の向きは、その座標軸のうちの1つが電動ドライバー5の先端5aの回転軸に一致するように、かつ、残りの2つの座標軸が回転軸に垂直になるように設定される。また、保持対象物座標系の原点は、電動ドライバー5の先端5aに設けられてもよい。
 また、回路基板8は、図1及び図3に示すように、当該回路基板8の位置及び姿勢を基準とする三次元の座標系{以下、「作業対象物座標系」という)を有する。作業対象物座標系は座標軸Xb,Yb,Zbを有する。例えば、作業対象物座標系の原点は、後述する回路基板8の特徴点マップを生成するときに最初に取得されるキーフレームに関連付けられた撮像装置7の光軸の上に設けられ、作業対象物座標系の向きは、その座標軸のうちの1つが、同じキーフレームに関連付けられた撮像装置7の光軸に一致するように、かつ、残りの2つの座標軸が光軸に垂直になるように設定される。作業対象物座標系の向きは、回路基板8の設計データに基づいて設定されてもよく、例えば、その座標軸が回路基板8の辺に平行又は垂直になるように設定されてもよい。
 また、目標物として設定されたネジ穴82は、図3に示すように、当該ネジ穴82の位置及び向きを基準とする三次元の座標系{以下、「目標物座標系」という)を有する。図3は、ネジ穴82-2が目標物として設定された場合を示す。目標物座標系は座標軸Xh,Yh,Zhを有する。例えば、目標物座標系の原点は、ネジ穴82-2の中心に設けられ、目標物座標系の向きは、その座標軸のうちの2つが回路基板8の面に平行になるように、かつ、残りの1つの座標軸が回路基板8の面に垂直になるように設定される。
 図1~図3に示したロボット座標系、カメラ座標系、保持対象物座標系、作業対象物座標系、及び目標物座標系の原点の位置及び各座標軸の向きは単なる例示であり、これらの座標系は、異なる原点の位置及び/又は異なる座標軸の向きを有してもよい。
 カメラ座標系における電動ドライバー5の位置は、ロボットアーム装置4が電動ドライバー5を保持するごとに変化するので、電動ドライバー5は、カメラ座標系において既知の位置をもたない。
[制御装置の構成]
 図5は、図1の制御装置1の構成を示すブロック図である。制御装置1は、特徴点認識器11、位置計算器12、マーカー認識器13、位置計算器14、記憶装置15、目標物設定器16、制御信号生成器17、及び画像生成器18を備える。
 制御装置1は、撮像装置7によって取得された撮影画像であって、電動ドライバー5の先端5a及び回路基板8の少なくとも一部を含む撮影画像を取得する。
 特徴点認識器11は、撮像装置7によって取得された撮影画像であって、回路基板8の少なくとも一部及び電動ドライバー5の先端5aを含む撮影画像から、回路基板8の特徴点を検出する。また、特徴点認識器11は、例えば、SIFT(Scale Invariant Feature Transform)又はORB(Oriented FAST and Rotated BRIEF)を用いて、対応する特徴量を抽出する。
 図6は、図1の撮像装置7によって取得された例示的な撮影画像70を示す図である。図6の例では、撮影画像70は、回路基板8及び電動ドライバー5の先端5aを含む。図6は、説明のため、特徴点認識器11によって検出される回路基板8の特徴点Fをさらに示す。
 記憶装置15は、回路基板8に含まれる複数の特徴点に関するマップポイント及びキーフレームを含む特徴点マップを予め格納する。マップポイントは、作業対象物座標系における回路基板8の各特徴点の位置(三次元座標)、各特徴点の特徴量、及び各特徴点の識別子を含む。マップポイントは、互いに異なる複数の位置から回路基板8をそれぞれ撮影した複数の撮影画像に基づいて生成される。キーフレームは、マップポイントを生成するために互いに異なる複数の位置から回路基板8をそれぞれ撮影したときの撮像装置7の状態及び撮影画像を示す。すなわち、キーフレームは、作業対象物座標系における撮像装置7の位置(三次元座標)及び姿勢と、撮影画像における各特徴点の位置(二次元座標)及び特徴量と、撮影画像における各特徴点に対応するマップポイントの識別子とを含む。
 図7は、図5の記憶装置15に格納された特徴点マップのマップポイント及びキーフレームを説明する図である。図7の例では、特徴点F1~F4を有する回路基板8を概略的に示す。この場合、マップポイントは、作業対象物座標系における回路基板8の各特徴点F1~F4の位置、各特徴点の特徴量、及び各特徴点の識別子を含む。キーフレームK1は、第1の位置から回路基板8を撮影したときの撮像装置7の状態(撮像装置7’として示す)及び撮影画像を示す。撮像装置7’の撮影画像は、回路基板8の特徴点F1~F4にそれぞれ対応する特徴点F1’~F4’を含む。すなわち、キーフレームK1は、作業対象物座標系における撮像装置7’の位置及び姿勢と、撮影画像における各特徴点F1’~F4’の位置及び特徴量と、撮影画像における各特徴点F1’~F4’に対応するマップポイントの識別子とを含む。また、キーフレームK2は、第2の位置から回路基板8を撮影したときの撮像装置7の状態(撮像装置7”として示す)及び撮影画像を示す。撮像装置7”の撮影画像は、回路基板8の特徴点F1~F4にそれぞれ対応する特徴点F1”~F4”を含む。すなわち、キーフレームK2は、作業対象物座標系における撮像装置7”の位置及び姿勢と、撮影画像における各特徴点F1”~F4”の位置及び特徴量と、撮影画像における各特徴点F1”~F4”に対応するマップポイントの識別子とを含む。
 記憶装置15は、マップポイントを生成するために撮影された撮影画像自体を、各キーフレームに関連付けて格納してもよい。
 特徴点マップは、互いに異なる複数の位置から回路基板8をそれぞれ撮影した複数の撮影画像に基づいて、例えば、Visual-SLAM(Visual Simultaneous Localization and Mapping)を用いて生成される。Visual-SLAMによれば、マップポイントの位置は以下のように計算される。
(1)所定の位置及び姿勢を有する撮像装置7によって取得された撮影画像から回路基板8の特徴点を検出する。既知の三次元座標を有する点を基準として、検出された特徴点を撮影したときの撮像装置7の位置及び姿勢を示す並進ベクトルT1及び回転行列R1を計算する。
(2)撮像装置7を移動させ、異なる位置及び姿勢を有する撮像装置7によって取得された撮影画像から回路基板8の特徴点を検出する。既知の三次元座標を有する点を基準として、検出された特徴点を撮影したときの撮像装置7の位置及び姿勢を示す並進ベクトルT2及び回転行列R2を計算する。
(3)撮像装置7の移動前に取得された撮影画像及び移動後に取得された撮影画像の両方に含まれる特徴点に対応するマップポイントの三次元座標を計算する。
(4)撮像装置7を移動させ、さらに異なる位置及び姿勢を有する撮像装置7によって取得された撮影画像から回路基板8の特徴点を検出する。既知の三次元座標を有する点を基準として、検出された特徴点を撮影したときの撮像装置7の位置及び姿勢を示す並進ベクトルT3及び回転行列R3を計算する。以後、ステップ(3)~(4)を繰り返す。
 特徴点マップのスケール、すなわち、作業対象物座標系における回路基板8の各特徴点間の距離は、例えば、回路基板8の設計データに基づいて較正されてもよい。また、特徴点マップのスケールは、特徴点マップを事前に生成するとき、撮像装置から撮影される各点までの距離を検出することにより(第2及び第3の実施形態を参照)較正されてもよい。また、特徴点マップのスケールは、特徴点マップを事前に生成するとき、回路基板8の既知の位置に固定された少なくとも1つのマーカーを検出することにより(第4の実施形態を参照)較正されてもよい。
 特徴点マップを生成するために、Visual-SLAMに代えて、例えばSfM(structure from motion)など、他の画像処理及び測位の技術を使用してもよい。
 図8は、図5の記憶装置15に格納された例示的な特徴点マップを示す図である。図8は、複数の特徴点Fと、複数のキーフレームKに係る撮像装置7の位置及び姿勢とを三次元的にプロットしたものの斜視図である。ロボットアーム装置4の動作時に撮像装置7がさまざまな位置及び姿勢で回路基板8を撮影することを想定し、特徴点マップは多数のキーフレームKを含む。
 目標物設定器16は、回路基板8における少なくとも1つのネジ穴82の位置を目標物の位置として設定する。目標物設定器16は、例えば、入力装置2を介して取得されたユーザ入力に基づいて、記憶装置15に格納された複数のマップポイントのうちの少なくとも1つを選択することにより、目標物を設定する。目標物設定器16は、設定された目標物を記憶装置15に格納してもよい。
 位置計算器12は、特徴点認識器11によって検出された回路基板8の特徴点に基づいて、また、記憶装置15から読み出された特徴点マップを参照して、カメラ座標系におけるネジ穴82の位置及び向きを計算する。ネジ穴82の向きは、例えば、ネジ穴82を通りかつ回路基板8の面に垂直な軸の向きによって表される。
 マーカー認識器13は、撮影画像から、電動ドライバー5の既知の位置に固定されたマーカー6を検出する。
 位置計算器14は、マーカー認識器13によって認識されたマーカー6の画像に基づいて、カメラ座標系における電動ドライバー5の向きを計算し、カメラ座標系における電動ドライバー5の先端5aの位置を計算する。電動ドライバー5の向きは、例えば、電動ドライバー5の先端5aの回転軸の向きによって表される。
 制御信号生成器17は、位置計算器12によって計算されたカメラ座標系におけるネジ穴82の位置及び向きを、ロボット座標系における位置及び向きに変換する。また、制御信号生成器17は、位置計算器14によって計算されたカメラ座標系における電動ドライバー5の向き及び電動ドライバー5の先端5aの位置を、ロボット座標系における向き及び位置に変換する。ロボットアーム装置4は制御装置1の制御下で動作し、かつ、撮像装置7はロボットアーム装置4のアーム4bに固定されているので、撮像装置7はロボット座標系において既知の位置及び姿勢を有する。従って、制御信号生成器17は、撮像装置7の位置及び姿勢に基づいて、ネジ穴82及び電動ドライバー5の座標を変換することができる。また、制御信号生成器17は、変換されたネジ穴82の位置及び向き、電動ドライバー5の向き、及び電動ドライバー5の先端5aの位置に基づいて、電動ドライバー5の先端をネジ穴82の位置に移動させる制御信号をロボットアーム装置4に出力する。これにより、制御装置1は、ロボットアーム装置4を自動的に制御する。
 ロボットアーム装置4は、制御装置1からの制御信号に従って、電動ドライバー5がネジ穴82に対して予め決められた角度を有するように、電動ドライバー5の先端5aをネジ穴82に移動させる。ここで、ロボットアーム装置4は、例えば、電動ドライバー5の向きがネジ穴82の向きに一致するように、電動ドライバー5の先端5aをネジ穴82に移動させる。
 画像生成器18は、撮影画像を表示装置3に出力する。また、画像生成器18は、回路基板8の特徴点、ネジ穴82の位置、及び電動ドライバー5の先端5aの位置を撮影画像に重畳して表示装置3に出力してもよい。
 制御装置1の各構成要素11~18のうちの少なくとも一部が一体化されてもよい。制御装置1の各構成要素11~14,16~18は、専用回路として実装されてもよく、汎用のプロセッサによって実行されるプログラムとして実装されてもよい。
[第1の実施形態の動作]
 図9は、図1の制御装置1によって実行されるロボットアーム制御処理を示すフローチャートである。
 目標物設定器16は、回路基板8における少なくとも1つのネジ穴82を目標物として設定する(ステップS1)。
 制御装置1は、撮像装置7から撮影画像を取得する(ステップS2)。
 特徴点認識器11は、撮影画像から回路基板8の特徴点を検出し、それらの位置及び特徴量を取得する(ステップS3)。
 位置計算器12は目標物位置計算処理を実行し、カメラ座標系におけるネジ穴82の位置及び向きを計算する(ステップS4)。
 マーカー認識器13は、撮影画像からマーカー6の画像を検出する(ステップS5)。
 位置計算器14は保持対象物位置計算処理を実行し、カメラ座標系における電動ドライバー5の向き及び電動ドライバー5の先端5aの位置を計算する(ステップS6)。
 ステップS3~S6は、図9に示すように並列に実行されてもよく、逐次に実行されてもよい。
 制御信号生成器17は、カメラ座標系におけるネジ穴82の位置及び向き、電動ドライバー5の向き、及び電動ドライバー5の先端5aの位置を、ロボット座標系における位置及び向きに変換する(ステップS7)。
 カメラ座標系における位置(xc,yc,zc)からロボット座標系における位置(xr,yr,zr)への座標変換は、例えば、同時座標変換行列を用いて次式のように表される。
Figure JPOXMLDOC01-appb-M000001
 ここで、Rcrは、カメラ座標系の向きを基準とするロボット座標系の向きを示す行列であり、tcrは、カメラ座標系におけるロボット座標系の原点の位置を示すベクトルである。行列Rcrは、X軸、Y軸、及びZ軸の周りの各回転角度α,β,γをそれぞれ表す行列Rα,Rβ,Rγに分解することができる。
Figure JPOXMLDOC01-appb-M000002
Figure JPOXMLDOC01-appb-M000003
Figure JPOXMLDOC01-appb-M000004
Figure JPOXMLDOC01-appb-M000005
 行列Rcr及びベクトルtcrは、ロボットアーム装置4の設計データ及び現在の状態(すなわち、制御信号の内容)から取得可能である。
 制御信号生成器17は、電動ドライバー5がネジ穴82に対して予め決められた角度を有するように(例えば、電動ドライバー5の向きがネジ穴82の向きに一致するように)、電動ドライバー5の先端5aをネジ穴82の位置に移動させる制御信号を出力する(ステップS8)。
 制御装置1は、電動ドライバー5の先端5aをネジ穴82の位置に移動させながら、ステップS2~S8を繰り返してもよい。
 回路基板8における複数のネジ穴82が目標物として設定されている場合、制御信号生成器17は、すべての目標物を処理したか否かを判断し(ステップS9)、YESのときは処理を終了し、NOのときはステップS10に進む。
 制御信号生成器17は、電動ドライバー5の先端5aを次のネジ穴82の方向に移動させる制御信号を出力する(ステップS10)。以後、制御装置1は、ステップS2~S10を繰り返す。
 図10は、図9のステップS4(目標物位置計算処理)のサブルーチンを示すフローチャートである。
 位置計算器12は、特徴点認識器11から、撮影画像、特徴点、及び特徴量を取得する(ステップS11)。
 位置計算器12は、記憶装置15に格納された特徴点マップのキーフレームから、撮影画像の類似画像を検索する(ステップS12)。ここで、位置計算器12は、撮像装置7によって取得された撮影画像の特徴点の位置及び特徴量に基づいて、記憶装置15から、類似した位置及び特徴量を有する特徴点を含むキーフレームを類似画像として読み出してもよい。記憶装置15が、マップポイントを生成するために撮影された撮影画像自体を格納している場合、位置計算器12は、撮像装置7によって取得された撮影画像に基づいて、記憶装置15から、類似した撮影画像に関連付けられたキーフレームを類似画像として読み出してもよい。
 画像の類似度を計算するために、位置計算器12は、例えば、BoVW(Bag of Visual Words)を使用してもよい。BoVWは、画像の局所特徴量をn次元空間上でクラスタ化し、「クラスタごとの特徴量の出現回数」により画像の特徴を表す特徴ベクトルである。画像の局所特徴量は、回転、拡大、及び縮小によって分布が変換しない特徴ベクトルである。つまり、特徴量の分布の形が似ている画像は、特徴点の配置が似ている画像であることが予想される。画像ごとに計算されたBoVWを用いて画像の類似度を得ることで、撮影された物体の特徴に基づいて画像を検索することができる。
 位置計算器12は、撮影画像の特徴点と類似画像の特徴点とを対応づける(マッチングする)(ステップS13)。特徴点を対応づけるために、位置計算器12は、例えば、ORB特徴量を使用してもよい。この場合、位置計算器12は、撮影画像におけるある特徴点のORB特徴量を計算し、類似画像における全特徴点のORB特徴量を計算し、撮影画像に係るORB特徴量と類似画像に係る各ORB特徴量との距離(例えば、特徴ベクトル間のハミング距離)を計算する。位置計算器12は、この距離が最小になる特徴量に対応する特徴点のペアを互いに対応づける。
 図11は、図10のステップS13において実行される特徴点の対応付けを説明する図であり、(a)は撮像装置7によって取得された撮影画像70Aを示し、(b)は記憶装置15から読み出された類似画像70Bを示す。類似画像70Bは、特徴点F(又は、特徴点F及び特徴量)のみを含んでいてもよく、マップポイントを生成するために撮影された撮影画像を含んでいてもよい。
 位置計算器12は、作業対象物座標系における撮像装置7の位置及び姿勢を計算する(ステップS14)。このため、位置計算器12は、例えば、撮影画像に含まれるn個の特徴点の位置(二次元座標)と、類似画像に含まれるn個の特徴点に対応するマップポイントのn個の特徴点の位置(三次元座標)とに基づいて、PnP(perspective n point)問題を解く。
 位置計算器12は、作業対象物座標系における撮像装置7の位置及び姿勢に基づいて、カメラ座標系におけるネジ穴82の位置及び向きを計算する(ステップS15)。
 図12は、図10のステップS15において実行される、カメラ座標系における目標物の位置及び向きの計算を説明する図である。図12は、図8と同様に、例示的な特徴点マップを示し、複数の特徴点Fと、キーフレームKに係る撮像装置7の位置及び姿勢とを三次元的にプロットしたものの斜視図である。また、図12は、作業対象物座標系の原点Ob及び座標軸Xb,Yb,Zbと、カメラ座標系の原点Oc及び座標軸Xc,Yc,Zcとを示す。ネジ穴82の向きは、ネジ穴82を通りかつ回路基板8の面に垂直な軸Aの向きによって表される。ベクトルtbhは、作業対象物座標系におけるネジ穴82の位置を示す。ネジ穴82の位置は目標物設定器16によって設定されるので、ベクトルtbhは既知である。ベクトルtbc及び行列Rbc(図示せず)は、作業対象物座標系における撮像装置7の位置及び姿勢をそれぞれ示す。作業対象物座標系における撮像装置7の位置及び姿勢は、図10のステップS13において特徴点を対応づけることによって計算可能であるので、ベクトルtbc及び行列Rbcは既知である。ベクトルtchは、カメラ座標系におけるネジ穴82の位置を示す。ベクトルtchは未知であるが、tch=Rbc -1(tbh-tbc)により計算される。
 ステップS13において、撮影画像が、目標物として設定されたネジ穴82に対応する特徴点を含んでいない場合、位置計算器12はステップS4を終了する。次いで、制御信号生成器17は、電動ドライバー5を他の位置に移動させる制御信号を出力し、これにより、撮像装置7によって回路基板8の他の部分を撮影させる。その後、処理はステップS2に戻る。
 図13は、図9のステップS6(保持対象物位置計算処理)のサブルーチンを示すフローチャートである。
 位置計算器14は、マーカー認識器13から、検出されたマーカー6の画像を取得する(ステップS21)。
 位置計算器14は、マーカー6の画像に基づいて、カメラ座標系におけるマーカー6の位置及び姿勢を計算する(ステップS22)。
 位置計算器14は、マーカー6の位置及び姿勢に基づいて、カメラ座標系における電動ドライバー5の向きを計算する(ステップS23)。
 位置計算器14は、マーカー6と電動ドライバー5の先端5aとの間における既知のオフセットtoffsetに基づいて、カメラ座標系における電動ドライバー5の先端5aの位置を計算する(ステップS24)。
 図14は、図13のステップS24において実行される、カメラ座標系における保持対象物の先端5aの位置の計算を説明する図である。図14もまた、図12と同様に、例示的な特徴点マップを示す。電動ドライバー5の向きは、電動ドライバー5の先端5aの回転軸Bの向きによって表される。ベクトルtcmは、カメラ座標系におけるマーカー6の位置(例えば、マーカー6の中心の位置)を示す。カメラ座標系におけるマーカー6の位置はステップS22において計算されるので、ベクトルtcmは既知である。ベクトルtoffsetは、前述したように、マーカー6の位置に対する電動ドライバー5の先端5aの位置の既知のオフセットを示す。ベクトルtcdは、カメラ座標系における電動ドライバー5の先端5aの位置を示す。ベクトルtcdは未知であるが、tcd=tcm+tofにより計算される。
 ロボットアーム装置4は、電動ドライバー5の回転軸Bがネジ穴82の軸Aに一致するように、電動ドライバー5の先端5aをネジ穴82の位置に移動させる。
 図15は、図1の表示装置3に表示される例示的な画像30を示す図である。表示画像30は、撮影画像と、回路基板8の特徴点Fと、認識された目標物を示すフレーム31と、認識された保持対象物の先端を示すフレーム32とを含む。図15の例は、ネジ穴82-2が目標物として設定されている場合を示す。従って、フレーム31はネジ穴82-2の位置に表示される。また、フレーム32は電動ドライバー5の先端5aの位置に表示される。第1の実施形態によれば、電動ドライバー5及び回路基板8がロボット座標系において固定された既知の位置をもたない場合であっても、撮影画像に基づいてロボット座標系における位置及び向きを計算することにより、電動ドライバー5を用いて回路基板8に対する作業を正確に行うようにロボットアーム装置4を制御することができる。第1の実施形態によれば、電動ドライバー5及び回路基板8の少なくとも一方が移動しても、その位置及び向きの変化に追従し、電動ドライバー5を用いて回路基板8に対する作業を正確に行うようにロボットアーム装置4を制御することができる。
[第1の実施形態の効果等]
 第1の実施形態によれば、保持対象物を保持するロボットアーム装置4を制御する制御装置1は、目標物設定器16、特徴点認識器11、第1の位置計算器12、第2の位置計算器14、及び制御信号生成器17を備える。目標物設定器16は、作業対象物における少なくとも1つの目標物の位置を設定する。特徴点認識器11は、少なくとも1つの撮像装置7によって取得された撮影画像であって、作業対象物の少なくとも一部及び保持対象物の先端を含む撮影画像から、作業対象物の特徴点を検出する。第1の位置計算器12は、作業対象物の特徴点に基づいて、撮像装置7の座標系における目標物の位置を計算する。第2の位置計算器14は、撮影画像に基づいて、撮像装置7の座標系における保持対象物の先端の位置を計算する。制御信号生成器17は、撮像装置7の座標系における目標物の位置及び保持対象物の先端の位置を、ロボットアーム装置4の座標系における位置に変換し、変換された目標物の位置及び保持対象物の先端の位置に基づいて保持対象物の先端を目標物の位置に移動させる第1の制御信号をロボットアーム装置4に出力する。
 これにより、保持対象物及び作業対象物のうちの少なくとも一方がロボット座標系において固定された既知の位置をもたない場合であっても、保持対象物を用いて作業対象物に対する作業を正確に行うようにロボットアーム装置4を制御することができる。例えば、作業中にロボットアーム装置4又は保持対象物の一部と作業対象物とが衝突し、作業対象物がロボット座標系に固定された作業台からずれていく「作業対象物のずれ」が発生した場合でも、作業を正確に行うことができる。また、作業を繰り返す事でロボットアーム装置4の先端の座標の予測値が実際の値からずれていく「制御ずれ」が発生した場合でも、作業を正確に行うことができる。
 第1の実施形態によれば、第1の位置計算器12は、作業対象物の特徴点に基づいて、撮像装置7の座標系における目標物の向きをさらに計算してもよい。第2の位置計算器14は、撮影画像に基づいて、撮像装置7の座標系における保持対象物の向きをさらに計算してもよい。この場合、制御信号生成器17は、撮像装置7の座標系における目標物の向き及び保持対象物の向きを、ロボットアーム装置4の座標系における向きに変換する。第1の制御信号は、変換された目標物の向き及び保持対象物の向きに基づく角度情報をさらに含む。
 これにより、保持対象物及び作業対象物のうちの少なくとも一方がロボット座標系において固定された既知の向きをもたない場合であっても、保持対象物を用いて作業対象物に対する作業を正確に行うようにロボットアーム装置4を制御することができる。
 第1の実施形態によれば、制御装置1は、撮影画像から、保持対象物の既知の位置に固定された第1のマーカー6を検出する第1のマーカー認識器13をさらに備えてもよい。この場合、第1のマーカー6は、撮像装置7の座標系における第1のマーカー6の位置を計算可能であるように形成されたパターンを有する。第2の位置計算器14は、第1のマーカー6に基づいて保持対象物の先端の位置を計算する。
 これにより、第1のマーカー6の画像に基づいて、撮像装置7の座標系における保持対象物の先端の位置を計算することができる。
 第1の実施形態によれば、制御装置1は、作業対象物に含まれる複数の特徴点の三次元座標と、互いに異なる複数の位置から作業対象物をそれぞれ撮影した複数の撮影画像における各特徴点の二次元座標とを含む特徴点マップを予め格納した記憶装置15をさらに備えてもよい。この場合、第1の位置計算器12は、特徴点マップを参照して目標物の位置を計算する。
 これにより、記憶装置15に予め格納された特徴点マップを参照して、撮像装置7の座標系における目標物の位置を計算することができる。
 第1の実施形態によれば、撮像装置7は、ロボットアーム装置4が保持対象物を保持したときに撮像装置7が保持対象物の先端を撮影可能であるように、ロボットアーム装置4に固定されてもよい。
 これにより、撮像装置7は保持対象物の移動に追従することができる。
 第1の実施形態によれば、ロボットアームシステムは、ロボットアーム装置4と、少なくとも1つの撮像装置7と、制御装置1とを備える。
 これにより、保持対象物及び作業対象物のうちの少なくとも一方がロボット座標系において固定された既知の位置をもたない場合であっても、保持対象物を用いて作業対象物に対する作業を正確に行うようにロボットアーム装置4を制御することができる。
 第1の実施形態によれば、保持対象物を保持するロボットアーム装置4を制御する制御方法が提供される。本方法は、作業対象物における少なくとも1つの目標物の位置を設定するステップを含む。本方法はまた、少なくとも1つの撮像装置7によって取得された撮影画像であって、作業対象物の少なくとも一部及び保持対象物の先端を含む撮影画像から、作業対象物の特徴点を検出するステップを含む。本方法はまた、作業対象物の特徴点に基づいて、撮像装置7の座標系における目標物の位置を計算するステップを含む。本方法はまた、撮影画像に基づいて、撮像装置7の座標系における保持対象物の先端の位置を計算するステップを含む。本方法はまた、撮像装置7の座標系における目標物の位置及び保持対象物の先端の位置を、ロボットアーム装置4の座標系における位置に変換し、変換された目標物の位置及び保持対象物の先端の位置に基づいて保持対象物の先端を目標物の位置に移動させる制御信号をロボットアーム装置4に出力するステップを含む。
 これにより、保持対象物及び作業対象物のうちの少なくとも一方がロボット座標系において固定された既知の位置をもたない場合であっても、保持対象物を用いて作業対象物に対する作業を正確に行うようにロボットアーム装置4を制御することができる。
[第2の実施形態]
 次に、第2の実施形態に係るロボットアームシステムについて説明する。第1の実施形態では、記憶装置に予め格納された作業対象物の特徴点マップを参照して目標物の位置を計算した。一方、第2の実施形態では、初期状態において作業対象物の特徴点マップが未知である場合について説明する。
[第2の実施形態の構成]
[全体構成]
 図16は、第2の実施形態に係るロボットアームシステムの構成を示す概略図である。図16のロボットアームシステムは、図1の制御装置1及び撮像装置7に代えて、制御装置1A及び撮像装置7Aを備える。
 制御装置1Aは、初期状態において回路基板8の特徴点マップを内部に格納せず、また、図9のロボットアーム制御処理に代えて、図18のロボットアーム制御処理(後述)を実行する。
 撮像装置7Aは、電動ドライバー5の先端5a及び回路基板8の少なくとも一部を含む撮影画像を取得することに加えて、当該撮像装置7Aから当該撮像装置7Aによって撮影される各点までの距離を検出する。撮像装置7Aは、例えば、ステレオカメラ又はRGB-Dカメラなどである。
 図16のロボットアームシステムの他の構成要素は、図1のロボットアームシステムの対応する構成要素と同様に構成される。
[制御装置の構成]
 図17は、図16の制御装置1Aの構成を示すブロック図である。制御装置1Aは、図5の位置計算器12及び目標物設定器16に代えて、位置計算器12A及び目標物設定器16Aを備える。
 位置計算器12Aは、撮像装置7Aによって取得された撮影画像及び距離に基づいて、回路基板8の特徴点マップを生成する。位置計算器12Aは、生成した特徴点マップを記憶装置15に格納する。位置計算器12Aは、特徴点認識器11によって検出された回路基板8の特徴点に基づいて、また、生成した特徴点マップを参照して、カメラ座標系におけるネジ穴82の位置及び向きを計算する。
 目標物設定器16Aは、回路基板8における少なくとも1つのネジ穴82を目標物として設定する。ただし、初期状態において回路基板8の特徴点マップが未知であるので、目標物設定器16Aは、回路基板8におけるネジ穴82の位置を、例えば、画像処理により認識して設定してもよく、又は、入力装置2を介して取得されたユーザ入力に基づいて設定してもよい。
 図17の制御装置1Aの他の構成要素は、図5の制御装置1の対応する構成要素と同様に構成される。
[第2の実施形態の動作]
 図18は、図16の制御装置1Aによって実行されるロボットアーム制御処理を示すフローチャートである。図18の処理は、図9のステップS1を削除し、図9のステップS4に代えてステップS4Aを含む。
 図19は、図18のステップS4A(目標物位置計算処理)のサブルーチンを示すフローチャートである。
 位置計算器12Aは、特徴点認識器11から、連続した複数の、少なくとも2つの画像フレームにわたる撮影画像、特徴点、及び特徴量を取得する。位置計算器12Aは、撮影画像とともに、撮像装置7Aから撮像装置7Aによって撮影される各点までの距離を取得する(ステップS31)。
 位置計算器12Aは、連続した複数の画像フレームにわたって特徴点を対応づける(ステップS32)。
 位置計算器12Aは、各特徴点の位置を基準として撮像装置7Aの位置及び姿勢を計算する(ステップS33)。
 位置計算器12Aは、各特徴点の位置に基づいて特徴点マップを生成する(ステップS34)。特徴点マップのスケールは、撮像装置7Aから撮像装置7Aによって撮影される各点までの距離に基づいて較正される。
 ステップS32~S34の処理は、実質的に、前述したVisual-SLAMと等価である。
 位置計算器12Aは、画像におけるネジ穴82を認識する(ステップS35)。
 図20は、図19のステップS35において実行される、画像処理による目標物の認識を説明する図である。ネジ穴82など、所望の目標物の周りには、複数の特徴点Fが既知の位置関係を有して検出される。従って、目標物設定器16Aは、作業対象物における目標物の位置を、テンプレートマッチング又は深層学習などの画像処理により認識して設定してもよい。位置計算器12Aは、画像において、目標物設定器16Aによって設定された目標物の位置及び向きを計算する。
 図21は、図19のステップS35において実行される、ユーザ入力に基づく目標物の認識を説明する図であって、図16の表示装置3に表示される例示的な画像30Aを示す図である。位置計算器12Aがネジ穴82-2を目標物の候補として認識したとき、画像生成器18は、目標物の候補を示すフレーム33を含む画像30Aを表示装置3に出力してもよい。画像30Aはカーソル34をさらに含む。ユーザは、入力装置2を用いてカーソル34を操作してフレーム33を選択することにより、ネジ穴82-2を実際の目標物として設定することができる。目標物設定器16Aは、入力装置2を介して取得されたユーザ入力に基づいて、作業対象物における目標物の位置を設定する。位置計算器12Aは、画像において、目標物設定器16Aによって設定された目標物の位置及び向きを計算する。
 再び図19を参照すると、位置計算器12Aは、認識された目標物、すなわちネジ穴82の周辺における特徴点の位置を、目標物の位置として記憶装置15に格納する(ステップS35)。
 位置計算器12Aは、作業対象物座標系における撮像装置7Aの位置及び姿勢に基づいて、カメラ座標系におけるネジ穴82の位置及び向きを計算する(ステップS37)。
 第2の実施形態によれば、初期状態において作業対象物の特徴点マップが未知であっても、撮像装置7Aによって取得された撮影画像に基づいて作業対象物の特徴点マップを生成し、生成した特徴点マップを参照して目標物の位置を計算することができる。
 また、第2の実施形態によれば、いったん特徴点マップを生成して記憶装置15に格納すると、特徴点マップを生成したときと同じタイプの回路基板8に対しては、特徴点マップを再利用することができる。従って、いったん特徴点マップを生成して記憶装置15に格納すると、その後、制御装置1Aは、記憶装置15に格納された特徴点マップを参照して、第1の実施形態と同様に動作可能である(すなわち、図9のロボットアーム制御処理を実行可能である)。
[第2の実施形態の効果等]
 第2の実施形態によれば、保持対象物を保持するロボットアーム装置4を制御する制御装置1Aは、目標物設定器16A、特徴点認識器11、第1の位置計算器12A、第2の位置計算器14、及び制御信号生成器17を備える。目標物設定器16Aは、作業対象物における少なくとも1つの目標物の位置を設定する。特徴点認識器11は、少なくとも1つの撮像装置7Aによって取得された撮影画像であって、作業対象物の少なくとも一部及び保持対象物の先端を含む撮影画像から、作業対象物の特徴点を検出する。第1の位置計算器12Aは、作業対象物の特徴点に基づいて、撮像装置7Aの座標系における目標物の位置を計算する。第2の位置計算器14は、撮影画像に基づいて、撮像装置7Aの座標系における保持対象物の先端の位置を計算する。制御信号生成器17は、撮像装置7Aの座標系における目標物の位置及び保持対象物の先端の位置を、ロボットアーム装置4の座標系における位置に変換し、変換された目標物の位置及び保持対象物の先端の位置に基づいて保持対象物の先端を目標物の位置に移動させる制御信号をロボットアーム装置4に出力する。
 これにより、保持対象物及び作業対象物のうちの少なくとも一方がロボット座標系において固定された既知の位置をもたない場合であっても、保持対象物を用いて作業対象物に対する作業を正確に行うようにロボットアーム装置4を制御することができる。
 第2の実施形態によれば、第1の位置計算器12Aは、作業対象物の特徴点に基づいて、撮像装置7Aの座標系における目標物の向きをさらに計算してもよい。第2の位置計算器14は、撮影画像に基づいて、撮像装置7Aの座標系における保持対象物の向きをさらに計算してもよい。この場合、制御信号生成器17は、撮像装置7Aの座標系における目標物の向き及び保持対象物の向きを、ロボットアーム装置4の座標系における向きに変換する。制御信号は、変換された目標物の向き及び保持対象物の向きをさらに含む。
 これにより、保持対象物及び作業対象物のうちの少なくとも一方がロボット座標系において固定された既知の向きをもたない場合であっても、保持対象物を用いて作業対象物に対する作業を正確に行うようにロボットアーム装置4を制御することができる。
 第2の実施形態によれば、制御装置1Aは、撮影画像から、保持対象物の既知の位置に固定された第1のマーカー6を検出する第1のマーカー認識器13をさらに備えてもよい。この場合、第1のマーカー6は、撮像装置7Aの座標系における第1のマーカー6の位置を計算可能であるように形成されたパターンを有する。第2の位置計算器14は、第1のマーカー6に基づいて保持対象物の先端の位置を計算する。
 これにより、第1のマーカー6の画像に基づいて、撮像装置7Aの座標系における保持対象物の先端の位置を計算することができる。
 第2の実施形態によれば、撮像装置7Aは、撮像装置7Aから撮像装置7Aによって撮影される各点までの距離をさらに取得してもよい。この場合、第1の位置計算器12Aは、撮影画像及び距離に基づいて、作業対象物に含まれる複数の特徴点の三次元座標と、互いに異なる複数の位置から作業対象物をそれぞれ撮影した複数の撮影画像における各特徴点の二次元座標とを含む特徴点マップを生成する。第1の位置計算器12Aは、特徴点マップを参照して目標物の位置を計算する。
 これにより、撮像装置7Aによって取得された撮影画像に基づいて作業対象物の特徴点マップを生成し、生成した特徴点マップを参照して目標物の位置を計算することができる。
 第2の実施形態によれば、第1の位置計算器12Aによって生成された特徴点マップを格納する記憶装置15をさらに備えてもよい。
 これにより、いったん特徴点マップを生成して記憶装置15に格納すると、その後、制御装置1Aは、記憶装置に格納された特徴点マップを参照して、第1の実施形態と同様に動作可能である。
 第2の実施形態によれば、目標物設定器16Aは、作業対象物における目標物の位置を画像処理により認識して設定してもよい。
 これにより、初期状態において作業対象物の特徴点マップが未知であっても、作業対象物における目標物の位置を設定することができる。
 第2の実施形態によれば、目標物設定器16Aは、入力装置2を介して取得されたユーザ入力に基づいて、作業対象物における目標物の位置を設定してもよい。
 これにより、初期状態において作業対象物の特徴点マップが未知であっても、作業対象物における目標物の位置を設定することができる。
 第2の実施形態によれば、撮像装置7Aは、ロボットアーム装置4が保持対象物を保持したときに撮像装置7Aが保持対象物の先端を撮影可能であるように、ロボットアーム装置4に固定されてもよい。
 これにより、撮像装置7Aは保持対象物の移動に追従することができる。
 第2の実施形態によれば、ロボットアームシステムは、ロボットアーム装置4と、少なくとも1つの撮像装置7Aと、制御装置1Aとを備える。
 これにより、保持対象物及び作業対象物のうちの少なくとも一方がロボット座標系において固定された既知の位置をもたない場合であっても、保持対象物を用いて作業対象物に対する作業を正確に行うようにロボットアーム装置4を制御することができる。
[第3の実施形態]
 次に、第3の実施形態に係るロボットアームシステムについて説明する。第1及び第2の実施形態では、保持対象物の既知の位置に固定されたマーカーに基づいて保持対象物の先端の位置を計算した。一方、第3の実施形態では、マーカーを使用することなく保持対象物の先端の位置を計算する場合について説明する。
[第3の実施形態の構成]
[全体構成]
 図22は、第3の実施形態に係るロボットアームシステムの構成を示す概略図である。図22のロボットアームシステムは、図16のマーカー6を含まず、また、図16の制御装置1Aに代えて制御装置1Bを備える。
 制御装置1Bは、図18のロボットアーム制御処理に代えて、図24のロボットアーム制御処理(後述)を実行する。
 図22のロボットアームシステムの他の構成要素は、図16のロボットアームシステムの対応する構成要素と同様に構成される。
[制御装置の構成]
 図23は、図22の制御装置1Bの構成を示すブロック図である。制御装置1Bは、特徴点認識器11B、位置計算器12B、記憶装置15、目標物設定器16B、制御信号生成器17B、及び画像生成器18Bを備える。
 特徴点認識器11Bは、撮像装置7によって取得された撮影画像から、回路基板8の特徴点を検出するとともに、電動ドライバー5の特徴点をさらに検出する。
 位置計算器12Bは、図17の位置計算器12Aと同様に、回路基板8の特徴点マップを生成し、また、カメラ座標系におけるネジ穴82の位置及び向きを計算する。位置計算器12Bはさらに、特徴点認識器11によって検出された電動ドライバー5の特徴点に基づいて、また、撮像装置7Aによって検出された当該撮像装置7Aから当該撮像装置7Aによって撮影される各点までの距離に基づいて、電動ドライバー5の向き及び電動ドライバー5の先端5aの位置を計算する。
 位置計算器12Bは、目標物の位置及び保持対象物の先端の位置を計算するので、図17の位置計算器12A,14(又は、図1の位置計算器12,14)の両方の機能を有しているといえる。
 目標物設定器16Bは、図17の目標物設定器16Aと同様に、回路基板8における少なくとも1つのネジ穴82を目標物として設定する。また、第3の実施形態では、電動ドライバー5の既知の位置に固定されたマーカーを使用せず、マーカーの画像に基づいて電動ドライバー5の先端5aの位置を計算できないので、目標物設定器16Bはさらに、電動ドライバー5の先端5aの位置を設定してもよい。目標物設定器16Bは、電動ドライバー5の先端5aの位置を、例えば、画像処理により認識して設定してもよく、又は、入力装置2を介して取得されたユーザ入力に基づいて設定してもよい。
 図23の記憶装置15は、図17の記憶装置15と同様に構成される。図23の制御信号生成器17B及び画像生成器18Bは、ネジ穴82の位置及び電動ドライバー5の先端5aの位置を、図17の位置計算器12A,14からそれぞれ取得することに代えて、単一の位置計算器12Bから取得することを除いて、図17の対応する構成要素と同様に構成される。
[第3の実施形態の動作]
 図24は、図22の制御装置1Bによって実行されるロボットアーム制御処理を示すフローチャートである。図24の処理は、図18のステップS5,S6を削除し、図18のステップS4Aに代えてステップS4Bを含む。
 図25は、図24のステップS4B(位置計算処理)のサブルーチンを示すフローチャートである。
 図25のステップS41~S44は、図19のステップS31~S34と同様である。
 位置計算器12Bは、画像におけるネジ穴82及び電動ドライバー5の先端を認識する(ステップS45)。目標物設定器16Bは、作業対象物における目標物の位置及び保持対象物の先端の位置を、テンプレートマッチング又は深層学習などの画像処理により認識して設定してもよい。また、目標物設定器16Bは、入力装置2を介して取得されたユーザ入力に基づいて、作業対象物における目標物の位置及び保持対象物の先端の位置を設定してもよい。位置計算器12Bは、画像において、目標物設定器16Bによって設定された目標物及び保持対象物の先端を認識する。
 位置計算器12Bは、認識された目標物、すなわちネジ穴82の周辺における特徴点の位置を、目標物の位置として記憶装置15に格納する(ステップS46)。
 位置計算器12Bは、作業対象物座標系における撮像装置7Aの位置及び姿勢に基づいて、カメラ座標系におけるネジ穴82の位置及び向きを計算する(ステップS47)。
 位置計算器12Bは、電動ドライバー5の特徴点に基づいて、カメラ座標系における電動ドライバー5の向きを計算する(ステップS48)。
 位置計算器12Bは、撮像装置7Aから撮像装置7Aによって撮影される各点までの距離に基づいて、撮像装置7Aから電動ドライバー5までの距離を取得する(ステップS49)。概して、撮影画像において、下方の領域が回路基板8を表すと考えられ、また、上方の領域のうち、撮像装置7Aからの距離が小さい部分が電動ドライバー5を表すと考えられる。また、撮影画像において、電動ドライバー5の領域の下端が電動ドライバー5の先端5aを表すと考えられる。
 位置計算器12Bは、撮像装置7Aから電動ドライバー5までの距離と、撮像装置7の内部パラメータとに基づいて、カメラ座標系における電動ドライバー5の先端5aの位置を計算する(ステップS50)。撮像装置7の内部パラメータは、例えば、撮像装置7の焦点距離及び画像中心の座標を含む。ここで、(x,y)が撮影画像における電動ドライバー5の先端5aの座標を表し、dが撮像装置7Aから電動ドライバー5までの距離を表し、(f,f)が撮像装置7の焦点距離を表し、(c,c)が撮像装置7の画像中心の座標を表すものとする。このとき、カメラ座標系における電動ドライバー5の先端5aの位置(x,y,z)は、次式で求められる。
=(x-c)×(d/f
=(y-c)×(d/f
=d
 図26は、図22の表示装置3に表示される例示的な画像30Bを示す図である。第3の実施形態によれば、電動ドライバー5の既知の位置に固定されたマーカーを使用しない場合であっても、撮影画像から検出された電動ドライバー5の特徴点Fに基づいて、図26に示すように、電動ドライバー5の先端5aの位置を計算することができる。
 また、第3の実施形態によれば、いったん特徴点マップを生成して記憶装置15に格納すると、その後、制御装置1Bは、目標物の位置の計算に関しては、記憶装置15に格納された特徴点マップを参照して、第1の実施形態と同様に動作可能である。
[第3の実施形態の効果等]
 第3の実施形態によれば、保持対象物を保持するロボットアーム装置4を制御する制御装置1Bは、目標物設定器16B、特徴点認識器11B、位置計算器12B、及び制御信号生成器17Bを備える。目標物設定器16Bは、作業対象物における少なくとも1つの目標物の位置を設定する。特徴点認識器11Bは、少なくとも1つの撮像装置7Aによって取得された撮影画像であって、作業対象物の少なくとも一部及び保持対象物の先端を含む撮影画像から、作業対象物の特徴点を検出する。位置計算器12Bは、作業対象物の特徴点に基づいて、撮像装置7Aの座標系における目標物の位置を計算する。位置計算器12Bは、撮影画像に基づいて、撮像装置7Aの座標系における保持対象物の先端の位置を計算する。制御信号生成器17Bは、撮像装置7Aの座標系における目標物の位置及び保持対象物の先端の位置を、ロボットアーム装置4の座標系における位置に変換し、変換された目標物の位置及び保持対象物の先端の位置に基づいて保持対象物の先端を目標物の位置に移動させる制御信号をロボットアーム装置4に出力する。
 これにより、保持対象物及び作業対象物のうちの少なくとも一方がロボット座標系において固定された既知の位置をもたない場合であっても、保持対象物を用いて作業対象物に対する作業を正確に行うようにロボットアーム装置4を制御することができる。
 第3の実施形態によれば、位置計算器12Bは、作業対象物の特徴点に基づいて、撮像装置7Aの座標系における目標物の向きをさらに計算してもよい。位置計算器12Bは、撮影画像に基づいて、撮像装置7Aの座標系における保持対象物の向きをさらに計算してもよい。この場合、制御信号生成器17Bは、撮像装置7Aの座標系における目標物の向き及び保持対象物の向きを、ロボットアーム装置4の座標系における向きに変換する。制御信号は、変換された目標物の向き及び保持対象物の向きをさらに含む。
 これにより、保持対象物及び作業対象物のうちの少なくとも一方がロボット座標系において固定された既知の向きをもたない場合であっても、保持対象物を用いて作業対象物に対する作業を正確に行うようにロボットアーム装置4を制御することができる。
 第3の実施形態によれば、撮像装置7Aは、撮像装置7Aから撮像装置7Aによって撮影される各点までの距離をさらに取得してもよい。この場合、特徴点認識器11Bは、撮影画像から、保持対象物の特徴点をさらに検出する。位置計算器12Bは、保持対象物の特徴点及び距離に基づいて、保持対象物の先端の位置を計算する。
 これにより、保持対象物の既知の位置に固定されたマーカーを使用しない場合であっても、保持対象物の先端の位置を計算することができる。
 第3の実施形態によれば、撮像装置7Aは、撮像装置7Aから撮像装置7Aによって撮影される各点までの距離をさらに取得してもよい。この場合、位置計算器12Bは、撮影画像及び距離に基づいて、作業対象物に含まれる複数の特徴点の三次元座標と、互いに異なる複数の位置から作業対象物をそれぞれ撮影した複数の撮影画像における各特徴点の二次元座標とを含む特徴点マップを生成する。位置計算器12Bは、特徴点マップを参照して目標物の位置を計算する。
 これにより、撮像装置7Aによって取得された撮影画像に基づいて作業対象物の特徴点マップを生成し、生成した特徴点マップを参照して目標物の位置を計算することができる。
 第3の実施形態によれば、位置計算器12Bによって生成された特徴点マップを格納する記憶装置15をさらに備えてもよい。
 これにより、いったん特徴点マップを生成して記憶装置15に格納すると、その後、制御装置1Bは、目標物の位置の計算に関しては、記憶装置に格納された特徴点マップを参照して、第1の実施形態と同様に動作可能である。
 第3の実施形態によれば、目標物設定器16Bは、作業対象物における目標物の位置を画像処理により認識して設定してもよい。
 これにより、初期状態において作業対象物の特徴点マップが未知であっても、作業対象物における目標物の位置を設定することができる。
 第3の実施形態によれば、目標物設定器16Bは、入力装置2を介して取得されたユーザ入力に基づいて、作業対象物における目標物の位置を設定してもよい。
 これにより、初期状態において作業対象物の特徴点マップが未知であっても、作業対象物における目標物の位置を設定することができる。
 第3の実施形態によれば、撮像装置7Aは、ロボットアーム装置4が保持対象物を保持したときに撮像装置7Aが保持対象物の先端を撮影可能であるように、ロボットアーム装置4に固定されてもよい。
 これにより、撮像装置7Aは保持対象物の移動に追従することができる。
 第3の実施形態によれば、ロボットアームシステムは、ロボットアーム装置4と、少なくとも1つの撮像装置7Aと、制御装置1Bとを備える。
 これにより、保持対象物及び作業対象物のうちの少なくとも一方がロボット座標系において固定された既知の位置をもたない場合であっても、保持対象物を用いて作業対象物に対する作業を正確に行うようにロボットアーム装置4を制御することができる。
[第4の実施形態]
 次に、第4の実施形態に係るロボットアームシステムについて説明する。第2及び第3の実施形態では、撮像装置としてステレオカメラ又はRGB-Dカメラなどを使用して、撮像装置から撮影される各点までの距離を取得し、撮影画像及び距離に基づいて作業対象物の特徴点マップを生成した。一方、第4の実施形態では、撮像装置から撮影される各点までの距離を取得することなく作業対象物の特徴点マップを生成する場合について説明する。
[第4の実施形態の構成]
[全体構成]
 図27は、第4の実施形態に係るロボットアームシステムの構成を示す概略図である。図27のロボットアームシステムは、図1の制御装置1及び回路基板8に代えて、制御装置1C及び回路基板8Cを備える。
 制御装置1Cは、図18のロボットアーム制御処理と同様の処理を実行するが、ただし、図18のステップS4A(位置計算処理)に代えて、図30の位置計算処理(後述)を実行する。
 図28は、図27の回路基板8Cを示す平面図である。回路基板8Cは、図3の回路基板8の各構成要素に加えて、既知の位置にそれぞれ固定された複数のマーカー83-1,83-2,…(総称して「マーカー83」ともいう)を備える。各マーカー83は、図1のマーカー6と同様に、撮像装置7から見たマーカー83の方向及び距離を計算可能であるように形成されたパターンを有する。
 図27のロボットアームシステムの他の構成要素は、図1のロボットアームシステムの対応する構成要素と同様に構成される。特に、撮像装置7は、前述したように、当該撮像装置7から当該撮像装置7によって撮影される各点までの距離を検出する機能をもたない単眼カメラなどであってもよい。
[制御装置の構成]
 図29は、図27の制御装置1Cの構成を示すブロック図である。制御装置1Cは、図17の位置計算器12Aに代えて位置計算器12Cを備え、また、マーカー認識器19をさらに備える。
 マーカー認識器19は、撮影画像から、回路基板8Cの既知の位置に固定されたマーカー83を検出する。
 位置計算器12Cは、図17の位置計算器12Aと同様に、回路基板8Cの特徴点マップを生成し、また、カメラ座標系におけるネジ穴82の位置及び向きを計算する。ただし、第4の実施形態では、撮像装置7から撮影される各点までの距離が得られないので、位置計算器12Cは、代わりに、マーカー認識器19によって検出されたマーカー83の画像に基づいて、撮像装置7から作業対象物までの距離を計算する。位置計算器12Cは、撮影画像及び距離に基づいて、回路基板8Cの特徴点マップを生成する。位置計算器12Cは、特徴点マップを参照して、上述のようにカメラ座標系におけるネジ穴82の位置及び向きを計算する。
 図29の制御装置1Cの他の構成要素は、図17の制御装置1Aの対応する構成要素と同様に構成される。
[第4の実施形態の動作]
 図30は、図29の位置計算器12Cによって実行される位置計算処理を示すフローチャートである。図30の位置計算処理は、図19のステップS31,S32の間にステップS51,S52をさらに含む。
 位置計算器12Cは、特徴点マップのスケールが較正済みであるか否かを判断し(ステップS51)、YESのときはステップS42に進み、NOのときはステップS52に進む。ここで、スケールの較正は、撮影画像における長さ(例えば画素数を単位とする)を、実際の長さ(例えばmmを単位とする)に変換する変換係数を較正することを意味する。
 位置計算器12Cは、スケール較正処理を実行する(ステップS52)。
 図31は、比較例に係る特徴点マップのスケールの較正を説明する図である。撮像装置7が単眼カメラであり、かつ、マーカーを使用しない場合、スケールは例えば以下のように較正される。
(1)第1の画像フレームの特徴点及び特徴量を取得する。
(2)第2の画像フレームの特徴点及び特徴量を取得する。
(3)第1及び第2の画像フレームの特徴点を対応づける。
(4)8点法によりF行列(基礎行列)を計算し、第1及び第2の画像フレームをそれぞれ取得したときの撮像装置(図31のキーフレームK11,K12によって表される撮像装置)間の位置及び姿勢の変換行列を計算する。
(5)三角測量により特徴点マップのスケールを較正する。
 図31の例によれば、位置及び姿勢の変換行列に係る長さの単位が不明なので、マップポイントを示すベクトルの単位も不明であり、特徴点マップのスケールを正しく較正することができない。従って、第4の実施形態では、特徴点マップのスケールを以下のように較正する。
 図32は、図30のステップS52(スケール較正処理)のサブルーチンを示すフローチャートである。
 位置計算器12Cは、第1の画像フレームの特徴点及び特徴量を取得する(ステップS61)。
 位置計算器12Cは、第2の画像フレームの特徴点及び特徴量を取得する(ステップS62)。
 位置計算器12Cは、第1及び第2の画像フレームの特徴点を対応づける(ステップS63)。
 位置計算器12Cは、第1及び第2の画像フレームにおけるマーカー83の画像を取得する(ステップS64)。
 位置計算器12Cは、マーカー83の中心を原点とする座標系において、第1及び第2の画像フレームに対応する撮像装置7の位置及び姿勢を表す行列Rt,Rtを計算する(ステップS65)。
 位置計算器12Cは、行列Rt,Rtに基づいて、画像フレーム間における撮像装置7の位置及び姿勢の変換行列Rt12を計算する(ステップS66)。変換行列Rt12は、Rt12=RtRt -1によって得られる。
 位置計算器12Cは、三角測量により、特徴点マップのスケールを較正する(ステップS67)。
 図33は、図32のステップS63において実行される特徴点の対応付けを説明する図である。図34は、図32のステップS67において実行される、特徴点マップのスケールの較正を説明する図である。図33及び図34に示すように、撮影画像70D,70Eは同じマーカー83-1を含んでいる。マーカー83-1の画像に基づいて三角測量を行うことにより、特徴点マップのスケールを正しく較正することができる。
 第4の実施形態によれば、距離を検出する機能をもたない撮像装置7を用いる場合であっても、マーカー83-1等を用いることで、特徴点マップのスケールを正しく較正することができる。
 第4の実施形態によれば、撮像装置から撮影される各点までの距離を取得することなく、すなわち、ステレオカメラ又はRGB-Dカメラなどのような高価な撮像装置を使用することなく、作業対象物の特徴点マップを生成することができる。
[第4の実施形態の効果等]
 第4の実施形態によれば、保持対象物を保持するロボットアーム装置4を制御する制御装置1Cは、目標物設定器16A、特徴点認識器11、第1の位置計算器12C、第2の位置計算器14、及び制御信号生成器17を備える。目標物設定器16Aは、作業対象物における少なくとも1つの目標物の位置を設定する。特徴点認識器11は、少なくとも1つの撮像装置7によって取得された撮影画像であって、作業対象物の少なくとも一部及び保持対象物の先端を含む撮影画像から、作業対象物の特徴点を検出する。第1の位置計算器12Cは、作業対象物の特徴点に基づいて、撮像装置7の座標系における目標物の位置を計算する。第2の位置計算器14は、撮影画像に基づいて、撮像装置7の座標系における保持対象物の先端の位置を計算する。制御信号生成器17は、撮像装置7の座標系における目標物の位置及び保持対象物の先端の位置を、ロボットアーム装置4の座標系における位置に変換し、変換された目標物の位置及び保持対象物の先端の位置に基づいて保持対象物の先端を目標物の位置に移動させる制御信号をロボットアーム装置4に出力する。
 これにより、保持対象物及び作業対象物のうちの少なくとも一方がロボット座標系において固定された既知の位置をもたない場合であっても、保持対象物を用いて作業対象物に対する作業を正確に行うようにロボットアーム装置4を制御することができる。
 第4の実施形態によれば、第1の位置計算器12Cは、作業対象物の特徴点に基づいて、撮像装置7の座標系における目標物の向きをさらに計算してもよい。第2の位置計算器14は、撮影画像に基づいて、撮像装置7の座標系における保持対象物の向きをさらに計算してもよい。この場合、制御信号生成器17は、撮像装置7の座標系における目標物の向き及び保持対象物の向きを、ロボットアーム装置4の座標系における向きに変換する。制御信号は、変換された目標物の向き及び保持対象物の向きをさらに含む。
 これにより、保持対象物及び作業対象物のうちの少なくとも一方がロボット座標系において固定された既知の向きをもたない場合であっても、保持対象物を用いて作業対象物に対する作業を正確に行うようにロボットアーム装置4を制御することができる。
 第4の実施形態によれば、制御装置1Cは、撮影画像から、保持対象物の既知の位置に固定された第1のマーカー6を検出する第1のマーカー認識器13をさらに備えてもよい。この場合、第1のマーカー6は、撮像装置7の座標系における第1のマーカー6の位置を計算可能であるように形成されたパターンを有する。第2の位置計算器14は、第1のマーカー6に基づいて保持対象物の先端の位置を計算する。
 これにより、第1のマーカー6の画像に基づいて、撮像装置7の座標系における保持対象物の先端の位置を計算することができる。
 第4の実施形態によれば、制御装置1Cは、撮影画像から、作業対象物の既知の位置に固定された少なくとも1つの第2のマーカー83を検出する第2のマーカー認識器19をさらに備えてもよい。この場合、第2のマーカー83は、撮像装置7の座標系における第2のマーカー83の位置を計算可能であるように形成されたパターンを有する。第1の位置計算器12Cは、第2のマーカー83に基づいて、撮像装置7から作業対象物までの距離を計算する。第1の位置計算器12Cは、撮影画像及び距離に基づいて、作業対象物に含まれる複数の特徴点の三次元座標と、互いに異なる複数の位置から作業対象物をそれぞれ撮影した複数の撮影画像における各特徴点の二次元座標とを含む特徴点マップを生成する。第1の位置計算器12Cは、特徴点マップを参照して目標物の位置を計算する。
 これにより、撮像装置7によって取得された撮影画像に基づいて作業対象物の特徴点マップを生成し、生成した特徴点マップを参照して目標物の位置を計算することができる。
 第4の実施形態によれば、第1の位置計算器12Cによって生成された特徴点マップを格納する記憶装置15をさらに備えてもよい。
 これにより、いったん特徴点マップを生成して記憶装置15に格納すると、その後、制御装置1Cは、目標物の位置の計算に関しては、記憶装置に格納された特徴点マップを参照して、第1の実施形態と同様に動作可能である。
 第4の実施形態によれば、目標物設定器16Aは、作業対象物における目標物の位置を画像処理により認識して設定してもよい。
 これにより、初期状態において作業対象物の特徴点マップが未知であっても、作業対象物における目標物の位置を設定することができる。
 第4の実施形態によれば、目標物設定器16Aは、入力装置2を介して取得されたユーザ入力に基づいて、作業対象物における目標物の位置を設定してもよい。
 これにより、初期状態において作業対象物の特徴点マップが未知であっても、作業対象物における目標物の位置を設定することができる。
 第4の実施形態によれば、撮像装置7は、ロボットアーム装置4が保持対象物を保持したときに撮像装置7が保持対象物の先端を撮影可能であるように、ロボットアーム装置4に固定されてもよい。
 これにより、撮像装置7は保持対象物の移動に追従することができる。
 第4の実施形態によれば、ロボットアームシステムは、ロボットアーム装置4と、少なくとも1つの撮像装置7と、制御装置1Cとを備える。
 これにより、保持対象物及び作業対象物のうちの少なくとも一方がロボット座標系において固定された既知の位置をもたない場合であっても、保持対象物を用いて作業対象物に対する作業を正確に行うようにロボットアーム装置4を制御することができる。
[第5の実施形態]
 次に、第5の実施形態に係るロボットアームシステムについて説明する。第1~第4の実施形態では、ロボットアーム装置に固定された1つの撮像装置を使用した。一方、第5の実施形態では、ロボットアーム装置以外の位置に固定された複数の撮像装置を用いる場合について説明する。
[第5の実施形態の構成]
 図35及び図36は、第5の実施形態に係るロボットアームシステムの構成を示す概略図である。図35は、保持対象物が第1の位置にあるときの状態を示し、図36は、保持対象物が第2の位置にあるときの状態を示す。図35及び図36は、図1の制御装置1及び撮像装置7に代えて、制御装置1D及び複数の撮像装置7-1,7-2を備える。
 撮像装置7-1,7-2は、回路基板8の異なる部分をそれぞれ撮影するように、台座9-1,9-2によって、天井、床面、又は壁面などに固定されている。
 制御装置1Dは、複数の撮像装置7-1,7-2から、回路基板8の少なくとも一部及び電動ドライバー5の先端5aを含む撮影画像を選択的に取得する。
 図35の場合、撮像装置7-2はマーカー6を撮影することができず、従って、制御装置1Dは、撮像装置7-1の撮影画像を取得する。一方、図36の場合、撮像装置7-2は撮像装置7-1よりも近くから電動ドライバー5、マーカー6、及び回路基板8を撮影することができるので、制御装置1Dは、撮像装置7-2の撮影画像を取得する。制御装置1Dは、撮像条件に応じて、複数の撮像装置7-1,7-2から撮影画像を選択的に取得することができ、1つのみの撮像装置を用いる場合よりも撮影の自由度が向上する。
[第5の実施形態の効果等]
 第5の実施形態によれば、制御装置1Dは、複数の撮像装置7-1,7-2から、作業対象物の少なくとも一部及び保持対象物の先端を含む撮影画像を選択的に取得する。
 これにより、制御装置1Dは、撮像条件に応じて、複数の撮像装置7-1,7-2から撮影画像を選択的に取得することができ、1つのみの撮像装置を用いる場合よりも撮影の自由度が向上する。
[第6の実施形態]
 次に、第6の実施形態に係るロボットアームシステムについて説明する。第6の実施形態では、保持対象物を介することなくロボットアーム装置によって直接に作業対象物に対する作業を行い、作業対象物に接触するロボットアーム装置の先端がカメラ座標系において既知の位置を有する場合について説明する。
[第6の実施形態の構成]
[全体構成]
 図37は、第6の実施形態に係るロボットアームシステムの構成を示す概略図である。図37のロボットアームシステムは、図1の制御装置1、ロボットアーム装置4、及び回路基板8に代えて、制御装置1E、ロボットアーム装置4E、及びパネル8Eを備える。
 制御装置1Eは、撮像装置7によって取得された撮影画像に基づいて、及び/又は、入力装置2を介して入力されたユーザ入力に基づいて、ロボットアーム装置4Eを制御する。
 パネル8Eは、例えば、1つ又は複数のスイッチ84を備えた制御盤である。スイッチ84は、例えば、プッシュスイッチ、トグルスイッチ、ロータリースイッチなどを含む。
 ロボットアーム装置4Eは、図1のロボットアーム装置4のハンド4cに代えて、エンドエフェクター4dを備える。エンドエフェクター4dは、その先端4daにおいてスイッチ84に接触し、スイッチ84の形態に応じて、押下、把持、回転などの操作が可能であるように構成される。
 撮像装置7は、エンドエフェクター4dの先端4da及びパネル8Eの少なくとも一部を含む撮影画像を取得する。
 撮像装置7は、エンドエフェクター4dの先端4daに対して既知の位置に固定される。この場合、撮像装置7は、アーム4bの複数のリンクのうち、エンドエフェクター4dが連結されたものと同じリンクに固定される。これにより、撮像装置7及びエンドエフェクター4dの間にアーム4bの関節などの可動部が存在せず、従って、エンドエフェクター4dの先端4daに対する撮像装置7の相対位置が固定される。これにより、エンドエフェクター4dの先端4daは、カメラ座標系において既知の位置を有する。
 ロボットアーム装置4Eは、制御装置1Eの制御下で、ロボットアーム装置4Eの先端を作業対象物における少なくとも1つの目標物の位置に移動させる。図37の例では、パネル8Eが、ロボットアーム装置4Eによって直接に実行される作業の作業対象物である。パネル8Eにおける少なくとも1つのスイッチ84が目標物として設定されたとき、ロボットアーム装置4Eは、エンドエフェクター4dの先端4daをスイッチ84の位置に移動させ、エンドエフェクター4dを用いてスイッチ84を操作する。
 本明細書では、エンドエフェクター4dの先端4daを、ロボットアーム装置4Eの先端(「アーム先端」とも呼ぶ)とみなす。
[制御装置の構成]
 図38は、図37の制御装置1Eの構成を示すブロック図である。制御装置1Eは、図5のマーカー認識器13及び位置計算器14に代えて、記憶装置20を備える。
 記憶装置20は、カメラ座標系におけるエンドエフェクター4dの先端4daの位置及び向きを予め格納している。この位置は、例えば、ロボットアーム装置4Eの設計データに基づいて計算される。
 図39は、図37のアーム4bの先端を示す拡大図である。図39を参照して、カメラ座標系におけるエンドエフェクター4dの先端4daの位置及び向きの計算について説明する。
 カメラ座標系におけるエンドエフェクター4dの先端4daの位置及び向きを説明するために、図39に示すように、エンドエフェクター4dの座標系を参照する。エンドエフェクター4dは、当該エンドエフェクター4dの位置及び姿勢を基準とする三次元の座標系を有する。エンドエフェクター4dの座標系は座標軸Xe,Ye,Zeを有する。例えば、エンドエフェクター4dの座標系の原点は、エンドエフェクター4dの筐体の内部に設けられ、エンドエフェクター4dの座標系の向きは、その座標軸のうちの1つがエンドエフェクター4dの先端4daを通るように設定される。
 エンドエフェクター4dの座標系における位置(xe,ye,ze)からカメラ座標系における位置(xc,yc,zc)への座標変換は、例えば、同時座標変換行列を用いて次式のように表される。
Figure JPOXMLDOC01-appb-M000006
 ここで、Recは、エンドエフェクター4dの座標系の向きを基準とするカメラ座標系の向きを示す行列であり、terは、エンドエフェクター4dの座標系におけるカメラ座標系の原点の位置(dx,dy,dz)を示すベクトルである。行列Recは、例えば、X軸、Y軸、及びZ軸の周りの各回転角度α,β,γをそれぞれ表す行列Rα,Rβ,Rγの積で表すことができる。
 エンドエフェクター4dの座標系におけるエンドエフェクター4dの先端4daの位置及び向きは、ロボットアーム装置4Eの設計データから既知である。従って、カメラ座標系におけるエンドエフェクター4dの先端4daの位置及び向きは、エンドエフェクター4dの座標系におけるエンドエフェクター4dの先端4daの位置及び向きに基づいて、数式(6)を用いて計算可能である。
 エンドエフェクター4dが可動部を備える場合であっても、エンドエフェクター4dの座標系における先端4daの軌道は既知であり、従って、先端4daはカメラ座標系において既知の位置及び向きを有する。
 図38の特徴点認識器11、位置計算器12、記憶装置15、及び目標物設定器16は、図5の対応する構成要素と実質的に同様に構成されて動作する。ただし、図38の構成要素11、12、15、及び16は、回路基板8のネジ穴82の位置及び向きに代えて、パネル8Eのスイッチ84の位置及び向きを計算する。
 制御信号生成器17は、位置計算器12によって計算されたカメラ座標系におけるスイッチ84の位置及び向きを、ロボット座標系における位置及び向きに変換する。また、制御信号生成器17は、記憶装置20から読み出されたカメラ座標系におけるエンドエフェクター4dの先端4daの位置及び向きを、ロボット座標系における向き及び位置に変換する。また、制御信号生成器17は、変換されたスイッチ84の位置及び向き、変換されたエンドエフェクター4dの先端4daの位置及び向きに基づいて、エンドエフェクター4dの先端4daをスイッチ84の位置に移動させる制御信号をロボットアーム装置4に出力する。これにより、制御装置1Eは、ロボットアーム装置4Eを自動的に制御する。
 画像生成器18は、撮影画像を表示装置3に出力する。また、画像生成器18は、パネル8Eの特徴点、スイッチ84の位置、及びエンドエフェクター4dの先端4daの位置を撮影画像に重畳して表示装置3に出力してもよい。
 図38は、制御装置1Eが2つの記憶装置15,20を備える場合を示すが、これらの記憶装置は互いに一体化されてもよい。
[第6の実施形態の動作]
 図40は、図37の制御装置1Eによって実行されるロボットアーム制御処理を示すフローチャートである。
 目標物設定器16は、パネル8Eにおける少なくとも1つのスイッチ84を目標物として設定する(ステップS71)。
 制御装置1は、撮像装置7から撮影画像を取得する(ステップS72)。
 特徴点認識器11は、撮影画像からパネル8Eの特徴点を検出し、それらの位置及び特徴量を取得する(ステップS73)。
 位置計算器12は目標物位置計算処理を実行し、カメラ座標系におけるスイッチ84の位置及び向きを計算する(ステップS74)。
 ステップ74は、回路基板8のネジ穴82の位置及び向きに代えてパネル8Eのスイッチ84の位置及び向きを計算することを除いて、実質的に、図9のステップS4と同様である。
 制御信号生成器17は、記憶装置20から、カメラ座標系におけるエンドエフェクター4dの先端4daの位置及び向きを読み出す(ステップS75)。
 制御信号生成器17は、カメラ座標系におけるスイッチ84及びエンドエフェクター4dの先端4daの位置及び向きを、ロボット座標系における位置及び向きに変換する(ステップS76)。
 制御信号生成器17は、エンドエフェクター4dの先端4daがスイッチ84に対して予め決められた角度を有するように(例えば、プッシュスイッチであるスイッチ84をエンドエフェクター4dが鉛直方向に押下するように)、エンドエフェクター4dの先端4daをスイッチ84の位置に移動させる制御信号を出力する(ステップS77)。
 制御装置1は、エンドエフェクター4dの先端4daをスイッチ84の位置に移動させながら、ステップS72~S77を繰り返してもよい。
 パネル8Eにおける複数のスイッチ84が目標物として設定されている場合、制御信号生成器17は、すべての目標物を処理したか否かを判断し(ステップS78)、YESのときは処理を終了し、NOのときはステップS79に進む。
 制御信号生成器17は、エンドエフェクター4dの先端4daを次のスイッチ84の方向に移動させる制御信号を出力する(ステップS79)。以後、制御装置1は、ステップS72~S79を繰り返す。
 第6の実施形態によれば、パネル8Eがロボット座標系において固定された既知の位置をもたない場合であっても、撮影画像に基づいてロボット座標系における位置及び向きを計算することにより、パネル8Eに対する作業を正確に行うようにロボットアーム装置4を制御することができる。第6の実施形態によれば、パネル8Eが移動しても、その位置及び向きの変化に追従し、パネル8Eに対する作業を正確に行うようにロボットアーム装置4を制御することができる。
[第6の実施形態の効果等]
 第6の実施形態によれば、ロボットアーム装置4Eを制御する制御装置1Eは、目標物設定器、特徴点認識器11、位置計算器12、及び制御信号生成器17を備える。目標物設定器16は、作業対象物における少なくとも1つの目標物の位置を設定する。特徴点認識器11は、ロボットアーム装置4Eの先端に対して既知の位置に固定された撮像装置7によって取得された撮影画像であって、作業対象物の少なくとも一部を含む撮影画像から、作業対象物の特徴点を検出する。位置計算器12は、作業対象物の特徴点に基づいて、撮像装置の座標系における目標物の位置を計算する。制御信号生成器17は、撮像装置の座標系における目標物の位置及びロボットアーム装置4Eの先端の位置を、ロボットアーム装置4Eの座標系における位置に変換し、変換された目標物の位置及びロボットアーム装置4Eの先端の位置に基づいてロボットアーム装置4Eの先端を目標物の位置に移動させる制御信号をロボットアーム装置4Eに出力する。
 これにより、作業対象物がロボット座標系において固定された既知の位置をもたない場合であっても、作業対象物に対する作業を正確に行うようにロボットアーム装置4Eを制御することができる。例えば、作業中にロボットアーム装置4Eの一部と作業対象物とが衝突し、作業対象物がロボット座標系に固定された作業台からずれていく「作業対象物のずれ」が発生した場合でも、作業を正確に行うことができる。また、作業を繰り返す事でロボットアーム装置4Eの先端の座標の予測値が実際の値からずれていく「制御ずれ」が発生した場合でも、作業を正確に行うことができる。
[第7の実施形態]
 次に、第7の実施形態に係るロボットアームシステムについて説明する。第1~第6の実施形態では、制御装置がロボットアーム装置を自動的に制御する場合について説明したが、第7の実施形態では、ユーザによるロボットアーム装置の手動制御を支援する場合について説明する。
[第7の実施形態の構成]
 図41は、第7の実施形態に係るロボットアームシステムの制御装置1Fの構成を示すブロック図である。制御装置1Fは、例えば、図1のロボットアームシステムの制御装置1に代えて使用される。制御装置1Fは、図5の制御信号生成器17及び画像生成器18に代えて、制御信号生成器17F及び画像生成器18Fを備える。
 制御信号生成器17Fは、第1の実施形態などにおいて説明したように、撮像装置7によって取得された撮影画像に基づいて、保持対象物の先端を目標物の位置に移動させる第1の制御信号をロボットアーム装置4に出力する。さらに、制御信号生成器17Fは、入力装置2を介して取得されたユーザ入力に基づいて、保持対象物の先端を目標物の位置に移動させる第2の制御信号をロボットアーム装置に出力する。
 画像生成器18Fは、目標物に対する保持対象物の先端の距離を表すレーダーチャートを生成し、レーダーチャートを撮影画像に重畳して表示装置3に出力する。
 ユーザは、表示装置3に表示されたレーダーチャートを参照することにより、保持対象物の先端を目標物の位置に移動させるためのユーザ入力を、入力装置2を介して制御装置1Fに提供することができる。
[第7の実施形態の動作]
 図42は、第7の実施形態に係るロボットアームシステムの表示装置3に表示される例示的な画像30Cを示す図である。画像30Cは、図15の画像30の内容に加えて、ウィンドウ35を含む。
 図43は、図42のウィンドウ35の詳細を示し、目標物に対して保持対象物の先端が第1の距離にあるときのレーダーチャート36,37を示す図である。図44は、図42のウィンドウ35の詳細を示し、目標物に対して保持対象物の先端が第1の距離よりも短い第2の距離にあるときのレーダーチャート36,37を示す図である。ウィンドウ35は、水平面内のレーダーチャート36及び垂直面内のレーダーチャート37を含む。レーダーチャート36は、水平面内における目標物に対する保持対象物の先端の距離を表す。レーダーチャート37は、垂直面内における目標物に対する保持対象物の先端の距離を表す。図43及び図44の例では、レーダーチャート36,37は、目標物座標系の座標軸Xh,Yh,Zhを有する。図43及び図44に示すように、目標物に対する保持対象物の先端の距離に応じて、レーダーチャートの縮尺を変更してもよい。保持対象物の先端が目標物に近づいたときにレーダーチャートの目盛りの幅を小さくし、また、保持対象物の先端が目標物から遠ざかったときにレーダーチャートの目盛りの幅を大きくすることにより、目標物に対する保持対象物の先端の距離をより明確に認識できるようになる。
 水平面内のレーダーチャート36における最小の円の半径は、例えば、0.25、1、5、25、又は100mmに設定されてもよい。垂直面内のレーダーチャート37における鉛直方向の目盛りは、例えば、2又は10mmに設定されてもよい。
 ウィンドウ35を表示することにより、目標物に対する保持対象物の先端の距離を、目標物及び保持対象物を含む撮影画像のみを表示する場合よりも明確にユーザに提示することができる。目標物に対する保持対象物の先端の微小な偏差を計算し、この偏差をレーダーチャートとして表示することにより、ユーザは、保持対象物の先端が目標物に到達したか否かを確実に判断することができる。
 ユーザは、ウィンドウ35を参照することにより、ロボットアーム装置4による作業を監視してもよい。また、ユーザは、ウィンドウ35を参照して、入力装置2を介してロボットアーム装置4を操作してもよい。制御装置1は、図9のロボットアーム制御処理を実行する。このとき、制御装置1は、前述したように、保持対象物の先端を目標物の位置に移動させながら、ステップS2~S8を繰り返す。制御信号生成器17Fは、ユーザ入力がなければ、撮像装置7によって取得された撮影画像に基づいて生成した制御信号を出力する。一方、制御信号生成器17Fは、入力装置2を介してユーザ入力を取得すると、ロボットアーム制御処理に割り込み、ユーザ入力に基づいて生成した制御信号を出力する。
 第7の実施形態によれば、保持対象物及び目標物がロボット座標系において固定された既知の位置をもたない場合であっても、ウィンドウ35を参照し、入力装置2を介してロボットアーム装置4を操作することにより、保持対象物を用いて目標物に対する作業を正確に行うようにロボットアーム装置4を制御することができる。
 例えば、ロボットアーム装置4の遠隔制御を行う場合、遠隔から確認できる撮影画像は二次元であるが、保持対象物及び作業対象物の位置合わせを行うためには三次元の情報が必要である。しかしながら、二次元の撮影画像からは三次元の情報が読み取れない場合がある。図6の例では、二次元の撮影画像からは保持対象物及び作業対象物の横方向のずれを読み取れるが、保持対象物及び作業対象物の縦(奥行)方向及び高さ方向のずれは、二次元の撮影画像上の縦方向に合成されて見えるので、撮影画像から読み取ることは難しい。この場合、レーダーチャートなどを用いて、三次元の各座標軸に沿ったずれを所定の物理量(例えば、数mmのずれ量)で可視化することで、三次元の情報を読み取ることが可能となり、ロボットアーム装置4の遠隔制御も可能となる。
 さらに、レーダーチャートなどを用いてずれ量を所定の物理量で提示することで、撮影画像のずれから三次元のずれ量を経験的に求めていた工程が不要となる。従って、例えば、物理量に合わせて入力装置2の制御ボタンを押すだけで、素人でも簡単にロボットアーム装置4を制御することができる。
 図45は、第7の実施形態に係るロボットアームシステムの表示装置3に表示される代替のウィンドウ35Aを示す図である。表示装置3に表示される画像30Cは、図42のウィンドウ35に代えて、図45のウィンドウ35Aを含んでもよい。異なる縮尺を有する複数の水平面内のレーダーチャート36をウィンドウ35A内に同時に表示してもよい。同様に、異なる縮尺を有する複数の垂直面内のレーダーチャート37をウィンドウ35A内に同時に表示してもよい。図45の例は、3つの水平面内のレーダーチャート36-1~36-3をウィンドウ35A内に同時に表示し、1つの垂直面内のレーダーチャート37をウィンドウ35A内に表示する場合を示す。複数のレーダーチャート36のうち、目標物に対する保持対象物の先端の距離を観察するために最も適切な縮尺を有するもの、すなわち、レーダーチャートの表示領域内において保持対象物の先端が目標物から最も離れているものを強調表示してもよい(例えば、枠で囲む、色を変更する、など)。図45の例は、水平面内のレーダーチャート36-2の枠線を強調表示する場合を示す。複数のレーダーチャート36-1~36-3を表示することにより、1つのレーダーチャート36のみを表示する場合よりも、目標物に対する保持対象物の先端の距離を明確にユーザに提示することができる。
[第7の実施形態の変形例]
 図46は、第7の実施形態の第1の変形例に係るロボットアームシステムの構成を示す概略図である。図46のロボットアームシステムは、図1の制御装置1、入力装置2、及び表示装置3に代えて、制御装置1F及びタッチパネル装置3Fを備える。
 図46の制御装置1Fは、図41の制御装置1Fと同様に構成されて動作する。ただし、図46の制御装置1Fは、入力装置2に代えてタッチパネル装置3Fからユーザ入力を取得し、表示装置3に代えて、タッチパネル装置3Fに画像を表示する。また、図46の制御装置1Fの画像生成器18Fは、ユーザ入力を取得するための操作ボタンの画像を撮影画像にさらに重畳してタッチパネル装置3Fに出力する。
 タッチパネル装置3Fは、図1の制御装置1及び入力装置2の両方の機能を有する。
 図47は、図46のロボットアームシステムのタッチパネル装置3Fに表示される例示的な画像30Dを示す図である。画像30Dは、図42の画像30Cの内容に加えて、ウィンドウ90を含む。ウィンドウ90は、例えば、複数の操作ボタン91~94を含む。操作ボタン91は、水平方向の電動ドライバー5の移動を指示する。操作ボタン92は、垂直方向の電動ドライバー5の移動を指示する。操作ボタン93は、電動ドライバー5によるネジ締めの開始を指示する。操作ボタン94は、電動ドライバー5によるネジ締めの停止を指示する。
 ウィンドウ90を表示することにより、ロボットアームシステムがタッチパネル装置3Fを備える場合であっても、保持対象物の先端を目標物の位置に移動させるためのユーザ入力を制御装置1Fに提供することができる。
 図48は、第7の実施形態の第2の変形例に係るロボットアームシステムの制御装置1Gの構成を示すブロック図である。制御装置1Gは、図41の制御信号生成器17Fに代えて、制御信号生成器17Gを備える。制御信号生成器17Gは、入力装置2を介して取得されたユーザ入力に基づいて保持対象物の先端を目標物の位置に移動させる制御信号をロボットアーム装置4に出力する。言いかえると、制御信号生成器17Gは、撮像装置7によって取得された撮影画像に基づいて制御信号を生成することなく、入力装置2を介して取得されたユーザ入力のみに基づいて制御信号を生成する。図48の制御装置1Gによれば、保持対象物及び目標物がロボット座標系において固定された既知の位置をもたない場合であっても、ウィンドウ35を参照し、入力装置2を介してロボットアーム装置4を操作することにより、保持対象物を用いて目標物に対する作業を正確に行うようにロボットアーム装置4を制御することができる。
[第7の実施形態の効果等]
 第7の実施形態によれば、制御装置1Fは、目標物に対する保持対象物の先端の距離を表すレーダーチャートを生成し、レーダーチャートを撮影画像に重畳して表示装置3に出力する画像生成器18Fをさらに備えてもよい。制御信号生成器17Fは、入力装置2を介して取得されたユーザ入力に基づいて保持対象物の先端を目標物の位置に移動させる第2の制御信号をロボットアーム装置4に出力する。
 これにより、目標物及び保持対象物を含む撮影画像のみを表示装置3に表示する場合よりも明確に、目標物に対する保持対象物の先端の距離をユーザに提示することができる。また、レーダーチャートを参照し、入力装置2を介してロボットアーム装置4を操作することにより、保持対象物を用いて目標物に対する作業を正確に行うようにロボットアーム装置4を制御することができる。
 第7の実施形態によれば、画像生成器18Fは、目標物に対する保持対象物の先端の距離に応じて可変なスケールを有するレーダーチャートを生成してもよい。
 これにより、固定されたスケールを有するレーダーチャートを生成する場合よりも明確に、目標物に対する保持対象物の先端の距離をユーザに提示することができる。
 第7の実施形態によれば、画像生成器18Fは、ユーザ入力を取得するための操作ボタンの画像を撮影画像に重畳して表示装置に出力してもよい。
 これにより、ロボットアームシステムがタッチパネル装置3Fを備える場合であっても、保持対象物の先端を目標物の位置に移動させるためのユーザ入力を制御装置1Fに提供することができる。
 第7の実施形態によれば、保持対象物を保持するロボットアーム装置4を制御する制御装置は、目標物設定器16、特徴点認識器11、第1の位置計算器12、第2の位置計算器14、画像生成器18F、及び制御信号生成器17Gを備える。目標物設定器16は、作業対象物における少なくとも1つの目標物の位置を設定する。特徴点認識器11は、少なくとも1つの撮像装置によって取得された撮影画像であって、作業対象物の少なくとも一部及び保持対象物の先端を含む撮影画像から、作業対象物の特徴点を検出する。第1の位置計算器12は、作業対象物の特徴点に基づいて、撮像装置の座標系における目標物の位置を計算する。第2の位置計算器14は、撮影画像に基づいて、撮像装置の座標系における保持対象物の先端の位置を計算する。画像生成器18Fは、目標物に対する保持対象物の先端の距離を表すレーダーチャートを生成し、レーダーチャートを撮影画像に重畳して表示装置3に出力する。制御信号生成器17Gは、入力装置2を介して取得されたユーザ入力に基づいて保持対象物の先端を目標物の位置に移動させる制御信号をロボットアーム装置4に出力する。
 これにより、目標物及び保持対象物を含む撮影画像のみを表示装置3に表示する場合よりも明確に、目標物に対する保持対象物の先端の距離をユーザに提示することができる。また、レーダーチャートを参照し、入力装置2を介してロボットアーム装置4を操作することにより、保持対象物を用いて目標物に対する作業を正確に行うようにロボットアーム装置4を制御することができる。
[他の実施形態]
 入力装置及び表示装置を制御装置に一体化してもよい。また、制御装置、入力装置、及び表示装置をロボットアーム装置に一体化してもよい。
 画像生成器は、図12に示すような特徴点マップの三次元的なプロットを、撮影画像に重畳して表示装置に出力してもよい。
 第1~第4の実施形態の例では、保持対象物が電動ドライバー5であり、作業対象物における目標物が回路基板におけるネジ穴である場合について説明したが、保持対象物、作業対象物、及び目的物はこれらに限定されない。保持対象物は、例えば、はんだごて、テスタ(マルチメータ)、試験管、ピペット、及び綿棒などであってもよい。保持対象物がはんだごてである場合、作業対象物は回路基板であり、目標物は回路基板又は電子部品の電極であってもよい。保持対象物がテスタのプローブである場合、作業対象物は電子装置であり、目標物は電極であってもよい。保持対象物が試験管である場合、作業対象物は試験管のラックであり、目標物は試験管のラックにおける穴であってもよい。保持対象物がピペットである場合、作業対象物はピペットにより薬品等を出し入れする容器であり、目標物は容器の開口であってもよい。保持対象物が綿棒である場合、作業対象物は綿棒により接触する患者であり、目標物は綿棒により接触する患者の部位であってもよい。これらの場合もまた、保持対象物及び作業対象物のうちの少なくとも一方がロボット座標系において固定された既知の位置をもたない場合であっても、保持対象物を用いて作業対象物に対する作業を正確に行うようにロボットアーム装置を制御することができる。
 以上の説明では、保持対象物(電動ドライバー5)の向きが目標物(ネジ穴82)の向きに一致するように保持対象物を保持する場合について説明したが、保持対象物は、目標物に対して、他の予め決められた角度を有するように保持されてもよい。例えば、保持対象物がはんだごて又はテスタである場合、保持対象物は回路基板又は電極に対して斜めに保持されてもよい。
 作業対象物が平坦であり、かつ、保持対象物が作業対象物に対して向きを変化させることなく並進移動する場合、作業対象物及び保持対象物の向きを計算するステップを省略してもよい。
 本明細書において、「保持対象物の先端」は、電動ドライバー5の先端5aのように尖った部分に限定されず、ロボットアーム装置4の本体から見て保持対象物の遠位の端部を意味する。保持対象物の先端は、保持対象物の形状に応じて、ハンマーのヘッド、ビーカーなどの容器の底面、矩形の部材の底面、などであってもよい。
 第6の実施形態の例では、作業対象物における目標物がパネルのスイッチである場合について説明したが、作業対象物及び目標物はこれらに限定されない。例えば、作業対象物は回路基板であってもよく、目標物はネジ穴又は電極であってもよい。また、作業対象物は容器であってもよく、目標物は容器の開口であってもよい。また、作業対象物は患者であってもよく、目標物は患者の部位であってもよい。作業対象物及び目標物の種類に応じて、ロボットアーム装置は、アームの先端に一体化された装置(電動ドライバーなど)を備える。
 説明した各実施形態及び各変形例を任意に組み合わせてもよい。
 撮像装置がロボットアーム装置の先端に対して既知の位置を有するようにロボットアーム装置が保持対象物を保持できるのであれば、第6の実施形態に係る制御装置は、保持対象物を保持するハンドを備えたロボットアーム装置を制御してもよい。ロボットアーム装置は、例えば、保持対象物と嵌合するガイドをハンドに設けることにより、撮像装置がロボットアーム装置の先端に対して既知の位置を有するように保持対象物を保持してもよい。この場合、制御装置は、撮影画像に基づいて保持対象物の位置及び向きを計算することに代えて、記憶装置に予め格納された保持対象物の位置及び向きを読み出す。
 第7の実施形態は、第1~第6の実施形態のいずれにも適用可能である。図17の画像生成器18、図23の画像生成器18B、及び図29の画像生成器18のそれぞれは、目標物に対する保持対象物の先端の距離を表すレーダーチャートを撮影画像に重畳して表示装置3に出力してもよい。この場合、図17の制御信号生成器17、図23の制御信号生成器17B、及び図29の制御信号生成器17のそれぞれは、入力装置2を介して取得されたユーザ入力に基づいて保持対象物の先端を目標物の位置に移動させる制御信号をロボットアーム装置4に出力する。また、図38の画像生成器18は、目標物に対するロボットアーム装置の先端の距離を表すレーダーチャートを撮影画像に重畳して表示装置3に出力してもよい。この場合、図38の制御信号生成器17は、入力装置2を介して取得されたユーザ入力に基づいてロボットアーム装置の先端を目標物の位置に移動させる制御信号をロボットアーム装置4に出力する。
 本開示の各態様に係る制御装置及びロボットアームシステムによれば、産業用又は医療用のロボットアーム装置に適用可能である。
1,1A~1G 制御装置
2 入力装置
3 表示装置
3F タッチパネル装置
4,4E ロボットアーム装置
4a 本体
4b アーム
4c ハンド
4d エンドエフェクター
5 電動ドライバー
5a 先端
6 マーカー
7,7A 撮像装置
8,8C 回路基板
8E パネル
9 台座
11,11B 特徴点認識器
12,12A 位置計算器(目標物)
12B,12C 位置計算器(目標物及び保持対象物)
13 マーカー認識器
14 位置計算器(保持対象物)
15 記憶装置
16,16A,16B 目標物設定器
17,17B,17F 制御信号生成器
18,18B,18F 画像生成器
19 マーカー認識器
20 記憶装置
30,30A~30D 表示画像
31 認識された目標物を示すフレーム
32 認識された保持対象物の先端を示すフレーム
33 目標物の候補を示すフレーム
34 カーソル
35,35A ウィンドウ
36,36,36-1~36-3 水平面内のレーダーチャート
37,37 垂直面内のレーダーチャート
70,70A,70C~70E 撮影画像
70B 類似画像
80 プリント配線基板
81 回路素子
82 ネジ穴
83 マーカー
84 スイッチ
90 ウィンドウ
91~94 操作ボタン
F 特徴点
K キーフレーム

Claims (19)

  1.  保持対象物を保持するロボットアーム装置を制御する制御装置であって、
     作業対象物における少なくとも1つの目標物の位置を設定する目標物設定器と、
     少なくとも1つの撮像装置によって取得された撮影画像であって、前記作業対象物の少なくとも一部及び前記保持対象物の先端を含む撮影画像から、前記作業対象物の特徴点を検出する特徴点認識器と、
     前記作業対象物の特徴点に基づいて、前記撮像装置の座標系における前記目標物の位置を計算する第1の位置計算器と、
     前記撮影画像に基づいて、前記撮像装置の座標系における前記保持対象物の先端の位置を計算する第2の位置計算器と、
     前記撮像装置の座標系における前記目標物の位置及び前記保持対象物の先端の位置を、前記ロボットアーム装置の座標系における位置に変換し、変換された前記目標物の位置及び前記保持対象物の先端の位置に基づいて前記保持対象物の先端を前記目標物の位置に移動させる第1の制御信号を前記ロボットアーム装置に出力する制御信号生成器とを備えた、
    制御装置。
  2.  前記第1の位置計算器は、前記作業対象物の特徴点に基づいて、前記撮像装置の座標系における前記目標物の向きをさらに計算し、
     前記第2の位置計算器は、前記撮影画像に基づいて、前記撮像装置の座標系における前記保持対象物の向きをさらに計算し、
     前記制御信号生成器は、前記撮像装置の座標系における前記目標物の向き及び前記保持対象物の向きを、前記ロボットアーム装置の座標系における向きに変換し、前記第1の制御信号は、変換された前記目標物の向き及び前記保持対象物の向きに基づく角度情報をさらに含む、
    請求項1記載の制御装置。
  3.  前記制御装置は、前記撮影画像から、前記保持対象物の既知の位置に固定された第1のマーカーを検出する第1のマーカー認識器をさらに備え、前記第1のマーカーは、前記撮像装置の座標系における前記第1のマーカーの位置を計算可能であるように形成されたパターンを有し、
     前記第2の位置計算器は、前記第1のマーカーに基づいて前記保持対象物の先端の位置を計算する、
    請求項1又は2記載の制御装置。
  4.  前記撮像装置は、前記撮像装置から前記撮像装置によって撮影される各点までの距離をさらに取得し、
     前記特徴点認識器は、前記撮影画像から、前記保持対象物の特徴点をさらに検出し、
     前記第2の位置計算器は、前記保持対象物の特徴点及び前記距離に基づいて、前記保持対象物の先端の位置を計算する、
    請求項1又は2記載の制御装置。
  5.  前記制御装置は、前記作業対象物に含まれる複数の特徴点の三次元座標と、互いに異なる複数の位置から前記作業対象物をそれぞれ撮影した複数の撮影画像における前記各特徴点の二次元座標とを含む特徴点マップを予め格納した記憶装置をさらに備え、
     前記第1の位置計算器は、前記特徴点マップを参照して前記目標物の位置を計算する、
    請求項1~4のうちの1つに記載の制御装置。
  6.  前記撮像装置は、前記撮像装置から前記撮像装置によって撮影される各点までの距離をさらに取得し、
     前記第1の位置計算器は、
     前記撮影画像及び前記距離に基づいて、前記作業対象物に含まれる複数の特徴点の三次元座標と、互いに異なる複数の位置から前記作業対象物をそれぞれ撮影した複数の撮影画像における前記各特徴点の二次元座標とを含む特徴点マップを生成し、
     前記特徴点マップを参照して前記目標物の位置を計算する、
    請求項1~4のうちの1つに記載の制御装置。
  7.  前記制御装置は、前記撮影画像から、前記作業対象物の既知の位置に固定された少なくとも1つの第2のマーカーを検出する第2のマーカー認識器をさらに備え、前記第2のマーカーは、前記撮像装置の座標系における前記第2のマーカーの位置を計算可能であるように形成されたパターンを有し、
     前記第1の位置計算器は、
     前記第2のマーカーに基づいて、前記撮像装置から前記作業対象物までの距離を計算し、
     前記撮影画像及び前記距離に基づいて、前記作業対象物に含まれる複数の特徴点の三次元座標と、互いに異なる複数の位置から前記作業対象物をそれぞれ撮影した複数の撮影画像における前記各特徴点の二次元座標とを含む特徴点マップを生成し、
     前記特徴点マップを参照して前記目標物の位置を計算する、
    請求項1~4のうちの1つに記載の制御装置。
  8.  前記第1の位置計算器によって生成された前記特徴点マップを格納する記憶装置をさらに備える、
    請求項6又は7記載の制御装置。
  9.  前記目標物設定器は、前記作業対象物における前記目標物の位置を画像処理により認識して設定する、
    請求項6~8のうちの1つに記載の制御装置。
  10.  前記目標物設定器は、第1の入力装置を介して取得された第1のユーザ入力に基づいて、前記作業対象物における前記目標物の位置を設定する
    請求項6~8のうちの1つに記載の制御装置。
  11.  前記撮像装置は、前記ロボットアーム装置が前記保持対象物を保持したときに前記撮像装置が前記保持対象物の先端を撮影可能であるように、前記ロボットアーム装置に固定される、
    請求項1~10のうちの1つに記載の制御装置。
  12.  前記制御装置は、複数の撮像装置から、前記作業対象物の少なくとも一部及び前記保持対象物の先端を含む撮影画像を選択的に取得する、
    請求項1~10のうちの1つに記載の制御装置。
  13.  前記制御装置は、前記目標物に対する前記保持対象物の先端の距離を表すレーダーチャートを生成し、前記レーダーチャートを前記撮影画像に重畳して表示装置に出力する画像生成器をさらに備え、
     前記制御信号生成器は、第2の入力装置を介して取得された第2のユーザ入力に基づいて前記保持対象物の先端を前記目標物の位置に移動させる第2の制御信号を前記ロボットアーム装置に出力する、
    請求項1~12のうちの1つに記載の制御装置。
  14.  前記画像生成器は、前記目標物に対する前記保持対象物の先端の距離に応じて可変なスケールを有するレーダーチャートを生成する、
    請求項13記載の制御装置。
  15.  前記画像生成器は、前記第2のユーザ入力を取得するための操作ボタンの画像を前記撮影画像に重畳して表示装置に出力する、
    請求項13又は14記載の制御装置。
  16.  保持対象物を保持するロボットアーム装置を制御する制御装置であって、
     作業対象物における少なくとも1つの目標物の位置を設定する目標物設定器と、
     少なくとも1つの撮像装置によって取得された撮影画像であって、前記作業対象物の少なくとも一部及び前記保持対象物の先端を含む撮影画像から、前記作業対象物の特徴点を検出する特徴点認識器と、
     前記作業対象物の特徴点に基づいて、前記撮像装置の座標系における前記目標物の位置を計算する第1の位置計算器と、
     前記撮影画像に基づいて、前記撮像装置の座標系における前記保持対象物の先端の位置を計算する第2の位置計算器と、
     前記目標物に対する前記保持対象物の先端の距離を表すレーダーチャートを生成し、前記レーダーチャートを前記撮影画像に重畳して表示装置に出力する画像生成器と、
     入力装置を介して取得されたユーザ入力に基づいて前記保持対象物の先端を前記目標物の位置に移動させる制御信号を前記ロボットアーム装置に出力する制御信号生成器とを備えた、
    制御装置。
  17.  ロボットアーム装置を制御する制御装置であって、
     作業対象物における少なくとも1つの目標物の位置を設定する目標物設定器と、
     前記ロボットアーム装置の先端に対して既知の位置に固定された撮像装置によって取得された撮影画像であって、前記作業対象物の少なくとも一部を含む撮影画像から、前記作業対象物の特徴点を検出する特徴点認識器と、
     前記作業対象物の特徴点に基づいて、前記撮像装置の座標系における前記目標物の位置を計算する位置計算器と、
     前記撮像装置の座標系における前記目標物の位置及び前記ロボットアーム装置の先端の位置を、前記ロボットアーム装置の座標系における位置に変換し、変換された前記目標物の位置及び前記ロボットアーム装置の先端の位置に基づいて前記ロボットアーム装置の先端を前記目標物の位置に移動させる制御信号を前記ロボットアーム装置に出力する制御信号生成器とを備えた、
    制御装置。
  18.  ロボットアーム装置と、
     少なくとも1つの撮像装置と、
     請求項1~17のうちの1つに記載の制御装置とを備えた、
    ロボットアームシステム。
  19.  保持対象物を保持するロボットアーム装置を制御する制御方法であって、
     作業対象物における少なくとも1つの目標物の位置を設定するステップと、
     少なくとも1つの撮像装置によって取得された撮影画像であって、前記作業対象物の少なくとも一部及び前記保持対象物の先端を含む撮影画像から、前記作業対象物の特徴点を検出するステップと、
     前記作業対象物の特徴点に基づいて、前記撮像装置の座標系における前記目標物の位置を計算するステップと、
     前記撮影画像に基づいて、前記撮像装置の座標系における前記保持対象物の先端の位置を計算するステップと、
     前記撮像装置の座標系における前記目標物の位置及び前記保持対象物の先端の位置を、前記ロボットアーム装置の座標系における位置に変換し、変換された前記目標物の位置及び前記保持対象物の先端の位置に基づいて前記保持対象物の先端を前記目標物の位置に移動させる制御信号を前記ロボットアーム装置に出力するステップとを含む、
    ロボットアーム装置の制御方法。
PCT/JP2021/032999 2020-10-08 2021-09-08 制御装置、ロボットアームシステム及びロボットアーム装置の制御方法 WO2022074998A1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN202180068577.4A CN116323115A (zh) 2020-10-08 2021-09-08 控制装置、机器人臂系统以及机器人臂装置的控制方法
JP2022555320A JPWO2022074998A1 (ja) 2020-10-08 2021-09-08
US18/121,155 US20230219231A1 (en) 2020-10-08 2023-03-14 Control apparatus for controlling robot arm apparatus that holds holdable object

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2020170713 2020-10-08
JP2020-170713 2020-10-08

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US18/121,155 Continuation US20230219231A1 (en) 2020-10-08 2023-03-14 Control apparatus for controlling robot arm apparatus that holds holdable object

Publications (1)

Publication Number Publication Date
WO2022074998A1 true WO2022074998A1 (ja) 2022-04-14

Family

ID=81126463

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2021/032999 WO2022074998A1 (ja) 2020-10-08 2021-09-08 制御装置、ロボットアームシステム及びロボットアーム装置の制御方法

Country Status (4)

Country Link
US (1) US20230219231A1 (ja)
JP (1) JPWO2022074998A1 (ja)
CN (1) CN116323115A (ja)
WO (1) WO2022074998A1 (ja)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS60249583A (ja) * 1984-05-21 1985-12-10 富士電機株式会社 視覚付ロボツト
JPH06785A (ja) * 1992-06-23 1994-01-11 Citizen Watch Co Ltd 視覚センサ座標系の補正方法
JPH08132372A (ja) * 1994-11-08 1996-05-28 Toshiba Corp ロボットの制御方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS60249583A (ja) * 1984-05-21 1985-12-10 富士電機株式会社 視覚付ロボツト
JPH06785A (ja) * 1992-06-23 1994-01-11 Citizen Watch Co Ltd 視覚センサ座標系の補正方法
JPH08132372A (ja) * 1994-11-08 1996-05-28 Toshiba Corp ロボットの制御方法

Also Published As

Publication number Publication date
JPWO2022074998A1 (ja) 2022-04-14
US20230219231A1 (en) 2023-07-13
CN116323115A (zh) 2023-06-23

Similar Documents

Publication Publication Date Title
US6816755B2 (en) Method and apparatus for single camera 3D vision guided robotics
US8095237B2 (en) Method and apparatus for single image 3D vision guided robotics
US10099380B2 (en) Robot, robot control device, and robot system
JP6126183B2 (ja) ターゲットマークを撮像するカメラを備えたロボットシステム
TWI670153B (zh) 機器人及機器人系統
US6236896B1 (en) Coordinate system setting method using visual sensor
JP7197971B2 (ja) 情報処理装置、情報処理装置の制御方法及びプログラム
CN108453701A (zh) 控制机器人的方法、示教机器人的方法和机器人系统
JP2010211746A (ja) 3次元認識結果の表示方法および3次元視覚センサ
JP2005201824A (ja) 計測装置
CN113492393A (zh) 一种由人演示的机器人示教
JP2009053147A (ja) 3次元計測方法および3次元計測装置
WO2023134237A1 (zh) 用于机器人的坐标系标定方法、装置、系统以及介质
JP2019098409A (ja) ロボットシステムおよびキャリブレーション方法
JPWO2018043524A1 (ja) ロボットシステム、ロボットシステム制御装置、およびロボットシステム制御方法
CN109945780A (zh) 物体检查系统以及物体检查方法
JP2003269913A (ja) センサ較正装置、センサ較正方法、プログラム、記憶媒体
WO2022074998A1 (ja) 制御装置、ロボットアームシステム及びロボットアーム装置の制御方法
CN110815208B (zh) 控制系统、解析装置以及控制方法
CN116419827A (zh) 机器人控制装置以及机器人系统
Cheng Robot manipulation of 3D cylindrical objects with a robot-mounted 2D vision camera
US20220331972A1 (en) Robot Image Display Method, Recording Medium, And Robot Image Display System
WO2021210456A1 (ja) ロボットの制御座標系における視覚センサの位置を取得する装置、ロボットシステム、方法、及びコンピュータプログラム
JP7112528B2 (ja) 作業座標作成装置
WO2022124232A1 (ja) 画像処理システム及び画像処理方法

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 21877301

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2022555320

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 21877301

Country of ref document: EP

Kind code of ref document: A1