WO2021200438A1 - 較正システム、情報処理システム、ロボット制御システム、較正方法、情報処理方法、ロボット制御方法、較正プログラム、情報処理プログラム、較正装置、情報処理装置、及びロボット制御装置 - Google Patents

較正システム、情報処理システム、ロボット制御システム、較正方法、情報処理方法、ロボット制御方法、較正プログラム、情報処理プログラム、較正装置、情報処理装置、及びロボット制御装置 Download PDF

Info

Publication number
WO2021200438A1
WO2021200438A1 PCT/JP2021/012177 JP2021012177W WO2021200438A1 WO 2021200438 A1 WO2021200438 A1 WO 2021200438A1 JP 2021012177 W JP2021012177 W JP 2021012177W WO 2021200438 A1 WO2021200438 A1 WO 2021200438A1
Authority
WO
WIPO (PCT)
Prior art keywords
coordinate
robot arm
information
coordinate information
captured image
Prior art date
Application number
PCT/JP2021/012177
Other languages
English (en)
French (fr)
Inventor
芳宏 中野
Original Assignee
ミネベアミツミ株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by ミネベアミツミ株式会社 filed Critical ミネベアミツミ株式会社
Priority to CN202180018344.3A priority Critical patent/CN115250616A/zh
Priority to US17/907,706 priority patent/US20230130816A1/en
Priority to EP21781057.1A priority patent/EP4129584A4/en
Publication of WO2021200438A1 publication Critical patent/WO2021200438A1/ja

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/1679Programme controls characterised by the tasks executed
    • B25J9/1692Calibration of manipulator
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1628Programme controls characterised by the control loop
    • B25J9/163Programme controls characterised by the control loop learning, adaptive, model based, rule based expert control
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/80Analysis of captured images to determine intrinsic or extrinsic camera parameters, i.e. camera calibration
    • 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/37009Calibration of vision system, camera, adapt light level
    • 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/39Robotics, robotics to robotics hand
    • G05B2219/39008Fixed camera detects reference pattern held by end effector
    • 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/39Robotics, robotics to robotics hand
    • G05B2219/39044Estimate error model from error at different attitudes and points
    • 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/39Robotics, robotics to robotics hand
    • G05B2219/39058Sensor, calibration of sensor, potentiometer
    • 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/40526Modeling of links for each possible error or only certain error
    • 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/40532Ann for vision processing
    • 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/40611Camera to monitor endpoint, end effector position
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20081Training; Learning

