Processing device, placement member, and program
Patent Information
- Application Number
- JP2025507158
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Priority Date
- 2024-03-14
- Filing Date
- 2024-03-14
- Publication Date
- 2025-11-27
AI Technical Summary
Existing robot control systems face challenges in accurately adjusting the movement of robots relative to changing workbench positions and orientations, leading to deviations in the movement of robots performing tasks on workpieces.
A processing device with an acquisition section, identification section, and control section, along with a mounting member featuring a groove for the robot's tip, allows for precise identification of the workbench's posture and adjustment of the robot's movement by detecting contact states and forces, ensuring accurate placement and orientation of workpieces.
The system enables precise calibration and adjustment of the robot's movement, ensuring accurate placement and orientation of workpieces even when the workbench position and orientation change, thereby improving task performance and reducing errors.
Abstract
Description
Processing device, mounting member, and program
[0001] The present disclosure relates to a technique for controlling the movement of a robot.
[0002] Patent Document 1 describes a technique relating to a teaching method for a robot device, and Patent Document 2 describes a technique relating to calibration of a robot.
[0003] JP 2010-58235 A JP 2006-297559 A
[0004] A processing device, a mounting member, and a program are disclosed. In one embodiment, the processing device includes an acquisition unit, an identification unit, and a lot control unit. At least one mounting member is arranged on a workpiece mounting surface of an unfixed work table for the robot. The acquisition unit acquires opposing member information when an opposing member of the robot is in contact with the at least one mounting member. The identification unit identifies the orientation of the mounting surface as viewed from above or the three-dimensional orientation of the mounting surface based on the opposing member information. The robot control unit controls the movement of the robot based on the orientation identified by the identification unit.
[0005] In one embodiment, the mounting member is a mounting member that is placed on a mounting surface of a robot for a work object. The mounting member has a groove into which a tip of a member placed on the robot is inserted. The inner surface of the groove has a plurality of surfaces that each come into point contact with the tip.
[0006] In one embodiment, the surfaces of the mounting member include a plurality of opposing surfaces facing each other and a wall surface located at one end of the groove in the longitudinal direction. The opposing surfaces include an inclined surface that slopes outwardly upward.
[0007] In one embodiment, the processing device includes a robot control unit that controls the robot so that the tip of the member moves within the groove of the mounting member. The robot control unit determines the contact state of the tip with the inner surface of the groove based on the detection result of a sensor that detects the force applied to the tip. The robot control unit controls the robot so that the tip moves within the groove to the wall surface based on the determined contact state.
[0008] In one embodiment, the program is a program for causing a computer device to function as the processing device.
[0009] 1 is a schematic diagram showing an example of a processing device. FIG. 1 is a schematic diagram showing an example of a robot and an example of the robot's surroundings. FIG. 1 is a schematic diagram showing an example of a robot and an example of the robot's surroundings. FIG. 2 is a schematic diagram showing an example of an opposing member. FIG. 3 is a schematic diagram showing an example of a mounting member. FIG. 4 is a schematic diagram showing an example of a mounting member. FIG. 5 is a schematic diagram showing an example of a mounting member arrangement on a mounting surface. FIG. 6 is a schematic diagram showing an example of a manner in which an opposing member comes into contact with a mounting member. FIG. 7 is a schematic diagram showing an example of a manner in which an opposing member comes into one-point contact with the inner surface of the mounting member. FIG. 8 is a schematic diagram showing an example of a manner in which an opposing member comes into two-point contact with the inner surface of the mounting member. FIG. 9 is a flowchart showing an example of an operation of a processing device. FIG. 10 is a schematic diagram showing a relationship between a mounting member and a sensor coordinate system. FIG. 11 is a schematic diagram showing examples of reference first contact position coordinates, reference second contact position coordinates, first contact position coordinates, and second contact position coordinates. FIG. 12 is a schematic diagram for explaining an example of a method for identifying the posture of a mounting table. FIG. 13 is a schematic diagram showing an example of an arrangement of two mounting members on a mounting surface. FIG. 1 is a schematic diagram showing an example of reference second contact position coordinates and second contact position coordinates of two mounting members. FIG. 1 is a schematic diagram for explaining an example of a method for specifying the posture of the mounting table. FIG. 2 is a schematic diagram showing an example of a mounting member. FIG. 3 is a schematic diagram showing an example of a mounting member. FIG. 4 is a schematic diagram showing an example of a tip end of an opposing member. FIG. 5 is a schematic diagram showing an example of a mounting member. FIG. 6 is a schematic diagram showing an example of a state in which the tip end of the opposing member comes into contact with a recess in the mounting member. FIG. 7 is a schematic diagram showing an example of a mounting member. FIG. 8 is a schematic diagram showing an example of a state in which the tip end of the opposing member fits into a recess in the mounting member. FIG. 9 is a schematic diagram for explaining an example of a method for specifying the posture of the mounting table. FIG. 10 is a schematic diagram for explaining an example of a method for specifying the posture of the mounting table.
[0010] Fig. 1 is a schematic diagram showing an example of the configuration of a processing device 1. The processing device 1 is capable of, for example, performing calibration to adjust the movement of a robot 10. The processing device 1 is also capable of, for example, controlling the robot 10. In this example, the processing device 1 can also be said to be a robot control device that controls the robot 10. Fig. 2 is a schematic diagram showing an example of the robot 10 and an example of the surroundings of the robot 10.
[0011] The robot 10 performs work on, for example, an object 50 placed on the upper surface 35 of the work table 30. For example, the robot 10 may hold the object 50 on the work table 30 and move it to another location, or may change the orientation of the held object 50 and place it back on the work table 30. The object 50 can also be considered a work target 50 of the robot 10. The upper surface 35 of the work table 30 can also be considered a mounting surface 35 on which the work target 50 is placed. The position of the work target 50 (hereinafter simply referred to as the object 50) on the mounting surface 35 can be fixed, for example, by a fixing jig. Furthermore, multiple objects 50 can be placed on the mounting surface 35. Furthermore, the object 50 can be placed on the mounting surface 35 via, for example, a container rather than being placed directly on the mounting surface 35. In other words, the object 50 can be placed in a container on the mounting surface 35. The mounting surface 35 has a rectangular shape, for example.
[0012] The robot 10 includes, for example, an arm 11 and an end effector 15 connected to the arm 11. The end effector 15 is capable of holding an object 50. The arm 11 includes, for example, a plurality of joints. A change in the amount of rotation of at least one of the plurality of joints causes a change in the posture of the arm 11. The change in posture of the arm 11 then causes a change in the position and posture of the end effector 15. The change in posture of the arm 11 also causes a change in the position and posture of the object 50 held by the end effector 15. The end effector 15 is capable of, for example, grasping and holding the object 50 with a plurality of fingers. Note that the end effector 15 may hold the object 50 by suction.
[0013] The robot 10 may, for example, hold the object 50 with the end effector 15 and move the arm 11 (in other words, change the posture of the arm 11) to move the held object 50 to another location. The robot 10 may also move the arm 11 (in other words, change the posture of the arm 11) to change the posture of the object 50 held by the end effector 15 (for example, turn the object 50 upside down), and then place the object 50 again on the placement surface 35.
[0014] The robot 10 includes, for example, a force sensor 18. The force sensor 18 is provided, for example, on the wrist portion of the end effector 15. The force sensor 18 is capable of repeatedly detecting, for example, the force acting on the end effector 15. The force sensor 18 may be, for example, a six-axis force sensor. The force sensor 18 may be, for example, an electrical resistance type, an electrostatic capacitance type, a piezoelectric type, or an optical type.
[0015] The robot 10 is fixed to, for example, the upper surface 85 of a base 80. The robot 10 may be movable or transportable by a user during work, for example. Furthermore, the base 80 may have a movement mechanism such as casters, and the robot 10 may be movable or transportable together with the base 80 during work. One end of a holding arm 95 that holds a camera 90 is attached to the upper surface 85 of the base 80. The camera 90 is fixed to the other end of the holding arm 95. The camera 90 is capable of capturing images of the mounting surface 35 of the workbench 30. The relative positional relationship between the camera 90 and the robot 10 is fixed.
[0016] The camera 90 is, for example, a three-dimensional camera. The camera 90 captures an image of the shooting range including the mounting surface 35 of the workbench 30, and generates, for example, a two-dimensional color image and a distance image. Each pixel value of the color image includes, for example, an R component (red component), a G component (green component), and a B component (blue component). Such a color image is also called an RGB image. The color image captures the state of the shooting range. The distance image is an image that represents the distance to each measurement point included in the shooting range in two dimensions. Each pixel value of the distance image indicates the distance to the measurement point corresponding to that pixel value. The distance image is also called a depth image.
[0017] 3, the camera 90 that captures the image of the workbench 30 may be held by a holding arm 96 that extends from the workbench 30. One end of the holding arm 96 is attached to the workbench 30, and the camera 90 is fixed to the other end of the holding arm 96.
[0018] In this example, a work point 200 of the robot 10 is set based on the mounting surface 35 of the work table 30. The work point 200 refers to the position of a predetermined part of the robot 10 when the robot 10 performs a task. The work point 200 can also be called a work position 200. The processing device 1 controls the movement of the robot 10, moves the predetermined part of the robot 10 to the work point 200, and causes the robot 10 to perform the task. Therefore, the robot 10 moves in accordance with the work point 200.
[0019] For example, when the end effector 15 of the robot 10 performs an operation of holding an object 50, the working point 200 is the position of the end effector 15 when holding the object 50. In this case, the working point 200 may be set, for example, on the surface of the object 50 on the placement surface 35, or may be set near the object 50. The processing device 1 moves the end effector 15 to the working point 200 and causes the end effector 15 to hold the object 50.
[0020] As another example, consider a case where the robot 10 is equipped with a camera for capturing an image of the placement surface 35 of the work table 30. This camera is fixed to, for example, the end effector 15. In such a case, when the robot 10 is performing the task of capturing an image of the placement surface 35 with the camera, the position of the camera becomes the work point 200. The work point 200 is set, for example, at a location a predetermined distance above the center of the placement surface 35. The processing device 1 moves the camera of the robot 10 to the work point 200 and causes the camera of the robot 10 to capture an image of the placement surface 35.
[0021] When multiple objects 50 are placed on the placement surface 35, multiple work points 200 are set relative to the placement surface 35, corresponding to the multiple objects 50, respectively. Even if the position and orientation of the placement surface 35 change, the relative position of the work points 200 with respect to the placement surface 35 remains constant. When a predetermined part of the robot 10 moves to the work point 200 and the robot 10 performs a task, this can be said to be movement of the robot 10 relative to the placement surface 35. When at least one of the position and orientation of the placement surface 35 changes and the work point 200 changes, the movement of the robot 10 relative to the placement surface 35 changes. The robot 10 moves in accordance with the work point 200.
[0022] The processing device 1 stores position information of the working point 200 in the robot coordinate system 100 when the position and orientation of the mounting surface 35 of the work table 30 are set to a predetermined position and orientation in the robot coordinate system 100 of the robot 10. The position information of the working point 200 in the robot coordinate system 100 is expressed, for example, by the position coordinates of the working point 200 in the robot coordinate system.
[0023] Here, the robot coordinate system 100 is an XYZ Cartesian coordinate system set for the robot 10, as shown in FIG. 2 . The origin of the robot coordinate system 100 is set, for example, at the end of the arm 11 of the robot 10 on the base 80 side. For example, the XY plane of the robot coordinate system 100 is set parallel to the top surface 85 of the base 80, and the Z axis of the robot coordinate system 100 is set perpendicular to the top surface 85. For example, the X axis of the robot coordinate system 100 is set parallel to the short side of the rectangular top surface 85. For example, the Y axis of the robot coordinate system 100 is set parallel to the long side of the top surface 85. For example, the Z axis of the robot coordinate system 100 is approximately parallel to the direction of gravity. The processing device 1 grasps the position and posture of the robot 10 in the robot coordinate system 100 and controls the movement of the robot 100 in the robot coordinate system 100.
[0024] Hereinafter, the position and orientation of an object such as a work table may be collectively referred to as the position and orientation. The above-mentioned predetermined position and orientation with respect to the placement surface 35 may be referred to as the reference position and orientation. The above-mentioned predetermined position with respect to the placement surface 35 may be referred to as the reference position, and the above-mentioned predetermined orientation with respect to the placement surface 35 may be referred to as the reference orientation. The position information of the working point 200 in the robot coordinate system 100 when the position and orientation of the placement surface 35 in the robot coordinate system 100 is set as the reference position and orientation in the robot coordinate system 100 may be referred to as reference working point position information. The position coordinates of the working point 200 in the robot coordinate system 100, which serve as the reference working point position information, may be referred to as reference working point coordinates. The position, orientation, and position and orientation of the work table 30 or the placement surface 35 simply refer to the position, orientation, and position and orientation of the work table 30 or the placement surface 35 in the robot coordinate system 100.
[0025] When the position and posture of the placement surface 35 is the reference position and posture, for example, the longitudinal direction and lateral direction of the placement surface 35 are parallel to the X-axis and Y-axis of the robot coordinate system 100, respectively, and the direction perpendicular to the placement surface 35 is parallel to the Z-axis of the robot coordinate system 100. Figure 2 shows an example of the position and posture of the placement surface 35 being the reference position and posture.
[0026] When the position and posture of the placement surface 35 is the reference position and posture, the processing device 1 can move a predetermined part of the robot 10 (e.g., the end effector 15) to the working point 200 based on the reference working point position information. Therefore, when the position and posture of the placement surface 35 is the reference position and posture, the robot 10 can appropriately perform work at the working point 200.
[0027] On the other hand, if the position and posture of the placement surface 35 deviates from the reference position and posture, the position information in the robot coordinate system 100 of the working point 200 set with reference to the placement surface 35 will deviate from the reference working point position information. Therefore, it becomes difficult for the processing device 1 to move a predetermined part of the robot 10 to the working point 200 based on the reference working point position information. Specifically, when the processing device 1 attempts to move a predetermined part of the robot 10 to the working point 200, the actual movement destination will be a position deviated from the working point 200 by the amount that the position and posture of the placement surface 35 deviates from the reference position and posture.
[0028] For example, consider a case where the robot 10 is fixed on a movable platform 80. In this case, an operator may move the platform 80 to move the robot 10 close to the work table 30. The operator moves the robot 10 close to the work table 30 and aligns the robot 10 with the work table 30. At this time, the position and orientation of the placement surface 35 may deviate from the reference position and orientation. Furthermore, even if the work table 30 is not fixed and the operator moves the work table 30 close to the robot 10, the position and orientation of the placement surface 35 may deviate from the reference position and orientation.
[0029] Therefore, in this example, when the position and posture of the placement surface 35 changes from the reference position and posture, the processing device 1 corrects the reference working point position information to obtain current position information (in other words, actual position information) of the working point 200 in the robot coordinate system 100. As a result, when the position and posture of the placement surface 35 changes from the reference position and posture, the movement of the robot 10 with respect to the placement surface 35 is adjusted. The processing device 1 performs calibration to adjust the movement of the robot 10 with respect to the placement surface 35 by obtaining the current position information (in other words, position coordinates) of the working point 200 in the robot coordinate system 100. A change in the position and posture of the placement surface 35 from the reference position and posture includes a change in the position of the placement surface 35 in the robot coordinate system 100 from the reference position and a change in the posture of the placement surface 35 in the robot coordinate system 100 from the reference posture.
[0030] Hereinafter, simply referring to position information and position coordinates means position information and position coordinates in the robot coordinate system 100. Furthermore, when performing calibration to adjust the movement of the robot 10 based on the placement surface 35, the placement surface 35 may be referred to as the target placement surface 35. Furthermore, the workbench 30 equipped with the target placement surface 35 may be referred to as the target workbench 30. Furthermore, the placement member 40 on the target placement surface 35 may be referred to as the target placement member 40. The processing device 1 can correct the reference work point position information and determine the position information of the work point 200 based on the target placement surface 35.
[0031] In the calibration, a mounting member 40 arranged on the mounting surface 35 and an opposing member 60 arranged on the robot 10 are used. In the calibration, the opposing member 60 is positioned so as to face the mounting surface 35. Each of the mounting member 40 and the opposing member 60 can also be said to be a calibration member.
[0032] The opposing member 60 is attached to, for example, the end effector 15. The opposing member 60 may be detachably fixed to, for example, the housing of the end effector 15. The opposing member 60 is, for example, a rod-shaped member. The tip of the opposing member 60 is rounded. The opposing member 60 includes, for example, a rod-shaped portion 61 and a tip portion 65 connected to one end of the rod-shaped portion 61. The tip portion 65 is, for example, spherical. The other end of the rod-shaped portion 61 is attached to the end effector 15. When calibration is performed, the tip portion 65 of the opposing member 60 comes into contact with the mounting member 40. The position and orientation of the tip portion 65 of the opposing member 60 relative to the robot 10 or the end effector 15 are fixed.
[0033] The tip 65 of the opposing member 60 may be, for example, hemispherical, as shown in Fig. 4. The end effector 15 may have a recess into which the opposing member 60 is inserted. The recess may be, for example, a screw hole, and the other end of the opposing member 60 (i.e., the end opposite the tip 65) may be, for example, a screw, so that the opposing member 60 can be fixed to the end effector 15. An indicator line indicating a predetermined insertion depth may be provided on the other end of the opposing member 60 so that the relative position and posture of the tip 65 of the opposing member 60 and the robot 10 or the end effector 15 are constant.
[0034] The mounting member 40 is, for example, fixedly disposed with respect to the mounting surface 35. The position and orientation of the mounting member 40 relative to the mounting surface 35 is fixed. Even if at least one of the position and orientation of the mounting surface 35 changes, the position of the working point 200 relative to the mounting member 40 with respect to the mounting surface 35 as the reference remains constant. It can also be said that even if at least one of the position and orientation of the mounting member 40 changes, the position of the working point 200 relative to the mounting member 40 remains constant.
[0035] FIG. 5 is a schematic perspective view showing an example of the mounting member 40. FIG. 6 is a schematic plan view showing an example of the mounting member 40. FIG. 7 is a schematic side view showing an example of the mounting member 40. As shown in FIGS. 5 to 7, the mounting member 40 has a recess 41 into which, for example, the tip 65 of the opposing member 60 arranged on the robot 10 is inserted. The recess 41 is open, for example, toward the upper surface 40a of the mounting member 40. The bottom surface 40b of the mounting member 40 is flat, for example. The recess 41 is, for example, a groove portion. In the examples of FIGS. 5 to 7, the recess 41 is a V-groove portion. Hereinafter, the recess 41 that is a groove portion may be referred to as the groove portion 41.
[0036] The groove 41 of the mounting member 40 is formed so that the thickness from the mounting member 40 is constant. Furthermore, the groove 41 of the mounting member 40 arranged on the mounting surface 35 extends along and parallel to the mounting surface 35. The extending direction of the groove 41 is parallel to the mounting surface 35. The inner surface 42 of the groove 41 includes a pair of opposing surfaces 43 facing each other and a wall surface 44 located at one end of the groove 41 in the longitudinal direction. Due to the presence of the wall surface 44, one end of the groove 41 in the longitudinal direction is closed. On the other hand, the other end of the groove 41 in the longitudinal direction is open, and an opening 45 is provided at this other end. The recess 41 is open not only to the upper surface 40a of the mounting member 40 but also to the side surfaces. The inner surface 42 can also be considered a concave surface.
[0037] As shown in Figure 7, in a side view of the groove portion 41, the pair of opposing surfaces 43 form a V-shape. Each opposing surface 43 is, for example, an inclined surface that slopes outward toward the top. In other words, each opposing surface 43 is, for example, an inclined surface that slopes outward with respect to a direction perpendicular to the mounting surface 35. In further words, each opposing surface 43 is an inclined surface that slopes outward with respect to a direction perpendicular to the depth direction of the groove portion 41. The wall surface 44 is, for example, parallel to the direction perpendicular to the mounting surface 35. The tip portion 65 of the opposing member 60 can move within the groove portion 41 along the groove portion 41.
[0038] Hereinafter, of the pair of opposing surfaces 43, the opposing surface 43 shown on the right side of Fig. 7 may be referred to as the first opposing surface 43a, and the opposing surface 43 shown on the left side of Fig. 7 may be referred to as the second opposing surface 43b. Furthermore, the direction from the opening 45 along the groove 41 toward the wall surface 44 (the depth direction of the paper in Fig. 7 ) may be referred to as the depth direction of the mounting member 40, and the direction from the wall surface 44 along the groove 41 toward the opening 45 (the front direction of the paper in Fig. 7 ) may be referred to as the front direction of the mounting member 40. Furthermore, the direction from the bottom surface 40b toward the top surface 40a along the depth direction of the groove 41 (the upward direction in Fig. 7 ) may be referred to as the upward direction of the mounting member 40, and the direction from the top surface 40a toward the bottom surface 40b along the depth direction of the groove 41 (the downward direction in Fig. 7 ) may be referred to as the downward direction of the mounting member 40. Furthermore, the direction from the first opposing surface 43 a toward the second opposing surface 43 b along a direction perpendicular to the depth direction and longitudinal direction of the groove 41 (left direction in FIG. 7 ) may be referred to as the left direction of the mounting member 40. Furthermore, the direction from the second opposing surface 43 b toward the first opposing surface 43 a along a direction perpendicular to the depth direction and longitudinal direction of the groove 41 (right direction in FIG. 7 ) may be referred to as the right direction of the mounting member 40.
[0039] FIG. 8 is a schematic diagram showing an example of the arrangement of the mounting member 40 on the mounting surface 35. FIG. 8 shows the mounting surface 35 in the reference position and orientation. In the example of FIG. 8, the mounting member 40 is arranged at the edge of the mounting surface 35. Specifically, the mounting member 40 is arranged at a corner of the mounting surface 35. When the mounting member 40 is arranged at the edge of the mounting surface 35, the mounting member 40 is less likely to interfere with the work of the robot 10. Furthermore, when the mounting member 40 is arranged at a corner of the mounting surface 35 as in the example of FIG. 8, the mounting member 40 is even less likely to interfere with the work of the robot 10. Note that the position and orientation of the mounting member 40 on the mounting surface 35 are not limited to the example of FIG. 8. For example, the mounting member 40 may have a linear or perpendicular step on its bottom surface, and the step may be arranged to engage with an edge or corner of the work table 30.
[0040] 8 shows the relationship between the mounting surface 35 in the reference position and posture on which the mounting member 40 is placed and the robot coordinate system 100. The Z axis of the robot coordinate system 100 is parallel to, for example, the depth direction of the groove 41 of the mounting member 40 on the mounting surface 35 in the reference position and posture. In other words, the Z axis of the robot coordinate system 100 is parallel to, for example, the up-down direction of the mounting member 40 on the mounting surface 35 in the reference position and posture. The positive direction of the Z axis of the robot coordinate system 100 is set to, for example, the same direction as the upward direction of the mounting member 40 on the mounting surface 35 in the reference position and posture.
[0041] The Y axis of the robot coordinate system 100 is, for example, parallel to the longitudinal direction (in other words, the extension direction) of the groove 41 of the mounting member 40 on the mounting surface 35 in the reference position and posture. The positive direction of the Y axis of the robot coordinate system 100 is set, for example, in the same direction as the depth direction of the mounting member 40 on the mounting surface 35 in the reference position and posture.
[0042] The X axis of the robot coordinate system 100 is parallel to, for example, a direction perpendicular to the depth direction and longitudinal direction of the groove 41 of the mounting member 40 on the mounting surface 35 in the reference position and posture (the left-right direction in FIG. 8 ). In other words, the X axis of the robot coordinate system 100 is parallel to, for example, the left-right direction of the mounting member 40 on the mounting surface 35 in the reference position and posture. The positive direction of the X axis of the robot coordinate system 100 is set to, for example, the same direction as the left direction of the mounting member 40 on the mounting surface 35 in the reference position and posture.
[0043] During calibration, the opposing member 60 comes into contact with the mounting member 40. Specifically, the tip 65 of the opposing member 60 comes into contact with the inner surface 42 of the groove 41 of the mounting member 40. FIG. 9 is a schematic diagram showing an example of the state in which the tip 65 comes into contact with the inner surface 42 of the groove 41. The tip 65 makes point contact with each of the pair of opposing surfaces 43 of the groove 41. The tip 65 also makes point contact with the wall surface 44 of the groove 41. It can be said that the mounting member 40 has a plurality of surfaces that each make point contact with the tip 65.
[0044] In the calibration, for example, the posture of the placement surface 35 of the workbench 30 is identified based on opposing member information about the opposing member 60 acquired when the opposing member 60 is in contact with the placement member 40. Hereinafter, the opposing member information acquired when the opposing member 60 is in contact with the placement member 40 may be referred to as contact opposing member information.
[0045] The contact opposing member information includes, for example, position information of the tip portion 65 when the tip portion 65 is in contact with a predetermined location on the inner surface 42 of the groove portion 41. In other words, the contact opposing member information includes position information of the tip portion 65 at a predetermined contact position of the tip portion 65 on the inner surface 42 of the groove portion 41. Hereinafter, this position information may be referred to as contact position information. The contact position information is expressed, for example, by position coordinates in the robot coordinate system.
[0046] In the calibration, the movement of the robot 10 relative to the mounting surface 35 is adjusted based on the identified posture of the mounting surface 35 (also referred to as the specific posture of the mounting surface 35) and the contact position information included in the contact opposing member information. This allows the movement of the robot 10 relative to the mounting surface 35 to be appropriately adjusted. For example, based on the specific posture of the mounting surface 35 and the contact position information, the reference working point position information is corrected to determine the current position information of the working point 200. Calibration will be described in detail later.
[0047] <Configuration Example of Processing Device> The processing device 1 is, for example, a type of computer device. As shown in Fig. 1, the processing device 1 includes, for example, a control unit 2, a storage unit 3, an interface 4, and an interface 5. The processing device 1 can also be considered, for example, a processing circuit.
[0048] The interface 4 is capable of communicating with the camera 90. The control unit 2 can acquire images generated by the camera 90 through the interface 4. The interface 4 may also be referred to as, for example, an interface circuit, a communication unit, or a communication circuit. The interface 4 may communicate with the camera 90 via wired or wireless communication.
[0049] The interface 5 is capable of communicating with the robot 10. The control unit 2 is capable of controlling the robot 10 through the interface 5. The interface 5 may also be referred to as, for example, an interface circuit, a communication unit, or a communication circuit. The interface 5 may communicate with the robot 10 via wired or wireless communication.
[0050] The control unit 2 can generally manage the operation of the processing device 1 by controlling the other components of the processing device 1. The control unit 2 can also be referred to as a control circuit, for example. The control unit 2 includes at least one processor to provide control and processing power for performing various functions, as described in more detail below.
[0051] According to various embodiments, the at least one processor may be implemented as a single integrated circuit (IC) or as multiple communicatively connected integrated circuits ICs and / or discrete circuits. The at least one processor may be implemented according to various known techniques.
[0052] In one embodiment, a processor includes one or more circuits or units configured to perform one or more data computational procedures or processes, for example, by executing instructions stored in associated memory. In other embodiments, a processor may be firmware (e.g., discrete logic components) configured to perform one or more data computational procedures or processes.
[0053] According to various embodiments, the processor may include one or more processors, controllers, microprocessors, microcontrollers, application specific integrated circuits (ASICs), digital signal processors, programmable logic devices, field programmable gate arrays, or any combination of these devices or configurations, or other known devices and configurations, to perform the functions described below.
[0054] The control unit 2 may include, for example, a CPU (Central Processing Unit) as a processor. The storage unit 3 may include a non-transitory recording medium readable by the CPU of the control unit 2, such as a ROM (Read Only Memory) and a RAM (Random Access Memory). The storage unit 3 stores, for example, a program 3a for controlling the processing device 1. The various functions of the control unit 2 are realized, for example, by the CPU of the control unit 2 executing the program 3a in the storage unit 3. The storage unit 3 stores reference working point position information.
[0055] The configuration of the control unit 2 is not limited to the above example. For example, the control unit 2 may include multiple CPUs. The control unit 2 may also include at least one DSP (Digital Signal Processor). All or some of the functions of the control unit 2 may be realized by a hardware circuit that does not require software to realize the function. The storage unit 3 may also include a computer-readable non-transitory recording medium other than ROM and RAM. The storage unit 3 may also include, for example, a small hard disk drive or SSD (Solid State Drive).
[0056] The control unit 2 performs calibration to adjust the movement of the robot 10 based on the placement surface 35. In the calibration, the control unit 2, for example, acquires information about a contact opposing member and identifies the orientation of the placement surface 35 of the work table 30 based on the acquired information about the contact opposing member. Then, the control unit 2 corrects the reference working point position information based on the identified orientation of the placement surface 35 and the contact position information included in the information about the contact opposing member, and obtains current position information of the working point 200.
[0057] The control unit 2 includes, for example, a robot control unit 20 that controls the robot 10, an identification unit 25, and an acquisition unit 27. The robot control unit 20, the identification unit 25, and the acquisition unit 27 are functional blocks formed in the control unit 2, for example, when the CPU of the control unit 2 executes a program 3a in the storage unit 3. Note that all or some of the functions of the robot control unit 20 may be realized by a hardware circuit that does not require software to realize the function. The same applies to the identification unit 25 and the acquisition unit 27.
[0058] The acquiring unit 27 can acquire the contact opposing member information. The identifying unit 25 identifies the orientation of the target placement surface 35 based on the contact opposing member information acquired by the acquiring unit 27. The identifying unit 25 identifies, for example, a three-dimensional orientation (referred to as a three-dimensional orientation) of the target placement surface 35 based on the contact opposing member information. The robot control unit 20 adjusts the movement of the robot 10 based on the target placement surface 35 as a reference, based on the orientation (e.g., three-dimensional orientation) of the target placement surface 35 identified by the identifying unit 25 and contact position information included in the contact opposing member information. The robot control unit 20 corrects the reference working point position information based on, for example, the orientation of the target placement surface 35 identified by the identifying unit 25 and the contact position information included in the contact opposing member information, to obtain current position information of the working point 200.
[0059] The robot control unit 20 controls the robot 10 through the interface 5. The robot control unit 20 also determines the contact state of the tip 65 of the opposing member 60 with the inner surface 42 of the groove 41 of the mounting member 40. A force sensor 18 (also simply referred to as the sensor 18) included in the robot 10 detects a force acting on the tip 65 during calibration. The robot control unit 20 determines the contact state of the tip 65 with the inner surface 42 of the groove 41 based on the detection result of the sensor 18. The sensor 18 outputs force detection information indicating the detection result. During calibration, the robot control unit 20 acquires the force detection information output from the sensor 18 through the interface 5. The robot control unit 20 then determines the contact state of the tip 65 with the inner surface 42 of the groove 41 based on the acquired force detection information. During calibration, the robot control unit 20 controls the movement of the robot 10 so that the tip 65 of the opposing member 60 moves within the groove 41 based on the determination result of the contact state of the tip 65 with the inner surface 42 of the groove 41.
[0060] <Example of Calibration> <Overview> After the operator installs the robot 10 and the target work table 30 and completes the alignment between them, for example, the operator grasps and moves the end effector 15 of the robot 10 in free drive mode, bringing the tip 65 of the opposing member 60 attached to the end effector 15 into contact with only one opposing surface 43 of the inner surface 42 of the groove portion 41 of the target placement member 40 on the target placement surface 35. Alternatively, the operator positions the tip 65 near one opposing surface 43. Here, the operator brings the tip 65 into contact with only the first opposing surface 43 a, or positions the tip 65 near the first opposing surface 43 a.
[0061] The worker instructs the processing device 1 to perform calibration by bringing the tip 65 into contact with only the first opposing surface 43a or by placing the tip 65 near the first opposing surface 43a. If the processing device 1 has an input unit that accepts instructions input by the worker, the worker may instruct the processing device 1 to perform calibration through the input unit. The input unit included in the processing device 1 may include, for example, a mouse, a keyboard, a touch sensor, etc. The worker may also instruct the processing device 1 to perform calibration using an information processing terminal that can communicate with the processing device 1 via a network. The information processing terminal may be, for example, a notebook or desktop personal computer, or a tablet terminal.
[0062] When the processing device 1 receives the instruction to perform calibration, it starts calibrating the robot 10. During the calibration, the robot control unit 20 of the processing device 1 determines whether the tip 65 is in contact with only the first opposing surface 43 a, based on the force detection information output from the sensor 18. When the tip 65 is not in contact with the first opposing surface 43 a, the robot control unit 20 controls the movement of the robot 10 so that the tip 65 moves downward (toward the ground or floor) so that the tip 65 is in contact with only the first opposing surface 43 a.
[0063] 10 is a schematic diagram showing an example of how the tip portion 65 moves downward and comes into contact only with the first opposing surface 43 a of the groove portion 41. When the tip portion 65 comes into contact only with the first opposing surface 43 a of the groove portion 41, the tip portion 65 comes into contact with the inner surface 42 of the groove portion 41 at one point.
[0064] 10 , when the tip portion 65 is in contact only with the first opposing surface 43a, the tip portion 65 receives a force 310a directed upward from the mounting member 40 and a force 300a directed leftward from the mounting member 40. In other words, when the tip portion 65 is in contact only with the first opposing surface 43a of the groove portion 41, the tip portion 65 receives a force 310a directed upward from the mounting member 40 and a force 300a directed leftward from the mounting member 40. Hereinafter, the force 300a may be referred to as the leftward force 300a, and the force 310a may be referred to as the upward force 310a.
[0065] When the tip 65 is in contact with only the first opposing surface 43 a, in other words, when the tip 65 is in single-point contact with the inner surface 42 of the groove 41, the robot control unit 20 controls the robot 10 based on the force detection information so that the tip 65 moves along the first opposing surface 43 a toward the bottom of the inner surface 42 of the groove 41. The robot control unit 20 then determines that the tip 65 has reached the bottom of the inner surface 42 of the groove 41 and is in contact with only the first opposing surface 43 a and the second opposing surface 43 b. Figure 11 is a schematic diagram showing an example of the tip 65 in contact with only the first opposing surface 43 a and the second opposing surface 43 b.
[0066] When it is determined that the tip portion 65 is in contact with only the first opposing surface 43 a and the second opposing surface 43 b, the determination unit 25 of the processing device 1 stores current position information of the tip portion 65, that is, position information of the tip portion 65 at the first contact position on the inner surface 42 of the groove portion 41, as first contact position information. The tip portion 65, which is in contact with only the first opposing surface 43 a and the second opposing surface 43 b, is in two-point contact with the inner surface 42 of the groove portion 41. The first contact position can also be said to be, for example, a two-point contact position of the tip portion 65 on the inner surface 42. The first contact position is located on the inner surface 42. The processing device 1 determines, based on the force detection information, that the tip portion 65 is in contact with only the first opposing surface 43 a and the second opposing surface 43 b.
[0067] 11 , when the tip portion 65 is in contact with only the first opposing surface 43a and the second opposing surface 43b, the tip portion 65 receives an upward force 300a and a leftward force 310a from the first opposing surface 43a, and receives a force 310b (also referred to as the upward force 310b) directed in the upward direction of the target placement member 40 and a force 300b (also referred to as the rightward force 300b) directed in the rightward direction of the target placement member 40 from the second opposing surface 43b. When the tip portion 65 is in contact with only the first opposing surface 43a and the second opposing surface 43b, the tip portion 65 receives the upward force 300a and the leftward force 310a, and the upward force 310b and the rightward force 300b. Because the rightward force 300a and the leftward force 300b are forces in opposite directions, when the tip 65 contacts only the first opposing surface 43a and the second opposing surface 43b, the force acting on the tip 65 in the left-right direction of the target mounting member 40 is smaller than when the tip 65 contacts only the first opposing surface 43a. On the other hand, the upward forces 310a and 310b increase the force acting on the tip 65 in the up-down direction of the target mounting member 40.
[0068] When the tip portion 65 is in contact with only the first opposing surface 43 a and the second opposing surface 43 b, in other words, when the tip portion 65 is in two-point contact with the inner surface 42 of the groove portion 41, the robot control unit 20 controls the robot 10 based on the force detection information so that the tip portion 65 moves along the groove portion 41 toward the wall surface 44. The robot control unit 20 then determines that the tip portion 65 has reached the wall surface 44 of the groove portion 41 and is in contact with only the first opposing surface 43 a, the second opposing surface 43 b, and the wall surface 44. FIG. 12 is a schematic diagram showing an example of the tip portion 6 being in contact with only the first opposing surface 43 a, the second opposing surface 43 b, and the wall surface 44.
[0069] When it is determined that the tip portion 6 is in contact with only the first opposing surface 43 a, the second opposing surface 43 b, and the wall surface 44, the determination unit 25 stores current position information of the tip portion 65, i.e., position information of the tip portion 65 at the second contact position on the inner surface 42 of the groove portion 41, as second contact position information. The tip portion 65, which is in contact with only the first opposing surface 43 a, the second opposing surface 43 b, and the wall surface 44, is in three-point contact with the inner surface 42 of the groove portion 41. The second contact position can be considered, for example, as a three-point contact position of the tip portion 65 on the inner surface 42. The second contact position is located away from the first contact position along the placement surface 35. The second contact position is located on the inner surface 42 of the groove portion 41 away from the first contact position along the longitudinal direction of the groove portion 41. The second contact position can also be considered as a contact position of the opposing member 60 with the wall surface 44. The processing device 1 determines, based on the force detection information, that the tip portion 65 is in contact with only the first opposing surface 43 a, the second opposing surface 43 b, and the wall surface 44 .
[0070] 12 , when the tip portion 65 is in contact with only the first opposing surface 43 a, the second opposing surface 43 b, and the wall surface 44, the tip portion 65 receives an upward force 300 a and a leftward force 310 a from the first opposing surface 43 a, and an upward force 300 b and a rightward force 310 b from the second opposing surface 43 b. The tip portion 65 also receives a force 320 directed toward the front of the target mounting member 40 (also referred to as the forward force 320) from the wall surface 44. When the tip portion 65 is in contact with only the first opposing surface 43 a, the second opposing surface 43 b, and the wall surface 44, the tip portion 65 receives the upward force 300 a and the leftward force 310 a, the upward force 300 b and the rightward force 310 b, and the forward force 320.
[0071] Next, the identification unit 25 of the processing device 1 identifies the posture of the target placement surface 35 based on the first contact position information and the second contact position information. The first contact position information and the second contact position information can also be considered to be information about the opposing member 60 acquired when the opposing member 60 is in contact with the target placement member 40, i.e., contact opposing member information. The robot control unit 20 then corrects the reference work point position information based on the specific posture of the target placement surface 35 and the second contact position information to obtain current position information of the work point 200. As a result, the robot control unit 20 can appropriately move a predetermined part of the robot 10 (e.g., the end effector 15) to the work point 200 based on the obtained position information about the work point 200, and cause the robot 10 to perform a task at the work point 200. It can also be considered that the robot control unit 20 controls the movement of the robot 10 based on the specific posture of the target placement surface 35 and the second contact position information.
[0072] <Details> For example, as shown in FIG. 2, an xyz Cartesian coordinate system 180 is set in the sensor 18. Hereinafter, the xyz Cartesian coordinate system 180 set in the sensor 18 will be referred to as the sensor coordinate system 180. The x-axis, y-axis, and z-axis of the sensor coordinate system 180 will be referred to as the sensor x-axis, sensor y-axis, and sensor z-axis, respectively. The x-axis, y-axis, and z-axis directions of the sensor coordinate system 180 will be referred to as the sensor x-direction, sensor y-direction, and sensor z-direction, respectively. The positive and negative directions of the sensor x-axis will be referred to as the sensor +x-direction and sensor −x-direction, respectively. The positive and negative directions of the sensor y-axis will be referred to as the sensor +y-direction and sensor −y-direction, respectively. The positive and negative directions of the sensor z-axis will be referred to as the sensor +z-direction and sensor −z-direction, respectively.
[0073] The sensor 18 detects a force in the sensor x direction acting on the tip 65 of the opposing member 60, a force in the sensor y direction acting on the tip 65, and a force in the sensor z direction acting on the tip 65. Hereinafter, the force in the sensor x direction detected by the sensor 18 will be referred to as the sensor x-direction detection force. Also, the force in the sensor y direction detected by the sensor 18 will be referred to as the sensor y-direction detection force. Also, the force in the sensor z direction detected by the sensor 18 will be referred to as the sensor z-direction detection force. During calibration, if the sensor x-direction detection force indicates a positive value, a force is applied to the tip 65 in the +x direction, and if the sensor x-direction detection force indicates a negative value, a force is applied to the tip 65 in the -x direction. The same applies to the sensor y-direction detection force and the sensor z-direction detection force.
[0074] The force detection information output from the sensor 18 includes a sensor x-direction detection force, a sensor y-direction detection force, and a sensor z-direction detection force. In this example, the effect of gravity is canceled out in the force detection information output from the sensor 18. Therefore, when an object is not in contact with the end effector 15 or the opposing member 60, the sensor x-direction detection force, the sensor y-direction detection force, and the sensor z-direction detection force included in the force detection information are all zero.
[0075] 2, the sensor z direction is set along the longitudinal direction of the opposing member 60 (in other words, the longitudinal direction of the rod-shaped portion 61), and the sensor +z direction is set to the same direction as the direction from the base side of the opposing member 60 (in other words, the end effector 15 side) toward the tip end 65.
[0076] 13 is a flowchart showing an example of calibration. In step s1, upon receiving an instruction to perform calibration, the processing device 1 causes the robot control unit 20 to change the posture of the arm 11 so that the orientation of the sensor +z direction is the same as the positive direction of the Z axis of the robot coordinate system 100. As a result, the sensor -z direction is roughly the same as the direction of gravity. After step s1 is performed, the sensor z axis is parallel to the Z axis of the robot coordinate system 100.
[0077] In this example, even if the position and posture of the target placement surface 35 deviates from the reference position and posture, the direction perpendicular to the target placement surface 35 does not change significantly from the direction perpendicular to the placement surface 35 in the reference position and posture. For example, the direction perpendicular to the target placement surface 35 does not deviate by more than 5 degrees from the direction perpendicular to the placement surface 35 in the reference position and posture. Therefore, the direction perpendicular to the target placement surface 35 is always approximately parallel to the Z axis of the robot coordinate system. Furthermore, the depth direction of the groove 41 of the target placement member 40 on the target placement surface 35 (in other words, the up-down direction of the target placement member 40) is always approximately parallel to the Z axis of the robot coordinate system. Furthermore, the upward direction of the target placement member 40 is oriented approximately in the same direction as the positive direction of the Z axis of the robot coordinate system.
[0078] Next, in step s2, the robot control unit 20 determines whether the tip 65 of the opposing member 60 is in contact only with the first opposing surface 43 a of the inner surface 42 of the groove 41 of the target placement member 40. In other words, the robot control unit 20 determines whether the tip 65 is in single-point contact with the inner surface 42 of the groove 41. In step s2, the robot control unit 20 determines that the tip 65 is in contact only with the first opposing surface 43 a, for example, if the sensor z-direction detection force is positive and the absolute value of the sensor z-direction detection force is greater than the first threshold value.
[0079] As shown in FIG. 10 , when the tip 65 contacts only the first opposing surface 43a, the tip 65 receives an upward force 310a directed upward from the target placement member 40. The sensor +z direction is the same as the positive direction of the Z axis in the robot coordinate system, which is generally the same as the upward direction of the target placement member 40. Therefore, the sensor +z direction is generally the same as the upward force 310a. Therefore, when the tip 65 contacts only the first opposing surface 43a, the sensor z-direction detection force becomes positive, and the absolute value of the sensor z-direction detection force becomes large. As a result, the robot control unit 20 can appropriately identify that the tip 65 is in contact only with the first opposing surface 43a if the sensor z-direction detection force is positive and the absolute value of the sensor z-direction detection force is greater than the first threshold value.
[0080] If the determination in step s2 is NO, step s3 is executed. In step s3, the robot control unit 20 moves the tip 65 in the sensor -z direction until the absolute value of the sensor z-direction detection force becomes greater than the first threshold value, so that the tip 65 comes into contact only with the first opposing surface 43a.
[0081] If step s2 returns YES, step s4 is executed. Also, if step s3 is executed, step s4 is executed. In step s4, the robot control unit 20 changes the posture of the arm 11 of the robot 10 so that the orientation of the sensor +z direction and the position of the tip 65 set in step s1 remain unchanged, and so that the sensor +x direction is generally aligned with the left direction of the target placement member 40.
[0082] Consider a case where the sensor +z direction is aligned with the upward direction of the target placement member 40 and the sensor +x direction is aligned with the leftward direction of the target placement member 40. In this case, as shown in FIG. 10 , if the tip 65 is in contact only with the first opposing surface 43a, the sensor x-direction detection force becomes positive, and the absolute value of the sensor x-direction detection force becomes large. Furthermore, the absolute value of the sensor y-direction detection force becomes zero. In step s4, the robot control unit 20 changes the posture of the arm 11 so that the end effector 15 rotates around the sensor z-axis as the axis of rotation, thereby setting the posture of the end effector 15 so that the absolute value of the sensor y-direction detection force becomes minimum and the sensor x-direction detection force becomes positive. As a result, the sensor +x direction is aligned with the leftward direction of the target placement member 40. FIG. 14 is a schematic diagram showing an example of the relationship between the sensor coordinate system 180 and the target placement member 40 after step s4 is executed. After step s4 is executed, as shown in FIG. 14, the sensor +x direction is generally oriented in the same direction as the left side of the target placement member 40, the sensor +z direction is generally oriented in the same direction as the upward direction of the target placement member 40, and the sensor +y direction is generally oriented in the same direction as the rearward direction of the target placement member 40.
[0083] After step s4, step s5 is executed. In step s5, the robot control unit 20 controls the robot 10 to move the tip 65 along the first opposing surface 43a toward the bottom of the groove 41 (see FIG. 11).
[0084] In step s5, the robot control unit 20 first moves the tip 65 in the sensor +x direction until the absolute value of the sensor z-direction detection force becomes equal to or less than the first threshold value. Next, the robot control unit 20 moves the tip 65 in the sensor -z direction until the absolute value of the sensor z-direction detection force becomes equal to or greater than the first threshold value. By repeatedly moving the tip 65 in the sensor +x direction and the sensor -z direction, the robot control unit 20 moves the tip 65 along the first opposing surface 43a toward the bottom of the groove 41.
[0085] When the robot control unit 20 determines that the tip 65 is in contact with only the first opposing surface 43 a and the second opposing surface 43 b (step s6) while repeatedly moving the tip 65 in the sensor +x direction and the sensor -z direction, step s7 is executed. In other words, when the robot control unit 20 determines that the tip 65 is in two-point contact with the inner surface 42 of the groove 41, step s7 is executed. When the absolute value of the sensor z-direction detection force becomes larger than a second threshold value that is larger than the first threshold value, the robot control unit 20 determines that the tip 65 is in contact with only the first opposing surface 43 a and the second opposing surface 43 b.
[0086] As described above, when the tip 65 contacts only the first opposing surface 43 a and the second opposing surface 43 b, the force acting on the tip 65 in the vertical direction of the target placement member 40 is greater than when the tip 65 contacts only the first opposing surface 43 a. Therefore, when the absolute value of the sensor z-direction detection force becomes greater than a second threshold value that is greater than the first threshold value, the robot control unit 20 determines that the tip 65 is contacting only the first opposing surface 43 a and the second opposing surface 43 b, and can thereby appropriately identify that the tip 65 is contacting only the first opposing surface 43 a and the second opposing surface 43 b.
[0087] In step s7, the identification unit 25 acquires current position information of the tip 65 and stores it as first contact position information in the storage unit 3. The identification unit 25 stores position information of the tip 65 that is in contact with only the first opposing surface 43 a and the second opposing surface 43 b in the storage unit 3 as first contact position information. It can also be said that the identification unit 25 stores position information of the tip 65 that is in two-point contact with the inner surface 42 of the groove 41 in the storage unit 3 as first contact position information. As the first contact position information, for example, position coordinates in the robot coordinate system 100 of the tip 65 that is in contact with only the first opposing surface 43 a and the second opposing surface 43 b are adopted. Hereinafter, these position coordinates may be referred to as first contact position coordinates.
[0088] Here, the robot 10 is equipped with angle sensors that detect the rotation angle of each joint of the arm 11. The identification unit 25 can acquire current position information of the tip 65 based on the rotation angle detected by each angle sensor, robot shape information that represents the shape of the robot 10, and opposing member shape information that represents the shape of the opposing member 60. The identification unit 25 can acquire the rotation angle detected by each angle sensor of the robot 10 through the interface 5. In addition, the robot shape information and opposing member shape information are stored in the storage unit 3.
[0089] Hereinafter, the first contact position information acquired by the identification unit 25 may be referred to as acquired first contact position information. Similarly, the first contact position coordinates acquired by the identification unit 25 may be referred to as acquired first contact position coordinates.
[0090] After step s7, in step s8, the robot control unit 20 moves the tip 65 within the groove 41 toward the wall surface 44 of the groove 41. In step s8, the robot control unit 20 moves the tip 65 within the groove 41 toward the wall surface 44 of the groove 41 by moving the tip 65 in the sensor +y direction. However, if the two-point contact maintenance condition for maintaining proper two-point contact of the tip 65 with the inner surface 42 of the groove 41 is no longer satisfied while moving the tip 65 in the +y direction, the robot control unit 20 moves the tip 65 in the sensor z direction or the sensor x direction so that the two-point contact maintenance condition is satisfied. The two-point contact maintenance condition consists of a first condition related to the sensor z-direction detection force and a second condition related to the sensor x-direction detection force. When both the first condition and the second condition are satisfied, the two-point contact maintenance condition is satisfied.
[0091] The first condition is, for example, that the sensor z-direction detection force is positive and that the absolute value of the sensor z-direction detection force is within a predetermined range. The predetermined range is, for example, equal to or greater than a third threshold value and equal to or less than a second threshold value. The third threshold value is smaller than the second threshold value. The third threshold value may be the same as the first threshold value, or may be smaller than the first threshold value, or may be larger than the first threshold value.
[0092] As described above, when the tip 65 makes two-point contact with the inner surface 42 of the groove 41, the rightward force 300a and the leftward force 300b acting on the tip 65 cancel each other out, and the force acting on the tip 65 in the left-right direction of the mounting member 40 becomes small. Therefore, the second condition is that the absolute value of the sensor x-direction detection force must be small. In other words, the second condition is that the absolute value of the sensor x-direction detection force must be smaller than the fourth threshold value.
[0093] When the tip portion 65 moves toward the wall surface 44, the first and second conditions are satisfied, thereby reducing the possibility that the two-point contact of the tip portion 65 will not be maintained or that the tip portion 65 will be pressed hard against the inner surface 42 of the groove portion 41, causing damage to the opposing member 60.
[0094] When the robot control unit 20 determines that the tip portion 65 is in contact with only the first opposing surface 43 a, the second opposing surface 43 b, and the wall surface 44 while moving the tip portion 65 toward the wall surface 44 (step s9), it causes the robot 10 to stop the movement of the tip portion 65. In other words, when the robot control unit 20 determines that the tip portion 65 is in three-point contact with the inner surface 42 of the groove portion 41, it causes the robot 10 to stop the movement of the tip portion 65. When the movement of the tip portion 65 stops, step s11 is executed. When the sensor y-direction detection force is negative and the absolute value of the sensor y-direction detection force is greater than the fifth threshold value, the robot control unit 20 determines that the tip portion 65 is in contact with only the first opposing surface 43 a, the second opposing surface 43 b, and the wall surface 44.
[0095] In step s11, the identification unit 25 stores current position information of the tip 65 as second contact position information in the storage unit 3. The identification unit 25 stores position information of the tip 65 that is in contact with only the first opposing surface 43 a, the second opposing surface 43 b, and the wall surface 44 as second contact position information in the storage unit 3. It can also be said that the identification unit 25 stores position information of the tip 65 that is in three-point contact with the inner surface 42 of the groove 41 as second contact position information in the storage unit 3. As the second contact position information, for example, position coordinates in the robot coordinate system 100 of the tip 65 that is in contact with only the first opposing surface 43 a, the second opposing surface 43 b, and the wall surface 44 are adopted. Hereinafter, these position coordinates may be referred to as second contact position coordinates.
[0096] Hereinafter, the second contact position information acquired by the identification unit 25 may be referred to as acquired second contact position information. Similarly, the second contact position coordinates acquired by the identification unit 25 may be referred to as acquired second contact position coordinates.
[0097] After step s11, in step s12, the identification unit 25 identifies the attitude of the target placement surface 35 based on the acquired first contact position information and acquired second contact position information in the storage unit 3.
[0098] Here, the storage unit 3 stores, as reference first contact position information, position information of the tip 65 when it comes into two-point contact with the inner surface 42 of the groove 41 of the mounting member 40 on the mounting surface 35 in the reference position and posture. The reference first contact position information can also be said to be position information of the tip 65 when it comes into contact with only the first opposing surface 43 a and the second opposing surface 43 b of the mounting member 40 on the mounting surface 35 in the reference position and posture. As the reference first contact position information, for example, position coordinates in the robot coordinate system 100 of the tip 65 when it comes into two-point contact with the inner surface 42 of the groove 41 of the mounting member 40 on the mounting surface 35 in the reference position and posture are adopted. Hereinafter, these position coordinates may be referred to as reference first contact position coordinates.
[0099] The storage unit 3 also stores, as reference second contact position information, position information of the tip 65 when it makes three-point contact with the inner surface 42 of the groove 41 of the mounting member 40 on the workbench 30 in the reference position and posture. The reference second contact position information can also be said to be position information of the tip 65 when it makes contact only with the first opposing surface 43 a, the second opposing surface 43 b, and the wall surface 44 of the mounting member 40 on the workbench 30 in the reference position and posture. As the reference second contact position information, for example, position coordinates in the robot coordinate system 100 of the tip 65 when it makes three-point contact with the inner surface 42 of the groove 41 of the mounting member 40 on the workbench 30 in the reference position and posture are adopted. Hereinafter, these position coordinates may be referred to as reference second contact position coordinates.
[0100] In step s12, the identification unit 25 identifies the attitude of the target placement surface 35 based on the reference first contact position coordinates, the reference second contact position coordinates, and the acquired first contact position coordinates and the acquired second contact position coordinates.
[0101] FIG. 15 is a schematic diagram showing an example of the reference first contact position coordinate A1, the reference second contact position coordinate P1, the acquired first contact position coordinate A2, and the acquired second contact position coordinate P2.
[0102] In Fig. 15, the placement surface 35 in the reference position and posture and the placement member 40 thereon are indicated by dashed lines. Also in Fig. 15, the target placement surface 35 and the target placement member 40 thereon are indicated by solid lines. Fig. 15 also shows the reference working point coordinates I1 and the position coordinates I2 of the working point 200 relative to the target placement surface 35.
[0103] Hereinafter, the task point 200 based on the target placement surface 35 may be referred to as the target task point 200. Furthermore, the position information of the target task point 200 may be referred to as the target task point position information. Furthermore, the position coordinates as the target task point position information may be referred to as the target task point coordinates. Furthermore, the placement member 40 on the placement surface 35 in the reference position and orientation may be referred to as the reference placement member 40. Furthermore, the placement surface 35 in the reference position and orientation may be referred to as the reference placement surface 35.
[0104] The position of the tip 65 when it comes into three-point contact with the inner surface 42 of the groove 41 of the reference mounting member 40 is determined by the position of the reference mounting surface 35. It can also be said that the position of the tip 65 when it comes into three-point contact with the inner surface 42 of the groove 41 of the reference mounting member 40 is determined by the position of the reference mounting member 40 fixed to the reference mounting surface 35. Therefore, it can be said that the reference second contact position coordinate P1 is information indicating the position of the reference mounting surface 35, and also information indicating the position of the reference mounting member 40.
[0105] Similarly, the position of the tip 65 when it makes three-point contact with the inner surface 42 of the groove 41 of the target placement member 40 is determined by the position of the target placement surface 35. It can also be said that the position of the tip 65 when it makes three-point contact with the inner surface 42 of the groove 41 of the target placement member 40 is determined by the position of the target placement member 40 fixed to the target placement surface 35. Therefore, the second contact position coordinate P2 acquired in step s10 can be said to be information indicating the position of the target placement surface 35, and also information indicating the position of the target placement member 40.
[0106] The identification unit 25 identifies, for example, the three-dimensional orientation of the target placement surface 35 based on the reference first contact position coordinate A1, the reference second contact position coordinate P1, the acquired first contact position coordinate A2, and the acquired second contact position coordinate P2. First, as shown in the upper side of Fig. 16 , the identification unit 25 obtains a vector V1 from the reference second contact position coordinate P1 to the reference first contact position coordinate A1, and a vector V2 from the acquired second contact position coordinate P2 to the acquired first contact position coordinate A2. The vectors V1 and V2 are three-dimensional vectors.
[0107] Next, as shown in the lower part of Fig. 16, the identification unit 25 aligns the starting point of vector V1 with the starting point of vector V2 (i.e., the acquired second contact position coordinate P2). In Fig. 16, the position coordinate of the end point of vector V1 after aligning the starting point of vector V1 with the starting point of vector V2 is indicated by A1a. Then, the identification unit 25 calculates the angle θ1 formed between vector V1 and vector V2.
[0108] Next, the identification unit 25 calculates a first rotation matrix for rotating the vector V1 by an angle θ1 around the acquired second contact position coordinate P2 to overlap the vector V2. The first rotation matrix represents the three-dimensional orientation of the target placement surface 35. Specifically, the first rotation matrix represents the relative orientation of the target placement surface 35 with respect to the reference placement surface 35. The first rotation matrix can also be said to represent the three-dimensional orientation of the target placement member 40. In other words, the first rotation matrix can also be said to represent the relative orientation of the target placement member 40 with respect to the reference placement member 40. The identification unit 25 determines the three-dimensional orientation of the target placement surface 35 by calculating the first rotation matrix based on the reference first contact position coordinate A1, the reference second contact position coordinate P1, the acquired first contact position coordinate A2, and the acquired second contact position coordinate P2. The identification unit 25 can also be said to identify the three-dimensional posture of the target placement member 40 by calculating a first rotation matrix based on the reference first contact position coordinate A1, the reference second contact position coordinate P1, the acquired first contact position coordinate A2, and the acquired second contact position coordinate P2.
[0109] In this way, in this example, the attitude of the target placement surface 35 is identified based on the position information of the opposing member 60 at the first contact position of the target placement member 40 (i.e., first contact position information) and the second position information of the opposing member 60 at the second contact position of the target placement member 40 (i.e., second contact position information). Because the second contact position is located away from the first contact position along the target placement surface 35, the line connecting the first and second contact positions is parallel to the target placement surface 35. In this way, the attitude of the target placement surface 35 is identified based on the position information at the first and second contact positions where the line connecting them is parallel to the target placement surface 35, thereby improving the accuracy of the characteristics of the attitude of the target placement surface 35.
[0110] Furthermore, in this example, the first contact position and the second contact position are located on the inner surface 42 of the groove portion 41, and therefore the processing device 1 can acquire position information of the opposing member 60 at the first contact position and the second contact position by moving the opposing member 60 along the groove portion 41 within the groove portion 41. This makes it easy to control the movement of the opposing member 60 when acquiring position information at the first contact position and the second contact position.
[0111] In this example, the second contact position is the contact position of the opposing member 60 with the wall surface 44 of the inner surface 42 of the groove portion 41, and therefore the processing device 1 can obtain position information at the second contact position by obtaining position information of the opposing member 60 when it is in contact with the wall surface 44. This makes it easy to position the opposing member 60 when obtaining position information at the second contact position.
[0112] Once the orientation of the target placement surface 35 is identified in step s12, step s13 is executed. In step s13, the robot control unit 20 corrects the reference work point position information based on the specific orientation of the target placement surface 35 and the acquired second contact position information indicating the position of the target placement surface 35 to obtain the target work point position information. Specifically, the robot control unit 20 corrects the reference work point position information based on the first rotation matrix representing the specific orientation of the target placement surface 35 and the second contact position information representing the position of the target placement surface 35 to obtain the target work point position information. This adjusts the movement of the robot 10 relative to the target placement surface 35. The robot control unit 20 can be said to function as an adjustment unit that adjusts the movement of the robot 10 relative to the target placement surface 35. The first rotation matrix and the acquired second contact position information can be said to be information representing the position and orientation of the target placement surface 35, or information representing the position and orientation of the target placement member 40.
[0113] In step s12 following step s11, the robot control unit 20 calculates offset position coordinates by adding an offset value of the position of the target placement surface 35 relative to the position of the reference placement surface 35 to the reference working point coordinate I1. Specifically, the robot control unit 20 calculates an X-coordinate offset value by subtracting the X-coordinate value of the reference second contact position coordinate P1 from the X-coordinate value of the acquired second contact position coordinate P2. The robot control unit 20 also calculates a Y-coordinate offset value by subtracting the Y-coordinate value of the reference second contact position coordinate P1 from the Y-coordinate value of the acquired second contact position coordinate P2. The robot control unit 20 then calculates a Z-coordinate offset value by subtracting the Z-coordinate value of the reference second contact position coordinate P1 from the Z-coordinate value of the acquired second contact position coordinate P2. The robot control unit 20 determines the offset position coordinates to be the position coordinates obtained by adding the X-coordinate offset value, the Y-coordinate offset value, and the Z-coordinate offset value to the X-coordinate value, the Y-coordinate offset value, and the Z-coordinate offset value of the reference working point coordinate I1, respectively. The robot control unit 20 multiplies the offset position coordinates obtained by offsetting the reference working point coordinates I1 by the first rotation matrix, and sets the resulting position coordinates as the target working point coordinates I2.
[0114] In this way, the reference working point position information is corrected and the target working point position information is obtained. If multiple working points 200 are set, the position information of each working point 200 is obtained in step s12. When step s12 is completed, the calibration is completed.
[0115] As described above, in the calibration, the robot control unit 20 identifies the contact state of the tip portion 65 with the inner surface 42 of the groove 41 of the object placement member 40 based on the detection result of the sensor 18 that detects the force applied to the tip portion 65 of the opposing member 60. Then, based on the identified contact state, the robot control unit 20 controls the robot 10 so that the tip portion 65 moves within the groove 41 to the wall surface 44. In this way, the tip portion 65 is moved within the groove 41 to the wall surface 44 based on the identification result of the contact state of the tip portion 65 with the inner surface 42 of the groove 41, and thus the tip portion 65 can be easily moved to the wall surface 44.
[0116] Furthermore, in this example, the inner surface 42 of the groove 41 of the mounting member 40 has a plurality of surfaces that each come into point contact with the tip 65 of the opposing member 60, thereby reducing the contact resistance between the tip 65 and the inner surface 42 of the groove 41 when the tip 65 moves within the groove 41. This makes it less likely that the opposing member 60 will be damaged when the tip 65 moves within the groove 41.
[0117] In addition, in this example, the opposing surface 43 of the inner surface 42 of the groove 41 is an inclined surface that slopes outward toward the top, making it easier to insert the tip 65 into the groove 41 .
[0118] In this example, the inner surface 42 of the groove 41 has a wall surface 44 located at one longitudinal end of the groove 41. As a result, by obtaining positional information of the tip 65 at the contact position of the tip 65 with the wall surface 44, it is possible to easily obtain information indicating the position of the support surface 35 of the workbench 30.
[0119] In addition, in this example, since the other longitudinal end of the groove 41 is open, it is possible to insert the tip 65 into the groove 41 at an angle, making it easier to insert the tip 65 into the groove 41.
[0120] In this example, the robot control unit 20 controls the robot 10 so that when the tip 65 comes into contact with the inner surface 42 of the groove 41 at one point, the tip 65 moves toward the bottom of the inner surface 42 of the groove 41. This allows the tip 65 to come into contact with the opposing surface 43 and then move toward the bottom of the inner surface 42 of the groove 41.
[0121] Furthermore, in this example, the robot control unit 20 controls the robot 10 so that when the tip 65 comes into contact with the inner surface 42 of the groove 41 at two points, the tip 65 moves toward the wall surface 44 of the inner surface 42 of the groove 41, and when the tip 65 comes into contact with the inner surface 42 of the groove 41 at three points, the robot control unit 20 stops the movement of the tip 65. This allows the tip 65 to come into contact with each of the pair of opposing surfaces 43 and then move toward the wall surface 44 of the groove 41, and the movement of the tip 65 can be stopped when it comes into contact with the wall surface 44.
[0122] In the above example, the tip 65 of the opposing member 60 is in one-point contact with the first opposing surface 43 a, but the tip 65 may be in one-point contact with the second opposing surface 43 b. In this case, the movement of the tip 65 is controlled in the same way as above, so that the first contact position information and the second contact position information are appropriately acquired.
[0123] Furthermore, in the above example, one mounting member 40 is used in the calibration, but multiple mounting members 40 may be used. An example of calibration in which two mounting members 40 are used will be described below.
[0124] FIG. 17 is a schematic diagram showing an example of the arrangement of two mounting members 40 on a workbench 30. As shown in FIG. 17 , the two mounting members 40 are arranged, for example, at two diagonally opposite corners of the mounting surface 35. Each mounting member 40 is arranged, for example, so that the longitudinal direction of the groove 41 is parallel to the lateral direction of the mounting surface 35. The two mounting members 40 are arranged so that the depth direction of one mounting member 40 (i.e., the direction from the opening 45 toward the wall surface 44) and the depth direction of the other mounting member 40 are oriented in the same direction. Hereinafter, the mounting member 40 at the bottom right of FIG. 17 may be referred to as the first mounting member 40A, and the mounting member 40 at the top left of FIG. 17 may be referred to as the second mounting member 40B.
[0125] In calibration using the first mounting member 40A and the second mounting member 40B, the identification unit 25 identifies the posture of the mounting surface 35 based on the reference second contact position information and the acquired second contact position information for the first mounting member 40A and the reference second contact position information and the acquired second contact position information for the second mounting member 40B. In calibration using the first mounting member 40A and the second mounting member 40B, for example, the reference first contact position information and the acquired first contact position information for the first mounting member 40A and the reference first contact position information and the acquired first contact position information for the second mounting member 40B are not used.
[0126] Fig. 18 is a schematic diagram showing an example of the reference second contact position coordinate P11 and the acquired second contact position coordinate P21 for the first mounting member 40A, and the reference second contact position coordinate P12 and the acquired second contact position coordinate P22 for the second mounting member 40B. In Fig. 18, the mounting surface 35 and the reference mounting member 40 in the reference position and orientation are indicated by dashed lines. In Fig. 18, the target worktable 30 and the target mounting member 40 are indicated by solid lines. In Fig. 18, the reference working point coordinate I11 and the target working point coordinate I12 are also shown.
[0127] The identification unit 25 sets one of the first mounting member 40A and the second mounting member 40B as the reference mounting member 40 in calibration using two mounting members 40 (also referred to as dual-use calibration). This reference mounting member 40 can also be referred to as the main mounting member 40. Hereinafter, the reference mounting member 40 in dual-use calibration will be referred to as the main mounting member 40. Furthermore, a mounting member 40 different from the main mounting member 40 may also be referred to as the auxiliary mounting member 40. Furthermore, as described above, calibration using one mounting member 40 may also be referred to as single-use calibration.
[0128] The identification unit 25 first determines a vector V11 from the reference second contact position coordinate of the main mount member 40 to the reference second contact position coordinate of the sub-mount member 40. The identification unit 25 also determines a vector V12 from the acquired second contact position coordinate of the main mount member 40 to the acquired second contact position coordinate of the sub-mount member 40. The upper side of FIG. 19 shows vectors V11 and V12 for the case where the main mount member 40 is the first mount member 40A. Vector V11 extends from the reference second contact position coordinate P11 of the first mount member 40A to the reference second contact position coordinate P12 of the second mount member 40B. Vector V12 extends from the acquired second contact position coordinate P21 of the first mount member 40A to the acquired second contact position coordinate P22 of the second mount member 40B. Vectors V11 and V12 are three-dimensional vectors.
[0129] Next, the identification unit 25 causes the starting point of the vector V11 to coincide with the starting point of the vector V12. The lower part of Fig. 19 shows a state in which the starting point of the vector V11 is caused to coincide with the starting point of the vector V12 when the main mounting member 40 is the first mounting member 40A. In the lower part of Fig. 19, the position coordinates of the end point of the vector V11 after the starting point of the vector V11 is caused to coincide with the starting point of the vector V12 are indicated by P12a. After causing the starting point of the vector V11 to coincide with the starting point of the vector V12, the identification unit 25 calculates the angle θ2 formed by the vectors V11 and V12.
[0130] Next, the identification unit 25 calculates a second rotation matrix for rotating the vector V11 by the angle θ2 around the starting point of the vector V12 (the acquired second contact position coordinate P21 in FIG. 19 ) and overlapping it with the vector V12. Similar to the first rotation matrix described above, the second rotation matrix represents the three-dimensional orientation of the target placement surface 35. The identification unit 25 calculates the second rotation matrix based on the reference second contact position coordinate P11, the reference second contact position coordinate P12, the acquired second contact position coordinate P21, and the acquired second contact position coordinate P22, thereby identifying the three-dimensional orientation of the target placement surface 35.
[0131] Similar to the case where the reference working point coordinate I1 is corrected based on the first rotation matrix and the acquired second contact position coordinate P2, the robot control unit 20 corrects the reference working point coordinate I11 based on the second rotation matrix and the acquired second contact position information of the main mounting member 40 to obtain the target working point coordinate I12. Specifically, for example, if the first mounting member 40A is the main mounting member 40, the robot control unit 20 obtains an X-coordinate offset value by subtracting the X-coordinate value of the reference second contact position coordinate P11 of the first mounting member 40A from the X-coordinate value of the acquired second contact position coordinate P21 of the first mounting member 40A. The robot control unit 20 also obtains a Y-coordinate offset value by subtracting the Y-coordinate value of the reference second contact position coordinate P11 from the Y-coordinate value of the acquired second contact position coordinate P21. The robot control unit 20 then calculates a Z-coordinate offset value by subtracting the Z-coordinate value of the reference second contact position coordinate P11 from the Z-coordinate value of the acquired second contact position coordinate P21. The robot control unit 20 determines the position coordinates obtained by adding the X-coordinate offset value, the Y-coordinate offset value, and the Z-coordinate offset value to the X-coordinate value, the Y-coordinate offset value, and the Z-coordinate offset value of the reference working point coordinate I11, respectively, as the offset position coordinates. The robot control unit 20 then calculates the position coordinates obtained by multiplying the offset position coordinates obtained by offsetting the reference working point coordinate I11 by the second rotation matrix as the target working point coordinate I12.
[0132] In this way, two mounting members 40 are used to correct the reference working point position information, to obtain the target working point position information, and two-use calibration is performed.
[0133] In the dual-use calibration, second contact position information for one of the mounting members 40 is acquired first, and then second contact position information for the other mounting member 40 is acquired. After the operator installs the robot 10 and the target work table 30 and completes their alignment, the operator grasps and moves the end effector 15 of the robot 10 in free drive mode so that the tip 65 contacts only one of the opposing surfaces 43 of the inner surface 42 of the groove portion 41 of one of the mounting members 40 on the target work table 30, or positions the tip 65 close to one of the opposing surfaces 43. Thereafter, the processing device 1 executes steps s1 to s11 shown in FIG. 13 in response to an instruction from the operator to acquire second contact position information for one of the mounting members 40. Next, the worker grasps and moves the end effector 15 of the robot 10 in free drive mode, bringing the tip 65 into contact with only one of the opposing surfaces 43 of the inner surface 42 of the groove 41 of the other mounting member 40 on the target worktable 30, or positions the tip 65 near one of the opposing surfaces 43. The processing device 1 then executes steps s1 to s10 shown in FIG. 13 in response to the worker's instructions to acquire second contact position information for the other mounting member 40. The processing device 1 then identifies the orientation of the target mounting surface 35 based on the reference second contact position information and acquired second contact position information for one mounting member 40 and the reference second contact position information and acquired second contact position information for the other mounting member 40, as described above. The processing device 1 then corrects the reference working point position information based on the identified orientation of the target mounting surface 35 and the acquired second contact position information for the main mounting member 40 of the two mounting members 40, to acquire the target working point position information.
[0134] Note that, when height information of the placement surface 35 is necessary for controlling the robot 10, the robot control unit 20 may acquire the height information of the placement surface 35 based on the acquired second contact position information. For example, the robot control unit 20 may acquire the height information of the placement surface 35 based on the acquired second contact position information and placement member shape information representing the shape of the placement member. The robot control unit 20 may also acquire the height information of the placement surface 35 based on a distance image acquired by the camera 9. However, depending on the performance of the camera 9, the accuracy of the height information of the placement surface 35 acquired based on the distance image may be lower than the accuracy of the height information of the placement surface 35 calculated based on the acquired second contact position information. In such a case, the robot control unit 20 may control the robot 10 based on the position information of the placement surface 35 calculated based on the acquired second contact position information.
[0135] As described above, in the processing device 1, the posture of the mounting surface 35 is identified based on the opposing member information regarding the opposing member 60 acquired when the opposing member 60 is in contact with at least one mounting member 40 arranged on the mounting surface 35. Then, the movement of the robot 10 is controlled based on the identified posture of the mounting surface 35. This allows the robot 10 to move in accordance with the posture of the mounting surface 35, and the movement of the robot 10 is appropriately controlled.
[0136] The robot control unit 20 may acquire position information of the placement surface 35 when controlling the robot 10. In other words, when the positional relationship between the placement member 40 and the working point 200 is fixed, the robot 10 may be caused to move to the working point 200 based on the position where the opposing member 60 of the robot 10 makes contact with the placement member 40 at three points.
[0137] Furthermore, in the two-element calibration, it is possible to improve the accuracy of identifying the orientation of the placement surface 35 compared to the one-element calibration. This point will be described below.
[0138] If the mounting member 40 on the mounting surface 35 of the target object 50 becomes large, the mounting member 40 may interfere with the work of the robot 10, making it difficult to increase the size of the mounting member 40. Therefore, in single-piece calibration, it is difficult to increase the lengths of the vectors V1 and V2 (see FIG. 16 ). Therefore, if an error is included in the acquired first contact position coordinate A2 and the acquired second contact position coordinate P2, the angle θ1 may not appear properly when the starting point of the vector V1 is aligned with the starting point of the vector V2, and the first rotation matrix representing the attitude of the mounting surface 35 may not be obtained properly.
[0139] In contrast, with two-point calibration, the distance between the two mounting members 40 can be increased by, for example, arranging the two mounting members 40 diagonally on the mounting surface 35, and therefore the lengths of the vectors V11 and V12 can be increased. Therefore, even if the acquired second contact position coordinates P21 and P22 contain errors, the angle θ2 tends to appear appropriately when the starting point of the vector V11 is aligned with the starting point of the vector V12. As a result, it becomes easier to determine the second rotation matrix representing the orientation of the target mounting surface 35, and the accuracy of identifying the orientation of the target mounting surface 35 can be improved.
[0140] The arrangement of the two mounting members 40 is not limited to the example in Fig. 17. For example, the two mounting members 40 may be arranged side by side along the longitudinal direction of the mounting surface 35, or along the lateral direction of the mounting surface 35.
[0141] In the above example, each of the pair of opposing surfaces 43 of the groove portion 41 of the mounting member 40 is inclined outward toward the upper side, but only one of the pair of opposing surfaces 43 may be inclined outward toward the upper side. Fig. 20 is a schematic diagram showing an example in which only the first opposing surface 43a of the pair of opposing surfaces 43 is inclined outward toward the upper side. When only one of the pair of opposing surfaces 43 is inclined, the tip end 65 of the opposing member 60 may come into contact with the inclined opposing surface 43 at one point during calibration.
[0142] Furthermore, in the above example, the worker grasps and moves the end effector 15 in his / her hand to bring the tip 65 into contact with one of the opposing surfaces 43 of the groove 41 of the mounting member 40 on the target workbench 30, or to position the tip 65 near one of the opposing surfaces 43, but the robot control unit 20 may also control the movement of the robot 10 so that the tip 65 comes into contact with one of the opposing surfaces 43 or is positioned near one of the opposing surfaces 43. Figure 21 is a schematic diagram showing an example of a mounting member 40 (also referred to as mounting member 40D) used in this case.
[0143] As shown in FIG. 21 , marks 500 are provided on the upper surface 40a of the mounting member 40D to identify the position and orientation of the mounting member 40D. The robot control unit 20 acquires a color image captured by the camera 90 via the interface 4. The robot control unit 20 then identifies the position and orientation of the mounting member 40D based on the marks 500 captured in the acquired color image. The robot control unit 20 then identifies the position and orientation of the first opposing surface 43a based on the identified position and orientation of the mounting member 40D and mounting member shape information that represents the shape of the mounting member 40D. The mounting member shape information is stored in the storage unit 3. The robot control unit 20 controls the movement of the robot 10 based on the identified position and orientation of the first opposing surface 43a to bring the tip 65 of the opposing member 60 into contact with only the first opposing surface 43a or to position the tip 65 near the first opposing surface 43a. Thereafter, for example, the process shown in FIG. 13 described above is executed to adjust the movement of the robot 10 with respect to the target placement surface 35 as a reference.
[0144] The marks 500 on the mounting member 40 may be used to calibrate the camera 9. Calibration of the camera 9 is a process of converting each position in the camera coordinate system, which is a three-dimensional coordinate system set in the camera 9, into a position in the robot coordinate system 100, which serves as a reference for control of the robot 10. In this case, the camera coordinate system may be calibrated based on the robot coordinates when the opposing member 60 of the robot 10 is in contact with the groove portion 41 at three points.
[0145] When calibrating the camera coordinate system and the robot coordinate system, the information on the work point 200 does not need to be stored in advance in the robot 10; the position of the object 50 can be recognized by the camera 9, and the robot 10 can be moved to the work position based on the recognition by the camera 9.
[0146] In the example of calibration described above, the tip 65 is specified as being in one-point contact with the inner surface 42 of the groove 41. However, this single-point contact need not be specified. In this case, when calibration is initiated, the tip 65 is positioned at the bottom of the inner surface 42 of the groove 41 to make two-point contact with the inner surface 42, or positioned near the bottom, either by an operator or through control of the robot 10 by the robot control unit 20. During calibration, the robot control unit 20 determines whether the tip 65 is in two-point contact with the inner surface 42 of the groove 41 based on the force detection information output by the sensor 18. If the tip 65 is not in two-point contact with the inner surface 42 of the groove 41, the robot control unit 20 moves the tip 65 downward on the mounting member 40 while checking the force detection information, until the tip 65 makes two-point contact with the inner surface 42 of the groove 41. Thereafter, the processing device 1 operates in the same manner.
[0147] Furthermore, although the above example describes the use of the mounting member 40 to determine the posture of the mounting surface, the mounting member 40 may also be used to set or calibrate a robot control point or a tool center point. That is, if the relative positional relationship between the tip 65 of the opposing member 60 of the robot 10 and the tip of the end effector 15 is fixed, the robot control point or the tool center point may be set based on the position where the tip 65 of the opposing member 60 makes three-point contact with the mounting member 40. Furthermore, after the tip 65 of the opposing member 60 makes three-point contact with the mounting member 40, the robot control point or the tool center point may be calibrated by correcting the control value of the arm so as to maintain the three-point contact while changing the posture of the arm. The robot control point or the tool center point is a point used as a reference point for control when operating the robot, and is set to the point where the object 50 is located when the robot 10 grasps the object 50, for example.
[0148] Furthermore, the shape of the tip portion 65 is not limited to the above example. For example, the tip portion 65 may be a polyhedron. FIG. 22 is a schematic diagram showing an example of a polyhedron tip portion 65. The tip portion 65 (also referred to as tip portion 65A) shown in FIG. 22 has a polygonal prism shape. Specifically, the tip portion 65A has a low triangular prism shape. The triangular prism that constitutes the tip portion 65A has a shape that corresponds to the shape of the inner surface 42 of the groove portion 41 of the mounting member 40, and is capable of entering the inside of the groove portion 41. The tip portion 65A is capable of moving within the groove portion 41 along the longitudinal direction of the groove portion 41.
[0149] The triangular prism formed by the tip portion 65A has three side surfaces 65a, 65b, and 65c and a pair of bottom surfaces 65d. One end of the rod-shaped portion 61 of the opposing member 60 is connected to the side surface 65a. When the tip portion 65 is inserted into the groove portion 41, the side surfaces 65b and 65c each contact the pair of opposing surfaces 43 of the groove portion 41. At this time, the side surfaces 65b and 65c each make surface contact with the opposing surfaces 43. Figure 22 shows an example of the state in which the side surfaces 65b and 65c each make surface contact with the pair of opposing surfaces 43 of the groove portion 41. When the tip portion 65A moves within the groove portion 41 and reaches the wall surface 44 of the groove portion 41, one of the pair of bottom surfaces 65d comes into contact with the wall surface 44. At this time, the bottom surface 65d makes surface contact with the wall surface 44.
[0150] When single-use calibration is performed using an opposing member 60 including a tip portion 65A, the operator grasps and moves the end effector 15 by hand so that the side surfaces 65b and 65c of the tip portion 65A contact the pair of opposing surfaces 43 of the groove portion 41, respectively, or so that the side surfaces 65b and 65c are positioned near the pair of opposing surfaces 43. Alternatively, when a mounting member 40D having a mark 500 is used, the robot control unit 20 controls the movement of the robot 10 so that the side surfaces 65b and 65c of the tip portion 65A contact the pair of opposing surfaces 43 of the groove portion 41, respectively, or so that the side surfaces 65b and 65c are positioned near the pair of opposing surfaces 43.
[0151] Based on the force detection information output by the sensor 18, the robot control unit 20 determines whether the side surfaces 65b and 65c of the tip 65A are in contact with the pair of opposing surfaces 43 of the groove 41. If the side surfaces 65b and 65c of the tip 65A are not in contact with the pair of opposing surfaces 43 of the groove 41, the robot control unit 20 moves the tip 65A downward on the mounting member 40 while checking the force detection information, so that the side surfaces 65b and 65c come into contact with the pair of opposing surfaces 43.
[0152] When the side surfaces 65b and 65c of the tip portion 65A are in contact with the pair of opposing surfaces 43, respectively, the robot control unit 20 acquires position information of the tip portion 65A at that time as first contact position information. Thereafter, while checking the force detection information, the robot control unit 20 moves the tip portion 65A to the wall surface 44 of the groove portion 41 and brings one bottom surface 65d of the tip portion 65A into contact with the wall surface 44. As a result, the side surfaces 65b and 65c of the tip portion 65A are in contact with the pair of opposing surfaces 43, respectively, and one bottom surface 65d of the tip portion 65A is in contact with the wall surface 44. When the side surfaces 65b and 65c of the tip portion 65A are in contact with the pair of opposing surfaces 43, respectively, and one bottom surface 65d of the tip portion 65A is in contact with the wall surface 44, the robot control unit 20 acquires position information of the tip portion 65A at that time as second contact position information.
[0153] In the same manner as described above, the robot control unit 20 identifies the posture of the target placement surface 35 based on the acquired first contact position information and second contact position information. Then, the robot control unit 20 corrects the reference working point position information based on the identified posture of the target placement surface 35 and the acquired second contact position information, to obtain the target working point position information.
[0154] Even when the two-piece calibration is performed using an opposing member 60 having the tip portion 65A, the robot control unit 20 similarly identifies the posture of the target placement surface 35 based on the second contact position information of one placement member 40 acquired using the tip portion 65A as described above and the second contact position information of the other placement member 40 acquired using the tip portion 65A. Then, the robot control unit 20 corrects the reference working point position information based on the identified posture of the target placement surface 35 and the second contact position information, to obtain the target working point position information.
[0155] If the position of the worktable 30 deviates from the reference position but the posture of the worktable 30 hardly deviates from the reference posture, the robot control unit 20 does not need to acquire the first contact position information. In this case, the robot control unit 20 may acquire the reference work point coordinates and use the offset position coordinates, which are offset based on the second contact position information, as the target work point coordinates. In this way, if the position of the worktable 30 deviates from the reference position but the posture of the worktable 30 hardly deviates from the reference posture, the robot control unit 20 can also control the movement of the robot 10 based on the position information of the opposing member 60 at a predetermined contact position of the mounting member 40.
[0156] In addition, if the posture of the work table 30 deviates from the reference posture but the position of the work table 30 hardly deviates from the reference position, the robot control unit 20 may use the position coordinates obtained by multiplying the reference work point coordinates by the first rotation matrix or the second rotation matrix as the target work point coordinates.
[0157] Furthermore, in the case where the position of the work table 30 deviates from the reference position but the posture of the work table 30 hardly deviates from the reference posture, the recess 41 of the mounting member 40 may be something other than a groove. Figures 23 and 24 are schematic diagrams showing an example of the mounting member 40 in this case.
[0158] The recess 41 (also referred to as recess 41F) provided in the mounting member 40 (also referred to as mounting member 40F) shown in Figures 23 and 24 is open not only to the top surface 40a but also to the bottom surface 40b of the mounting member 40F. The inner surface 42 (also referred to as inner surface 42F) of the recess 41F is, for example, frustoconical in shape, with a diameter that decreases from the top surface 40a toward the bottom surface 40b. Figure 24 shows the cross-sectional shape of the mounting member 40 along the depth direction of the recess 41F. During calibration, a rounded tip 65, such as a sphere or hemisphere, is inserted into the recess 41F. The tip 65 makes line contact with the inner surface 42F of the recess 41F. Figure 24 shows an example of how the tip 65 makes line contact with the inner surface 42F of the recess 41F.
[0159] When a single calibration is performed using the mounting member 40F, the operator grasps and moves the end effector 15 by hand so that the tip 65 contacts the inner surface 42F of the recess 41F or is positioned near the inner surface 42F. Alternatively, when a mark 500 is provided on the upper surface 40a of the mounting member 40F, the robot control unit 20 controls the movement of the robot 10 so that the tip 65 contacts the inner surface 42F of the recess 41F or is positioned near the inner surface 42F.
[0160] The robot control unit 20 determines whether the tip 65 is in line contact with the inner surface 42F of the recess 41F based on the force detection information. If the tip 65 is not in line contact with the inner surface 42F, the robot control unit 20 moves the tip 65 while checking the force detection information to bring the tip 65 into line contact with the inner surface 42F. If the tip 65 is in line contact with the inner surface 42F, the robot control unit 20 acquires position information of the tip 62 at that time as third contact position information. The robot control unit 20 uses the acquired third contact position information instead of the second contact position information to calculate offset position coordinates obtained by offsetting the reference working point coordinates. The robot control unit 20 then sets the calculated offset position coordinates as target working point coordinates.
[0161] 25 and 26 are schematic diagrams showing another example of a mounting member 40 used when the position of the work table 30 deviates from the reference position but the posture of the work table 30 hardly deviates from the reference posture. When the mounting member 40 shown in FIGS. 25 and 25 (also referred to as mounting member 40H) is used, the tip portion 65 (also referred to as tip portion 65H) shown in FIG. 26 is used. The tip portion 65H fits inside the recess 41 (also referred to as recess 41H) of the mounting member 40H. FIG. 26 shows the tip portion 65H fitting inside the recess 41H.
[0162] The tip portion 65H has a low triangular prism shape. The triangular prism formed by the tip portion 65H has three side surfaces 65p and a pair of bottom surfaces 65q and 65r. One end of the rod-shaped portion 61 of the opposing member 60 is connected to one of the bottom surfaces 65q. When the tip portion 65H is fitted inside the recess 41H, the other bottom surface 65r and the two side surfaces 42b contact the inner surface 42 (also referred to as the inner surface 42H) of the recess 41H.
[0163] The recess 41H opens toward the upper surface 40a and side surfaces of the mounting member 40H. The inner surface 42H of the recess 41H has a bottom surface 42a that contacts the bottom surface 65r of the tip portion 65H and two side surfaces 42b that contact the two side surfaces 65p of the tip portion 65H, respectively. The bottom surface 65r of the tip portion 65H is in surface contact with the bottom surface 42a of the inner surface 42H. The two side surfaces 65p of the tip portion 65H are in surface contact with the two side surfaces 42b of the inner surface 42H, respectively.
[0164] When one calibration is performed using the mounting member 40H and the tip portion 65H, the operator grasps and moves the end effector 15 by hand so that the bottom surface 65r and two side surfaces 65p of the tip portion 65H contact the bottom surface 42a and two side surfaces 42b of the recessed portion 41H, respectively. Alternatively, the operator positions the bottom surface 65r and two side surfaces 65p of the tip portion 65H near the bottom surface 42a and two side surfaces 42b of the recessed portion 41H, respectively. When a mark 500 is attached to the upper surface 40a of the mounting member 40H, the robot control unit 20 controls the movement of the robot 10 so that the bottom surface 65r and two side surfaces 65p of the tip portion 65H contact the bottom surface 42a and two side surfaces 42b of the recessed portion 41H, respectively. Alternatively, the robot control unit 20 controls the movement of the robot 10 so that the bottom surface 65r and two side surfaces 65p of the tip portion 65H are positioned near the bottom surface 42a and two side surfaces 42b of the recess 41H, respectively.
[0165] The robot control unit 20 determines, based on the force detection information, whether the bottom surface 65r and two side surfaces 65p of the tip portion 65H are in contact with the bottom surface 42a and two side surfaces 42b of the recessed portion 41H, respectively. If the bottom surface 65r and two side surfaces 65p of the tip portion 65H are not in contact with the bottom surface 42a and two side surfaces 42b of the recessed portion 41H, the robot control unit 20 moves the tip portion 65H while checking the force detection information, until the bottom surface 65r and two side surfaces 65p of the tip portion 65H are in contact with the bottom surface 42a and two side surfaces 42b of the recessed portion 41H, respectively. If the bottom surface 65r and two side surfaces 65p of the tip portion 65H are in contact with the bottom surface 42a and two side surfaces 42b of the recessed portion 41H, respectively, the robot control unit 20 acquires position information of the tip portion 65 at that time as fourth contact position information. The robot control unit 20 uses the acquired fourth contact position information instead of the second contact position information to determine offset position coordinates obtained by offsetting the reference working point coordinates. The robot control unit 20 then sets the determined offset position coordinates as the target working point coordinates.
[0166] The determination unit 25 can also determine the orientation of the mounting surface 35 based on information about the tip portion 65H when the tip portion 65H is fitted inside the recess 41H and in contact with the inner surface 42H. Information about the tip portion 65H when the tip portion 65H is fitted inside the recess 41H and in contact with the inner surface 42H can also be considered as contact opposing member information. A method for determining the orientation of the mounting surface 35 in this case will be described below.
[0167] For example, a first fixed point and a second fixed point are set with respect to either bottom surface 65q or 65r. Because bottom surfaces 65q and 65r are parallel to mounting surface 35, the line connecting the first fixed point and the second fixed point is parallel to target mounting surface 35, similar to the line connecting the first contact position and the second contact position described above. Position coordinates of the first fixed point and the second fixed point when tip portion 65H is fitted into recess 41H of mounting member 40H on mounting surface 35 in the reference position and posture are stored in memory unit 3 as reference first fixed point coordinates and reference second fixed point coordinates, respectively. For example, the first fixed point may be set at a vertex of bottom surface 65q or 65r of a triangle. Furthermore, the second fixed point may be set at the center of bottom surface 65q or 65r, or at the intersection of tip portion 65H and rod-shaped portion 61.
[0168] During the calibration, when tip portion 65H is fitted into recess 41H of target mounting member 40H on target mounting surface 35, identification unit 25 acquires the position coordinates of the first fixed point and the position coordinates of the second fixed point at that time. The acquired position coordinates of the first fixed point and the position coordinates of the second fixed point are referred to as acquired first fixed point coordinates and acquired second fixed point coordinates, respectively. The acquired first fixed point coordinates and the acquired second fixed point coordinates can be said to be information about tip portion 65H when tip portion 65H is fitted inside recess 41H and in contact with inner surface 42H, and can also be said to be contact opposing member information.
[0169] The determination unit 25 determines the orientation of the target placement surface 35 by using the reference first fixed point coordinates, the reference second fixed point coordinates, the acquired first fixed point coordinates, and the acquired second fixed point coordinates, respectively, instead of the reference first contact position coordinates, the reference second contact position coordinates, the acquired first contact position coordinates, and the acquired second contact position coordinates. Specifically, the determination unit 25 determines a first vector (corresponding to vector V1) from the reference second fixed point coordinates to the reference first fixed point coordinates and a second vector (corresponding to vector V2) from the acquired second fixed point coordinates to the acquired first fixed point coordinates. Next, the determination unit 25 aligns the starting point of the first vector with the starting point of the second vector, and then determines the angle formed between the first vector and the second vector. Next, the determination unit 25 determines a third rotation matrix for rotating the first vector by the determined angle around the starting point of the second vector to overlap it with the second vector. The third rotation matrix represents the three-dimensional position and orientation of the target placement surface 35. The determination unit 25 can also be said to determine the three-dimensional posture of the target mounting member 40 by calculating a third rotation matrix based on the reference first fixed point coordinates, the reference second fixed point coordinates, the acquired first fixed point coordinates, and the acquired second fixed point coordinates.
[0170] After the identification unit 25 determines the third rotation matrix, the robot control unit 20 determines offset position coordinates obtained by offsetting the reference working point coordinates using the acquired second fixed point coordinates and the reference second fixed point coordinates instead of the acquired second contact position coordinates and the reference second contact position coordinates. The robot control unit 20 then determines the position coordinates obtained by multiplying the offset position coordinates by the third rotation matrix as the target working point coordinates.
[0171] In this way, depending on the shape of the tip 65 of the opposing member 60, it is possible to determine the posture of the target placement surface 35 without obtaining positional information of the tip 65 at multiple contact positions on the inner surface 42 of the recess 41.
[0172] In the above example, the identification unit 25 identifies the three-dimensional orientation of the target placement surface 35. However, the identification unit 25 may also identify at least the orientation of the target placement surface 35 as viewed from above. For example, consider a case where the orientation of the target placement surface 35 as viewed from above is identified in single-use calibration. In this case, the identification unit 25 aligns the starting point of vector V1 with the starting point of vector V2, as in the lower part of FIG. 16 described above. Next, as shown in FIG. 27 , the identification unit 25 considers a specific plane 900 that includes the position coordinate A1a of the end point of vector V1 after aligning the starting point of vector V1 with the starting point of vector V2 and the acquired second contact position coordinate P2, and that is parallel to the XY plane of the robot coordinate system 100. The specific plane 900 is treated as, for example, a plane formed by the XY components of the reference placement surface 35. The specific plane 900 may also be treated as a plane onto which the reference placement surface 35 is projected, for example, as a plane perpendicular to the Z axis or the weight direction.
[0173] Next, the identification unit 25 obtains position coordinates A2x obtained by projecting the acquired first contact position coordinates A2 of vector V2 onto the specific surface 900. The position coordinates A2x are the position coordinates of the foot of a perpendicular line drawn from the acquired first contact position coordinates A2 onto the specific surface 900. The vector from the acquired second contact position coordinates P2 to the position coordinates A2x is called vector V2x. It can be said that vector V2x is a vector obtained by projecting vector V2 onto the specific surface 900.
[0174] Next, the identification unit 25 calculates a fourth rotation matrix for rotating the vector V1 by an angle θ11 around the acquired second contact position coordinate P2 to overlap with the vector V2x. The fourth rotation matrix represents the orientation of the target placement surface 35 as viewed from above. In this example, the fourth rotation matrix represents the orientation of the target placement surface 35 when viewed from the positive side of the Z axis of the robot coordinate system 100. The fourth rotation matrix represents the relative orientation of the target placement surface 35 with respect to the reference placement surface 35 when viewed from above. By calculating the fourth rotation matrix, the identification unit 25 identifies the orientation of the target placement surface 35 as viewed from above. The fourth rotation matrix represents rotation within the plane of the identification surface 900. It can also be said that by calculating the fourth rotation matrix, the identification unit 25 identifies the rotation of the target placement surface 35 from the reference orientation when viewed from above.
[0175] After the identification unit 25 determines the fourth rotation matrix, the robot control unit 20 determines, for example, offset position coordinates obtained by offsetting the reference working point coordinates I1 in the same manner as described above. Then, the robot control unit 20 multiplies the offset position coordinates by the fourth rotation matrix, and sets the resulting position coordinates as the target working point coordinates I2.
[0176] In this way, even if the reference work point position information is corrected and the target work point position information is determined based on the orientation of the target placement surface 35 as viewed from above, as determined by the determination unit 25, the target work point position information can be determined with a certain degree of accuracy.
[0177] In the two-element calibration, the identification unit 25 can similarly identify the orientation of the target placement surface 35 as viewed from above. As in the lower part of FIG. 19 , the identification unit 25 aligns the starting point of the vector V11 with the starting point of the vector V12. Next, as shown in FIG. 28 , the identification unit 25 considers a specific surface 950 that includes the position coordinate P12a of the end point of the vector V11 after aligning the starting point of the vector V11 with the starting point of the vector V12 and the acquired second contact position coordinate P21, and that is parallel to the XY plane of the robot coordinate system 100. Next, the identification unit 25 obtains a position coordinate P22x obtained by projecting the acquired second contact position coordinate P22 of the vector V12 onto the specific surface 950. The position coordinate P22x is the position coordinate of the foot of a perpendicular line drawn from the acquired second contact position coordinate P22 to the specific surface 950. The vector from the acquired second contact position coordinate P21 to the position coordinate P22x is referred to as vector V12x. The specific surface 950 is similar to the specific surface 900, for example.
[0178] Next, the identification unit 25 calculates a fifth rotation matrix for rotating the vector V11 by an angle θ22 around the acquired second contact position coordinate P21 to overlap with the vector V12x. Like the fourth rotation matrix, the fifth rotation matrix represents the orientation of the target placement surface 35 as viewed from above. In this example, the fifth rotation matrix represents the orientation of the target placement surface 35 when viewed from the positive side of the Z axis of the robot coordinate system 100. By calculating the fifth rotation matrix, the identification unit 25 identifies the orientation of the target placement surface 35 as viewed from above.
[0179] After the identification unit 25 determines the fifth rotation matrix, the robot control unit 20 determines offset position coordinates obtained by offsetting the reference working point coordinates I11 in the same manner as described above. The robot control unit 20 then multiplies the offset position coordinates by the fifth rotation matrix, and sets the resulting position coordinates as the target working point coordinates I12.
[0180] Although the processing device and the mounting member have been described in detail above, the above description is merely illustrative in all respects and does not limit the scope of this disclosure. Furthermore, the various examples described above can be combined and applied as long as they are not mutually inconsistent. It is understood that countless examples not illustrated can be envisioned without departing from the scope of this disclosure.
[0181] This disclosure includes the following:
[0182] In one embodiment, (1) the processing device includes an acquisition unit that acquires opposing member information when at least one mounting member is placed on a work object mounting surface of an unfixed work table for the robot and an opposing member of the robot is in contact with the at least one mounting member, an identification unit that identifies the orientation of the mounting surface as viewed from above or the three-dimensional orientation of the mounting surface based on the opposing member information, and a robot control unit that controls the movement of the robot based on the orientation identified by the identification unit.
[0183] (2) In the processing device of (1) above, the at least one mounting member has a first mounting member, the opposing member information includes first position information of the opposing member at a first contact position of the first mounting member and second position information of the opposing member at a second contact position on the first mounting member that is away from the first contact position along the mounting surface, and the identification unit identifies the posture based on the first position information and the second position information.
[0184] (3) In the processing device of (2) above, the first mounting member has a groove portion extending parallel to the mounting surface, the first contact position is located on the inner surface of the groove portion, and the second contact position is located on the inner surface of the groove portion, away from the first contact position along the longitudinal direction of the groove portion.
[0185] (4) In the processing device of (3) above, the inner surface of the groove portion includes a wall surface located at one end of the longitudinal direction of the groove portion, and the second contact position is a contact position of the opposing member with the wall surface.
[0186] (5) In the processing device of (1) above, the at least one mounting member has a first mounting member, the opposing member information includes position information of the opposing member at a predetermined contact position of the first mounting member, and the robot control unit controls the movement of the robot based on the position information.
[0187] (6) In the processing device of (5) above, the first mounting member has a groove portion having a wall surface extending parallel to the mounting surface and located at one end in the longitudinal direction, and the predetermined contact position is the position where the opposing member contacts the wall surface.
[0188] (7) In the processing device of (1) above, the at least one mounting member has a first mounting member and a second mounting member positioned away from the first mounting member, the opposing member information includes first position information of the opposing member at a first contact position of the first mounting member and second position information of the opposing member at a second contact position of the second mounting member, and the identification unit identifies the posture based on the first position information and the second position information.
[0189] (8) The mounting member is a mounting member that is placed on the mounting surface of the robot's work object, and has a groove portion into which the tip of the member placed on the robot fits, and the inner surface of the groove portion has multiple surfaces that each make point contact with the tip.
[0190] (9) In the mounting member of (8) above, the plurality of surfaces have a plurality of opposing surfaces that face each other, and the plurality of opposing surfaces include inclined surfaces that slope outwardly as they extend upward.
[0191] (10) In the mounting member of (9) above, the plurality of surfaces include a wall surface located at one end of the groove in the longitudinal direction.
[0192] (11) In the mounting member of (10) above, the other end of the groove in the longitudinal direction is open.
[0193] (12) The processing device includes a robot control unit that controls the robot so that the tip of the member moves within the groove of the mounting member described above in (10) or (11), and the robot control unit determines the contact state of the tip with the inner surface of the groove based on the detection results of a sensor that detects the force applied to the tip, and controls the robot so that the tip moves within the groove to the wall surface based on the determined contact state.
[0194] (13) In the processing device of (12) above, the robot control unit controls the robot so that when the tip portion makes two-point contact with the inner surface, the tip portion moves toward the wall surface of the inner surface of the groove portion, and when the tip portion makes three-point contact with the inner surface, the robot stops the movement of the tip portion.
[0195] (14) In the processing device of (13) above, the robot control unit controls the robot so that when the tip portion comes into contact with the inner surface at one point, the tip portion moves toward the bottom of the inner surface of the groove portion.
[0196] (15) The program is a program for causing a computer device to function as any one of the processing devices (1) to (7) and (12) to (14) above.
[0197] REFERENCE SIGNS LIST 1 Processing device 3a Program 20 Robot control unit 25 Identification unit 35 Placement surface 40, 40A, 40B, 40D, 40F, 40H Placement member 50 Work object 60 Placement member 65, 65A, 65H Tip portion 41 Recess (groove portion) 41F, 41H Recess 42, 42F, 42H Inner surface 43, 43a, 43b Opposing surface 44 Wall surface
Claims
1. an acquisition unit that acquires opposing member information when at least one mounting member is placed on a workpiece mounting surface of an unfixed workbench of the robot and an opposing member of the robot is in contact with the at least one mounting member; an identification unit that identifies a posture of the placement surface as viewed from above or a three-dimensional posture of the placement surface based on the opposing member information; a robot control unit that controls a movement of the robot based on the posture identified by the identification unit; A processing device comprising:
2. 2. The processing device according to claim 1, the at least one mounting member comprises a first mounting member; the opposing member information includes first position information of the opposing member at a first contact position of the first mounting member and second position information of the opposing member at a second contact position of the first mounting member that is spaced apart from the first contact position along the mounting surface, The identification unit identifies the posture based on the first position information and the second position information.
3. 3. The processing device according to claim 2, the first mounting member has a groove extending parallel to the mounting surface, the first contact position is located on an inner surface of the groove portion, The processing device, wherein the second contact position is located on the inner surface of the groove, spaced apart from the first contact position along the longitudinal direction of the groove.
4. 4. The processing device according to claim 3, the inner surface of the groove portion includes a wall surface located at one end of the groove portion in the longitudinal direction, The second contact position is a contact position of the opposing member with the wall surface.
5. 2. The processing device according to claim 1, the at least one mounting member comprises a first mounting member; the opposing member information includes position information of the opposing member at a predetermined contact position of the first mounting member, The robot control unit is a processing device that controls the movement of the robot based on the position information.
6. 6. The processing device according to claim 5, the first mounting member has a groove portion extending parallel to the mounting surface and having a wall surface located at one end in a longitudinal direction; The predetermined contact position is a position where the opposing member contacts the wall surface.
7. 2. The processing device according to claim 1, the at least one mounting member includes a first mounting member and a second mounting member positioned apart from the first mounting member; the opposing member information includes first position information of the opposing member at a first contact position of the first mounting member and second position information of the opposing member at a second contact position of the second mounting member, The identification unit identifies the posture based on the first position information and the second position information.
8. A mounting member disposed on a mounting surface of a robot for a work object, a groove into which a tip end of a member disposed on the robot is inserted; The inner surface of the groove has a plurality of surfaces each of which comes into point contact with the tip portion.
9. The mounting member according to claim 8, The plurality of surfaces include a plurality of opposing surfaces that face each other, The plurality of opposing surfaces include inclined surfaces that slope upward and outward.
10. The mounting member according to claim 9, The plurality of surfaces include a wall surface located at one end of the groove in the longitudinal direction.
11. The mounting member according to claim 10, The other end of the groove in the longitudinal direction is open.
12. a robot control unit that controls the robot so that the tip of the member moves within the groove of the mounting member according to claim 10; The robot control unit determining a contact state of the tip portion with respect to the inner surface of the groove portion based on a detection result of a sensor that detects a force applied to the tip portion; a processing device that controls the robot based on the identified contact state so that the tip portion moves within the groove portion to the wall surface.
13. 13. The processing device of claim 12, The robot control unit controlling the robot so that, when the tip portion comes into two-point contact with the inner surface, the tip portion moves toward the wall surface of the inner surface of the groove portion; a processing device that causes the robot to stop movement of the tip when the tip comes into three-point contact with the inner surface.
14. 14. The processing device of claim 13, The robot control unit controls the robot so that, when the tip portion comes into contact with the inner surface at one point, the tip portion moves toward a bottom of the inner surface of the groove portion.
15. A program for causing a computer device to function as the processing device according to any one of claims 1 to 7 and claims 12 to 14.