[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

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

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

Info

Publication number
WO2023013698A1
WO2023013698A1 PCT/JP2022/029851 JP2022029851W WO2023013698A1 WO 2023013698 A1 WO2023013698 A1 WO 2023013698A1 JP 2022029851 W JP2022029851 W JP 2022029851W WO 2023013698 A1 WO2023013698 A1 WO 2023013698A1
Authority
WO
WIPO (PCT)
Prior art keywords
robot
control unit
calibration
coordinate system
spatial information
Prior art date
Application number
PCT/JP2022/029851
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 US18/681,013 priority Critical patent/US20240246237A1/en
Priority to CN202280053883.5A priority patent/CN117813182A/zh
Priority to EP22853116.6A priority patent/EP4382258A1/en
Priority to JP2023540394A priority patent/JPWO2023013698A1/ja
Publication of WO2023013698A1 publication Critical patent/WO2023013698A1/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/10Programme-controlled manipulators characterised by positioning means for manipulator elements
    • 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
    • B25J13/00Controls for manipulators
    • B25J13/08Controls for manipulators by means of sensing devices, e.g. viewing or touching devices
    • 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

Definitions

  • the present disclosure relates to a robot control device, a robot control system, and a robot control method.
  • a robot control device includes a control unit that controls a robot.
  • the control unit acquires the measurement position of the destination of the robot, acquires the measurement result of the position of the robot calculated based on the spatial information regarding the motion space of the robot acquired by the spatial information acquisition unit, It is determined whether or not to perform calibration of the robot based on the measurement position and the measurement result.
  • FIG. 1 is a block diagram showing a configuration example of a robot control system according to an embodiment
  • FIG. 1 is a schematic diagram showing a configuration example of a robot control system according to an embodiment
  • FIG. 4 is a schematic diagram showing an example of a difference between a sensor-based tip position and orientation and an image-based tip position and orientation
  • 4 is a flow chart showing an example procedure of a robot control method according to an embodiment
  • a robot control system 1 includes a robot 40 , a robot control device 10 and a spatial information acquisition section 20 .
  • the robot 40 operates in a predetermined motion space.
  • the space information acquisition unit 20 generates depth information of the motion space in which the robot 40 moves.
  • the spatial information acquisition unit 20 calculates the distance to the measurement point located on the surface of the object 50 existing in the motion space.
  • the distance from the spatial information acquisition unit 20 to the measurement point is also called depth.
  • Depth information is information about the depth measured for each measurement point. In other words, the depth information is information about the distance to the measurement point located on the surface of the object 50 existing in the motion space.
  • the depth information may be expressed as a depth map that associates the direction viewed from the spatial information acquisition unit 20 and the depth in that direction.
  • the spatial information acquisition unit 20 generates depth information of the motion space based on the (X, Y, Z) coordinate system.
  • the robot control device 10 operates the robot 40 based on the depth information generated by the space information acquisition section 20 .
  • the robot controller 10 controls and operates the robot 40 based on the (X_RB, Y_RB, Z_RB) coordinate system.
  • the (X_RB, Y_RB, Z_RB) coordinate system is also called the coordinate system of the robot 40 .
  • the (X, Y, Z) coordinate system is also called the coordinate system of the spatial information acquisition unit 20 .
  • the coordinate system of the robot 40 may be set as the same coordinate system as the coordinate system of the spatial information acquisition unit 20, or may be set as a different coordinate system.
  • the robot control device 10 converts the depth information generated in the coordinate system of the space information acquisition unit 20 into the coordinates of the robot 40. It is converted into a system and used.
  • the number of robots 40 and robot control devices 10 is not limited to one as illustrated, but may be two or more. As illustrated, the number of spatial information acquisition units 20 may be one for one motion space, or may be two or more. Each component will be specifically described below.
  • the robot control device 10 includes a control section 11 and a storage section 12 .
  • the storage unit 12 may be configured including an electromagnetic storage medium such as a magnetic disk, or may be configured including a memory such as a semiconductor memory or a magnetic memory.
  • the storage unit 12 may be configured as an HDD (Hard Disk Drive) or an SSD (Solid State Drive).
  • the storage unit 12 stores various information, programs executed by the control unit 11, and the like.
  • the storage unit 12 may function as a work memory for the control unit 11 .
  • the control unit 11 may include at least part of the storage unit 12 .
  • the robot control device 10 may further include a communication device configured to be able to communicate with the spatial information acquisition unit 20 and the robot 40 by wire or wirelessly.
  • a communication device may be configured to be able to communicate with communication schemes based on various communication standards.
  • a communication device may be configured according to known communication technologies. A detailed description of the hardware of the communication device and the like is omitted.
  • the functions of the communication device may be realized by one interface, or may be realized by separate interfaces for each connection destination.
  • the control unit 11 may be configured to communicate with the spatial information acquisition unit 20 and the robot 40 .
  • the control unit 11 may be configured including a communication device.
  • the arm 42 may be configured as, for example, a 6-axis or 7-axis vertical articulated robot.
  • the arm 42 may be configured as a 3-axis or 4-axis horizontal articulated robot or SCARA robot.
  • Arm 42 may be configured as a 2-axis or 3-axis Cartesian robot.
  • Arm 42 may be configured as a parallel link robot or the like.
  • the number of axes forming the arm 42 is not limited to the illustrated one.
  • the end effector 44 may include, for example, a gripping hand configured to grip a work object.
  • the grasping hand may have multiple fingers. The number of fingers of the grasping hand may be two or more. The fingers of the grasping hand may have one or more joints.
  • the end effector 44 may include a suction hand configured to be able to suction a work target.
  • the end effector 44 may include a scooping hand configured to scoop the work object.
  • the end effector 44 may include a tool such as a drill, and may be configured to perform various machining operations such as drilling holes in a work object.
  • the end effector 44 is not limited to these examples, and may be configured to perform various other operations.
  • the robot 40 may further include sensors that detect the state of each component of the robot 40 .
  • the sensors may detect information regarding the actual position or orientation of each component of the robot 40 or the velocity or acceleration of each component of the robot 40 .
  • the sensors may detect forces acting on each component of the robot 40 .
  • the sensors may detect the current flowing through the motors that drive each component of the robot 40 or the torque of the motors.
  • the sensors can detect information resulting from the actual movement of robot 40 .
  • the robot control device 10 can grasp the actual operation result of the robot 40 by acquiring the detection result of the sensor. That is, the robot control device 10 can acquire the state of the robot 40 based on the detection result of the sensor.
  • the spatial information acquisition unit 20 acquires spatial information regarding the motion space of the robot 40 .
  • the spatial information acquisition unit 20 may photograph the motion space and acquire an image of the motion space as the spatial information.
  • the spatial information acquisition unit 20 may photograph an object 50 existing in the motion space, as illustrated in FIG. 2 .
  • the spatial information acquisition section 20 may be configured as a camera.
  • the spatial information acquisition section 20 may be configured as a 3D stereo camera.
  • the 3D stereo camera photographs an object 50 existing in the motion space, calculates the distance to a measurement point located on the surface of the object 50 existing in the motion space as depth, and generates depth information.
  • the spatial information acquisition unit 20 may be configured as a LiDAR (light detection and ranging).
  • the space information acquisition unit 20 may generate point group information in the motion space of the robot 40 and output it to the robot control device 10 . That is, the spatial information may be output in the form of point cloud data. In other words, the point cloud information may have spatial information.
  • the point group information is information on a set of measurement points located on the surface of the object 50 existing in the motion space, and is information including coordinate information or color information on each measurement point.
  • the point group information can also be said to be data representing the object 50 in the measurement space with a plurality of points. Since the spatial information is in the form of point cloud data, the data density can be made smaller than the spatial information based on the initial data acquired by the spatial information acquiring section 20 .
  • the control unit 11 of the robot control device 10 can acquire the state of the robot 40 based on the position and orientation of the mark 46 captured in the image captured by the space information acquisition unit 20, and can acquire the positional relationship between the robot 40 and the object 50. .
  • the control unit 11 acquires the state of the robot 40 based on a sensor of the robot 40 such as an encoder installed on the arm 42 or the like.
  • the state based on the sensor of the robot 40 expresses the position and orientation of the robot 40 with higher accuracy than the state based on the captured image of the spatial information acquisition unit 20 .
  • the control unit 11 can control the robot 40 in the motion space with high accuracy by matching the state of the robot 40 based on the captured image of the space information acquisition unit 20 with the state of the robot 40 based on the sensor of the robot 40.
  • the work of matching the state of the robot 40 based on the captured image of the spatial information acquisition unit 20 with the state of the robot 40 based on the sensor of the robot 40 is also called calibration.
  • the control unit 11 performs calibration so that the (X, Y, Z) coordinate system of the spatial information acquisition unit 20 matches the (X_RB, Y_RB, Z_RB) coordinate system of the robot 40 .
  • the control unit 11 may perform calibration using at least part of the FOV of the spatial information acquisition unit 20 as the calibration range 60 .
  • the control unit 11 performs calibration within the calibration range 60 shown in FIG.
  • a calibration range 60 is shown as a region surrounded by a two-dot chain line in FIG.
  • a calibration range 60 corresponds to a range in which the robot 40 is calibrated.
  • Calibration range 60 may include the work area of robot 40 .
  • the calibration range 60 may be the range where the working area of the robot 40 and the FOV overlap.
  • control unit 11 sets a point for performing calibration within the calibration range 60 .
  • the points for performing calibration are also referred to as calibration positions.
  • the control unit 11 moves the mark 46 of the robot 40 to the calibration position and causes the spatial information acquisition unit 20 to photograph the mark 46 .
  • the control unit 11 calculates the position and orientation of the mark 46 based on the image of the mark 46 .
  • the control unit 11 adjusts the position and orientation of the mark 46 based on the image so that the position and orientation of the mark 46 calculated based on the image match the position and orientation of the mark 46 determined based on the detection result of the sensor of the robot 40 .
  • Correct position and posture. Correction of the position and orientation of the mark 46 based on the image corresponds to calibration.
  • the position and orientation of mark 46 is also referred to as the tip position and orientation.
  • Calibration corresponds to correction of tip position and orientation.
  • a calibration position corresponds to a position for correcting the tip position and orientation.
  • control unit 11 may perform calibration as described below.
  • the control unit 11 generates control information for the robot 40 for moving the mark 46 of the robot 40 to the calibration position.
  • the control unit 11 operates the robot 40 based on the control information to move the mark 46 of the robot 40 to the calibration position.
  • the control unit 11 acquires an image of the mark 46 from the spatial information acquisition unit 20 .
  • the control unit 11 calculates the position and orientation of the mark 46 based on the image.
  • the position and orientation of the mark 46 calculated based on the image are also referred to as the tip position and orientation based on the image.
  • the control unit 11 calculates the position and orientation of the mark 46 determined based on the detection result of the sensor of the robot 40 .
  • the position and orientation of the mark 46 calculated based on the sensor detection results are also referred to as the tip position and orientation based on the sensor.
  • the control unit 11 compares the tip position/orientation based on the image and the tip position/orientation based on the sensor.
  • the control unit 11 corrects the tip position/orientation based on the image so that the tip position/orientation based on the image matches the tip position/orientation based on the sensor.
  • the control unit 11 may correct the algorithm for calculating the tip position/orientation based on the image.
  • the control unit 11 may correct the parameters included in the algorithm, or may correct the formula, table, or program. When a plurality of calibration positions are set, the control unit 11 moves the robot 40 to each calibration position, acquires an image of the mark 46 at each calibration position, and determines the tip position/orientation based on the image. to correct.
  • the control unit 11 generates control information for the robot 40 so as to move the robot 40 to the calibration position.
  • the control unit 11 generates, as a calibration item, information specifying the tip position/orientation when the robot 40 is moved to the calibration position and the recognition result of the mark 46 of the robot 40 .
  • the calibration item is, for example, information about coordinates.
  • the calibration item is, for example, coordinate information indicating the tip position and orientation based on the detection result of the sensor of the robot 40 when the robot 40 is moved to the calibration position, or is recognized by the spatial information acquisition unit 20. coordinate information indicating the position and orientation of the tip based on the recognition result of the mark 46.
  • the control unit 11 acquires, for example, information on the real field size of the spatial information acquisition unit 20 or information on the FOV from the spatial information acquisition unit 20 .
  • the control unit 11 sets the calibration range 60 based on the actual field of view size or FOV of the spatial information acquisition unit 20 and the work area of the robot 40 .
  • the controller 11 may set the calibration range 60 based on the position of the object 50 in the motion space of the robot 40 .
  • the control unit 11 may set the calibration range 60 based on the depth information or point group information of the object 50 detected by the spatial information acquisition unit 20 .
  • the shape of the calibration range 60 is set to a truncated quadrangular pyramid shape.
  • the shape of the calibration range 60 is not limited to these and may be set to various other shapes.
  • the control unit 11 matches the tip position/orientation based on the sensor of the robot 40 with the tip position/orientation based on the image of the spatial information acquisition unit 20 . Specifically, the controller 11 moves the robot 40 to the first position.
  • the control unit 11 generates control information for operating the robot 40 so that the mark 46 of the robot 40 assumes a predetermined position and posture, and controls the robot 40 based on the control information to move the robot 40 to the first position. move.
  • the first position may be a predetermined position included in the FOV of the spatial information acquisition section 20 .
  • the first position may be the center position of the FOV of the spatial information acquisition unit 20, for example.
  • the control unit 11 acquires an image of the mark 46 when the robot 40 moves to the first position, and calculates the position and orientation of the mark 46 as the tip position and orientation based on the image. Also, the control unit 11 calculates the tip position and orientation based on the sensor. Based on the comparison between the tip position/orientation based on the image and the tip position/orientation based on the sensor, the control unit 11 adjusts the position of the robot 40 so that the position of the robot 40 becomes the first position based on the detection result of the sensor in the image. Correct the control information. The control unit 11 moves the robot 40 based on the corrected control information so that the position of the robot 40 in the coordinate system of the robot 40 and the position of the robot 40 in the coordinate system of the space information acquisition unit 20 match. Update 40 states. In other words, it can be said that the control unit 11 updates the state of the robot 40 so that the position of the robot 40 becomes the first position in the image.
  • the control unit 11 determines that the robot 40 moves to the second position. Register the position as a calibration position. When registering the second position as the calibration position, the control unit 11 stores the tip position and orientation based on the sensor detection results of the robot 40 when the robot 40 is moved to the second position and the recognition results of the mark 46 of the robot 40 . may be generated as a plurality of calibration items that specify each of the tip position and orientation based on . If the second position is not registered as the calibration position, the control unit 11 may generate a new second position of a different position and determine whether the new second position can be registered as the calibration position.
  • a singular point corresponds to a posture of the robot 40 where the robot 40 is structurally uncontrollable. If the trajectory for operating the robot 40 includes a singular point, the robot 40 moves (runs away) at high speed near the singular point and stops at the singular point.
  • the singular points of the robot 40 are the following three types (1) to (3). (1) Points outside the work area when controlling the robot 40 to near the outer limits of the work area. (The work area is the area corresponding to the motion space of the robot 40.) (2) Points when controlling the robot 40 directly above and below the robot base even within the work area. (3) A point where the joint angle one before the tip joint of the arm 42 of the robot 40 is zero or 180 degrees (wrist alignment singular point).
  • the control unit 11 may determine that the state of the robot 40 is the state of singularity when the numerical value representing the state of the robot 40 matches the numerical value representing the state of singularity.
  • the control unit 11 may determine that the state of the robot 40 is the state of singularity when the difference between the numerical value representing the state of the robot 40 and the numerical value representing the state of singularity is less than a predetermined value.
  • the numerical value representing the state of the robot 40 may include, for example, the angle of the joint of the arm 42 or the torque of the motor that drives the robot 40 .
  • the control unit 11 performs calibration so that the tip position/orientation calibration item regarding the recognition result of the mark 46 matches the tip position/orientation calibration item regarding the detection result of the sensor of the robot 40 . Specifically, the controller 11 moves the robot 40 to the calibration position. The control unit 11 acquires the recognition result of the mark 46 of the robot 40 when the robot 40 moves to the calibration position by the space information acquisition unit 20 . The control unit 11 calculates the relative positional relationship of the tip position/orientation calibration item acquired as the recognition result of the mark 46 with respect to the tip position/orientation calibration item based on the sensor of the robot 40 . The relative positional relationship corresponds to the coordinate difference and angle difference between both calibration items.
  • the control unit 11 controls the spatial information acquisition unit so that the coordinate error and angle error corresponding to the relative positional relationship between the two calibration items are zero or close to zero (that is, the error is less than a predetermined value).
  • the coordinate system of 20 is corrected to match the coordinate system of robot 40 .
  • the control unit 11 matches the recognition result of the mark 46 when the robot 40 moves to the calibration position with the tip position/orientation specified by the sensor of the robot 40, thereby adjusting the relative positional relationship. can be calculated.
  • the control unit 11 detects that the coordinate system relationship specified by the calibration has changed. determine whether or not If the relationship of the coordinate system has not changed, the control unit 11 does not need to perform correction or calibration of the relationship of the coordinate system. On the other hand, if the coordinate system relationship has changed when the robot 40 is activated, the control unit 11 determines whether the coordinate system relationship can be corrected. If the relationship between the coordinate systems can be corrected, the control unit 11 corrects the relationship between the coordinate systems and does not perform calibration. If the relationship between the coordinate systems cannot be corrected, the control unit 11 re-specifies the relationship between the coordinate systems by performing recalibration.
  • the need for calibration may be determined when the robot 40 is stopped or when the robot 40 is started.
  • the time when the robot 40 stops is not limited to when it stops abnormally, and may be when the designated work is completed.
  • the time to activate the robot 40 is not limited to when it is activated after an abnormal stop, and may be when to start a designated work.
  • control unit 11 determines whether the relationship between the coordinate system of the robot 40 and the coordinate system of the spatial information acquisition unit 20 has changed, as described below. and determine if recalibration is necessary.
  • the control unit 11 acquires the recognition result of the mark 46 when the robot 40 is moved to the measurement position.
  • the control unit 11 calculates the position of the robot 40 as a measurement result based on the recognition result of the mark 46 .
  • the control unit 11 calculates the difference between the initial value of the measurement position and the measurement result. Since the control unit 11 moves the robot 40 to the measurement position based on the detection result of the sensor, the difference between the set measurement position itself and the measurement result is calculated without calculating the position of the robot 40 based on the sensor. You can
  • the control unit 11 acquires the detection result of the sensor when the robot 40 is moved to the measurement position, calculates and acquires the position of the robot 40 based on the sensor based on the detection result as the measurement position, and uses the calculated measurement position as the measurement position. As the initial value of the measurement position, a difference from the measurement result may be calculated.
  • the control unit 11 determines whether to correct the relationship of the coordinate system based on the difference between the initial value of the measurement position and the measurement result. For example, when the difference between the initial value of the measurement position and the measurement result is greater than a predetermined threshold value, the control unit 11 determines to correct the relationship of the coordinate system. When measurement results are acquired at a plurality of measurement positions, the control unit 11 determines to correct the relationship of the coordinate system when the difference between the initial value of at least one measurement position and the measurement result is greater than a predetermined threshold. . When the difference between the initial value of the measurement position and the measurement result is equal to or less than a predetermined threshold value, the control unit 11 determines that correction of the relationship between the coordinate systems and recalibration are not necessary.
  • the control unit 11 may appropriately set a predetermined threshold value.
  • the control unit 11 may set a predetermined threshold value, for example, based on the specifications of the positional accuracy during operation of the robot 40 .
  • control unit 11 may correct the coordinate system of the spatial information acquiring unit 20 so that the coordinate system of the spatial information acquiring unit 20 matches the coordinate system of the robot 40 .
  • the control unit 11 may correct the coordinate system of the robot 40 so that the coordinate system of the robot 40 matches the coordinate system of the spatial information acquisition unit 20 .
  • control unit 11 may correct the coordinate system of the spatial information acquisition unit 20 or the coordinate system of the robot 40 by rotating or translating them.
  • the control unit 11 may correct the coordinate system of the spatial information acquisition unit 20 or the coordinate system of the robot 40 by enlarging or reducing it.
  • the control unit 11 may correct distortion of the coordinate system of the spatial information acquisition unit 20 or the coordinate system of the robot 40 .
  • the control unit 11 may calculate the correction value of the measurement position based on the correction of the coordinate system.
  • the control unit 11 acquires the tip position and orientation of the robot 40 at one measurement position, and corrects the coordinate system not only in the translational direction but also in the rotational direction based on information such as the rotation angle representing the orientation of the mark 46. good.
  • a measurement position model 70 having the coordinates of the measurement position as vertices is defined.
  • the control unit 11 moves the robot 40 to each vertex (measurement position) of the measurement position model 70 and acquires the recognition result of the mark 46 .
  • the recognition result of the mark 46 acquired based on the (X, Y, Z) coordinate system of the spatial information acquisition unit 20 is matched with the (X_RB, Y_RB, Z_RB) coordinate system of the robot 40, the calculated measurement result is , is represented by a measurement result model 72 whose vertices are the coordinates of the measurement result.
  • the measurement position model 70 corresponds to the set measurement position itself or the initial value of the measurement position when the robot 40 is moved to the measurement position based on the detection result of the sensor.
  • the measurement result model 72 corresponds to the measurement result when matching the recognition result of the mark 46 when the robot 40 is moved to the measurement position with the (X_RB, Y_RB, Z_RB) coordinate system of the robot 40 .
  • the control unit 11 determines whether the relationship between the coordinate systems has changed. In the present embodiment, it is assumed that the coordinate system of the robot 40 and the coordinate system of the spatial information acquisition section 20 match each other due to calibration performed in advance. In the state illustrated in FIG.
  • the coordinate system of the spatial information acquisition unit 20 changes in the rotational direction and the translational direction with respect to the coordinate system of the robot 40 .
  • the control unit 11 may correct the coordinate system of the spatial information acquisition unit 20 in translational and rotational directions so that the coordinate system of the spatial information acquisition unit 20 matches the coordinate system of the robot 40 .
  • control unit 11 determines that the correction does not return the relationship of the coordinate system to the relationship at the time of execution of the previous calibration, and restarts the robot 40 . Determine that calibration is required.
  • the correction of the coordinate system described above may be executed when an abnormality occurs. Specifically, the correction of the coordinate system may be performed when restarting the robot 40 after the robot 40 stops abnormally. Further, the correction of the coordinate system may be executed when the (X, Y, Z) coordinate system of the spatial information acquiring section 20 changes due to the movement of the spatial information acquiring section 20 . Correction of the coordinate system is not limited to when an abnormality occurs, and may be performed when the robot 40 is activated.
  • the control unit 11 of the robot control device 10 may execute the robot control method including the procedure of the flowchart illustrated in FIG.
  • the robot control method may be implemented as a robot control program that is executed by a processor that configures the control unit 11 .
  • the robot control program may be stored on a non-transitory computer-readable medium.
  • the control unit 11 acquires the measurement position (step S1).
  • the controller 11 moves the robot 40 to the measurement position (step S2).
  • the control unit 11 acquires the recognition result of the mark 46 at the measurement position to which the robot 40 has moved (step S3).
  • the control unit 11 determines whether the recognition of the mark 46 is completed at all measurement positions (step S4). If recognition of the marks 46 has not been completed at all measurement positions (step S4: NO), the controller 11 returns to step S2.
  • step S5 determines whether the difference between the initial value of the measurement position and the measurement result is equal to or less than a predetermined threshold (step S5). If the difference between the initial value of the measured position and the measurement result is equal to or less than the predetermined threshold value (step S5: YES), the control unit 11 ends execution of the procedure of the flowchart of FIG.
  • step S5 If the difference between the initial value of the measured position and the measurement result is not equal to or less than a predetermined threshold (step S5: NO), that is, if the difference between the initial value of the measured position and the measurement result is greater than the predetermined threshold,
  • the coordinate system is corrected and the corrected position is calculated (step S6).
  • the controller 11 moves the robot 40 to the correction position (step S7).
  • the control unit 11 acquires the recognition result of the mark 46 at the corrected position to which the robot 40 has moved, and acquires the post-correction measurement result (step S8).
  • the control unit 11 determines whether the difference between the corrected position and the post-correction measurement result is equal to or less than a predetermined threshold (step S9). If the difference between the corrected position and the corrected measurement result is equal to or less than a predetermined threshold value (step S9: YES), the control unit 11 calculates a correction value based on the difference between the initial value of the measurement position and the measurement result, A calibration value is updated (step S10). A calibration value represents a relative positional relationship. After executing the procedure of step S10, the control unit 11 ends the execution of the procedure of the flowchart of FIG.
  • step S9 If the difference between the corrected position and the corrected measurement result is not equal to or less than a predetermined threshold value (step S9: NO), that is, if the difference between the corrected value of the measured position and the measurement result is greater than the predetermined threshold value, the control unit 11 controls the robot. 40 recalibration is required (step S11). After executing the procedure of step S11, the control unit 11 ends the execution of the procedure of the flowchart of FIG. The control unit 11 may perform recalibration of the robot 40 after performing the procedure of step S11.
  • the robot control device 10 and the robot control method according to the present embodiment when the robot 40 is activated or recovered from an abnormality, the difference between the measured position and the measurement result reaches a predetermined threshold value. The coordinate system is corrected if greater. Then, when the difference between the measured position after correction of the coordinate system and the measurement result is larger than a predetermined threshold value, it can be determined that recalibration is necessary. Conversely, it can be determined that recalibration is unnecessary when the difference between the measured position after correction of the coordinate system and the measurement result is equal to or less than a predetermined threshold value. By doing so, the workload can be reduced when an abnormality occurs.
  • Embodiments according to the present disclosure are not limited to any specific configuration of the embodiments described above. Embodiments of the present disclosure extend to any novel feature or combination thereof described in the present disclosure or any novel method or process step or combination thereof described. be able to.
  • robot control system 10 robot control device (11: control unit, 12: storage unit) 20 spatial information acquisition unit 40 robot (42: arm, 44: end effector, 46: mark) 50 object 60 calibration range 70 measurement position model 72 measurement result model

Landscapes

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

Abstract

ロボット制御装置は、ロボットを制御する制御部を備える。制御部は、ロボットの移動先の計測位置を取得し、空間情報取得部で取得したロボットの動作空間に関する空間情報に基づいて算出されたロボットの位置の計測結果を取得し、計測位置と計測結果とに基づいてロボットのキャリブレーションを実行するか判定する。

Description

ロボット制御装置、ロボット制御システム、及びロボット制御方法 関連出願へのクロスリファレンス
 本出願は、日本国特許出願2021-127715号(2021年8月3日出願)の優先権を主張するものであり、当該出願の開示全体を、ここに参照のために取り込む。
 本開示は、ロボット制御装置、ロボット制御システム、及びロボット制御方法に関する。
 従来、キャリブレーション時のマーク部の位置に基づいて異常診断を行うロボット制御システムが知られている(例えば特許文献1参照)。
特開2020-116717号公報
 本開示の一実施形態に係るロボット制御装置は、ロボットを制御する制御部を備える。前記制御部は、前記ロボットの移動先の計測位置を取得し、空間情報取得部で取得した前記ロボットの動作空間に関する空間情報に基づいて算出された前記ロボットの位置の計測結果を取得し、前記計測位置と前記計測結果とに基づいて前記ロボットのキャリブレーションを実行するか判定する。
 本開示の一実施形態に係るロボット制御システムは、前記ロボット制御装置と、前記ロボットとを備える。
 本開示の一実施形態に係るロボット制御方法は、ロボットを制御する制御部によって実行される。前記ロボット制御方法は、前記ロボットの移動先の計測位置を取得することを含む。前記ロボット制御方法は、空間情報取得部で取得した前記ロボットの動作空間に関する空間情報に基づいて前記ロボットの位置の計測結果を取得することを含む。前記ロボット制御方法は、前記計測位置と前記計測結果とに基づいて前記ロボットのキャリブレーションを実行するか判定することを含む。
一実施形態に係るロボット制御システムの構成例を示すブロック図である。 一実施形態に係るロボット制御システムの構成例を示す模式図である。 センサに基づく先端位置姿勢と画像に基づく先端位置姿勢との差の一例を示す模式図である。 一実施形態に係るロボット制御方法の手順例を示すフローチャートである。
 異常発生時にキャリブレーションを再度実行することは、作業負荷を増大させる。異常発生時の作業負荷の低減が求められる。本開示の一実施形態に係るロボット制御装置、ロボット制御システム、及びロボット制御方法によれば、異常発生時の作業負荷が低減され得る。
(ロボット制御システム1の概要)
 図1及び図2に例示されるように、一実施形態に係るロボット制御システム1は、ロボット40と、ロボット制御装置10と、空間情報取得部20とを備える。ロボット40は、所定の動作空間において動作する。空間情報取得部20は、ロボット40が動作する動作空間のデプス情報を生成する。空間情報取得部20は、後述するように、動作空間に存在する物体50の表面に位置する測定点までの距離を算出する。空間情報取得部20から測定点までの距離は、デプスとも称される。デプス情報は、各測定点について測定したデプスに関する情報である。言い換えれば、デプス情報は、動作空間に存在する物体50の表面に位置する測定点までの距離に関する情報である。デプス情報は、空間情報取得部20から見た方向とその方向のデプスとを関連づけたデプスマップとして表されてもよい。空間情報取得部20は、(X,Y,Z)座標系に基づいて動作空間のデプス情報を生成する。ロボット制御装置10は、空間情報取得部20で生成されたデプス情報に基づいてロボット40を動作させる。ロボット制御装置10は、(X_RB,Y_RB,Z_RB)座標系に基づいてロボット40を制御し、動作させる。
 (X_RB,Y_RB,Z_RB)座標系は、ロボット40の座標系とも称される。(X,Y,Z)座標系は、空間情報取得部20の座標系とも称される。ロボット40の座標系は、空間情報取得部20の座標系と同じ座標系として設定されてもよいし、異なる座標系として設定されてもよい。ロボット40の座標系が空間情報取得部20の座標系と異なる座標系として設定される場合、ロボット制御装置10は、空間情報取得部20の座標系で生成されたデプス情報を、ロボット40の座標系に変換して用いる。
 ロボット40及びロボット制御装置10の数は、例示されるように1台に限られず2台以上であってもよい。空間情報取得部20の数は、例示されるように、1つの動作空間に対して1台であってもよいし、2台以上であってもよい。以下、各構成部が具体的に説明される。
<ロボット制御装置10>
 ロボット制御装置10は、制御部11と、記憶部12とを備える。
 制御部11は、ロボット制御装置10の種々の機能を実現するために、少なくとも1つのプロセッサを含んで構成されてよい。プロセッサは、ロボット制御装置10の種々の機能を実現するプログラムを実行しうる。プロセッサは、単一の集積回路として実現されてよい。集積回路は、IC(Integrated Circuit)とも称される。プロセッサは、複数の通信可能に接続された集積回路及びディスクリート回路として実現されてよい。プロセッサは、CPU(Central Processing Unit)を含んで構成されてよい。プロセッサは、DSP(Digital Signal Processor)又はGPU(Graphics Processing Unit)を含んで構成されてもよい。プロセッサは、他の種々の既知の技術に基づいて実現されてよい。
 記憶部12は、磁気ディスク等の電磁記憶媒体を含んで構成されてよいし、半導体メモリ又は磁気メモリ等のメモリを含んで構成されてもよい。記憶部12は、HDD(Hard Disk Drive)として構成されてもよいしSSD(Solid State Drive)として構成されてもよい。記憶部12は、各種情報及び制御部11で実行されるプログラム等を格納する。記憶部12は、制御部11のワークメモリとして機能してよい。制御部11が記憶部12の少なくとも一部を含んで構成されてもよい。
 ロボット制御装置10は、空間情報取得部20及びロボット40と有線又は無線で通信可能に構成される通信デバイスを更に備えてもよい。通信デバイスは、種々の通信規格に基づく通信方式で通信可能に構成されてよい。通信デバイスは、既知の通信技術により構成することができる。通信デバイスのハードウェア等の詳細な説明は省略される。通信デバイスの機能は、1つのインタフェースによって実現されてもよいし、接続先別にそれぞれ別体のインタフェースによって実現されてもよい。制御部11が空間情報取得部20及びロボット40と通信可能に構成されてもよい。制御部11が通信デバイスを含んで構成されてもよい。
<ロボット40>
 ロボット40は、図2に例示されるように、アーム42と、アーム42に取り付けられるエンドエフェクタ44と、エンドエフェクタ44に設置されているマーク46とを備える。なお、マーク46は、エンドエフェクタ44ではなく、アーム42に設置されていてもよい。
 アーム42は、例えば、6軸又は7軸の垂直多関節ロボットとして構成されてよい。アーム42は、3軸又は4軸の水平多関節ロボット又はスカラロボットとして構成されてもよい。アーム42は、2軸又は3軸の直交ロボットとして構成されてもよい。アーム42は、パラレルリンクロボット等として構成されてもよい。アーム42を構成する軸の数は、例示したものに限られない。
 エンドエフェクタ44は、例えば、作業対象物を把持できるように構成される把持ハンドを含んでよい。把持ハンドは、複数の指を有してよい。把持ハンドの指の数は、2つ以上であってよい。把持ハンドの指は、1つ以上の関節を有してよい。エンドエフェクタ44は、作業対象物を吸着できるように構成される吸着ハンドを含んでもよい。エンドエフェクタ44は、作業対象物を掬うことができるように構成される掬いハンドを含んでもよい。エンドエフェクタ44は、ドリル等の工具を含み、作業対象物に穴を開ける作業等の種々の加工を実施できるように構成されてもよい。エンドエフェクタ44は、これらの例に限られず、他の種々の動作ができるように構成されてよい。
 ロボット40は、アーム42を動作させることによって、エンドエフェクタ44の位置を制御できる。エンドエフェクタ44は、作業対象物に対して作用する方向の基準となる軸を有してもよい。エンドエフェクタ44が軸を有する場合、ロボット40は、アーム42を動作させることによって、エンドエフェクタ44の軸の方向を制御できる。ロボット40は、エンドエフェクタ44が作業対象物に作用する動作の開始及び終了を制御する。ロボット40は、エンドエフェクタ44の位置、又は、エンドエフェクタ44の軸の方向を制御しつつ、エンドエフェクタ44の動作を制御することによって、作業対象物を動かしたり加工したりすることができる。
 ロボット40は、ロボット40の各構成部の状態を検出するセンサを更に備えてよい。センサは、ロボット40の各構成部の現実の位置若しくは姿勢、又は、ロボット40の各構成部の速度若しくは加速度に関する情報を検出してよい。センサは、ロボット40の各構成部に作用する力を検出してもよい。センサは、ロボット40の各構成部を駆動するモータに流れる電流又はモータのトルクを検出してもよい。センサは、ロボット40の実際の動作の結果として得られる情報を検出できる。ロボット制御装置10は、センサの検出結果を取得することによって、ロボット40の実際の動作の結果を把握することができる。つまり、ロボット制御装置10は、センサの検出結果に基づいてロボット40の状態を取得できる。
 ロボット制御装置10は、空間情報取得部20でマーク46を撮影した画像に基づいてマーク46の位置、又は、マーク46が設置されているエンドエフェクタ44の位置を認識する。また、ロボット制御装置10は、空間情報取得部20でマーク46を撮影した画像に基づいてロボット40の状態を認識する。ロボット制御装置10は、センサの検出結果に基づいて取得したロボット40の状態と、マーク46を写した画像に基づいて取得したロボット40の状態とを比較することによって、ロボット40のキャリブレーションを実行できる。
<空間情報取得部20>
 空間情報取得部20は、ロボット40の動作空間に関する空間情報を取得する。空間情報取得部20は、動作空間を撮影し、空間情報として動作空間の画像を取得してよい。空間情報取得部20は、図2に例示されるように、動作空間に存在する物体50を撮影してよい。空間情報取得部20は、カメラとして構成されてよい。空間情報取得部20は、3Dステレオカメラとして構成されてもよい。3Dステレオカメラは、動作空間に存在する物体50を撮影し、動作空間に存在する物体50の表面に位置する測定点までの距離をデプスとして算出し、デプス情報を生成する。空間情報取得部20は、LiDAR(light detection and ranging)として構成されてもよい。LiDARは、動作空間に存在する物体50の表面に位置する測定点までの距離を測定し、デプス情報を生成する。つまり、空間情報取得部20は、空間情報として動作空間のデプス情報を取得してよい。空間情報取得部20は、これらに限られず種々のデバイスとして構成されてもよい。空間情報取得部20は、空間情報として、動作空間の画像又はデプス情報に限られず他の種々の情報を取得してよい。空間情報取得部20は、撮像素子を備えてよい。空間情報取得部20は、光学系を更に備えてよい。空間情報取得部20は、動作空間を撮影した画像をロボット制御装置10に出力してよい。空間情報取得部20は、ロボット40の動作空間におけるデプス情報を生成してロボット制御装置10に出力してもよい。空間情報取得部20は、ロボット40の動作空間における点群情報を生成してロボット制御装置10に出力してもよい。すなわち、空間情報は、点群データの形式で出力されてもよい。言い換えれば、点群情報は、空間情報を有していてもよい。点群情報は、動作空間に存在する物体50の表面に位置する各測定点の集合の情報であり、各測定点の座標情報又は色情報を含む情報である。点群情報は、測定空間内の物体50を複数の点で表すデータであるともいえる。空間情報が点群データの形式であることによって、空間情報取得部20で取得された初期データに基づく空間情報よりも、データ密度を小さくすることができる。
 空間情報取得部20は、FOV(Field Of View)を有する。FOVは、空間情報取得部20の撮影範囲に対応する。空間情報取得部20は、FOVに含まれる範囲を撮影できる。空間情報取得部20の実視野サイズは、空間情報取得部20のFOVと、デプス情報とに基づいて定まる。ロボット制御装置10は、空間情報取得部20の実視野サイズと、空間情報取得部20が撮影したロボット40のマーク46を含む画像とに基づいて、ロボット40のマーク46の位置及び姿勢を取得できる。具体的に、ロボット制御装置10は、マーク46を写した画像を所定のアルゴリズムで解析することによって、画像に基づいてマーク46の位置及び姿勢を算出できる。所定のアルゴリズムは、例えば、数式又はテーブル等を含んでよいし、演算処理を特定するプログラムを含んでもよい。所定のアルゴリズムは、画像に基づく算出結果を補正するためのパラメータを含んでもよい。
(ロボット制御装置10の動作例)
 ロボット制御装置10は、動作空間に存在する物体50等の作業対象に作用するようにロボット40を動作させたり、物体50を避けるようにロボット40を動作させたりする。ロボット制御装置10は、物体50を空間情報取得部20で写した撮影画像に基づいて、物体50に作用したり物体50を避けたりするようにロボット40を動作させる。
<キャリブレーション>
 ロボット制御装置10の制御部11は、空間情報取得部20の撮影画像に写ったマーク46の位置及び姿勢に基づいてロボット40の状態を取得し、ロボット40と物体50との位置関係を取得できる。一方で、制御部11は、例えばアーム42などに設置されたエンコーダなどのロボット40のセンサに基づいてロボット40の状態を取得する。ロボット40のセンサに基づく状態は、空間情報取得部20の撮影画像に基づく状態よりもロボット40の位置及び姿勢を高精度に表す。したがって、制御部11は、空間情報取得部20の撮影画像に基づくロボット40の状態を、ロボット40のセンサに基づくロボット40の状態に一致させることによって、ロボット40を動作空間において高精度で制御できる。空間情報取得部20の撮影画像に基づくロボット40の状態を、ロボット40のセンサに基づくロボット40の状態に一致させる作業は、キャリブレーションとも称される。具体的に、制御部11は、空間情報取得部20の(X,Y,Z)座標系をロボット40の(X_RB,Y_RB,Z_RB)座標系に一致させるようにキャリブレーションを実行する。制御部11は、空間情報取得部20の座標系とロボット40の座標系との相対位置関係を推定し、推定した相対位置関係に基づいて空間情報取得部20の座標系をロボット40の座標系に合わせてよい。
 制御部11は、空間情報取得部20のFOVの少なくとも一部をキャリブレーション範囲60としてキャリブレーションを実行してよい。本実施形態において、制御部11は、図2に示されるキャリブレーション範囲60においてキャリブレーションを実行する。キャリブレーション範囲60は、図2において二点鎖線で囲まれた領域として示されている。キャリブレーション範囲60は、ロボット40のキャリブレーションを実行する範囲に対応する。キャリブレーション範囲60は、ロボット40の作業領域を含んでよい。キャリブレーション範囲60は、ロボット40の作業領域とFOVとが重なる範囲であってよい。
 また、制御部11は、キャリブレーション範囲60の中に、キャリブレーションを実行するための点を設定する。キャリブレーションを実行するための点は、キャリブレーション位置とも称される。制御部11は、ロボット40のマーク46をキャリブレーション位置に移動させて空間情報取得部20によってマーク46を撮影させる。制御部11は、マーク46を写した画像に基づいてマーク46の位置及び姿勢を算出する。制御部11は、ロボット40のセンサの検出結果に基づいて定まるマーク46の位置及び姿勢に対して、画像に基づいて算出したマーク46の位置及び姿勢を一致させるように、画像に基づくマーク46の位置及び姿勢を補正する。画像に基づくマーク46の位置及び姿勢の補正がキャリブレーションに対応する。マーク46の位置及び姿勢は、先端位置姿勢とも称される。キャリブレーションは、先端位置姿勢の補正に対応する。キャリブレーション位置は、先端位置姿勢を補正する位置に対応する。
 具体的に、制御部11は、以下説明するようにキャリブレーションを実行してよい。制御部11は、ロボット40のマーク46をキャリブレーション位置に移動させるためのロボット40の制御情報を生成する。制御部11は、制御情報に基づいてロボット40を動作させ、ロボット40のマーク46をキャリブレーション位置に移動させる。制御部11は、マーク46を写した画像を空間情報取得部20から取得する。制御部11は、画像に基づいてマーク46の位置及び姿勢を算出する。画像に基づいて算出したマーク46の位置及び姿勢は、画像に基づく先端位置姿勢とも称される。制御部11は、ロボット40のセンサの検出結果に基づいて定まるマーク46の位置及び姿勢を算出する。センサの検出結果に基づいて算出したマーク46の位置及び姿勢は、センサに基づく先端位置姿勢とも称される。制御部11は、画像に基づく先端位置姿勢と、センサに基づく先端位置姿勢とを比較する。制御部11は、画像に基づく先端位置姿勢がセンサに基づく先端位置姿勢に一致するように、画像に基づく先端位置姿勢を補正する。制御部11は、画像に基づく先端位置姿勢を算出するアルゴリズムを補正してよい。制御部11は、アルゴリズムに含まれるパラメータを補正してよいし、数式、テーブル又はプログラムを補正してもよい。複数のキャリブレーション位置が設定されている場合、制御部11は、各キャリブレーション位置にロボット40を移動させ、各キャリブレーション位置においてマーク46を写した画像を取得し、画像に基づく先端位置姿勢を補正する。
 なお、上記の例では、マーク46の位置及び姿勢に対して、キャリブレーションを行なっているが、キャリブレーションを行なう箇所は、マーク46の位置及び姿勢に限られない。すなわち、制御部11は、予めマーク46の位置と、キャリブレーションを行なうロボット40の一部であるキャリブレーション対象部との位置関係を記憶しておき、画像に基づくマーク46の位置及び姿勢からキャリブレーション対象部の位置及び姿勢を算出してもよい。そして、ロボット40のセンサの検出結果に基づくキャリブレーション対象部の位置及び姿勢と比較することによってキャリブレーションを行なうことができる。したがって、マーク46の位置及び姿勢以外でもキャリブレーションを行なうことが可能になる。また、上記の例では、キャリブレーション対象部はロボット40の先端位置姿勢であったが、位置及び姿勢が算出可能な個所であれば、キャリブレーション対象物はロボット40の先端位置姿勢に限られない。
<<キャリブレーションアイテム>>
 制御部11は、キャリブレーションを実行する前に、あらかじめキャリブレーション範囲60を設定する。また、制御部11は、キャリブレーション範囲60に含まれるキャリブレーション位置を設定する。制御部11は、キャリブレーション範囲60の中にキャリブレーション位置を設定する。
 制御部11は、キャリブレーション位置にロボット40を移動させるようにロボット40の制御情報を生成する。制御部11は、ロボット40をキャリブレーション位置に移動させたときの先端位置姿勢とロボット40のマーク46の認識結果とを特定する情報をキャリブレーションアイテムとして生成する。なお、キャリブレーションアイテムは、例えば、座標に関する情報である。具体的には、キャリブレーションアイテムは、例えば、ロボット40をキャリブレーション位置に移動させたときのロボット40のセンサの検出結果に基づく先端位置姿勢を示す座標情報、又は空間情報取得部20によって認識されたマーク46の認識結果に基づく先端位置姿勢を示す座標情報などである。
 制御部11は、以下に説明するようにキャリブレーションアイテムを生成してよい。
 制御部11は、例えば空間情報取得部20から空間情報取得部20の実視野サイズに関する情報、又は、FOVに関する情報を取得する。制御部11は、空間情報取得部20の実視野サイズ又はFOVとロボット40の作業領域とに基づいて、キャリブレーション範囲60を設定する。制御部11は、ロボット40の動作空間における物体50の位置に基づいてキャリブレーション範囲60を設定してよい。制御部11は、空間情報取得部20で検出した物体50のデプス情報又は点群情報に基づいて、キャリブレーション範囲60を設定してよい。図2において、キャリブレーション範囲60の形状は、四角錐台形状に設定されている。キャリブレーション範囲60の形状は、これらに限られず他の種々の形状に設定されてよい。
 制御部11は、ロボット40のセンサに基づく先端位置姿勢と、空間情報取得部20の画像に基づく先端位置姿勢とを一致させる。具体的に、制御部11は、ロボット40を第1位置に移動させる。制御部11は、ロボット40のマーク46が所定の位置及び姿勢となるようにロボット40を動作させる制御情報を生成し、制御情報に基づいてロボット40を制御することによってロボット40を第1位置に移動させる。第1位置は、空間情報取得部20のFOVに含まれる所定の位置であってよい。第1位置は、例えば空間情報取得部20のFOVの中心位置であってよい。制御部11は、ロボット40が第1位置に移動したときのマーク46の画像を取得し、マーク46の位置及び姿勢を画像に基づく先端位置姿勢として算出する。また、制御部11は、センサに基づく先端位置姿勢を算出する。制御部11は、画像に基づく先端位置姿勢と、センサに基づく先端位置姿勢との比較に基づいて、ロボット40の位置が画像内においてセンサの検出結果に基づく第1位置となるようにロボット40の制御情報を補正する。制御部11は、補正した制御情報に基づいてロボット40を動かすことによって、ロボット40の座標系におけるロボット40の位置と空間情報取得部20の座標系におけるロボット40の位置とが一致するようにロボット40の状態を更新する。つまり、制御部11は、ロボット40の位置が画像内において第1位置になるようにロボット40の状態を更新するともいえる。
 制御部11は、キャリブレーション範囲60の中で、第1位置とは異なるキャリブレーション位置の候補となる位置を生成してもよい。キャリブレーション位置の候補となる位置は、第2位置とも称される。第2位置は、キャリブレーション範囲60に含まれる。制御部11は、ロボット40の動作をシミュレーションすることによって、ロボット40が第2位置に移動した場合のロボット40の状態を推定する。つまり、制御部11は、ロボット40が第2位置に移動すると仮定した場合のロボット40の状態を算出する。その結果、制御部11は、ロボット40が第2位置に移動可能か否かを判定することができる。
 制御部11は、第2位置に移動すると仮定した場合のロボット40の状態が物体50に接触しない状態であり、関節可動域内である状態であり、かつ、特異点でない状態である場合、第2位置をキャリブレーション位置として登録する。制御部11は、第2位置をキャリブレーション位置として登録する場合、ロボット40を第2位置に移動させたときのロボット40のセンサの検出結果に基づく先端位置姿勢とロボット40のマーク46の認識結果に基づく先端位置姿勢とのそれぞれを特定する情報を複数のキャリブレーションアイテムとして生成してよい。制御部11は、第2位置をキャリブレーション位置として登録しない場合、新たに異なる位置の第2位置を生成し、新たな第2位置をキャリブレーション位置として登録できるか判定してもよい。制御部11は、ロボット40の関節の角度を表す数値が可動域内である場合、ロボット40の状態が関節制限でない状態であると判定してもよい。制御部11は、ロボット40の関節の角度を表す数値が可動域外である場合、ロボット40の状態が関節制限状態であると判定してもよい。
 特異点は、ロボット40の構造的にロボット40を制御できなくなる姿勢に対応する。ロボット40を動作させる軌道に特異点が含まれている場合、ロボット40は特異点付近において高速に移動(暴走)し、特異点で停止してしまう。ロボット40の特異点は、以下の(1)~(3)の3種類である。
(1)作業領域の外側限界の近くまでにロボット40を制御するときの作業領域外の点。(作業領域は、ロボット40の動作空間に対応する領域である。)
(2)作業領域内であっても、ロボットベースの真上と真下にロボット40を制御するときの点。
(3)ロボット40のアーム42の先端の関節より1つ前の関節角度がゼロ又は180度になる点(手首整列特異点)。
 制御部11は、ロボット40の状態を表す数値が特異点となる状態を表す数値に一致した場合に、ロボット40の状態が特異点の状態であると判定してもよい。制御部11は、ロボット40の状態を表す数値と特異点となる状態を表す数値との差が所定値未満である場合に、ロボット40の状態が特異点の状態であると判定してもよい。ロボット40の状態を表す数値は、例えばアーム42の関節の角度を含んでもよいし、ロボット40を駆動するモータのトルクを含んでもよい。
 以上述べてきたように、制御部11は、キャリブレーション範囲60を設定し、キャリブレーション範囲60の中でキャリブレーション位置を設定する。また、制御部11は、ロボット40をキャリブレーション位置に移動させたときのロボット40の先端位置姿勢とロボット40のマーク46の認識結果とを特定する情報としてキャリブレーションアイテムを生成できる。
<<キャリブレーションの実行>>
 制御部11は、マーク46の認識結果に関する先端位置姿勢のキャリブレーションアイテムが、ロボット40のセンサの検出結果に関する先端位置姿勢のキャリブレーションアイテムに一致するようにキャリブレーションを実行する。具体的に、制御部11は、キャリブレーション位置にロボット40を移動させる。制御部11は、空間情報取得部20によって、ロボット40がキャリブレーション位置に移動したときのロボット40のマーク46の認識結果を取得する。制御部11は、ロボット40のセンサに基づく先端位置姿勢のキャリブレーションアイテムに対する、マーク46の認識結果として取得された先端位置姿勢のキャリブレーションアイテムの相対位置関係を算出する。相対位置関係は、両者のキャリブレーションアイテムの間の座標の差及び角度の差に対応する。制御部11は、両者のキャリブレーションアイテムに対する相対位置関係に対応する座標の誤差及び角度の誤差がゼロ又はゼロに近くなるように(つまり、誤差が所定値未満になるように)空間情報取得部20の座標系を補正してロボット40の座標系に合わせる。このようにすることで、制御部11は、ロボット40がキャリブレーション位置に移動したときのマーク46の認識結果をロボット40のセンサで特定される先端位置姿勢に一致させることによって、相対位置関係を算出できる。
 具体的に、制御部11は、キャリブレーションを実行することによって空間情報取得部20の(X,Y,Z)座標系を補正してロボット40の(X_RB,Y_RB,Z_RB)座標系に一致させるとする。制御部11は、キャリブレーションを実行することによって空間情報取得部20の座標系とロボット40の座標系との関係を特定してもよい。
<異常発生時の対応>
 上述したように、キャリブレーションによって空間情報取得部20の座標系とロボット40の座標系との関係が特定される。本実施形態において、空間情報取得部20の座標系とロボット40の座標系とは一致する。ここで、種々の原因によって、座標系の関係が変化することがある。座標系の関係は、ロボット40又はロボット制御システム1に異常が発生したときに変化し得る。座標系の関係は、ロボット40を停止したとき、又は、ロボット40を起動するときに変化し得る。
 制御部11は、少なくとも1回のキャリブレーションを実行したロボット40を通常に起動するとき又は異常発生から回復させるために起動するときに、キャリブレーションによって特定されていた座標系の関係が変化しているか判定する。仮に、座標系の関係が変化していなければ、制御部11は、座標系の関係の補正又はキャリブレーションを実行せずにすむ。一方で、ロボット40を起動するときに座標系の関係が変化していれば、制御部11は、座標系の関係を補正できるか判定する。制御部11は、座標系の関係を補正できる場合、座標系の関係を補正し、キャリブレーションを実行しない。制御部11は、座標系の関係を補正できない場合、再キャリブレーションを実行することによって、座標系の関係をあらためて特定する。
 言い換えれば、ロボット40が停止した時に、又はロボット40を起動するときに、キャリブレーションの必要性について判定してもよい。また、ロボット40が停止したときは、異常停止したときに限られず、指定された作業を完了したときであってもよい。また、ロボット40を起動するときは、異常停止した後に起動するときに限られず、指定された作業を開始するときであってもよい。
 制御部11は、キャリブレーションを少なくとも1回実行したロボット40を起動するときに、以下に説明するように、ロボット40の座標系と空間情報取得部20の座標系との関係が変化したか判定し、再キャリブレーションが必要か判定する。
 制御部11は、ロボット40を計測位置に移動させる。制御部11は、計測位置をキャリブレーション範囲60に含まれる点に設定する。計測位置は、例えばキャリブレーション位置の一部を含んでいてもよい。計測位置は、例えばキャリブレーション範囲60の角の点を含んでいてもよい。計測位置は、例えば、上記で説明した第1位置または第2位置を含んでいてもよいし、第1位置および第2位置とは異なる位置を含んでいてもよい。計測位置は、前回のキャリブレーションで使用したキャリブレーション位置を含んでいてもよいし、前回のキャリブレーション位置とは異なる位置を含んでいてもよい。制御部11は、例えばキャリブレーション範囲60の内部の点を計測位置として設定してもよい。制御部11は、これらの点に限られず、キャリブレーション範囲60に含まれる種々の点を計測位置として設定してよい。制御部11は、ロボット40の移動先の計測位置を取得してよい。
 制御部11は、ロボット40を計測位置に移動させたときのマーク46の認識結果を取得する。制御部11は、マーク46の認識結果に基づいてロボット40の位置を計測結果として算出する。制御部11は、計測位置の初期値と計測結果との差を算出する。制御部11は、センサの検出結果に基づいてロボット40を計測位置に移動させているので、センサに基づくロボット40の位置を算出せずに、設定した計測位置そのものと計測結果との差を算出してよい。制御部11は、ロボット40を計測位置に移動させたときのセンサの検出結果を取得し、この検出結果からセンサに基づくロボット40の位置を計測位置として算出して取得し、算出した計測位置を計測位置の初期値として、計測結果との差を算出してもよい。
 制御部11は、計測位置の初期値と計測結果との差に基づいて座標系の関係を補正するか判定する。例えば、制御部11は、計測位置の初期値と計測結果との差が所定の閾値より大きい場合に、座標系の関係を補正すると判定する。制御部11は、複数の計測位置で計測結果を取得した場合、少なくとも1つの計測位置の初期値とその計測結果との差が所定の閾値より大きい場合に、座標系の関係を補正すると判定する。制御部11は、計測位置の初期値と計測結果との差が所定の閾値以下である場合に、座標系の関係の補正、及び、再キャリブレーションが必要ないと判定する。制御部11は、所定の閾値を適宜設定してよい。制御部11は、例えばロボット40の動作時の位置精度の仕様に基づいて、所定の閾値を設定してよい。
 制御部11は、座標系の関係を補正する場合、ロボット40の座標系に空間情報取得部20の座標系を合わせるように、空間情報取得部20の座標系を補正してよい。制御部11は、空間情報取得部20の座標系にロボット40の座標系を合わせるように、ロボット40の座標系を補正してもよい。
 具体的に、制御部11は、空間情報取得部20の座標系又はロボット40の座標系を、回転させたり並進させたりして補正してよい。制御部11は、空間情報取得部20の座標系又はロボット40の座標系を、拡大させたり縮小させたりして補正してよい。制御部11は、空間情報取得部20の座標系又はロボット40の座標系の歪みを補正してもよい。制御部11は、座標系の補正に基づいて、計測位置の補正値を算出してもよい。
 制御部11は、1つの計測位置においてロボット40の先端位置姿勢を取得し、マーク46の向きを表す回転角等の情報に基づいて、座標系を並進方向だけでなく回転方向に補正してもよい。
 座標系の関係の変化の具体例が図3を参照して説明される。ロボット40の(X_RB,Y_RB,Z_RB)座標系に基づいて、計測位置の座標を頂点とする計測位置モデル70が定められるとする。制御部11は、計測位置モデル70の各頂点(計測位置)にロボット40を移動させてマーク46の認識結果を取得する。空間情報取得部20の(X,Y,Z)座標系に基づいて取得したマーク46の認識結果をロボット40の(X_RB,Y_RB,Z_RB)座標系に一致されるとき、算出された計測結果は、計測結果の座標を頂点とする計測結果モデル72で表されるとする。計測位置モデル70は、設定した計測位置そのもの、又は、センサの検出結果に基づいてロボット40を計測位置に移動させたときの計測位置の初期値に対応する。計測結果モデル72は、ロボット40を計測位置に移動させたときのマーク46の認識結果をロボット40の(X_RB,Y_RB,Z_RB)座標系に一致させるときの計測結果に対応する。制御部11は、計測位置モデル70と計測結果モデル72との比較に基づいて、座標系の関係が変化したか判定する。本実施形態において、あらかじめ実行したキャリブレーションによって、ロボット40の座標系と空間情報取得部20の座標系とが一致していたとする。図3に例示される状態において、空間情報取得部20の座標系は、ロボット40の座標系に対して、回転方向及び並進方向に変化している。制御部11は、空間情報取得部20の座標系をロボット40の座標系に一致させるように空間情報取得部20の座標系を並進方向及び回転方向に補正してよい。
 制御部11は、座標系の関係を補正した後、再度、ロボット40を補正後の計測位置に移動させて計測結果を取得する。補正後の計測位置は、補正位置とも称される。座標系の関係を補正した後に取得した計測結果は、補正後計測結果とも称される。制御部11は、補正位置と補正後計測結果との差が所定の閾値以下である場合に、座標系の関係が補正によって前回のキャリブレーションの実行時の関係に戻ったと判定し、ロボット40の再キャリブレーションが必要ないと判定する。制御部11は、座標系の関係の補正結果に基づいて、相対位置関係を更新する。具体的に、制御部11は、計測位置の初期値と補正位置との差に基づいて相対位置関係を更新してよい。
 制御部11は、補正位置と補正後計測結果との差が所定値より大きい場合に、座標系の関係が補正によって前回のキャリブレーションの実行時の関係に戻らないと判定し、ロボット40の再キャリブレーションが必要であると判定する。
 上述してきた座標系の補正は、異常発生時に実行されてよい。具体的に、座標系の補正は、ロボット40が異常停止した後にロボット40を再起動するときに実行されてよい。また、座標系の補正は、空間情報取得部20が動くことによって空間情報取得部20の(X,Y,Z)座標系が変化したときに実行されてもよい。座標系の補正は、異常発生時に限られず、ロボット40の起動時に実行されてもよい。
(ロボット制御方法の手順例)
 ロボット制御装置10の制御部11は、ロボット40の起動時又は異常からの回復時等に、図4に例示されるフローチャートの手順を含むロボット制御方法を実行してもよい。ロボット制御方法は、制御部11を構成するプロセッサに実行させるロボット制御プログラムとして実現されてもよい。ロボット制御プログラムは、非一時的なコンピュータ読み取り可能な媒体に格納されてよい。
 制御部11は、計測位置を取得する(ステップS1)。制御部11は、ロボット40を計測位置へ移動させる(ステップS2)。制御部11は、ロボット40が移動した計測位置におけるマーク46の認識結果を取得する(ステップS3)。制御部11は、全計測位置でマーク46の認識が完了したか判定する(ステップS4)。制御部11は、全計測位置でマーク46の認識が完了していない場合(ステップS4:NO)、ステップS2の手順に戻る。
 制御部11は、全計測位置でマーク46の認識が完了した場合(ステップS4:YES)、計測位置の初期値と計測結果との差が所定の閾値以下であるか判定する(ステップS5)。制御部11は、計測位置の初期値と計測結果との差が所定の閾値以下である場合(ステップS5:YES)、図4のフローチャートの手順の実行を終了する。
 制御部11は、計測位置の初期値と計測結果との差が所定の閾値以下でない場合(ステップS5:NO)、つまり計測位置の初期値と計測結果との差が所定の閾値より大きい場合、座標系を補正し、補正位置を算出する(ステップS6)。制御部11は、ロボット40を補正位置へ移動させる(ステップS7)。制御部11は、ロボット40が移動した補正位置におけるマーク46の認識結果を取得し、補正後計測結果を取得する(ステップS8)。
 制御部11は、補正位置と補正後計測結果との差が所定の閾値以下であるか判定する(ステップS9)。制御部11は、補正位置と補正後計測結果との差が所定の閾値以下である場合(ステップS9:YES)、計測位置の初期値と計測結果との差に基づいて補正値を算出し、キャリブレーション値を更新する(ステップS10)。キャリブレーション値は、相対位置関係を表す。制御部11は、ステップS10の手順の実行後、図4のフローチャートの手順の実行を終了する。
 制御部11は、補正位置と補正後計測結果との差が所定の閾値以下でない場合(ステップS9:NO)、つまり計測位置の補正値と計測結果との差が所定の閾値より大きい場合、ロボット40の再キャリブレーションが必要であると決定する(ステップS11)。制御部11は、ステップS11の手順の実行後、図4のフローチャートの手順の実行を終了する。制御部11は、ステップS11の手順の実行後、ロボット40の再キャリブレーションを実行してもよい。
(小括)
 以上述べてきたように、本実施形態に係るロボット制御装置10及びロボット制御方法によれば、ロボット40の起動時又は異常からの回復時等において、計測位置と計測結果との差が所定の閾値より大きい場合に座標系が補正される。そして、座標系の補正後の計測位置と計測結果との差が所定の閾値より大きい場合に再キャリブレーションが必要と判定され得る。逆に言えば、座標系の補正後の計測位置と計測結果との差が所定の閾値以下となる場合に再キャリブレーションが不要と判定され得る。このようにすることで、異常発生時の作業負荷が低減され得る。
 本開示に係る実施形態について、諸図面及び実施例に基づき説明してきたが、当業者であれば本開示に基づき種々の変形又は改変を行うことが可能であることに注意されたい。従って、これらの変形又は改変は本開示の範囲に含まれることに留意されたい。例えば、各構成部等に含まれる機能等は論理的に矛盾しないように再配置可能であり、複数の構成部等を1つに組み合わせたり、或いは分割したりすることが可能である。
 本開示に記載された構成要件の全て、及び/又は、開示された全ての方法、又は、処理の全てのステップについては、これらの特徴が相互に排他的である組合せを除き、任意の組合せで組み合わせることができる。また、本開示に記載された特徴の各々は、明示的に否定されない限り、同一の目的、同等の目的、または類似する目的のために働く代替の特徴に置換することができる。したがって、明示的に否定されない限り、開示された特徴の各々は、包括的な一連の同一、又は、均等となる特徴の一例にすぎない。
 さらに、本開示に係る実施形態は、上述した実施形態のいずれの具体的構成にも制限されるものではない。本開示に係る実施形態は、本開示に記載された全ての新規な特徴、又は、それらの組合せ、あるいは記載された全ての新規な方法、又は、処理のステップ、又は、それらの組合せに拡張することができる。
 1 ロボット制御システム
 10 ロボット制御装置(11:制御部、12:記憶部)
 20 空間情報取得部
 40 ロボット(42:アーム、44:エンドエフェクタ、46:マーク)
 50 物体
 60 キャリブレーション範囲
 70 計測位置モデル
 72 計測結果モデル

Claims (7)

  1.  ロボットを制御する制御部を備え、
     前記制御部は、
     前記ロボットの移動先の計測位置を取得し、
     空間情報取得部で取得した前記ロボットの動作空間に関する空間情報に基づいて算出された前記ロボットの位置の計測結果を取得し、
     前記計測位置と前記計測結果とに基づいて前記ロボットのキャリブレーションを実行するか判定する、
    ロボット制御装置。
  2.  前記制御部は、前記計測位置と前記計測結果との差に基づいて、前記空間情報取得部の座標系又は前記ロボットを制御する座標系を補正する、請求項1に記載のロボット制御装置。
  3.  前記制御部は、前記空間情報取得部の座標系又は前記ロボットを制御する座標系を、回転、並進、拡大若しくは縮小、又は、歪みについて補正する、請求項2に記載のロボット制御装置。
  4.  前記制御部は、
     補正した座標系において前記ロボットを計測位置に移動させて前記ロボットの位置を補正後計測結果として算出し、
     前記計測位置と前記補正後計測結果との差が所定値以上である場合、前記ロボットのキャリブレーションを実行する、請求項2又は3に記載のロボット制御装置。
  5.  前記制御部は、前記ロボットのうち、前記キャリブレーションを少なくとも1回実行しているロボットに対して、前記キャリブレーションを再実行するか否か判定することができる、請求項1から4までのいずれか一項に記載したロボット制御装置。
  6.  請求項1から5までのいずれか一項に記載のロボット制御装置と、前記ロボットとを備える、ロボット制御システム。
  7.  ロボットを制御する制御部が、前記ロボットの移動先の計測位置を取得し、
     空間情報取得部で取得した前記ロボットの動作空間に関する空間情報に基づいて算出された前記ロボットの位置の計測結果を取得することと、
     前記計測位置と前記計測結果とに基づいて前記ロボットのキャリブレーションを実行するか判定することと
    を含む、ロボット制御方法。
PCT/JP2022/029851 2021-08-03 2022-08-03 ロボット制御装置、ロボット制御システム、及びロボット制御方法 WO2023013698A1 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
US18/681,013 US20240246237A1 (en) 2021-08-03 2022-08-03 Robot control device, robot control system, and robot control method
CN202280053883.5A CN117813182A (zh) 2021-08-03 2022-08-03 机器人控制设备、机器人控制系统和机器人控制方法
EP22853116.6A EP4382258A1 (en) 2021-08-03 2022-08-03 Robot control device, robot control system, and robot control method
JP2023540394A JPWO2023013698A1 (ja) 2021-08-03 2022-08-03

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2021127715 2021-08-03
JP2021-127715 2021-08-03

Publications (1)

Publication Number Publication Date
WO2023013698A1 true WO2023013698A1 (ja) 2023-02-09

Family

ID=85156017

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2022/029851 WO2023013698A1 (ja) 2021-08-03 2022-08-03 ロボット制御装置、ロボット制御システム、及びロボット制御方法

Country Status (5)

Country Link
US (1) US20240246237A1 (ja)
EP (1) EP4382258A1 (ja)
JP (1) JPWO2023013698A1 (ja)
CN (1) CN117813182A (ja)
WO (1) WO2023013698A1 (ja)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009125857A (ja) * 2007-11-22 2009-06-11 Mitsubishi Electric Corp ロボットのキャリブレーション装置及び方法
JP2020116717A (ja) 2019-01-28 2020-08-06 株式会社Fuji ロボット制御システム

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009125857A (ja) * 2007-11-22 2009-06-11 Mitsubishi Electric Corp ロボットのキャリブレーション装置及び方法
JP2020116717A (ja) 2019-01-28 2020-08-06 株式会社Fuji ロボット制御システム

Also Published As

Publication number Publication date
US20240246237A1 (en) 2024-07-25
CN117813182A (zh) 2024-04-02
EP4382258A1 (en) 2024-06-12
JPWO2023013698A1 (ja) 2023-02-09

Similar Documents

Publication Publication Date Title
JP6966582B2 (ja) ロボットモーション用のビジョンシステムの自動ハンドアイ校正のためのシステム及び方法
CN112672860B (zh) 用于ar和数字孪生的机器人校准
JP6180087B2 (ja) 情報処理装置及び情報処理方法
JP5949242B2 (ja) ロボットシステム、ロボット、ロボット制御装置、ロボット制御方法、およびロボット制御プログラム
JP6429473B2 (ja) ロボットシステム、ロボットシステムの校正方法、プログラム、およびコンピュータ読み取り可能な記録媒体
JP6855492B2 (ja) ロボットシステム、ロボットシステム制御装置、およびロボットシステム制御方法
JP6430986B2 (ja) ロボットを用いた位置決め装置
US9519736B2 (en) Data generation device for vision sensor and detection simulation system
JP2767417B2 (ja) ロボツト制御装置
JP5223407B2 (ja) 冗長ロボットの教示方法
US7957834B2 (en) Method for calculating rotation center point and axis of rotation, method for generating program, method for moving manipulator and positioning device, and robotic system
JP2019098409A (ja) ロボットシステムおよびキャリブレーション方法
WO2023013740A1 (ja) ロボット制御装置、ロボット制御システム、及びロボット制御方法
WO2023013698A1 (ja) ロボット制御装置、ロボット制御システム、及びロボット制御方法
WO2023013739A1 (ja) ロボット制御装置、ロボット制御システム、及びロボット制御方法
JP7583942B2 (ja) ロボット制御装置、ロボット制御システム、及びロボット制御方法
JP2016203282A (ja) エンドエフェクタの姿勢変更機構を備えたロボット
JP2005186193A (ja) ロボットのキャリブレーション方法および三次元位置計測方法
CN115082550A (zh) 从对象的相机图像中定位对象的位置的设备和方法
CN118510633A (zh) 具备三维传感器的机器人装置以及机器人装置的控制方法
US20240346674A1 (en) Information processing device, information processing method, imaging device, and information processing system
WO2023013699A1 (ja) ロボット制御装置、ロボット制御システム、及びロボット制御方法
CN113733078A (zh) 机械臂精调控制量判读方法、计算机可读存储介质
US20220092290A1 (en) Image Recognition Method And Robot System
JP2023009776A (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: 22853116

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 202280053883.5

Country of ref document: CN

Ref document number: 2023540394

Country of ref document: JP

WWE Wipo information: entry into national phase

Ref document number: 18681013

Country of ref document: US

NENP Non-entry into the national phase

Ref country code: DE

ENP Entry into the national phase

Ref document number: 2022853116

Country of ref document: EP

Effective date: 20240304