Definitions

  • the present invention relates to a calibration system, an information processing system, a robot control system, a calibration method, an information processing method, a robot control method, a calibration program, an information processing program, an information processing device, an information processing device, and a robot control device.
  • a technique for recognizing a three-dimensional position of a robot arm is known in order to grip a plurality of objects (workpieces) stacked separately by a robot arm or the like.
  • a technique of generating a learning model for estimating the position of the robot arm from the image by using the teacher data including the image of the robot arm is known.
  • a marker such as a two-dimensional code or a color pattern to be recognized by the camera may be attached to the robot arm, and the marker may be detected by the camera.
  • the position of the marker detected by imaging with the camera is used as the teacher data in the learning process.
  • the present invention is an example of the above problems, and is a calibration system, an information processing system, a robot control system, a calibration method, an information processing method, a robot control method, and a calibration that can easily adjust the positional relationship between a robot arm and a camera. It is an object of the present invention to provide a program, an information processing program, a calibration device, an information processing device, and a robot control device.
  • the calibration system includes a robot arm, an imaging device, and a calibration device.
  • the robot arm is provided with a grip portion at the tip for gripping an object to be gripped.
  • the imaging device generates at least one captured image by imaging the robot arm from a predetermined direction.
  • the calibration device includes a first coordinate generation unit, a second coordinate generation unit, and a conversion unit.
  • the first coordinate generation unit machine-learns a plurality of teacher data having an image capturing a virtual space including a three-dimensional model of the robot arm and information indicating the position of the grip portion of the robot arm included in the virtual space.
  • first coordinate information indicating the position of the grip portion in the captured image coordinate system based on the captured image is generated.
  • the conversion unit is based on the coordinate conversion information and the first coordinate information used in the coordinate conversion process for converting the first coordinate information into the second coordinate information indicating the position of the grip portion in the robot coordinate system based on the robot arm. Then, the first coordinate information is converted into the second coordinate information.
  • the positional relationship between the robot arm and the camera can be easily adjusted.
  • FIG. 1 is a diagram showing an example of a calibration system according to the first embodiment.
  • FIG. 2 is a diagram showing an example of the relationship between the robot coordinate system and the camera coordinate system.
  • FIG. 3 is a block diagram showing an example of the configuration of the calibration system according to the first embodiment.
  • FIG. 4 is a diagram showing an example of a three-dimensional model of the grip portion.
  • FIG. 5 is a diagram showing an example of a captured image of a virtual space in which a three-dimensional model of the grip portion is arranged.
  • FIG. 6 is a flowchart showing an example of the learning process according to the first embodiment.
  • FIG. 7 is a flowchart showing an example of the calibration process according to the first embodiment.
  • FIG. 8 is a block diagram showing an example of the configuration of the calibration system according to the second embodiment.
  • FIG. 9 is a flowchart showing an example of the calibration process according to the second embodiment.
  • FIG. 1 is a diagram showing an example of a calibration system according to the first embodiment.
  • the calibration system 1 shown in FIG. 1 includes an image pickup device 20, a robot arm 30, and a calibration device 10 (not shown), which will be described later.
  • the calibration process is executed, for example, at the timing of installing the image pickup device 20 or at the timing of activating the robot arm 30.
  • the image pickup device 20 captures an image including the grip portion 31 of the robot arm 30 and outputs the image to the calibration device 10.
  • a camera capable of capturing a plurality of images such as a known stereo camera, is used.
  • the image pickup device 20 is installed at a position where both the grip portion 31 of the robot arm 30 and the works 41, 42 and the like can be imaged.
  • the image pickup apparatus 20 images the work area including the grip portion 31 of the robot arm 30 a predetermined number of times (n times) when the calibration process is executed.
  • distortion of individual lenses of the image pickup apparatus 20, normalization of brightness, parallelization between a plurality of lenses (stereo sets) included in the image pickup apparatus 20, and the like have already been performed. It shall be calibrated.
  • the calibration device 10 estimates the position of the robot arm 30 and the like using the image output from the image pickup device 20.
  • the calibration device 10 is, for example, a coordinate transformation matrix described later based on the coordinate system of n images output from the image pickup device 20 and the coordinate system based on the joint angle of the robot arm 30 in the calibration process.
  • Generate D The calibrator 10 uses, for example, the generated coordinate transformation matrix D to transform the coordinate system in the image output from the image pickup apparatus 20 into a coordinate system based on the joint angle of the robot arm 30. Further, the calibration device 10 outputs a signal for controlling the operation of the robot arm 30 based on the position of the grip portion 31 of the robot arm 30 whose coordinates have been converted and the positions of the works 41, 42 and the like.
  • the robot arm 30 includes a grip portion (gripper) 31 that grips an object, and a plurality of joints 32a to 32f that change the position of the grip portion 31.
  • the robot arm 30 changes the joint angles of the plurality of joints 32a to 32f by known control means, for example, based on the signal output from the calibration device 10.
  • the robot arm 30 moves the grip portion 31 to grip the works 41, 42, and the like.
  • the robot arm 30 moves the grip portion 31 before the image pickup device 20 images the work area during the calibration process.
  • the works 41 and 42 are examples of objects.
  • the positions of the robot arm 30 and the grip portion 31 controlled by the calibrator 10, that is, the positions where the robot arm 30 and the grip portion 31 actually exist are the coordinates defined by the X-axis, Y-axis, and Z-axis shown in FIG. It is indicated by a system (hereinafter sometimes referred to as "robot coordinate system V").
  • robot coordinate system V the positions of the robot arm 30 and the grip portion 31 imaged by the imaging device 20, that is, the positions of the robot arm 30 and the grip portion 31 on the captured image are the X'axis, Y'axis and Z shown in FIG. 'It is indicated by the coordinate system defined by the axis (hereinafter, it may be referred to as "camera coordinate system V'").
  • the camera coordinate system V'and the robot coordinate system V are represented by, for example, the following equation (1), respectively.
  • FIG. 2 is a diagram showing an example of the relationship between the robot coordinate system and the camera coordinate system. As shown in FIG.
  • the camera coordinate system V' is converted into the robot coordinate system V by the following equation (2).
  • the coordinate transformation matrix D shown in the equation (2) is a rotation parallel traveling matrix for transforming the coordinates, for example, as shown in the equation (3).
  • the conversion of coordinates for adjusting the deviation between the camera coordinate system V'and the robot coordinate system V may be referred to as "calibration".
  • V DV' ⁇ ⁇ ⁇ (2)
  • t is a translation vector of 3 rows and 1 column.
  • R is a rotation matrix of 3 rows and 3 columns as shown in the equation (4). That is, the coordinate transformation matrix D is represented by a matrix of 4 rows and 4 columns.
  • the rotation matrix shown in the equation (4) is an example of a matrix that rotates the camera coordinate system V'around the X-axis.
  • the position 31'of the grip portion 31 in the camera coordinate system V'and the position of the grip portion 31 in the robot coordinate system V is specified, for example, by the rotation and translation of the coordinate system of another joint as seen from the coordinate system of each joint.
  • a dedicated jig or the like is necessary to be used.
  • the calibration system 1 estimates the position 31'of the grip portion 31 in the camera coordinate system V'using the learning model.
  • the three-dimensional model of the grip portion 31 of the robot arm 30 is arranged in the virtual space, and the information on the position of the three-dimensional model of the grip portion 31 of the robot arm 30 in the virtual space. Is specified from the image to acquire the teacher data used to create the learning model.
  • the combination of the captured image that captures the virtual space in which the three-dimensional model of the grip portion 31 is arranged and the position information (coordinates) of the three-dimensional model in the captured image is used as the teacher data. ..
  • the calibration system 1 has coordinates V'i indicating the position 31'of the grip portion 31 in the camera coordinate system V'estimated from the image captured the i-th time using the learning model. Is converted into the coordinate Vi indicating the position 31'at the time of the i-th imaging of the grip portion 31 in the robot coordinate system. At that time, for example, the calibration system 1 calculates the coordinate Vi indicating the position of the grip portion 31 in the robot coordinate system when the image corresponding to the coordinate V'i is captured. The coordinate Vi is calculated based on, for example, the rotation and translation of the coordinate system of the other joint as seen from the coordinate system of each joint of the robot arm 30.
  • the calibration system 1 estimates the coordinate transformation matrix D by using, for example, the error between the coordinates V'i in the camera coordinate system V'and the coordinates Vi in the robot coordinate system V.
  • the rotation and translation of the coordinate system of another joint as seen from the coordinate system of each joint may be referred to as "displacement of the joint angle”.
  • the coordinates related to the position 31'of the grip portion 31 in the camera coordinate system V' are referred to as "first coordinate information”
  • second coordinate information the coordinates related to the position of the grip portion 31 in the robot coordinate system V. It may be written as.
  • FIG. 3 is a block diagram showing an example of the configuration of the calibration system according to the first embodiment.
  • the calibration device 10 is communicably connected to the image pickup device 20 and the robot arm 30 through the network NW. Further, as shown in FIG. 3, the calibration device 10 includes a communication unit 11, an input unit 12, a display unit 13, a storage unit 14, and a processing unit 15.
  • the communication unit 11 controls data input / output communication with an external device through the network NW.
  • the communication unit 11 is realized by a network card, a network adapter, a NIC (Network Interface Controller), etc., receives image data output from the image pickup device 20, and transmits a signal to be output to the robot arm 30.
  • the input unit 12 is connected to the processing unit 15, converts the input operation received from the administrator (not shown) of the calibration device 10 into an electric signal, and outputs the input operation to the processing unit 15.
  • the input unit 12 is a switch, a button, a mouse, a keyboard, a touch panel, or the like. Further, the input unit 12 may be an interface or the like for connecting an external input device to the calibration device 10.
  • the display unit 13 is connected to the processing unit 15 and displays various information and various image data output from the processing unit 15.
  • the display unit 13 is realized by a liquid crystal monitor, a CRT (Cathode Ray Tube) monitor, a touch panel, an organic EL (Electro Luminescence), or the like.
  • the storage unit 14 is realized by, for example, a storage device such as a RAM (Random Access Memory) or a magnetic storage device.
  • the storage unit 14 stores various programs executed by the processing unit 15. Further, the storage unit 14 temporarily stores various mathematical formulas used when various programs are executed by the processing unit 15 and various data such as images output from the image pickup apparatus 20.
  • the storage unit 14 stores the learning model 141 and the coordinate conversion information 142.
  • the learning model 141 is used in a process of estimating the position 31'on the camera coordinate system V'of the grip portion 31 of the robot arm 30 from the image output from the image pickup device 20.
  • the learning model 141 includes, for example, a neural network structure 141a and a learning parameter 141b.
  • the neural network structure 141a is a network structure to which a known network such as a convolutional neural network is applied.
  • the learning parameter 141b is, for example, the weight of the convolutional filter of the convolutional neural network, and is a parameter that is learned and optimized for estimating the position 31'in the camera coordinate system V'of the grip portion 31 of the robot arm.
  • the learning model 141 teaches, for example, a combination of a captured image that captures the virtual space in which the three-dimensional model of the grip portion 31 as described above is arranged and the position information (coordinates) of the three-dimensional model in the captured image. It is generated by learning as data.
  • the learning model 141 is generated or updated by, for example, the learning unit 152 described later.
  • the coordinate conversion information 142 is, for example, the coordinate conversion matrix D used for converting the camera coordinate system V'to the robot coordinate system V described above.
  • the coordinate conversion information 142 is generated, for example, by the conversion information generation unit 156, which will be described later.
  • the processing unit 15 is realized by a processor such as a CPU (Central Processing Unit).
  • the processing unit 15 controls the entire calibration device 10.
  • the processing unit 15 reads various programs stored in the storage unit 14 and executes the read programs to execute various processes.
  • the processing unit 15 includes a space generation unit 151, a learning unit 152, a robot control unit 153, a first coordinate generation unit 154, a second coordinate generation unit 155, a conversion information generation unit 156, and a conversion unit 157. And will have.
  • the space generation unit 151 generates a virtual space including a three-dimensional model of the grip portion 31 of the robot arm 30.
  • the space generation unit 151 acquires a three-dimensional model of the grip portion 31 of the robot arm 30.
  • the three-dimensional model can be obtained by, for example, a known method such as 3D scanning.
  • FIG. 4 is a diagram showing an example of a three-dimensional model of the grip portion.
  • a pair of grip portions 31a and 31b are shown in the three-dimensional model of the grip portion 31 of the robot arm 30, for example.
  • the markers 33a and 33b shown by the broken lines in FIG. 4 indicate the positions of the grip portions 31a and 31b, and are not shown in the virtual space described later.
  • the position information of the markers 33a and 33b is shown as, for example, metadata added to the generated virtual space.
  • the space generation unit 151 sets various conditions for arranging the three-dimensional model of the grip unit 31 in the virtual space. Conditions such as the number, position, and orientation of the three-dimensional models to be arranged can be set so that the image generation software randomly generates an object, but the present invention is not limited to this, and the administrator of the calibration device 10 can arbitrarily set the conditions. It may be set. Twice
  • the space generation unit 151 arranges the three-dimensional model in the virtual space according to the set conditions.
  • the arrangement of the three-dimensional model in the virtual space can be performed using, for example, known image generation software or the like.
  • the virtual space in which the three-dimensional model is arranged will be described in detail later.
  • the space generation unit 151 sets conditions for arranging the three-dimensional model after the capture in the learning unit 152, which will be described later, in order to secure the necessary number of teacher data for the learning process, and virtual. Repeat the placement of the 3D model in space. By acquiring the three-dimensional model and arranging it in the virtual space in this way, the camera coordinate system V of the grip portion 31 of the robot arm 30 arranged at a position on the arbitrary robot coordinate system V in the virtual space. The position in'can be specified more accurately.
  • the learning unit 152 performs a learning process for generating or updating the learning model 141 using the data in the virtual space in which the three-dimensional model of the gripping unit 31 of the robot arm 30 is arranged.
  • the learning unit 152 captures, for example, a virtual space in which the three-dimensional model of the grip portion 31 of the robot arm 30 is arranged, thereby displaying an image showing the position of the three-dimensional model of the grip portion 31 of the arranged robot arm 30. get.
  • FIG. 5 is a diagram showing an example of a captured image of a virtual space in which a three-dimensional model of the grip portion is arranged.
  • the three-dimensional model of the grip portion 31 of the robot arm 30 is arranged at a position according to the set conditions on the virtual space. Further, as described above, the combination of the captured image captured in the virtual space in which the 3D model arranged in the virtual space is arranged and the position information (coordinates) of the 3D model in the captured image is learned. It is used as teacher data in processing.
  • a three-dimensional model of works 41, 42, etc. and other objects such as trays on which the works 41, 42 are arranged may be further arranged in the virtual space.
  • three-dimensional models of a plurality of grip portions may be further arranged in the virtual space.
  • the position information of the grip portion 31a the position information of the grip portion 91a and the position information of the works 41, 42, the tray, etc. are also used as a part of the teacher data.
  • the three-dimensional models of the plurality of grip portions are arranged in pairs on the left and right, as in the case of the three-dimensional models of the grip portions 31a and 31b shown in FIG. 4, but are not limited to this.
  • the three-dimensional model of the grip portion may be arranged one by one (only the grip portion 31a).
  • the three-dimensional model of the grip portion may be arranged in a set of three, or may be arranged in a set of four or more.
  • three-dimensional models of a plurality of grip portions 31a and 91a may be arranged at random positions as shown in FIG.
  • the number of three-dimensional models of the grip portion arranged in the virtual space is not limited to one or two, and may be three or more.
  • the position of the three-dimensional model of the grip portion 31 of the robot arm 30 is indicated by, for example, three-dimensional coordinates (x, y, z).
  • the learning unit 152 stores the acquired image in the storage unit 14 in association with conditions such as the position and posture of the three-dimensional model of the gripping unit 31 of the robot arm 30 to be arranged.
  • the learning unit 152 repeats the storage of the associated image and the condition a predetermined number of times in order to secure the number of teacher data required for the learning process. Then, the learning unit 152 generates or updates the learning parameter 141b used as weighting in the neural network structure 141a by performing the learning process a predetermined number of times using the generated teacher data.
  • the robot control unit 153 controls the operations of the robot arm 30 and the grip unit 31.
  • the robot control unit 153 controls the operation of the robot arm 30 by outputting information indicating, for example, the amount of rotation of each joint 32a to 32f of the robot arm 30 and the opening / closing angle of the grip portion 31.
  • the robot control unit 153 rotates each joint 32a to 32f of the robot arm 30 by a predetermined amount before the image pickup device 20 captures an image. As a result, the robot control unit 153 moves the position of the grip unit 31. Then, the grip portion 31 after movement is imaged by the image pickup device 20. By repeating the movement and imaging of the grip portion 31 n times, the images of the grip portions 31 of the n robot arms 30 having different positions and the n positions of the grip portions 31 of the robot arm 30 in the robot coordinate system V Information can be obtained.
  • the robot control unit 153 generates information for controlling the robot arm 30 when the gripping unit 31 grips the works 41, 42, and the like, and outputs the information to the robot arm 30. At that time, the robot control unit 153 controls the robot arm 30 based on the coordinates indicating the positions of the grip portions 31 of the robot arm 30 such as the works 41 and 42 in the robot coordinate system V converted by the conversion unit 157. Generate information.
  • the robot control unit 153 may be configured to move the positions of a plurality of (p) gripping units 31, for example.
  • the first coordinate generation unit 154 generates the first coordinate information which is the coordinate information in the camera coordinate system V'using the image including the grip portion 31 captured by the image pickup apparatus 20 and the learning model.
  • the first coordinate generation unit 154 acquires, for example, n images captured by the image pickup apparatus 20 via the communication unit 11.
  • First coordinate generator 154 from the acquired n images, n number of first coordinate information V '1, V' to produce a 2 ⁇ ⁇ ⁇ V 'n.
  • the first coordinate generation unit 154 may measure the distance from the image pickup device 20 in the camera coordinate system V'based on, for example, the parallax of the left and right images captured by the image pickup device 20.
  • the first coordinate generation unit 154 When the image captured by the image pickup device 20 includes a plurality of grips 31, such as when the robot control unit 153 moves the positions of the plurality of grips 31, the first coordinate generation unit 154 has 1 A plurality of first coordinate information V'n are generated for one image. For example, the first coordinate generation unit 154 generates n ⁇ p first coordinate information V'np from n images including the p grip portions 31.
  • the second coordinate generation unit 155 generates the second coordinate information, for example, by synthesizing the robot joint angles represented by the equation (5).
  • 0 Q m of the equation (5) is the second coordinate information V.
  • j indicates the order of the joints from the joint 32a to the grip portion 31. Therefore, in the equation (5), m represents the number of joints of the robot arm 30 plus 1 (the position to be obtained).
  • the desired position is, for example, the position of the tip of the grip portion 31.
  • 0 represents the origin in the robot coordinate system.
  • 0 Q 1 indicates the displacement of the first joint (joint 32a) as seen from the origin of the robot coordinate system.
  • j-1 Q j indicates the displacement of the jth joint as seen from the robot coordinate system of the j-1st joint.
  • m-1 Q m indicates the displacement of the m-1th joint from the robot coordinate system to the tip of the grip portion 31.
  • V n1 , V n2 ... V np of the robot arm 30 including the six joints 32a to 32f and the p grip portions 31 as shown in FIG.
  • m 7 (number of joints + 1 (each grip portion)), and j is an integer in the range of 0 ⁇ j ⁇ m.
  • the coordinate transformation matrix j-1 Q j indicating the displacement of individual joints is represented by, for example, the following formula (6).
  • t is a translation vector of 3 rows and 1 column
  • R is a rotation matrix of 3 rows and 3 columns. That is, the coordinate transformation matrix j-1 Q j showing the displacement of individual joints is also shown by a matrix of 4 rows and 4 columns.
  • t indicates the position of the joint and R indicates the rotation of the joint.
  • Second coordinate generating unit 155 for example, at the time of the n first coordinate information V '1, V' 2 ⁇ V 'n n pieces of the image used for the generation of imaged, the robot arm
  • the n second coordinate information V 1 , V 2 ... V n in the robot coordinate system V of the grip portion 31 of 30 is generated.
  • the second coordinate generation unit 155 when the robot control unit 153 moves the positions of the plurality of gripping units 31, the second coordinate generation unit 155 generates a plurality of second coordinate information V n .
  • the second coordinate generation unit 155 generates n ⁇ p second coordinate information V np from n images including the p grip portions 31.
  • the transformation information generation unit 156 estimates or updates the coordinate transformation matrix D such that the error E is minimized by using an approximation means or the like.
  • X i indicates the X component of the second coordinate information
  • X (D, X'i ) indicates the X component of the multiplication result of the coordinate transformation matrix D and the first coordinate information.
  • Y i represents the Y component of the second coordinate information
  • Y (D, Y 'i) denotes a multiplication result of the Y component of the coordinate transformation matrix D and the first coordinate information.
  • Z i represents a Z component of the second coordinate information
  • Z (D, Z 'i) denotes a Z component of the multiplication result between the coordinate transformation matrix D and the first coordinate information. That is, the transformation information generation unit 156 uses the equation (7) to minimize the error E between the n first coordinate information V'n and the n second coordinate information V n.
  • Estimate D As the approximation means, for example, known numerical analysis methods such as Newton's method, gradient effect method, LM method, and least squares method are used. When estimating the coordinate transformation matrix D, it is desirable that the initial value of the coordinate transformation matrix D be as small as possible.
  • the conversion unit 157 converts the first coordinate information into the second coordinate information.
  • the conversion unit 157 converts the first coordinate information V'to the second coordinate information V by the equation (2), for example, using the coordinate conversion matrix D generated by the conversion information generation unit 156.
  • FIG. 6 is a flowchart showing an example of the learning process according to the first embodiment.
  • the space generation unit 151 acquires a three-dimensional model of the grip portion 31 of the robot arm 30 (step S101).
  • the space generation unit 151 sets the position, posture, and the like of the three-dimensional model, which is a condition for arranging the grip portion 31 of the robot arm 30 that has acquired the three-dimensional model (step S102).
  • the space generation unit 151 arranges at least one grip portion 31 of the robot arm 30 whose position and posture have been determined in the virtual space (step S103).
  • the learning unit 152 acquires the captured image, position, and posture of the grip portion 31 of the robot arm 30 by capturing, for example, the virtual space in which the three-dimensional model of the grip portion 31 of the robot arm 30 is arranged. (Step S104). Then, the learning unit 152 stores the combination of the acquired image and the position and posture of the arranged gripping unit 31 in the storage unit 14 as teacher data (step S105). Further, the learning unit 152 repeats steps S102 to S105 a predetermined number of times (step S106: No). By repeating the processes from step S102 to step S105 a predetermined number of times, a sufficient number of teacher data is generated to repeat the learning process.
  • step S106 determines that the number of times of repeating steps S102 to S105 has reached a predetermined number of times.
  • the learning unit 152 performs a learning process using the generated teacher data (step S107).
  • the learning model 141 is generated or updated.
  • FIG. 7 is a flowchart showing an example of the calibration process according to the first embodiment.
  • the robot control unit 153 moves the grip portion 31 of the robot arm 30 to a predetermined position (step S201).
  • the image pickup device 20 takes an image of the work area including the grip portion 31 and outputs it to the calibration device 10 (step S202).
  • the first coordinate generation unit 154 shows the position 31'and the posture of the grip portion 31 on the camera coordinate system V'using the learning model from the image including the grip portion 31 acquired from the image pickup apparatus 20. generating a first coordinate information V 'n (step S203). Further, the second coordinate generation unit 155 calculates the second coordinate information V1 n indicating the position and orientation of the grip portion 31 of the robot arm 30 in the robot coordinate system V based on the displacement of each joint angle of the robot arm 30. (Step S204).
  • the conversion information generation unit 156 determines whether or not the steps S201 to S204 have been repeated a predetermined number of times (step S210). When it is determined that the predetermined number of times has not been reached (step S210: No). The process returns to step S201 and the process is repeated.
  • step S210 When the conversion information generation unit 156 determines that the number of times of repeating steps S201 to S204 has reached a predetermined number (step S210: Yes), the conversion information generation unit 156 uses the first conversion information and the second conversion information to perform coordinate conversion. Generate or update the matrix D (step S220).
  • the calibration system 1 in the first embodiment includes a robot arm, an imaging device, and a calibration device.
  • the robot arm is provided with a grip portion at the tip for gripping an object to be gripped.
  • the imaging device generates at least one captured image by imaging the robot arm from a predetermined direction.
  • the calibration device includes a first coordinate generation unit and a conversion unit.
  • the first coordinate generation unit machine-learns a plurality of teacher data having an image capturing a virtual space including a three-dimensional model of the robot arm and information indicating the position of the grip portion of the robot arm included in the virtual space.
  • first coordinate information indicating the position of the grip portion in the captured image coordinate system based on the captured image is generated.
  • the conversion unit is based on the coordinate conversion information and the first coordinate information used in the coordinate conversion process for converting the first coordinate information into the second coordinate information indicating the position of the grip portion in the robot coordinate system based on the robot arm.
  • the first coordinate information is converted into the second coordinate information.
  • FIG. 8 is a block diagram showing an example of the configuration of the calibration system according to the second embodiment.
  • the calibration system 1a in the second embodiment includes a calibration device 10a in place of the calibration device 10 in the first embodiment.
  • the processing unit 15a of the calibration device 10a includes a conversion information generation unit 156a instead of the conversion information generation unit 156 in the first embodiment. Further, the processing unit 15a further includes an error imparting unit 158a.
  • the error adding unit 158a adds an error to the second coordinate information V n generated by the second coordinate generating unit 155 to generate the error second coordinate information V " n .
  • the error adding unit 158a generates the error second coordinate information V" n.
  • the information V n is decomposed into the coordinate transformation matrix of each joint as shown in the equation (5).
  • the error addition unit 158a is a rotation matrix j-1 R j of the individual coordinate transformation matrix j-1 Q j decomposed. An offset ⁇ j-1 R j indicating an error is added to the above.
  • the error adding unit 158a also adds an offset ⁇ j-1 indicating an error to the translation vector t of the individual coordinate transformation matrix j-1 Q j. t j is added.
  • the individual coordinate transformation matrix j-1 Q " j to which the offset is added is shown in Eq. (8).
  • the offsets ⁇ j-1 R j and ⁇ j-1 t j may be simply referred to as offsets ⁇ R and ⁇ t.
  • the error adding unit 158a generates the error second coordinate information Q ”as shown in the equation (9) by synthesizing the coordinate transformation matrix as shown in the equation (8).
  • the conversion information generation unit 156a generates conversion information based on the first coordinate information and the error second coordinate information.
  • the transformation information generation unit 156a estimates or updates the coordinate transformation matrix D ”, the offset ⁇ R, and the offset ⁇ t so that the error E is minimized by using an approximation means or the like.
  • X " i indicates the X component of the error second coordinate information
  • X (D", X'i ) represents the X component of the multiplication result of the coordinate transformation matrix D "and the first coordinate information. show.
  • Y “i denotes the Y component of the error second coordinate information
  • Y (D", Y ' i) denotes a multiplication result of the Y component of the coordinate transformation matrix D "as the first coordinate information
  • Z “i denotes the Z component of the error second coordinate information
  • Z (D", Z ' i) denotes a Z component of the multiplication result between the first coordinate information and the coordinate conversion matrix D ".
  • FIG. 9 is a flowchart showing an example of the calibration process according to the second embodiment. Since the processing in steps S201 to S210 is the same as the calibration processing according to the first embodiment, detailed description thereof will be omitted.
  • the error giving unit 158a provides the second coordinate information for each joint. It is decomposed into a coordinate transformation matrix (step S301).
  • the error adding unit 158a adds the offsets ⁇ R and ⁇ t to the rotation matrix and the translation vector of each of the decomposed coordinate transformation matrices (step S302). Then, the error adding unit 158a multiplies the coordinate transformation matrix to which the offsets ⁇ R and ⁇ t are added to calculate the error second coordinate information V ”(step S303).
  • the conversion information generation unit 156a generates a coordinate conversion matrix D "as coordinate conversion information based on the first coordinate information V'and the error second coordinate information V" (step S320).
  • the second coordinate generation unit generates the error second coordinate information including the information regarding the error in the rotation direction, the angle and the translation position of the joint angle
  • the coordinate conversion information generation unit generates the error second coordinate information.
  • the coordinate conversion information is generated based on the first coordinate information and the error second coordinate information.
  • the learning process as shown in FIG. 6 may be performed by another device. That is, the space generation unit 151 and the learning unit 152 shown in FIG. 3 may be provided in another device instead of the calibration device 10 shown in FIG. In this case, the calibration device 10 may be configured to acquire the learning model 141 from an external device and store it in the storage unit 14.
  • the robot control process may be configured to be performed by another device. That is, the robot control unit 153 shown in FIG. 3 may also be provided in another device instead of the calibration device 10. Further, the calibration system 1 does not have the image pickup device 20, and the calibration process may be performed using an image acquired from an external camera or the like.
  • the first coordinate generation unit 154 is the center of the grip units 31 detected for one image. only may the be as adopted configuration as the first coordinate information V 'n that fall under value. In this case, for example, the first coordinate generator 154, the n images comprising p number of gripper 31, to produce a n ⁇ 1 one first coordinate information V 'n.
  • the various conditions for arranging the three-dimensional model in the virtual space described above are not limited to the positions and orientations of the three-dimensional models of the grip portion 31 and the works 41 and 42, for example, the angle of view of the camera.
  • the number of pixels, the distance of the baseline of the stereo set, and the like may be set.
  • various conditions include the range of randomization of the position and rotation of the camera, the range of randomization of the brightness, angle and position of the light in the virtual space, and the grip portions 31 and the workpieces 41 and 42 arranged in the virtual space. It may be the position, angle, number, etc. of the dimensional model.
  • various conditions may be the presence / absence of other obstacles such as trays on which the works 41 and 42 are arranged, the number of obstacles, the class, and the like.
  • a class is information that uniquely identifies an arrangement arranged in a virtual space.
  • the class under various conditions is, for example, a combination of letters, numbers, symbols, and the like.
  • the class may be any information as long as it does not overlap with other classes.
  • the arrangement is, for example, a three-dimensional model, work or obstacle.
  • the type of work may be one type. Further, the works 41, 42 and the like are arranged so that their positions and postures are irregular, but they may be arranged regularly. Further, as shown in FIG. 1, for example, a plurality of works may be arranged so as to overlap each other in a top view.
  • the learning model 141 may output angle information indicating the inclination of the gripper in addition to the coordinates indicating the position of the gripper.
  • the amount of rotation in which the robot control unit 153 operates the joints 32a to 32f of the robot arm 30 may be different each time.
  • Algorithm may be used.
  • the position of the grip portion 31 of the robot arm 30 and the configuration using the three-dimensional model have been described.
  • the configuration may be such that the model is further used.
  • conditions may be provided such that the robot arm 30 becomes an obstacle when capturing the grip portion 31.
  • the order of the processes shown in the flowchart may be changed or executed at the same time.
  • the calibration device 10 may generate the second coordinate information before the first coordinate information, and the first coordinate information and the second coordinate information are generated. It may be generated in parallel.
  • the configuration in which the robot arm 30 moves the grip portion 31 before the imaging by the imaging device 20 is performed during the calibration process has been described, but the embodiment is not limited to this.
  • the robot arm 30 may move the grip portion 31 after the image pickup is performed by the image pickup device 20 and the first coordinate information and the second coordinate information are generated.
  • the present invention is not limited by the above-described embodiment.
  • the present invention also includes a configuration in which the above-mentioned components are appropriately combined. Further, further effects and modifications can be easily derived by those skilled in the art. Therefore, the broader aspect of the present invention is not limited to the above-described embodiment, and various modifications can be made.

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)
  • Manipulator (AREA)
  • Numerical Control (AREA)

Abstract

本発明の一態様に係る較正装置は、把持対象物を把持する把持部を先端に備えるロボットアームと、撮像装置と、較正装置とを備える較正システムにおいて、把持部に関する3次元モデルを含む仮想空間をキャプチャした画像と仮想空間に含まれる把持部の位置を示す情報とを有する複数の教師データを機械学習することで生成される学習モデルと、把持部を所定の方向から撮像した撮像画像と、に基づいて、撮像画像を基準とした撮像画像座標系における把持部の位置を示す第1座標情報を生成する。較正装置は、ロボットアームを基準とするロボット座標系における把持部の位置を示す第2座標情報に第1座標情報を座標変換する座標変換処理に用いられる座標変換情報を用いて、第1座標情報を第2座標情報に座標変換する。

Description

較正システム、情報処理システム、ロボット制御システム、較正方法、情報処理方法、ロボット制御方法、較正プログラム、情報処理プログラム、較正装置、情報処理装置、及びロボット制御装置
 本発明は、較正システム、情報処理システム、ロボット制御システム、較正方法、情報処理方法、ロボット制御方法、較正プログラム、情報処理プログラム、較正装置、情報処理装置、及びロボット制御装置に関する。
 バラ積みされた複数の対象物(ワーク)をロボットアーム等により把持するために、ロボットアームの3次元位置を認識する技術が知られている。その際、ロボットアームを撮像した画像を含む教師データを用いて、ロボットアームの位置を画像から推定するための学習モデルを生成する技術が知られている。ロボットアームとカメラとの位置関係を調整する際に、カメラによる認識対象となる二次元コードやカラーパターン等のマーカをロボットアームに付して、マーカをカメラで検出する場合がある。この場合において、カメラで撮像することにより検出されたマーカの位置が、学習処理における教師データとして用いられる。
特開2018-144152号公報 特開2019-171540号公報
 しかし、検出対象となるロボットアームの指先である把持部の位置にマーカを付することは難しいため、位置関係の調整を正確に行えない場合がある。正確に位置関係の調整を行うには、例えば、ロボットアームの把持部を専用の治具に取り換える等の作業が必要となる。
 本発明は、上記課題を一例とするものであり、ロボットアームとカメラとの位置関係を容易に調整できる較正システム、情報処理システム、ロボット制御システム、較正方法、情報処理方法、ロボット制御方法、較正プログラム、情報処理プログラム、較正装置、情報処理装置、及びロボット制御装置を提供することを目的とする。
 本発明の一態様に係る較正システムは、ロボットアームと、撮像装置と、較正装置とを備える。ロボットアームは、把持対象物を把持する把持部を先端に備える。撮像装置は、ロボットアームを所定の方向から撮像することで少なくとも1つの撮像画像を生成する。較正装置は、第1座標生成部と、第2座標生成部と、変換部とを備える。第1座標生成部は、ロボットアームに関する3次元モデルを含む仮想空間をキャプチャした画像と仮想空間に含まれるロボットアームの把持部の位置を示す情報とを有する複数の教師データを機械学習することで生成される学習モデルと、ロボットアームを所定の方向から撮像した撮像画像と、に基づいて、撮像画像を基準とした撮像画像座標系における把持部の位置を示す第1座標情報を生成する。変換部は、ロボットアームを基準とするロボット座標系における把持部の位置を示す第2座標情報に第1座標情報を座標変換する座標変換処理に用いられる座標変換情報と第1座標情報とに基づいて、第1座標情報を第2座標情報に座標変換する。
 本発明の一態様によれば、ロボットアームとカメラとの位置関係を容易に調整できる。
図1は、第1の実施形態に係る較正システムの一例を示す図である。 図2は、ロボット座標系とカメラ座標系との関係の一例を示す図である。 図3は、第1の実施形態に係る較正システムの構成の一例を示すブロック図である。 図4は、把持部の3次元モデルの一例を示す図である。 図5は、把持部の3次元モデルが配置された仮想空間のキャプチャ画像の一例を示す図である。 図6は、第1の実施形態に係る学習処理の一例を示すフローチャートである。 図7は、第1の実施形態に係る較正処理の一例を示すフローチャートである。 図8は、第2の実施形態に係る較正システムの構成の一例を示すブロック図である。 図9は、第2の実施形態に係る較正処理の一例を示すフローチャートである。
 以下、実施形態に係る較正システム、情報処理システム、ロボット制御システム、較正方法、情報処理方法、ロボット制御方法、較正プログラム、情報処理プログラム、較正装置、情報処理装置、及びロボット制御装置について図面を参照して説明する。なお、この実施形態によりこの発明が限定されるものではない。また、図面における各要素の寸法の関係、各要素の比率などは、現実と異なる場合がある。図面の相互間においても、互いの寸法の関係や比率が異なる部分が含まれている場合がある。また、1つの実施形態や変形例に記載された内容は、原則として他の実施形態や変形例にも同様に適用される。
(第1の実施形態)
 図1は、第1の実施形態に係る較正システムの一例を示す図である。図1に示す較正システム1は、撮像装置20と、ロボットアーム30と、後に説明する、図示しない較正装置10とを備える。較正処理は、例えば、撮像装置20を設置するタイミングや、ロボットアーム30を起動するタイミングで実行される。
 撮像装置20は、ロボットアーム30の把持部31を含む画像を撮像し、較正装置10に出力する。第1の実施形態における撮像装置20には、例えば公知のステレオカメラ等、複数の画像を撮像できるカメラが用いられる。撮像装置20は、ロボットアーム30の把持部31及びワーク41、42等の両方を撮像可能な位置に設置される。撮像装置20は、後に説明するように、較正処理が実行される際に、ロボットアーム30の把持部31を含む作業領域を所定の回数(n回)撮像する。なお、第1の実施形態においては、撮像装置20の個別のレンズの歪みや、輝度の正規化、撮像装置20に含まれる複数のレンズ(ステレオセット)間での平行化等については、それぞれ既に較正済みであるものとする。
 較正装置10は、撮像装置20から出力された画像を用いて、ロボットアーム30等の位置を推定する。較正装置10は、例えば、較正処理において、撮像装置20から出力されたn枚の画像における座標系と、ロボットアーム30の関節角を基準とする座標系とに基づいて、後に説明する座標変換行列Dを生成する。較正装置10は、例えば、生成された座標変換行列Dを用いて、撮像装置20から出力された画像における座標系を、ロボットアーム30の関節角を基準とする座標系に座標変換する。また、較正装置10は、座標変換されたロボットアーム30の把持部31の位置やワーク41、42等の位置に基づいて、ロボットアーム30の動作を制御する信号を出力する。
 ロボットアーム30は、対象物を把持する把持部(グリッパ)31と、把持部31の位置を変化させる複数の関節32a乃至32fとを備える。ロボットアーム30は、例えば、較正装置10から出力された信号に基づいて、公知の制御手段により、複数の関節32a乃至32fの関節角を変化させる。これにより、ロボットアーム30は、把持部31を移動させ、ワーク41、42等を把持する動作を行う。ロボットアーム30は、例えば、後に説明するように、較正処理の際に撮像装置20が作業領域を撮像する前に、把持部31を移動させる。なお、ワーク41、42は、対象物の一例である。
 較正装置10により制御されたロボットアーム30及び把持部31の位置、すなわち実際にロボットアーム30及び把持部31が存在する位置は、図1に示すX軸、Y軸及びZ軸により規定される座標系(以下において「ロボット座標系V」と表記する場合がある)により示される。また、撮像装置20により撮像されたロボットアーム30及び把持部31の位置、すなわち撮像された画像上におけるロボットアーム30及び把持部31の位置は、図1に示すX’軸、Y’軸及びZ’軸により規定される座標系(以下において「カメラ座標系V’」と表記する場合がある。)により示される。カメラ座標系V’、及びロボット座標系Vは、例えば、それぞれ、以下の式(1)により示される。
Figure JPOXMLDOC01-appb-M000001
 較正装置10により制御されたロボットアーム30の把持部31の位置と、撮像装置20により撮像された把持部31の位置31’の、設計上の位置関係と実際に設置した際の位置関係との間には、ずれが生じる場合がある。この位置のずれは、例えば、撮像装置20に含まれるステレオセットの設計値と現物の機械的な誤差や、撮像装置20とロボットアーム30を設置した際の距離等の設計値との誤差に応じて生じる。図2は、ロボット座標系とカメラ座標系との関係の一例を示す図である。図2に示すように、実線で示すカメラ座標系V’におけるロボットアーム30の位置30’及び把持部31の位置31’と、破線で示すロボット座標系Vにおけるロボットアーム30及び把持部31の位置との間に、ずれが生じる。
 そこで、以下に示す式(2)により、カメラ座標系V’がロボット座標系Vに変換される。式(2)に示す座標変換行列Dは、例えば式(3)に示されるような、座標を変換するための回転並進行列である。なお、以下において、カメラ座標系V’とロボット座標系Vとのずれを調整するための座標の変換を、「較正」と表記する場合がある。
 V = DV’     ・・・(2)
Figure JPOXMLDOC01-appb-M000002
 なお、式(3)において、例えば、tは3行1列の並進ベクトルである。また、例えば、Rは式(4)に示すような3行3列の回転行列である。すなわち、座標変換行列Dは、4行4列の行列で示される。なお、式(4)に示す回転行列は、カメラ座標系V’をX軸周りに回転させる行列の一例である。
Figure JPOXMLDOC01-appb-M000003
 座標変換行列Dを算出するには、まず、カメラ座標系V’における把持部31の位置31’と、ロボット座標系Vにおける把持部31の位置とを特定する必要がある。ロボット座標系Vにおける把持部31の位置は、例えば、各関節の座標系から見た、他の関節の座標系の回転及び並進により特定される。一方、上で述べたように、カメラ座標系V’における把持部31の位置31’を正確に特定するには、専用の治具等を用いる必要がある。
 そこで、第1の実施形態において、較正システム1は、学習モデルを用いて、カメラ座標系V’における把持部31の位置31’を推定する。その際、第1の実施形態においては、仮想空間上にロボットアーム30の把持部31の3次元モデルを配置し、仮想空間上でのロボットアーム30の把持部31の3次元モデルの位置の情報を画像から特定することにより、学習モデルの作成に用いられる教師データを取得する。第1の実施形態においては、把持部31の3次元モデルが配置された仮想空間をキャプチャしたキャプチャ画像と、キャプチャ画像における3次元モデルの位置情報(座標)との組み合わせが、教師データとして用いられる。
 また、第1の実施形態において、較正システム1は、i回目に撮像された画像から、学習モデルを用いて推定されたカメラ座標系V’における把持部31の位置31’を示す座標V’iを、ロボット座標系における把持部31のi回目の撮像時の位置31’を示す座標Viに変換する。その際、例えば、較正システム1は、座標V’iに対応する画像が撮像された際の把持部31のロボット座標系における位置を示す座標Viを算出する。座標Viは、例えば、ロボットアーム30の各関節の座標系から見た、他の関節の座標系の回転及び並進等に基づいて算出される。そして、較正システム1は、例えば、カメラ座標系V’における座標V’iと、ロボット座標系Vにおける座標Viとの誤差を用いて、座標変換行列Dを推定する。なお、以下において、各関節の座標系から見た、他の関節の座標系の回転及び並進を、「関節角の変位」と表記する場合がある。また、以下において、カメラ座標系V’における把持部31の位置31’に関する座標を「第1座標情報」と表記し、ロボット座標系Vにおける把持部31の位置に関する座標を「第2座標情報」と表記する場合がある。
 図3は、第1の実施形態に係る較正システムの構成の一例を示すブロック図である。図3に示すように、較正装置10は、撮像装置20及びロボットアーム30と、ネットワークNWを通じて通信可能に接続されている。また、図3に示すように、較正装置10は、通信部11と、入力部12と、表示部13と、記憶部14と、処理部15とを備える。
 通信部11は、ネットワークNWを通じた外部装置とのデータ入出力の通信を制御する。例えば、通信部11は、ネットワークカードやネットワークアダプタ、NIC(Network Interface Controller)等によって実現され、撮像装置20から出力される画像のデータを受信するとともに、ロボットアーム30に出力する信号を送信する。
 入力部12は、処理部15に接続され、較正装置10の管理者(不図示)から受け付けた入力操作を電気信号に変換して処理部15に出力する。例えば、入力部12は、スイッチ、ボタン、マウス、キーボード、タッチパネル等である。また、入力部12は、外部の入力装置を較正装置10に接続するためのインターフェース等であってもよい。
 表示部13は、処理部15に接続され、処理部15から出力される各種情報及び各種画像データを表示する。例えば、表示部13は、液晶モニタ、CRT(Cathode Ray Tube)モニタ、タッチパネル又は有機EL(Electro Luminescence)等によって実現される。
 記憶部14は、例えば、RAM(Random Access Memory)又は磁気記憶装置等の記憶装置により実現される。記憶部14には、処理部15により実行される各種のプログラムが記憶されている。また、記憶部14には、処理部15により各種のプログラムが実行される際に用いられる各種の数式や、撮像装置20から出力された画像等の各種のデータが一時的に記憶される。記憶部14は、学習モデル141と、座標変換情報142とを記憶する。
 学習モデル141は、撮像装置20から出力された画像から、ロボットアーム30の把持部31のカメラ座標系V’上の位置31’を推定する処理に用いられる。学習モデル141は、例えば、ニューラルネットワーク構造141aと学習パラメータ141bを備えている。ニューラルネットワーク構造141aは、例えば、畳み込みニューラルネットワークのような公知のネットワークを応用したネットワーク構造である。学習パラメータ141bは、例えば、畳み込みニューラルネットワークの畳み込みフィルタの重みであり、ロボットアームの把持部31のカメラ座標系V’における位置31’を推定するために学習され、最適化されるパラメータである。
 学習モデル141は、例えば、上で述べたような把持部31の3次元モデルが配置された仮想空間をキャプチャしたキャプチャ画像と、キャプチャ画像における3次元モデルの位置情報(座標)との組み合わせを教師データとして学習することにより生成される。学習モデル141は、例えば、後に説明する学習部152により生成され、又は更新される。
 座標変換情報142は、例えば、上で述べた、カメラ座標系V’をロボット座標系Vに変換するために用いられる座標変換行列Dである。座標変換情報142は、例えば、後に説明する変換情報生成部156により生成される。
 処理部15は、CPU(Central Processing Unit)等のプロセッサにより実現される。処理部15は、較正装置10全体を制御する。処理部15は、記憶部14に記憶された各種のプログラムを読み取り、読み取ったプログラムを実行することで、各種の処理を実行する。例えば、処理部15は、空間生成部151と、学習部152と、ロボット制御部153と、第1座標生成部154と、第2座標生成部155と、変換情報生成部156と、変換部157とを有することとなる。
 空間生成部151は、ロボットアーム30の把持部31の3次元モデルを含む仮想空間を生成する。空間生成部151は、ロボットアーム30の把持部31の3次元モデルを取得する。3次元モデルは、例えば公知の3Dスキャン等の手法により取得することができる。
 図4は、把持部の3次元モデルの一例を示す図である。図4に示すように、ロボットアーム30の把持部31の3次元モデルにおいては、例えば、一対の把持部31a及び31bが示される。なお、図4において破線で示されたマーカ33a及び33bは、把持部31a及び31bの位置を示すもので、後に説明する仮想空間においては図示されない。マーカ33a及び33bの位置情報は、例えば、生成された仮想空間に付加されるメタデータとして示される。
 次に、空間生成部151は、把持部31の3次元モデルを仮想空間上に配置する際の各種条件を設定する。配置する3次元モデルの数、位置、姿勢などの条件は、画像生成ソフトウェアがランダムに対象物を生成するように設定することも可能だが、これに限らず、較正装置10の管理者が任意に設定してもよい。 
 次に、空間生成部151は、設定された条件に従い、仮想空間上に3次元モデルを配置する。仮想空間への3次元モデルの配置は、例えば公知の画像生成ソフトウェア等を用いて行うことができる。3次元モデルが配置された仮想空間については、後に詳しく説明する。
 空間生成部151は、学習処理を行うために必要な数の教師データを確保するために、後に説明する学習部152におけるキャプチャが行われた後に、3次元モデルを配置する条件の設定と、仮想空間への3次元モデルの配置とを繰り返す。このように、3次元モデルを取得し、仮想空間上に配置することにより、仮想空間上において、任意のロボット座標系V上の位置に配置されるロボットアーム30の把持部31のカメラ座標系V’における位置をより正確に特定することができる。
 図3に戻って、学習部152は、ロボットアーム30の把持部31の3次元モデルが配置された仮想空間のデータを用いて、学習モデル141を生成又は更新するための学習処理を行う。学習部152は、例えば、ロボットアーム30の把持部31の3次元モデルが配置された仮想空間をキャプチャすることにより、配置されたロボットアーム30の把持部31の3次元モデルの位置を示す画像を取得する。
 図5は、把持部の3次元モデルが配置された仮想空間のキャプチャ画像の一例を示す図である。図5に示すように、ロボットアーム30の把持部31の3次元モデルは、仮想空間上の設定された条件に従う位置に配置される。また、上で述べたように、仮想空間上に配置される3次元モデルが配置された仮想空間をキャプチャしたキャプチャ画像と、キャプチャ画像における3次元モデルの位置情報(座標)との組み合わせが、学習処理における教師データとして用いられる。
 なお、図5に示すように、仮想空間上には、ワーク41、42等や、ワーク41、42が配置されるトレイ等のその他の物体の3次元モデルがさらに配置されていてもよい。また、図5の把持部31a及び把持部91aに示すように、仮想空間上には、複数の把持部の3次元モデルがさらに配置されていてもよい。この場合、把持部31aの位置情報に加えて、把持部91aの位置情報や、ワーク41、42、トレイ等の位置情報も、教師データの一部として用いられる。
 なお、仮想空間において、複数の把持部の3次元モデルは、例えば図4に示す把持部31a及び31bの3次元モデルと同様に、左右一対で配置されるが、これに限られない。例えば、把持部の3次元モデルは、1本(把持部31aのみ)ずつ配置されてもよい。例えば、把持部の3次元モデルは、3本1組で配置されてもよいし、4本以上1組で配置されてもよい。例えば、仮想空間には、複数の把持部31a及び91aの3次元モデルが、図5に示すようにランダムな位置に配置されていてもよい。また、仮想空間上に配置される把持部の3次元モデルの数は1つ又は2つに限られず、3つ以上であってもよい。
 第1の実施形態において、ロボットアーム30の把持部31の3次元モデルの位置は、例えば3次元座標(x,y,z)により示される。また、学習部152は、取得した画像と、配置するロボットアーム30の把持部31の3次元モデルの位置、姿勢などの条件とを対応付けて、記憶部14に格納する。
 学習部152は、学習処理に必要な数の教師データを確保するために、対応付けられた画像と条件との格納を所定の回数繰り返す。そして、学習部152は、生成された教師データを用いて所定の回数学習処理を行うことにより、ニューラルネットワーク構造141aにおいて重み付けとして用いられる学習パラメータ141bを生成し、又は更新する。
 ロボット制御部153は、ロボットアーム30及び把持部31の動作を制御する。ロボット制御部153は、例えば、ロボットアーム30の各関節32a乃至32fの回転量や、把持部31の開閉角度を示す情報を出力することにより、ロボットアーム30の動作を制御する。
 ロボット制御部153は、例えば、較正処理を行う際に、撮像装置20が画像を撮像する前に、ロボットアーム30の各関節32a乃至32fを所定量ずつ回転させる。これにより、ロボット制御部153は、把持部31の位置を移動させる。そして、移動後の把持部31が撮像装置20により撮像される。この把持部31の移動と撮像とをn回繰り返すことにより、位置が異なるn枚のロボットアーム30の把持部31の画像と、ロボット座標系Vにおけるロボットアーム30の把持部31の位置に関するn個の情報とが得られる。
 また、ロボット制御部153は、把持部31がワーク41、42等を把持する動作を行う際に、ロボットアーム30を制御する情報を生成し、ロボットアーム30に出力する。その際、ロボット制御部153は、変換部157により変換されたロボット座標系Vにおける、ワーク41、42等、ロボットアーム30の把持部31の位置を示す座標に基づいて、ロボットアーム30を制御する情報を生成する。なお、ロボット制御部153は、例えば、複数(p個)の把持部31の位置を移動させるような構成であってもよい。
 第1座標生成部154は、撮像装置20により撮像された把持部31を含む画像と、学習モデルとを用いて、カメラ座標系V’における座標情報である第1座標情報を生成する。第1座標生成部154は、例えば、撮像装置20が撮像したn枚の画像を、通信部11を介して取得する。第1座標生成部154は、取得したn枚の画像から、n個の第1座標情報V’、V’・・・V’を生成する。その際、第1座標生成部154は、例えば、撮像装置20により撮像された左右の画像の視差に基づいて、カメラ座標系V’における撮像装置20からの距離を測定してもよい。なお、例えばロボット制御部153が複数の把持部31の位置を移動させる場合など、撮像装置20により撮像された画像に、複数の把持部31が含まれる場合、第1座標生成部154は、1つの画像に対し、複数の第1座標情報V’を生成する。例えば、第1座標生成部154は、p個の把持部31を含むn枚の画像から、n×p個の第1座標情報V’npを生成する。
 第2座標生成部155は、例えば、式(5)に示すロボット関節角を合成することにより、第2座標情報を生成する。式(5)のが第2座標情報Vとなる。式(5)において、jは関節32aから把持部31までの関節の順番を示す。したがって、式(5)において、mはロボットアーム30が有する関節の数に1(求めたい位置)を加えた数を示す。求めたい位置とは、例えば把持部31の先端の位置である。式(5)において、0はロボット座標系における原点をあらわす。例えば、は、ロボット座標系の原点からみた1番目の関節(関節32a)の変位を示す。例えば、j-1は、j-1番目の関節のロボット座標系からみたj番目の関節の変位を示す。例えば、m-1は、m-1番目の関節のロボット座標系からみた把持部31の先端までの変位を示す。例えば、図1に示すような6個の関節32a乃至32fとp本の把持部31とを備えるロボットアーム30の第2座標情報Vn1、Vn2・・・Vnpを生成する際においては、それぞれm=7(関節の数+1(各把持部))となり、jは0<j≦mの範囲の整数となる。
Figure JPOXMLDOC01-appb-M000004
 式(6)において、個別の関節の変位を示す座標変換行列j-1は、例えば以下のような式(6)により示される。式(6)においても式(3)と同様に、例えば、tは3行1列の並進ベクトルであり、Rは3行3列の回転行列である。すなわち、個別の関節の変位を示す座標変換行列j-1も、4行4列の行列で示される。なお、式(6)において、tは関節の位置、Rは関節の回転を示す。
Figure JPOXMLDOC01-appb-M000005
 第2座標生成部155は、例えば、n個の第1座標情報V’、V’・・・V’の生成に用いられたn枚の各画像が撮像された時点における、ロボットアーム30の把持部31のロボット座標系Vにおけるn個の第2座標情報V、V・・・Vを生成する。なお、例えばロボット制御部153が複数の把持部31の位置を移動させる場合、第2座標生成部155は、複数の第2座標情報Vを生成する。例えば、第2座標生成部155は、p個の把持部31を含むn枚の画像から、n×p個の第2座標情報Vnpを生成する。
 変換情報生成部156は、例えば、式(7)において、誤差Eが最小となるような座標変換行列Dを、近似手段等を用いて推定し、又は更新する。式(7)において、Xは、第2座標情報のX成分を示し、X(D,X’)は、座標変換行列Dと第1座標情報との乗算結果のX成分を示す。同様に、Yは、第2座標情報のY成分を示し、Y(D,Y’)は、座標変換行列Dと第1座標情報との乗算結果のY成分を示す。また、Zは、第2座標情報のZ成分を示し、Z(D,Z’)は、座標変換行列Dと第1座標情報との乗算結果のZ成分を示す。すなわち、変換情報生成部156は、式(7)により、n個の第1座標情報V’とn個の第2座標情報Vとの間の誤差Eが最小になるような座標変換行列Dを推定する。近似手段としては、例えば、ニュートン法や勾配効果法、LM法、最小二乗法などの公知の数値解析手法が用いられる。なお、座標変換行列Dを推定する際には、座標変換行列Dの初期値をできるだけ小さい値とすることが望ましい。
Figure JPOXMLDOC01-appb-M000006
 変換部157は、第1座標情報を第2座標情報に変換する。変換部157は、例えば、変換情報生成部156により生成された座標変換行列Dを用いて、式(2)により、第1座標情報V’を第2座標情報Vに変換する。
(処理の流れ)
 次に、第1の実施形態における学習処理及び較正処理について、図6及び図7を用いて説明する。図6は、第1の実施形態に係る学習処理の一例を示すフローチャートである。図6に示すように、まず、空間生成部151は、ロボットアーム30の把持部31の3次元モデルを取得する(ステップS101)。次に、空間生成部151は、3次元モデルを取得したロボットアーム30の把持部31を配置する条件である、3次元モデルの位置及び姿勢等を設定する(ステップS102)。そして、空間生成部151は、仮想空間上に、位置及び姿勢が決定されたロボットアーム30の把持部31を少なくとも1以上配置する(ステップS103)。
 次に、学習部152は、例えば、ロボットアーム30の把持部31の3次元モデルが配置された仮想空間をキャプチャすることにより、ロボットアーム30の把持部31のキャプチャ画像、位置、姿勢を取得する(ステップS104)。そして、学習部152は、取得された画像と、配置された把持部31の位置及び姿勢との組み合わせを、教師データとして記憶部14に保存する(ステップS105)。さらに、学習部152は、ステップS102からステップS105を所定の回数繰り返す(ステップS106:No)。ステップS102からステップS105までの処理を所定の回数繰り返すことにより、学習処理を繰り返し行うために十分な数の教師データが生成される。
 学習部152は、ステップS102からステップS105を繰り返した回数が所定の回数に到達したと判定した場合(ステップS106:Yes)、生成された教師データを用いて、学習処理を行う(ステップS107)。これにより、学習モデル141が生成され、又は更新される。
 次に、較正システム1における較正処理について説明する。図7は、第1の実施形態に係る較正処理の一例を示すフローチャートである。図7に示すように、まず、ロボット制御部153は、ロボットアーム30の把持部31を、所定の位置に移動させる(ステップS201)。次に、撮像装置20は、把持部31を含む作業領域を撮像し、較正装置10に出力する(ステップS202)。
 次に、第1座標生成部154は、撮像装置20から取得した、把持部31を含む画像から、学習モデルを用いて、カメラ座標系V’上の把持部31の位置31’及び姿勢を示す第1座標情報V’を生成する(ステップS203)。また、第2座標生成部155は、ロボットアーム30の把持部31のロボット座標系Vにおける位置及び姿勢を示す第2座標情報V1を、ロボットアーム30の各関節角の変位に基づいて算出する(ステップS204)。
 変換情報生成部156は、ステップS201からステップS204を所定の回数繰り返したか否かを判定する(ステップS210)。所定の回数に到達していないと判定された場合(ステップS210:No)。ステップS201に戻って処理を繰り返す。
 変換情報生成部156は、ステップS201からステップS204を繰り返した回数が所定の回数に到達したと判定した場合(ステップS210:Yes)、第1変換情報と第2変換情報とを用いて、座標変換行列Dを生成し、又は更新する(ステップS220)。
 以上述べたように、第1の実施形態における較正システム1は、ロボットアームと、撮像装置と、較正装置とを備える。ロボットアームは、把持対象物を把持する把持部を先端に備える。撮像装置は、ロボットアームを所定の方向から撮像することで少なくとも1つの撮像画像を生成する。較正装置は、第1座標生成部と、変換部とを備える。第1座標生成部は、ロボットアームに関する3次元モデルを含む仮想空間をキャプチャした画像と仮想空間に含まれるロボットアームの把持部の位置を示す情報とを有する複数の教師データを機械学習することで生成される学習モデルと、ロボットアームを所定の方向から撮像した撮像画像と、に基づいて、撮像画像を基準とした撮像画像座標系における把持部の位置を示す第1座標情報を生成する。変換部は、ロボットアームを基準とするロボット座標系における把持部の位置を示す第2座標情報に第1座標情報を座標変換する座標変換処理に用いられる座標変換情報と第1座標情報とに基づいて、第1座標情報を第2座標情報に座標変換する。これにより、ロボットアームとカメラとの位置関係を容易に調整できる。また、第1の実施形態における較正システム1による較正処理は、同等の構成を有する他の較正システムにおいても応用することができる。
(第2の実施形態)
 第1の実施形態では、較正システム1が、ロボットアーム30の各関節角の変位を合成することで、ロボットアーム30のロボット座標系Vにおける位置を算出する構成について説明した。しかし、ロボットアーム30の製造上の誤差や電源投入時の初期化のずれ等により、ロボットアーム30を動作した際のロボット座標系Vにおける位置が、ロボットアーム30の設計値に基づく位置からずれる場合がある。第2の実施形態では、ロボットアーム30の回転角度や並進位置の誤差も考慮して、座標変換情報を算出する構成について説明する。なお、以下において、先に説明した図面に示す部位と同一の部位には同一の符号を付し、重複する説明は省略する。
 図8は、第2の実施形態に係る較正システムの構成の一例を示すブロック図である。図8に示すように、第2の実施形態における較正システム1aは、第1の実施形態における較正装置10に代えて、較正装置10aを備える。較正装置10aの処理部15aは、第1の実施形態における変換情報生成部156に代えて、変換情報生成部156aを備える。また、処理部15aは、誤差付与部158aをさらに備える。
 誤差付与部158aは、第2座標生成部155により生成された第2座標情報Vに誤差を付与して、誤差第2座標情報V”を生成する。誤差付与部158aは、第2座標情報Vを、式(5)に示すような各関節の座標変換行列に分解する。誤差付与部158aは、分解された個別の座標変換行列j-1の回転行列j-1に、誤差を示すオフセットΔj-1を追加する。同様に、誤差付与部158aは、個別の座標変換行列j-1の並進ベクトルtにも、誤差を示すオフセットΔj-1を追加する。オフセットが追加された個別の座標変換行列j-1Q”を、式(8)に示す。なお、以下において、オフセットΔj-1及びΔj-1を、単にオフセットΔR、Δtと表記する場合がある。
Figure JPOXMLDOC01-appb-M000007
 誤差付与部158aは、式(8)に示すような座標変換行列を合成することで、式(9)に示すような誤差第2座標情報Q”を生成する。
Figure JPOXMLDOC01-appb-M000008
 変換情報生成部156aは、第1座標情報と誤差第2座標情報とに基づいて、変換情報を生成する。変換情報生成部156aは、例えば、式(10)において、誤差Eが最小となるような座標変換行列D”、オフセットΔR、及びオフセットΔtを、近似手段等を用いて推定し、又は更新する。式(10)において、X”は、誤差第2座標情報のX成分を示し、X(D”,X’)は、座標変換行列D”と第1座標情報の乗算結果のX成分を示す。同様に、Y”は、誤差第2座標情報のY成分を示し、Y(D”,Y’)は、座標変換行列D”と第1座標情報との乗算結果のY成分を示す。また、Z”は、誤差第2座標情報のZ成分を示し、Z(D”,Z’)は、座標変換行列D”と第1座標情報との乗算結果のZ成分を示す。なお、座標変換行列Dを単独で推定する場合と同様に、座標変換行列D”、オフセットΔR及びΔtの初期値もできるだけ小さい値とすることが望ましい。
Figure JPOXMLDOC01-appb-M000009
 図9は、第2の実施形態に係る較正処理の一例を示すフローチャートである。なお、ステップS201乃至S210における処理については、第1の実施形態に係る較正処理と同様であるため、詳細な説明は省略する。図9に示すように、まず、誤差付与部158aは、ステップS201からステップS204を繰り返した回数が所定の回数に到達したと判定した場合(ステップS210:Yes)、第2座標情報を関節ごとの座標変換行列に分解する(ステップS301)。次に、誤差付与部158aは、分解された各座標変換行列の回転行列と並進ベクトルのそれぞれに、オフセットΔR及びΔtを追加する(ステップS302)。そして、誤差付与部158aは、オフセットΔR及びΔtが付加された座標変換行列を乗算して、誤差第2座標情報V”を算出する(ステップS303)。
 そして、変換情報生成部156aは、第1座標情報V’と、誤差第2座標情報V”とに基づいて、座標変換情報として、座標変換行列D”を生成する(ステップS320)。
 このように、第2の実施形態において、第2座標生成部は、前記関節角の回転方向、角度及び並進位置における誤差に関する情報を含む誤差第2座標情報を生成し、座標変換情報生成部は、前記第1座標情報と前記誤差第2座標情報とに基づいて前記座標変換情報を生成するする。これにより、座標変換行列D”を生成する際に、カメラ座標系V’とロボット座標系Vとの誤差に加えて、ロボットアーム30に由来する回転方向、角度や並進位置の誤差も反映できる。
(変形例)
 以上、本発明の実施形態について説明したが、本発明は上記実施形態に限定されるものではなく、その趣旨を逸脱しない限りにおいて種々の変更が可能である。例えば、図6に示すような学習処理を、他の装置が行うような構成であってもよい。すなわち、図3に示す空間生成部151及び学習部152が、図3に示す較正装置10ではなく他の装置に備えられていてもよい。この場合において、較正装置10は、外部の装置から学習モデル141を取得して記憶部14に格納するような構成であってもよい。
 また、ロボット制御処理についても、他の装置が行うような構成であってもよい。すなわち、図3に示すロボット制御部153も、較正装置10ではなく他の装置に備えられていてもよい。さらに、較正システム1が撮像装置20を有さず、外部のカメラ等から取得した画像を用いても較正処理を行ってもよい。
 なお、例えばロボット制御部153が複数(p個)の把持部31の位置を移動させる場合において、第1座標生成部154は、1つの画像に対して検出された把持部31のうち、中心の値に該当するものだけを第1座標情報V’として採用するような構成であってもよい。この場合、例えば、第1座標生成部154は、p個の把持部31を含むn枚の画像から、n×1個の第1座標情報V’を生成する。
 また、上で述べた、仮想空間上に3次元モデルを配置する際の各種条件は、把持部31及びワーク41、42の3次元モデルの位置や姿勢に限られず、例えば、カメラの画角、ピクセル数、ステレオセットのベースライン(基線)の距離等の設定であってもよい。また、各種条件は、カメラの位置や回転のランダム化の範囲、仮想空間におけるライトの輝度と角度と位置のランダム化の範囲、仮想空間上に配置される把持部31及びワーク41、42の3次元モデルの位置、角度や数等であってもよい。さらに、各種条件は、ワーク41、42が配置されるトレイ等のその他障害物の有無及び障害物の数、クラス等であってもよい。クラスは、仮想空間に配置された配置物を一意に識別する情報である。なお、各種条件におけるクラスは、例えば、文字、数字及び記号等の組み合わせである。クラスは、他のクラスと重複しない情報であればどのような情報であってもよい。配置物は、例えば、3次元モデル、ワーク又は障害物である。
 なお、図1においては、複数の異なる種類のワーク41、42等が開示されているが、ワークの種類は1種類であってもよい。また、ワーク41、42等は、位置及び姿勢が不規則であるように配置されているが、規則的に配置されていてもよい。また、図1に示すように、例えば、複数のワークが上面視において重なるように配置されていてもよい。
 また、学習モデル141は、グリッパの位置を示す座標に加えて、グリッパの傾きを示す角度情報を出力してもよい。なお、較正処理において、ロボット制御部153がロボットアーム30の各関節32a乃至32fを動作させる回転量は、毎回異なる量であってもよい。また、学習モデル141を生成又は最適化する際の機械学習処理に畳み込みニューラルネットワークを用いる例について説明したが、これに限られず、深層学習などの上述の出力が可能な学習アルゴリズムであればどのようなアルゴリズムを用いてもよい。
 なお、学習処理及び較正処理において、ロボットアーム30の把持部31の位置や3次元モデルを用いる構成について説明したが、これに加えて、ロボットアーム30の把持部31以外の部分の位置や3次元モデルをさらに用いるような構成であってもよい。例えば、仮想空間上に3次元モデルを配置する際の各種条件として、把持部31をキャプチャする際にロボットアーム30が障害物となるような条件が設けられてもよい。
 また、フローチャートに示す処理の順番は前後してもよく、同時に実行してもよい。例えば、図7及び図9に示すような較正処理において、較正装置10が、第1座標情報よりも先に第2座標情報を生成してもよく、第1座標情報と第2座標情報とを同時並行で生成してもよい。また、較正処理の際に、撮像装置20による撮像が行われる前にロボットアーム30が把持部31を移動させる構成について説明したが、実施の形態はこれに限られない。例えば、撮像装置20による撮像が行われ、第1座標情報と第2座標情報とを生成した後に、ロボットアーム30が把持部31を移動させるような構成であってもよい。
 また、上記実施の形態により本発明が限定されるものではない。上述した各構成要素を適宜組み合わせて構成したものも本発明に含まれる。また、さらなる効果や変形例は、当業者によって容易に導き出すことができる。よって、本発明のより広範な態様は、上記の実施の形態に限定されるものではなく、様々な変更が可能である。
 1 較正システム、 10 較正装置、 20 撮像装置、 30 ロボットアーム、 41,42 ワーク

Claims (14)

  1.  ロボットアームと、撮像装置と、較正装置と、を備える較正システムであって、
     前記ロボットアームは、
     把持対象物を把持する把持部を先端に備え、
     前記撮像装置は、
     前記ロボットアームを所定の方向から撮像することで少なくとも1つの撮像画像を生成し、
     前記較正装置は、
     前記ロボットアームに関する3次元モデルを含む仮想空間をキャプチャした画像と前記仮想空間に含まれるロボットアームの把持部の位置を示す情報とを有する複数の教師データを機械学習することで生成される学習モデルと、ロボットアームを所定の方向から撮像した撮像画像と、に基づいて、前記撮像画像を基準とした撮像画像座標系における前記把持部の位置を示す第1座標情報を生成する第1座標生成部と、
     前記ロボットアームを基準とするロボット座標系における前記把持部の位置を示す第2座標情報に前記第1座標情報を座標変換する座標変換処理に用いられる座標変換情報と前記第1座標情報とに基づいて、前記第1座標情報を第2座標情報に座標変換する変換部と、
     を備える、較正システム。
  2.  前記所定の方向からの撮像に応じて前記ロボットアームを所定量だけ駆動させるロボット制御部と、
     前記撮像に関する所定のタイミングにおける前記第2座標情報を前記ロボットアームの関節角に基づいて生成する第2座標生成部と、
     1つ以上の前記第1座標情報と前記第1座標情報と同じ数の前記ロボットアームの関節角に基づいて生成された前記第2座標情報とに基づいて、前記第1座標情報を前記第2座標情報に座標変換する前記座標変換情報を生成する座標変換情報生成部と、
     をさらに備える、請求項1に記載の較正システム。
  3.  前記座標変換情報生成部は、前記第1座標情報と前記第2座標情報との差分が所定の条件を満たすように前記座標変換情報を生成する、請求項2に記載の較正システム。
  4.  前記第2座標生成部は、前記関節角の回転方向及び並進位置における誤差に関する情報を含む誤差第2座標情報を生成し、
     前記座標変換情報生成部は、前記第1座標情報と前記誤差第2座標情報とに基づいて前記座標変換情報を生成する、請求項2又は3に記載の較正システム。
  5.  ロボットアームと、撮像装置と、較正装置と、を備える情報処理システムであって、
     前記ロボットアームは、
     把持対象物を把持する把持部を先端に備え、
     前記撮像装置は、
     前記ロボットアームを所定の方向から撮像することで少なくとも1つの撮像画像を生成し、
     前記較正装置は、
     前記ロボットアームに関する3次元モデルを含む仮想空間をキャプチャした画像と前記仮想空間に含まれるロボットアームの把持部の位置を示す情報とを有する複数の教師データを機械学習することで生成される学習モデルと、ロボットアームを所定の方向から撮像した撮像画像と、に基づいて、前記撮像画像を基準とした撮像画像座標系における前記把持部の位置を示す第1座標情報を生成する第1座標生成部と、
     前記撮像に関する所定のタイミングにおける第2座標情報を前記ロボットアームの関節角に基づいて生成する第2座標生成部と、
     1つ以上の前記第1座標情報と前記第1座標情報と同じ数の前記ロボットアームの関節角に基づいて生成された前記第2座標情報とに基づいて、前記第1座標情報を前記第2座標情報に座標変換する座標変換情報を生成する座標変換情報生成部と、
     を備える、情報処理システム。
  6.  ロボットアームと、撮像装置と、較正装置と、を備えるロボット制御システムであって、
     前記ロボットアームは、
     把持対象物を把持する把持部を先端に備え、
     前記撮像装置は、
     前記ロボットアームを所定の方向から撮像することで少なくとも1つの撮像画像を生成し、
     前記較正装置は、
     前記ロボットアームに関する3次元モデルを含む仮想空間をキャプチャした画像と前記仮想空間に含まれるロボットアームの把持部の位置を示す情報とを有する複数の教師データを機械学習することで生成される学習モデルと、ロボットアームを所定の方向から撮像した撮像画像と、に基づいて、前記撮像画像を基準とした撮像画像座標系における前記把持部の位置を示す第1座標情報を生成する第1座標生成部と、
     前記ロボットアームを基準とするロボット座標系における前記把持部の位置を示す第2座標情報に前記第1座標情報を座標変換する座標変換処理に用いられる座標変換情報と前記第1座標情報とに基づいて、前記第1座標情報を第2座標情報に座標変換する変換部と、
     前記所定の方向からの撮像に応じて前記ロボットアームを所定量だけ駆動させるロボット制御部と、
     を備える、ロボット制御システム。
  7.  把持対象物を把持する把持部を先端に備えたロボットアームと、前記ロボットアームを所定の方向から撮像することで少なくとも1つの撮像画像を生成する撮像装置と、較正装置と、を備える較正システムが実行する較正方法であって、
     前記ロボットアームに関する3次元モデルを含む仮想空間をキャプチャした画像と前記仮想空間に含まれるロボットアームの把持部の位置を示す情報とを有する複数の教師データを機械学習することで生成される学習モデルと、ロボットアームを所定の方向から撮像した撮像画像と、に基づいて、前記撮像画像を基準とした撮像画像座標系における前記把持部の位置を示す第1座標情報を生成し、
     前記ロボットアームを基準とするロボット座標系における前記把持部の位置を示す第2座標情報に前記第1座標情報を座標変換する座標変換処理に用いられる座標変換情報と前記第1座標情報とに基づいて、前記第1座標情報を第2座標情報に座標変換する、
     較正方法。
  8.  把持対象物を把持する把持部を先端に備えたロボットアームと、前記ロボットアームを所定の方向から撮像することで少なくとも1つの撮像画像を生成する撮像装置と、較正装置と、を備える情報処理システムが実行する情報処理方法であって、
     前記ロボットアームに関する3次元モデルを含む仮想空間をキャプチャした画像と前記仮想空間に含まれるロボットアームの把持部の位置を示す情報とを有する複数の教師データを機械学習することで生成される学習モデルと、ロボットアームを所定の方向から撮像した撮像画像と、に基づいて、前記撮像画像を基準とした撮像画像座標系における前記把持部の位置を示す第1座標情報を生成し、
     前記撮像に関する所定のタイミングにおける第2座標情報を前記ロボットアームの関節角に基づいて生成し、
     1つ以上の前記第1座標情報と前記第1座標情報と同じ数の前記ロボットアームの関節角に基づいて生成された前記第2座標情報とに基づいて、前記第1座標情報を前記第2座標情報に座標変換する座標変換情報を生成する、
     情報処理方法。
  9.  把持対象物を把持する把持部を先端に備えたロボットアームと、前記ロボットアームを所定の方向から撮像することで少なくとも1つの撮像画像を生成する撮像装置と、較正装置と、を備えるロボット制御システムが実行するロボット制御方法であって、
     前記ロボットアームに関する3次元モデルを含む仮想空間をキャプチャした画像と前記仮想空間に含まれるロボットアームの把持部の位置を示す情報とを有する複数の教師データを機械学習することで生成される学習モデルと、ロボットアームを所定の方向から撮像した撮像画像と、に基づいて、前記撮像画像を基準とした撮像画像座標系における前記把持部の位置を示す第1座標情報を生成する第1座標生成部と、
     前記ロボットアームを基準とするロボット座標系における前記把持部の位置を示す第2座標情報に前記第1座標情報を座標変換する座標変換処理に用いられる座標変換情報と前記第1座標情報とに基づいて、前記第1座標情報を第2座標情報に座標変換する変換部と、
     前記所定の方向からの撮像に応じて前記ロボットアームを所定量だけ駆動させるロボット制御部と、
     を備える、ロボット制御方法。
  10.  把持対象物を把持する把持部を先端に備えたロボットアームと、前記ロボットアームを所定の方向から撮像することで少なくとも1つの撮像画像を生成する撮像装置と接続される較正装置により実行される較正プログラムであって、
     前記ロボットアームに関する3次元モデルを含む仮想空間をキャプチャした画像と前記仮想空間に含まれるロボットアームの把持部の位置を示す情報とを有する複数の教師データを機械学習することで生成される学習モデルと、ロボットアームを所定の方向から撮像した撮像画像と、に基づいて、前記撮像画像を基準とした撮像画像座標系における前記把持部の位置を示す第1座標情報を生成し、
     前記ロボットアームを基準とするロボット座標系における前記把持部の位置を示す第2座標情報に前記第1座標情報を座標変換する座標変換処理に用いられる座標変換情報と前記第1座標情報とに基づいて、前記第1座標情報を第2座標情報に座標変換する、
     較正プログラム。
  11.  把持対象物を把持する把持部を先端に備えたロボットアームと、前記ロボットアームを所定の方向から撮像することで少なくとも1つの撮像画像を生成する撮像装置と接続される情報処理装置により実行される情報処理プログラムであって、
     前記ロボットアームに関する3次元モデルを含む仮想空間をキャプチャした画像と前記仮想空間に含まれるロボットアームの把持部の位置を示す情報とを有する複数の教師データを機械学習することで生成される学習モデルと、ロボットアームを所定の方向から撮像した撮像画像と、に基づいて、前記撮像画像を基準とした撮像画像座標系における前記把持部の位置を示す第1座標情報を生成し、
     前記撮像に関する所定のタイミングにおける第2座標情報を前記ロボットアームの関節角に基づいて生成し、
     1つ以上の前記第1座標情報と前記第1座標情報と同じ数の前記ロボットアームの関節角に基づいて生成された前記第2座標情報とに基づいて、前記第1座標情報を前記第2座標情報に座標変換する座標変換情報を生成する、
     情報処理プログラム。
  12.  把持対象物を把持する把持部を先端に備えたロボットアームに関する3次元モデルを含む仮想空間をキャプチャした画像と前記仮想空間に含まれるロボットアームの把持部の位置を示す情報とを有する複数の教師データを機械学習することで生成される学習モデルと、ロボットアームを所定の方向から撮像した撮像画像と、に基づいて、前記撮像画像を基準とした撮像画像座標系における前記把持部の位置を示す第1座標情報を生成する第1座標生成部と、
     前記ロボットアームを基準とするロボット座標系における前記把持部の位置を示す第2座標情報に前記第1座標情報を座標変換する座標変換処理に用いられる座標変換情報と前記第1座標情報とに基づいて、前記第1座標情報を第2座標情報に座標変換する第2座標生成部と、
     を備える較正装置。
  13.  把持対象物を把持する把持部を先端に備えたロボットアームに関する3次元モデルを含む仮想空間をキャプチャした画像と前記仮想空間に含まれるロボットアームの把持部の位置を示す情報とを有する複数の教師データを機械学習することで生成される学習モデルと、ロボットアームを所定の方向から撮像した撮像画像と、に基づいて、前記撮像画像を基準とした撮像画像座標系における前記把持部の位置を示す第1座標情報を生成する第1座標生成部と、
     前記撮像に関する所定のタイミングにおける第2座標情報を前記ロボットアームの関節角に基づいて生成する第2座標生成部と、
     1つ以上の前記第1座標情報と前記第1座標情報と同じ数の前記ロボットアームの関節角に基づいて生成された前記第2座標情報とに基づいて、前記第1座標情報を前記第2座標情報に座標変換する座標変換情報を生成する座標変換情報生成部と、
     を備えた情報処理装置。
  14.  把持対象物を把持する把持部を先端に備えたロボットアームに関する3次元モデルを含む仮想空間をキャプチャした画像と前記仮想空間に含まれるロボットアームの把持部の位置を示す情報とを有する複数の教師データを機械学習することで生成される学習モデルと、ロボットアームを所定の方向から撮像した撮像画像と、に基づいて、前記撮像画像を基準とした撮像画像座標系における前記把持部の位置を示す第1座標情報を生成する第1座標生成部と、
     前記ロボットアームを基準とするロボット座標系における前記把持部の位置を示す第2座標情報に前記第1座標情報を座標変換する座標変換処理に用いられる座標変換情報と前記第1座標情報とに基づいて、前記第1座標情報を第2座標情報に座標変換する変換部と、
     前記所定の方向からの撮像に応じて前記ロボットアームを所定量だけ駆動させるロボット制御部と、
     を備える、ロボット制御装置。
PCT/JP2021/012177 2020-03-31 2021-03-24 較正システム、情報処理システム、ロボット制御システム、較正方法、情報処理方法、ロボット制御方法、較正プログラム、情報処理プログラム、較正装置、情報処理装置、及びロボット制御装置 WO2021200438A1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN202180018344.3A CN115250616A (zh) 2020-03-31 2021-03-24 校正***、信息处理***、机器人控制***、校正方法、信息处理方法、机器人控制方法、校正程序、信息处理程序、校正装置、信息处理装置以及机器人控制装置
US17/907,706 US20230130816A1 (en) 2020-03-31 2021-03-24 Calibration system, calibration method, and calibration apparatus
EP21781057.1A EP4129584A4 (en) 2020-03-31 2021-03-24 CALIBRATION SYSTEM, INFORMATION PROCESSING SYSTEM, ROBOT CONTROL SYSTEM, CALIBRATION METHOD, INFORMATION PROCESSING METHOD, ROBOT CONTROL METHOD, CALIBRATION PROGRAM, INFORMATION PROCESSING PROGRAM, DEVICE CALIBRATION, INFORMATION PROCESSING DEVICE AND ROBOT CONTROL DEVICE

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2020064455A JP7423387B2 (ja) 2020-03-31 2020-03-31 較正システム、情報処理システム、ロボット制御システム、較正方法、情報処理方法、ロボット制御方法、較正プログラム、情報処理プログラム、較正装置、情報処理装置、及びロボット制御装置
JP2020-064455 2020-03-31

Publications (1)

Publication Number Publication Date
WO2021200438A1 true WO2021200438A1 (ja) 2021-10-07

Family

ID=77927867

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2021/012177 WO2021200438A1 (ja) 2020-03-31 2021-03-24 較正システム、情報処理システム、ロボット制御システム、較正方法、情報処理方法、ロボット制御方法、較正プログラム、情報処理プログラム、較正装置、情報処理装置、及びロボット制御装置

Country Status (5)

Country Link
US (1) US20230130816A1 (ja)
EP (1) EP4129584A4 (ja)
JP (1) JP7423387B2 (ja)
CN (1) CN115250616A (ja)
WO (1) WO2021200438A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115070778A (zh) * 2022-08-12 2022-09-20 中国电力科学研究院有限公司 一种用于电流互感器带电校准的机械臂控制方法及***

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06203166A (ja) * 1993-01-06 1994-07-22 Fujitsu Ltd 多次元位置測定,制御装置,及び、学習方法
JP2012218119A (ja) * 2011-04-11 2012-11-12 Canon Inc 情報処理装置、情報処理装置の制御方法、およびプログラム
JP2014199584A (ja) * 2013-03-29 2014-10-23 キヤノン株式会社 画像処理装置および画像処理方法
JP2015024480A (ja) * 2013-07-29 2015-02-05 富士通株式会社 情報処理装置、制御方法、及びプログラム
JP2015100868A (ja) * 2013-11-22 2015-06-04 セイコーエプソン株式会社 ロボットシステム
JP2017102755A (ja) * 2015-12-02 2017-06-08 池上通信機株式会社 機械学習支援装置
JP2018001393A (ja) * 2016-07-08 2018-01-11 キヤノン株式会社 ロボット装置、ロボット制御方法、プログラム及び記録媒体
JP2018144152A (ja) 2017-03-03 2018-09-20 株式会社キーエンス ロボットシミュレーション装置、ロボットシミュレーション方法、ロボットシミュレーションプログラム及びコンピュータで読み取り可能な記録媒体並びに記録した機器
JP2019150911A (ja) * 2018-03-02 2019-09-12 株式会社日立製作所 ロボット作業システム、及びロボット作業システムの制御方法
JP2019171540A (ja) 2018-03-29 2019-10-10 ファナック株式会社 機械学習装置、機械学習装置を用いたロボット制御装置及びロボットビジョンシステム、並びに機械学習方法
JP6671694B1 (ja) * 2018-11-30 2020-03-25 株式会社クロスコンパス 機械学習装置、機械学習システム、データ処理システム及び機械学習方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110605711B (zh) * 2018-06-14 2022-06-28 中瑞福宁机器人(沈阳)有限公司 一种控制协作机器人抓取物体的方法、装置及***

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06203166A (ja) * 1993-01-06 1994-07-22 Fujitsu Ltd 多次元位置測定,制御装置,及び、学習方法
JP2012218119A (ja) * 2011-04-11 2012-11-12 Canon Inc 情報処理装置、情報処理装置の制御方法、およびプログラム
JP2014199584A (ja) * 2013-03-29 2014-10-23 キヤノン株式会社 画像処理装置および画像処理方法
JP2015024480A (ja) * 2013-07-29 2015-02-05 富士通株式会社 情報処理装置、制御方法、及びプログラム
JP2015100868A (ja) * 2013-11-22 2015-06-04 セイコーエプソン株式会社 ロボットシステム
JP2017102755A (ja) * 2015-12-02 2017-06-08 池上通信機株式会社 機械学習支援装置
JP2018001393A (ja) * 2016-07-08 2018-01-11 キヤノン株式会社 ロボット装置、ロボット制御方法、プログラム及び記録媒体
JP2018144152A (ja) 2017-03-03 2018-09-20 株式会社キーエンス ロボットシミュレーション装置、ロボットシミュレーション方法、ロボットシミュレーションプログラム及びコンピュータで読み取り可能な記録媒体並びに記録した機器
JP2019150911A (ja) * 2018-03-02 2019-09-12 株式会社日立製作所 ロボット作業システム、及びロボット作業システムの制御方法
JP2019171540A (ja) 2018-03-29 2019-10-10 ファナック株式会社 機械学習装置、機械学習装置を用いたロボット制御装置及びロボットビジョンシステム、並びに機械学習方法
JP6671694B1 (ja) * 2018-11-30 2020-03-25 株式会社クロスコンパス 機械学習装置、機械学習システム、データ処理システム及び機械学習方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See also references of EP4129584A4

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115070778A (zh) * 2022-08-12 2022-09-20 中国电力科学研究院有限公司 一种用于电流互感器带电校准的机械臂控制方法及***

Also Published As

Publication number Publication date
JP2021160037A (ja) 2021-10-11
EP4129584A4 (en) 2024-04-24
CN115250616A (zh) 2022-10-28
EP4129584A1 (en) 2023-02-08
US20230130816A1 (en) 2023-04-27
JP7423387B2 (ja) 2024-01-29

Similar Documents

Publication Publication Date Title
KR20200093464A (ko) 로봇 모션 용 비전 시스템의 자동 핸드-아이 캘리브레이션을 위한 시스템 및 방법
CN106873550B (zh) 模拟装置以及模拟方法
KR102276259B1 (ko) 비전-기반 조작 시스템들의 교정 및 동작
CN111801198B (zh) 一种手眼标定方法、***及计算机存储介质
JP6080407B2 (ja) 3次元計測装置及びロボット装置
JP6826069B2 (ja) ロボットの動作教示装置、ロボットシステムおよびロボット制御装置
JP2015150636A (ja) ビジュアルフィードバックを利用したロボットシステム
JP6317618B2 (ja) 情報処理装置およびその方法、計測装置、並びに、作業装置
CN107428009A (zh) 用于工业机器人调试的方法、使用该方法的工业机器人***和控制***
JP2013036988A (ja) 情報処理装置及び情報処理方法
JP2019014030A (ja) ロボットの制御装置、ロボット、ロボットシステム、並びに、カメラの校正方法
CN104057453A (zh) 机器人装置以及被加工物的制造方法
JP2013036987A (ja) 情報処理装置及び情報処理方法
JP2019155556A (ja) ロボットの制御装置、ロボット、ロボットシステム、並びに、カメラの校正方法
CN114310901B (zh) 用于机器人的坐标系标定方法、装置、***以及介质
JP6410411B2 (ja) パターンマッチング装置及びパターンマッチング方法
WO2021200438A1 (ja) 較正システム、情報処理システム、ロボット制御システム、較正方法、情報処理方法、ロボット制御方法、較正プログラム、情報処理プログラム、較正装置、情報処理装置、及びロボット制御装置
CN115446847A (zh) 用于提高机器人***的3d眼手协调准确度的***和方法
Niu et al. A stereoscopic eye-in-hand vision system for remote handling in ITER
KR20130075712A (ko) 레이저비전 센서 및 그 보정방법
JP7439410B2 (ja) 画像処理装置、画像処理方法およびプログラム
CN116038720A (zh) 一种基于点云配准的手眼标定方法、装置及设备
CN115042184A (zh) 机器人手眼坐标转换方法、装置、计算机设备和存储介质
CN110900606B (zh) 一种基于小型机械臂手眼联动***及其控制方法
JP3151149B2 (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: 21781057

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

ENP Entry into the national phase

Ref document number: 2021781057

Country of ref document: EP

Effective date: 20221031