Robot system and control method of robot
Patent Information
- Application Number
- CN202211704841.1
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Priority Date
- 2016-03-18
- Filing Date
- 2017-03-16
- Publication Date
- 2026-10-23
- Estimated Expiration
- 2037-03-16
AI Technical Summary
[0029]根据以上,控制装置、机器人以及机器人系统在存储机器人的位置以及姿势的时候,在使机器人活动直到施加至手部的外力满足规定条件为止的第一模式、与基于施加至机器人所具备的第一部位的外力使机器人活动的第二模式之间进行切换。由此,控制装置、机器人以及机器人系统能够通过第一模式与第二模式的任意一个,使机器人的位置以及姿势以较高的精度变化为所希望的位置以及姿势。
Smart Images

Figure CN116141290B_ABST
Abstract
Description
[0001] This application is a divisional application of the patent application filed on March 16, 2017, with application number 201710156754.X and entitled "Control Device, Robot and Robot System". Technical Field
[0002] This invention relates to control devices, robots, and robot systems. Background Technology
[0003] We have been researching and developing technologies that use force and torque detected by force sensors on robots to teach robot actions.
[0004] Regarding this, there is a known direct teaching device in which the teaching operator applies force to a fingertip actuator located at the front end of the robot's arm. The applied force is detected by a force sensor located in the wrist, and the fingertip actuator is guided to a target position by force control based on the force signal output by the force sensor. The position and posture of the guided fingertip actuator are stored as teaching data (see Patent Document 1).
[0005] Patent Document 1: Japanese Patent Application Publication No. 03-123908
[0006] However, in such a direct teaching device, if the pre-input force control parameters used to calculate the movement of the force-controlled fingertip actuator are not correctly set, it can be difficult to accurately change the position and posture of the fingertip actuator to the desired position and posture. Furthermore, even if the force control parameters are correctly set, the operator may still have difficulty applying the desired force to the fingertip actuator in the desired direction, making it difficult to accurately change the position and posture of the fingertip actuator to the desired position and posture. Consequently, this direct teaching device cannot accurately teach the robot to the desired position and posture. Summary of the Invention
[0007] To solve at least one of the above-mentioned problems, a control device according to one aspect of the present invention is configured to switch between a first mode and a second mode when storing the position and posture of a robot equipped with a hand and a force detection unit. The first mode refers to moving the robot until the external force applied to the hand meets a predetermined condition, and the second mode refers to moving the robot based on the external force applied to a first part of the robot.
[0008] According to this configuration, when storing the robot's position and posture, the control device switches between a first mode and a second mode. The first mode involves moving the robot until the external force applied to its hand meets a predetermined condition. The second mode involves moving the robot based on the external force applied to a first part of the robot. Thus, the control device can, through either the first or second mode, change the robot's position and posture to the desired position and posture with high precision.
[0009] Alternatively, the present invention may be configured such that, in the control device, in the first mode described above, the hand is brought close to the object by control based on the output of the force detection unit until the specified conditions are met.
[0010] According to this configuration, in the first mode, the control device controls the hand to approach the object until a predetermined condition is met by controlling the output of the force detection unit. Thus, in the first mode, the control device can, with high precision, change the robot's position and posture to the desired position and posture corresponding to the object without requiring the user to apply external force to the hand.
[0011] Alternatively, the present invention may be configured such that, in the control device, the aforementioned conditions refer to the fact that at least one of the external forces applied to the hand, directed toward a first direction, is greater than 0, and at least one of the external forces applied to the hand, directed toward a second direction different from the first direction, is 0.
[0012] According to this configuration, in the first mode, the control device causes the robot to move until at least the force applied to the hand in the first direction is greater than 0, and at least the force applied to the hand in the second direction is 0. Thus, in the first mode, the control device is able to maintain the robot's posture and move the robot's position in the opposite direction to the first direction.
[0013] Alternatively, the present invention can be configured such that, in the control device, the first direction is a translational direction and the second direction is a rotational direction.
[0014] According to this configuration, in the first mode, the control device causes the robot to move until at least the force applied to the hand in the translational direction (i.e., the first direction) is greater than 0, and the torque in the rotational direction (i.e., the second direction) is 0. Thus, in the first mode, the control device can maintain the robot's posture and move the robot's position in the opposite direction to the translational direction (i.e., the first direction).
[0015] Alternatively, the present invention may be configured such that, in the control device, in the first mode described above, the current position and posture are stored when the aforementioned conditions are met.
[0016] According to this configuration, in the first mode, the control device stores the current position and posture of the robot when predetermined conditions are met. Therefore, in the first mode, the control device can cause the robot to move based on the stored position and posture of the robot when the predetermined conditions are met.
[0017] Alternatively, the present invention may be configured such that, in the control device, in the second mode described above, the second part of the robot is moved by a predetermined amount in a predetermined direction based on the external force applied to the first part.
[0018] According to this configuration, in the second mode, the control device moves the second part of the robot in a predetermined direction by a predetermined amount based on the external force applied to the first part of the robot. Thus, in the second mode, the control device can, based on the external force applied by the user to the first part, change the robot's position and posture to the desired position and posture with high precision.
[0019] Alternatively, the present invention may be configured such that, in a control device, after the second part is moved by the predetermined amount in the predetermined direction, the current position and posture are stored.
[0020] According to this configuration, after the control device moves the second part in a predetermined direction by a predetermined amount, it stores the current position and posture of the robot. Therefore, in the second mode, the control device can control the robot based on the robot's position and posture stored after moving the second part in the predetermined direction by the predetermined amount.
[0021] Alternatively, the present invention may be configured such that, in the control device, the aforementioned specified direction includes either or both of the translational and rotational directions.
[0022] According to this configuration, after the control device moves the second part by a predetermined amount in either the translational or rotational direction, it stores the current position and posture of the hand. Therefore, in the second mode, the control device can control the robot based on the stored position and posture after moving the second part by a predetermined amount in either the translational or rotational direction.
[0023] Alternatively, the present invention may be configured such that, in the control device, the predetermined direction is a direction corresponding to a portion of the first part, and the second part is moved by the predetermined amount in the direction corresponding to the portion of the first part to which the external force is applied, based on the external force applied to the first part.
[0024] According to this configuration, the control device moves the second part by a predetermined amount in a direction corresponding to the portion of the first part to which the external force is applied, based on the external force applied to the first part of the robot. Thus, the control device allows the user to easily change the direction in which the second part moves.
[0025] Alternatively, another aspect of the present invention is a robot controlled by the control device described above.
[0026] According to this configuration, when storing the robot's position and posture, the robot switches between a first mode that causes the robot to move until the external force applied to the hand meets a predetermined condition, and a second mode that causes the robot to move based on the external force applied to a first part of the robot. Thus, the robot can change its position and posture to the desired position and posture with high precision using either the first or second mode.
[0027] Alternatively, another aspect of the present invention is a robot system comprising: the control device described above and a robot controlled by the control device described above.
[0028] According to this configuration, when storing the robot's position and posture, the robot system switches between a first mode that moves the robot until the external force applied to the hand meets a predetermined condition, and a second mode that moves the robot based on the external force applied to a first part of the robot. Thus, the robot system can, through either the first or second mode, change the robot's position and posture to the desired position and posture with high precision.
[0029] Based on the above, when storing the robot's position and posture, the control device, robot, and robot system switch between a first mode that causes the robot to move until the external force applied to the hand meets a predetermined condition, and a second mode that causes the robot to move based on the external force applied to a first part of the robot. Therefore, the control device, robot, and robot system can, through either the first mode or the second mode, change the robot's position and posture to the desired position and posture with high precision. Attached Figure Description
[0030] Figure 1 This is a diagram illustrating an example of the configuration of the robot system 1 according to this embodiment.
[0031] Figure 2 This is a diagram illustrating an example of the hardware configuration of the robot control device 30 and the teaching device 50.
[0032] Figure 3 This is a diagram illustrating an example of the functional configuration of the robot control device 30 and the teaching device 50.
[0033] Figure 4 This is a flowchart illustrating an example of the process by which the teaching pendant 50 outputs various instructions to the robot control device 30.
[0034] Figure 5 This is a flowchart illustrating an example of the process by which the robot control device 30 switches action modes based on an action mode switching instruction.
[0035] Figure 6 This is a flowchart illustrating an example of the process by which the robot control device 30 outputs information indicating the position and posture of the current control point T1 to the teaching device 50 based on position and posture information.
[0036] Figure 7 This is a flowchart illustrating an example of the process by which the robot control device 30 causes the robot 20 to move when the action mode is the second mode.
[0037] Figure 8 This diagram illustrates a specific example 1 of the movement execution direction and the specified direction under the second specified condition. This specific example 1 is an example where both the movement execution direction and the specified direction are translation directions, and the movement execution direction and the specified direction are different from each other.
[0038] Figure 9 This diagram illustrates a specific example 2 of the movement execution direction and the specified direction under the second specified condition. This specific example 2 is an example where both the movement execution direction and the specified direction are translational directions, and the movement execution direction and the specified direction are the same.
[0039] Figure 10 This diagram illustrates a specific example 3 of the movement execution direction and the specified direction under the second specified condition. This specific example 3 is an example where the movement execution direction is a translation direction and the specified direction is a rotation direction.
[0040] Figure 11 This diagram illustrates a specific example 4 of the movement execution direction and the specified direction under the second specified condition. This specific example 4 is an example where both the movement execution direction and the specified direction are rotational directions, and the movement execution direction and the specified direction are the same.
[0041] Figure 12 This diagram illustrates a specific example 5 of the movement execution direction and the specified direction under the second specified condition. This specific example 5 is an example where both the movement execution direction and the specified direction are rotational directions, and the movement execution direction and the specified direction are different from each other.
[0042] Figure 13 This is a diagram illustrating a specific example 6 of the movement execution direction and the specified direction under the second specified condition. This specific example 6 is an example where the movement execution direction is the rotation direction and the specified direction is the translation direction.
[0043] Figure 14 This is a diagram illustrating a specific example 1 of the movement execution direction and the specified direction when the specified direction corresponds to the direction of the hand part H.
[0044] Figure 15 This is a diagram illustrating a specific example 2 of the movement execution direction and the specified direction when the specified direction corresponds to the direction of the hand part H.
[0045] Figure 16 This is a flowchart illustrating an example of the process by which the robot control device 30 causes the robot 20 to move when the action mode is in the first mode.
[0046] Figure 17 This is a diagram illustrating an example of the position of control point T1 in step S510 and the positional relationship between the hand H and the worktable TB before the posture begins to change.
[0047] Figure 18 This is a diagram illustrating an example of the position of control point T1 in step S530 and the positional relationship between the hand H and the worktable TB before the change in posture stops. Detailed Implementation
[0048] <Implementation Method>
[0049] Hereinafter, embodiments of the present invention will be described with reference to the accompanying drawings.
[0050] <The Composition of Robot Systems>
[0051] First, the composition of robot system 1 will be explained.
[0052] Figure 1This diagram illustrates an example of the configuration of the robot system 1 according to this embodiment. The robot system 1 includes a robot 20 and a control device 25. The control device 25 consists of a robot control device 30 and a teaching pendant 50 separate from the robot control device 30. Alternatively, the control device 25 may be formed by integrating the robot control device 30 and the teaching pendant 50. In this case, the control device 25 has the functions of the robot control device 30 and the teaching pendant 50, which will be described below.
[0053] Robot 20 is a single-armed robot having an arm A and a support platform B supporting arm A. A single-armed robot is a robot with one arm, like arm A in this example. However, robot 20 can also be a multi-armed robot. A multi-armed robot is a robot with two or more arms (e.g., two or more arms A). Furthermore, a multi-armed robot with two arms is also called a dual-armed robot. That is, robot 20 can be a dual-armed robot with two arms, or a multi-armed robot with three or more arms (e.g., three or more arms A). Additionally, robot 20 can also be a SCARA robot, a Cartesian coordinate robot, or other types of robots. A Cartesian coordinate robot is, for example, a gantry robot.
[0054] Arm A includes an end effector E, a robotic arm M, and a force detection unit 21. In this example, the end effector E is an end effector with fingers capable of grasping objects. In addition to being an end effector with these fingers, the end effector E can also be an end effector or other end effector capable of lifting objects by air attraction, magnetism, grippers, etc.
[0055] The end effector E is connected to the robot control unit 30 via a cable in a communicative manner. Thus, the end effector E performs actions based on control signals received from the robot control unit 30. Wired communication via cable can be used, for example, based on standards such as Ethernet (registered trademark) or USB (Universal Serial Bus). Alternatively, the end effector E can also be configured to connect to the robot control unit 30 wirelessly using communication standards such as Wi-Fi (registered trademark).
[0056] The robotic arm M has 7 joints. Each of these 7 joints has an actuator (not shown). That is, the arm A equipped with the robotic arm M is a 7-axis vertical multi-joint type arm. Arm A performs 7-axis movements through the coordinated action of the support platform B, the end effector E, the robotic arm M, and the actuators of each of the 7 joints of the robotic arm M. Furthermore, arm A can be configured to move with 6 or fewer degrees of freedom, or it can be configured to move with 8 or more degrees of freedom.
[0057] When arm A moves with 7 degrees of freedom, the number of possible poses increases compared to when arm A moves with 6 or fewer degrees of freedom. This allows arm A to move more smoothly and easily avoid interference from surrounding objects. Furthermore, when arm A moves with 7 degrees of freedom, the amount of control computation required is less and easier to perform compared to when arm A moves with 8 or more degrees of freedom.
[0058] The robotic arm M has seven actuators (equipped at its joints) connected to the robot control unit 30 via cables, enabling communication. These actuators move the robotic arm M based on control signals received from the robot control unit 30. Each actuator is equipped with an encoder. Each encoder outputs information indicating the rotation angle of the actuator to the robot control unit 30. Wired communication via cables is also possible, for example, using standards such as Ethernet (registered trademark) or USB. Alternatively, some or all of the seven actuators in the robotic arm M may be connected to the robot control unit 30 wirelessly using communication standards such as Wi-Fi (registered trademark).
[0059] A force detection unit 21 is mounted between the end effector E and the robotic arm M. The force detection unit 21 is, for example, a force sensor. The force detection unit 21 detects the external force applied to the hand H. In this example, the hand H refers to the end effector E or an object held by the end effector E. In this example, the external force refers to both the force applied to the hand H and the torque applied to the hand H. That is, the force detection unit 21 detects the magnitude of the force applied to the hand H in the respective directions of each coordinate axis of the force detection coordinate system. Furthermore, the force detection unit 21 detects the magnitude of the torque applied to the hand H about each coordinate axis. The force detection unit 21 outputs force detection information, including force detection values representing these detected magnitudes, to the robot control device 30 via communication. The force detection coordinate system is a three-dimensional local coordinate system established corresponding to the force detection unit 21 in a manner that moves together with the force detection unit 21. In addition, the external force can also be either the force applied to the hand H or the torque applied to the hand H.
[0060] Force detection information is used by the robot control device 30 to control the arm A based on the force detection information, i.e., force control. Force control refers to compliant motion control, such as impedance control. In addition, the force detection unit 21 can also be other sensors that detect external forces applied to the hand H, such as torque sensors.
[0061] The force detection unit 21 is connected to the robot control device 30 via a cable in a communicative manner. Wired communication via cable is performed, for example, based on standards such as Ethernet (registered trademark) or USB. Alternatively, the force detection unit 21 and the robot control device 30 can also be configured to be connected wirelessly using communication standards such as Wi-Fi (registered trademark).
[0062] In this example, the robot control device 30 is a robot controller. The robot control device 30 obtains teach point information from the teach pendant 50. The teach point information represents the teach point. A teach point is a hypothetical point that, when the robot control device 30 causes the robot 20 to perform an action, becomes the target for changing the position and posture of the robot 20. A correspondence is established between the teach point and teach point position information, teach point posture information, and teach point identification information. The teach point position information represents the position of the teach point. Furthermore, the teach point posture information represents the posture of the teach point. The teach point identification information identifies the teach point.
[0063] In this example, the position of the teach point is represented by the location of the origin of the corresponding three-dimensional local coordinate system established with the teach point in the robot coordinate system RC. Furthermore, the pose of the teach point is represented by the orientation of each coordinate axis of the teach point coordinate system within the robot coordinate system RC.
[0064] The robot control unit 30 stores teach point information acquired from the teach pendant 50. Furthermore, the robot control unit 30 generates control signals to move the robot 20 based on the stored teach point information. Specifically, the robot control unit 30 acquires information representing the rotation angle of each actuator from encoders equipped on each joint of the manipulator M. The robot control unit 30 generates control signals based on the stored teach point information and the acquired rotation angle information. The robot control unit 30 sends the generated control signals to the robot 20, causing the robot 20 to move by actuating the actuators. Here, the control signals also include control signals for the end effector E.
[0065] Furthermore, the robot control device 30 acquires various instructions from the teaching pendant 50. The robot control device 30 switches its operation mode based on an operation mode switching instruction that switches the robot control device 30's operation mode according to the acquired instructions. Specifically, in this example, the robot control device 30 switches its operation mode to any one of the first, second, and third modes based on the operation mode switching instruction. The robot control device 30 causes the robot 20 to perform an action corresponding to the switched operation mode. The operation mode switching instruction is an instruction containing information indicating any one of the first, second, and third modes. Moreover, the robot control device 30 can be configured to switch to either the first or second mode, either the second or third mode, or either the first or third mode. Furthermore, the robot control device 30 can also be configured to switch to some or all of the three modes (first to third) and any other mode different from these three modes.
[0066] In this example, the first mode is the automatic action mode. The automatic action mode is the mode in which robot 20 moves until the external force applied to hand H satisfies a first predetermined condition. That is, the first mode is the mode in which robot 20 performs actions through force-controlled robot control device 30 until the first predetermined condition is met. Furthermore, the first mode can also be other modes besides the automatic action mode. The first predetermined condition is an example of a predetermined condition. The first predetermined condition will be described later.
[0067] In this example, the second mode is a micro-motion mode. A micro-motion mode is a mode in which a second part of the robot 20 moves a predetermined amount in a predetermined direction based on an external force applied to a first part of the robot 20. Hereinafter, as an example, we will describe the case where the first and second parts are the same part, and the first and second parts are a hand H. That is, the second mode is a mode in which the hand H moves a predetermined amount in a predetermined direction based on an external force applied to the hand H. Furthermore, the first part can be any other part of the robot 20. And the second part can be any other part of the robot 20 that is different from the first part. Additionally, the second mode can be any mode other than the micro-motion mode.
[0068] In this example, the third mode is the direct action mode. The direct action mode is a mode in which the hand H of the robot 20 moves in the direction of the applied force by an amount corresponding to the magnitude of the applied force, based on the external force applied to it. That is, the third mode is the mode in which the robot control device 30 causes the robot 20 to perform actions when the user moves the robot 20 during direct teaching. Furthermore, the third mode can be any mode other than the direct action mode. Hereinafter, since the actions of the robot 20 based on the third mode are actions already known in direct teaching, the explanation of the third mode will be omitted.
[0069] In addition, the robot control device 30 outputs the information to the teaching device 50 based on the position and posture information of the robot 20 in the instruction obtained from the teaching device 50.
[0070] Furthermore, the robot control device 30 can be built into the robot 20 instead of being disposed outside the robot 20.
[0071] In this example, the teaching pendant 50 is a teaching console. The teaching pendant 50 outputs various instructions to the robot control unit 30 based on operations received from the user. The teaching pendant 50 causes the robot control unit 30 to switch action modes by outputting action mode switching instructions to the robot control unit 30.
[0072] Furthermore, the teaching pendant 50 outputs position and posture information from the instructions sent to the robot control device 30 to the robot control device 30, thereby obtaining information representing the current position and posture of the robot 20 from the robot control device 30. The teaching pendant 50 generates teach point information based on this information. The teaching pendant 50 outputs the generated teach point information to the robot control device 30 and stores it. That is, the teaching pendant 50 teaches the robot control device 30 the teach point represented by the generated teach point information.
[0073] The teach pendant 50 is connected to the robot control device 30 via a cable in a communicative manner. Wired communication via cable can be performed, for example, using standards such as Ethernet (registered trademark) or USB. Alternatively, the teach pendant 50 and the robot control device 30 can be connected wirelessly using communication standards such as Wi-Fi (registered trademark).
[0074] In addition, the teaching pendant 50 can be a teaching console or a remote control that has the functions of a teaching pendant 50 and can output instructions to the robot control device 30.
[0075] <An overview of the processing by which the robot's control unit enables the robot to perform actions>
[0076] The following is a summary of the process by which the robot control device 30 causes the robot 20 to perform actions.
[0077] like Figure 1 As shown, in this example, robot 20 pre-grabs object O1 via end effector E. That is, in this example, the hand H refers to end effector E or the object O1 grasped by end effector E. Object O1 can be, for example, an industrial part or component, a product, etc. Furthermore, object O1 can also be other objects such as parts or components of everyday consumer goods, products, or living organisms, in addition to industrial uses. Figure 1 In the example shown, object O1 is represented as a cube-shaped object. However, the shape of object O1 can also be other shapes instead of a cube.
[0078] The robot control device 30 sets a control point T (Tool Center Point) that moves together with the end effector E at a position pre-established with the end effector E. The pre-established position corresponding to the end effector E is, for example, the position of the center of gravity of the first object O1 pre-held by the end effector E. In addition, the position corresponding to the end effector E can be other positions such as the center of gravity of the end effector E, or any position corresponding to the robotic arm M.
[0079] A correspondence is established between control point T1 and information representing its position (control point position information) and information representing its posture (control point posture information). Alternatively, control point T1 can also be configured to correspond with other information. If the robot control device 30 specifies (determines) the control point position information and control point posture information, it determines the position and posture of control point T1. This position and posture are the position and posture of the robot coordinate system RC. The robot control device 30 specifies the control point position information and control point posture information. The robot control device 30 moves arm A, making the position of control point T1 consistent with the position represented by the specified control point position information, and making the posture of control point T1 consistent with the posture represented by the specified control posture information. That is, the robot control device 30 causes the robot 20 to move by specifying the control point position information and control point posture information.
[0080] In this example, the position of control point T1 is represented by the position of the origin of control point coordinate system TC1 in robot coordinate system RC. Furthermore, the pose of control point T1 is represented by the directions of each coordinate axis of control point coordinate system TC1 in robot coordinate system RC. Control point coordinate system TC1 is a three-dimensional local coordinate system established with control point T1 in a manner that moves together with control point T1. In addition, in this example, the position and pose of the first object O1 are represented by the position and pose of control point T1. Furthermore, in this example, the directions of each coordinate axis of control point coordinate system TC1 are consistent with the directions of each coordinate axis of the force detection coordinate system. However, the directions of each coordinate axis of control point coordinate system TC1 may also be configured to be different from the directions of each coordinate axis of the force detection coordinate system.
[0081] The robot control device 30 sets control point T1 based on control point setting information pre-input by the user. The control point setting information may include, for example, the position and posture of the end effector E's center of gravity, and its relative position and posture to control point T1. Furthermore, the control point setting information may also represent any position and posture corresponding to the end effector E, its relative position and posture to control point T1, any position and posture corresponding to the robot arm M, its relative position and posture to control point T1, or any position and posture corresponding to other parts of the robot 20, its relative position and posture to control point T1.
[0082] The following is an example illustrating the case where the position and posture of the robot 20 described above refer to the position and posture of control point T1. Furthermore, the position and posture of the robot 20 can also refer to the position and posture of other parts that move in conjunction with the robot 20's actions.
[0083] The robot control device 30 causes the robot 20 to move based on the teach pendant information. When causing the robot 20 to move based on the teach pendant information, the robot control device 30 sequentially designates one or more teach pendants represented by the teach pendant information based on the user-inputted motion program. The robot control device 30 designates the teach pendant position information corresponding to the designated teach pendant (i.e., the specified teach pendant) as the control point position information, and designates the teach pendant posture information corresponding to the specified teach pendant as the control point posture information. That is, the robot control device 30 designates the control point position information and control point posture information based on the specified teach pendant. Therefore, the robot control device 30 can make the control point T1 consistent with the specified teach pendant. Furthermore, in this example, "a teach pendant consistent with control point T1" means that the position and posture of the teach pendant are consistent with the position and posture of the control point T1.
[0084] In addition, when the action mode is any one of the first to third modes, the robot control device 30 causes the robot 20 to move based on the force detection information obtained from the force detection unit 21.
[0085] Specifically, the robot control device 30 acquires force detection information from the force detection unit 21. Furthermore, when the operation mode is the first mode, the robot control device 30, based on the acquired force detection information, changes the position and posture of the control point T1 to a position and posture that satisfies a first predetermined condition for the external force applied to the hand H. The robot control device 30 calculates the position and posture to achieve this state based on the force control parameters, dynamic motion equations, and the force detection information pre-inputted to the robot control device 30.
[0086] Furthermore, when the operation mode is the second mode, the robot control device 30, based on the force detection information obtained from the force detection unit 21, moves the control point T1 by a predetermined amount in a predetermined direction if the external force applied to the hand H meets the second predetermined condition. Thus, the robot control device 30 moves the hand H by a predetermined amount in a predetermined direction.
[0087] Furthermore, when the operation mode is in the third mode, the robot control device 30 moves the control point T1 by an amount corresponding to the external force in the direction where an external force is applied to the hand H, based on the force detection information obtained from the force detection unit 21. The robot control device 30 calculates the amount corresponding to the external force based on the force control parameters, dynamic motion equations, and the force detection information pre-input into the robot control device 30.
[0088] <Teaching points for teaching robot control devices>
[0089] The following describes the teaching points of the teaching device 50 teaching the robot control device 30.
[0090] As teaching points for the robot control device 30, the teaching device 50 teaches the final target teaching point and the standby teaching point. That is, the teaching device 50 generates teaching point information representing the final target teaching point and the standby teaching point, respectively. Moreover, the teaching device 50 outputs the generated teaching point information to the robot control device 30 and stores it.
[0091] In this example, the final target teaching point is the teaching point that coincides with the control point T1 when the robot 20 positions the object O1 within the configuration area RA defined on the upper surface of the worktable TB. In this example, the worktable TB is a table or similar platform. Furthermore, the worktable TB is positioned on the ground such that its upper surface is orthogonal to the Z-axis of the robot coordinate system RC. In addition, the worktable TB can be any object with a bottom surface, shelf, or other surface capable of supporting the object O1. Moreover, the upper surface of the worktable TB can also be configured not to be orthogonal to the Z-axis of the robot coordinate system RC. The worktable TB is an example of an object.
[0092] In this example, the standby teach point is the teach point where control point T1 is aligned with the placement area RA before the robot 20 places object O1 in the placement area RA, and where control point T1 is put into standby mode. The standby teach point is a teach point located away from the final target teach point in the positive direction of the Z-axis of the robot coordinate system RC, away from a predetermined first distance. The first distance is, for example, 10 cm. Furthermore, any distance other than the predetermined distance that prevents object O1 from contacting the worktable TB can be shorter or longer than 10 cm.
[0093] The teaching pendant 50 switches the motion mode of the robot control device 30 based on operations received from the user. The robot control device 30, whose motion mode has been switched by the teaching pendant 50, causes the robot 20 to perform actions corresponding to the current motion mode, and aligns the position and posture of control point T1 with the position and posture desired by the user. While aligning the position and posture of control point T1 with the user's desired position and posture, the teaching pendant 50 obtains information representing the current position and posture of control point T1 from the robot control device 30. Based on this information, the teaching pendant 50 generates teaching point information representing the teaching point. Thus, the teaching pendant 50 generates teaching point information representing standby teaching points and teaching point information representing the final target teaching point. Then, the teaching pendant 50 outputs and stores this generated teaching point information to the robot control device 30. That is, the teaching pendant 50 teaches the robot control device 30 this teaching point information.
[0094] The following details the processes: the teaching device 50 outputs various instructions to the robot control device 30; the robot control device 30 switches action modes based on action mode switching instructions; the robot control device 30 outputs instructions based on position and posture information to the teaching device 50 to indicate the position and posture of the current control point T1; the robot control device 30 causes the robot 20 to move when the action mode is the second mode; and the robot control device 30 causes the robot 20 to move when the action mode is the first mode.
[0095] <Hardware Composition of Robot Control Device and Teaching Device>
[0096] The following is for reference Figure 2 The hardware configuration of the robot control device 30 and the teaching device 50 will be described. Figure 2 This is a diagram illustrating an example of the hardware configuration of the robot control device 30 and the teaching device 50. Figure 2 This refers to the hardware configuration of the robot control device 30. Figure 2 The hardware configuration of the teaching device 50 (with more than 30 functional parts marked with reference numerals in the attached diagram) and the teaching device 50. Figure 2 The figure shows a simple overlapping representation of functional parts (with more than 50 labels).
[0097] The robot control device 30 includes, for example, a CPU (Central Processing Unit) 31, a storage unit 32, an input receiving unit 33, a communication unit 34, and a display unit 35. Furthermore, the robot control device 30 communicates with the robot 20 via the communication unit 34. These components are interconnected in a communicative manner via a bus.
[0098] The teaching pendant 50 includes, for example, a CPU 51, a storage unit 52, an input receiving unit 53, a communication unit 54, and a display unit 55. Furthermore, the teaching pendant 50 communicates with the robot control unit 30 via the communication unit 54. These components are interconnected in a communicative manner via a bus.
[0099] CPU 31 executes various programs stored in storage unit 32.
[0100] The storage unit 32 may include, for example, an HDD (Hard Disk Drive), an SSD (Solid State Drive), an EEPROM (Electrically Erasable Programmable Read-Only Memory), a ROM (Read-Only Memory), or RAM (Random Access Memory). Alternatively, the storage unit 32 may be an external storage device connected via a digital input / output interface such as USB, instead of a device built into the robot control device 30. The storage unit 32 stores various programs and teach point information, including various information, images, and action programs processed by the robot control device 30.
[0101] The input receiving unit 33 may be, for example, a touch panel integrally formed with the display unit 35. Alternatively, the input receiving unit 33 may be a keyboard, mouse, touchpad, or other input device.
[0102] The communication unit 34 is configured to include, for example, digital input / output interfaces such as USB, Ethernet (registered trademark) interfaces, etc.
[0103] The display unit 35 is, for example, a liquid crystal display panel or an organic EL (Electro Luminescence) display panel.
[0104] CPU 51 executes various programs stored in storage unit 52.
[0105] The storage unit 52 may include, for example, an HDD or SSD, EEPROM, ROM, RAM, etc. Alternatively, the storage unit 52 may replace the device built into the teaching pendant 50 with an external storage device connected via a digital input / output interface such as USB. The storage unit 52 stores various information or images, and various programs processed by the teaching pendant 50.
[0106] The input receiving unit 53 may be, for example, a touch panel integrally formed with the display unit 55. Alternatively, the input receiving unit 53 may be a keyboard, mouse, touchpad, or other input device.
[0107] The communication unit 54 is configured to include, for example, digital input / output interfaces such as USB, Ethernet (registered trademark) interfaces, etc.
[0108] The display unit 55 is, for example, a liquid crystal display panel or an organic EL display panel.
[0109] <Functional Composition of Robot Control Device and Teaching Pendant>
[0110] The following is for reference Figure 3 The functional composition of the robot control device 30 and the teaching device 50 is explained. Figure 3 This is a diagram illustrating an example of the functional configuration of the robot control device 30 and the teaching device 50.
[0111] The robot control device 30 includes a storage unit 32 and a control unit 36.
[0112] The control unit 36 controls the entire robot control device 30. The control unit 36 includes a force detection information acquisition unit 361, a storage control unit 363, an information reading unit 364, an action mode switching unit 365, an information output unit 366, and a robot control unit 367. These functional units of the control unit 36 are implemented, for example, by causing the CPU 31 to execute various programs stored in the storage unit 32. Furthermore, some or all of these functional units may be hardware functional units such as LSI (Large Scale Integration) or ASIC (Application Specific Integrated Circuit).
[0113] Force detection information acquisition unit 361 acquires force detection information from force detection unit 21.
[0114] The storage control unit 363 stores the teaching point information obtained from the teaching device 50 in the storage unit 32.
[0115] The information reading unit 364 reads various information from the storage unit 32.
[0116] The motion mode switching unit 365 switches the motion mode of the robot control device 30 to the mode represented by the motion mode switching instruction in the instruction obtained from the teaching device 50.
[0117] The information output unit 366 outputs an instruction based on the position and posture information obtained from the instruction obtained from the teaching device 50, and outputs information indicating the position and posture of the current control point T1 to the teaching device 50.
[0118] The robot control unit 367, based on the force detection information acquired by the force detection unit 361 from the force detection unit 21, causes the robot 20 to perform actions corresponding to the current action mode of the robot control device 30. Furthermore, the robot control unit 367 causes the robot 20 to move based on the teach point information stored in the storage unit 32 by the storage control unit 363.
[0119] The teaching device 50 includes a storage unit 52, an input receiving unit 53, a display unit 55, and a control unit 56.
[0120] The control unit 56 controls the entire teaching pendant 50. The control unit 56 includes a display control unit 561, an instruction information generation unit 563, and an instruction information output unit 565. These functional units of the control unit 56 are implemented, for example, by causing the CPU 51 to execute various programs stored in the storage unit 52. Furthermore, some or all of these functional units may be hardware functional units such as LSIs or ASICs.
[0121] The display control unit 561 generates various screens to be displayed on the display unit 55. The display control unit 561 causes the generated screens to be displayed on the display unit 55.
[0122] The instruction information generation unit 563 generates various instructions to be output to the robot control device 30 based on the operation received by the user from the display control unit 561 to the screen displayed on the display unit 55.
[0123] The instruction information output unit 565 outputs the instruction generated by the instruction information generation unit 563 to the robot control device 30.
[0124] <Processing of various instructions output from the teach pendant to the robot control unit>
[0125] The following is for reference Figure 4 The process of the teaching pendant 50 outputting various instructions to the robot control device 30 is explained. Figure 4 This is a flowchart illustrating an example of the process by which the teach pendant 50 outputs various instructions to the robot control device 30. Furthermore, in Figure 4 The flowchart shown illustrates the situation where the main screen for receiving various instructions from the user and outputting them to the robot control device 30 is displayed on the display unit 55 via the display control unit 561.
[0126] The instruction information generation unit 563 remains on standby until it receives a user operation on the main screen (step S110). When it is determined that a user operation has been received on the main screen (step S110 - Yes), the instruction information generation unit 563 determines whether the operation is an operation to switch the operation mode of the robot control device 30 (step S120).
[0127] For example, if the instruction information generation unit 563 receives information in step S110 indicating any one of the first to third modes, it determines that the operation is an operation to switch the operation mode of the robot control device 30. On the other hand, if the instruction information generation unit 563 receives information in step S110 indicating no one of the first to third modes, it determines that the operation is not an operation to switch the operation mode of the robot control device 30.
[0128] When it is determined that the operation received in step S110 is an operation to switch the operation mode of the robot control device 30 (step S120 - Yes), the instruction information generation unit 563 generates an operation mode switching instruction including information on the representation mode selected in step S110 (step S130). Furthermore, the instruction information output unit 565 outputs the operation mode switching instruction generated by the instruction information generation unit 563 in step S130 to the robot control device 30 (step S140).
[0129] On the other hand, if it is determined that the operation received in step S110 is not an operation to switch the operation mode of the robot control device 30 (step S120 - No), the instruction information generation unit 563 determines whether the operation received in step S110 is an operation to obtain the current position and posture of the robot 20 (in this example, the position and posture of the current control point T1) (step S160). If it is determined that the operation received in step S110 is an operation to obtain information indicating the position and posture of the current control point T1 (step S160 - Yes), the instruction information generation unit 563 generates a position and posture information output instruction (step S170). Furthermore, the instruction information generation unit 563 outputs the position and posture information output instruction generated in step S170 to the robot control device 30 (step S180).
[0130] On the other hand, if it is determined that the operation received in step S110 is not an operation to obtain the position and posture of the current control point T1 (step S160 - No), the instruction information generation unit 563 performs processing corresponding to the operation received in step S110 (step S190). This processing includes processing to generate an instruction other than an action mode switching instruction and a position and posture information output instruction, and processing to output the generated instruction to the robot control device 30.
[0131] After executing any one of steps S140, S180, and S190, the instruction information generation unit 563 determines whether the reception of user operations on the main screen has ended (step S150). For example, if a delete operation is received on the main screen, the instruction information generation unit 563 determines that the reception of user operations on the main screen has ended. On the other hand, if no delete operation is received on the main screen, the instruction information generation unit 563 determines that the reception of user operations on the main screen has not ended.
[0132] If it is determined that the reception of user actions on the main screen has not ended (step S150 - No), the instruction information generation unit 563 moves to step S110 and stands still until the user action is received on the main screen again. On the other hand, if it is determined that the reception of user actions on the main screen has ended (step S150 - Yes), the instruction information generation unit 563 ends the processing.
[0133] <Processing of robot control device to switch action modes based on action mode switching instructions>
[0134] The following is for reference Figure 5The process of switching motion modes based on motion mode switching instructions in the robot control device 30 is explained. Figure 5 This is a flowchart illustrating an example of the process by which the robot control device 30 switches motion modes based on motion mode switching instructions.
[0135] The motion mode switching unit 365 remains on standby until it receives a motion mode switching instruction from the teaching device 50 (step S210). If it is determined that a motion mode switching instruction has been received from the teaching device 50 (step S210 - Yes), the motion mode switching unit 365 switches the current motion mode of the robot control device 30 to the mode indicated by the motion mode switching instruction received from the teaching device 50 in step S210 (step S220).
[0136] Furthermore, the robot control device 30 can be configured such that, for example, the robot 20 has an action mode switch, and an action mode switching instruction output from the action mode switch is obtained by the user operating the action mode switch. In this case, the user can switch the action mode of the robot control device 30 by operating the action mode switch. The action mode switch is, for example, provided as part of the end effector E or the robotic arm M.
[0137] The robot control unit outputs instructions based on position and posture information, indicating the current position and posture of the control point, to the teaching device for processing.
[0138] The following is for reference Figure 6 The process by which the robot control device 30 outputs information indicating the position and posture of the current control point T1 to the teaching device 50 based on position and posture information is explained. Figure 6 This is a flowchart illustrating an example of the process by which the robot control device 30 outputs information indicating the position and posture of the current control point T1 to the teaching device 50 based on position and posture information.
[0139] The information output unit 366 remains on standby until it receives a position and posture information output instruction from the teaching device 50 (step S310). If the information output unit 366 determines that a position and posture information output instruction has been received from the teaching device 50 (step S310 – Yes), the robot control unit 367 calculates the current position and posture of the control point T1. Specifically, the robot control unit 367 obtains information representing the rotation angle of each actuator from the encoders equipped on each joint of the manipulator M. Furthermore, the robot control unit 367 calculates the current position and posture of the control point T1 based on the obtained rotation angle and forward kinematics. Then, the information output unit 366 outputs the position and posture information calculated by the robot control unit 367 to the teaching device 50 (step S320).
[0140] <Processing of robot actions by the robot control device when the action mode is in the second mode>
[0141] The following is for reference Figures 7-15 The process by which the robot control device 30 causes the robot 20 to move when the action mode is the second mode is explained. Figure 7 This is a flowchart illustrating an example of the process by which the robot control device 30 causes the robot 20 to move when the action mode is the second mode.
[0142] The robot control unit 367 remains on standby until it receives an action start instruction (step S405). An action start instruction is an instruction for the robot control device 30 to begin processing that causes the robot 20 to move, based on the current action mode. Here, the robot control unit 367 may be configured to receive the action start instruction from the user on the screen displayed on the display unit 35 via a display control unit (not shown), or it may be configured to receive the action start instruction output from the teaching pendant 50 based on the user's operation, or it may be configured to receive the action start instruction output from a switch or other device separate from the robot control device 30 and the teaching pendant 50.
[0143] Furthermore, the robot control unit 367 can be configured to receive an external force applied to the hand H that satisfies a predetermined action start condition as an action start instruction. The action start condition, for example, refers to a force applied to the hand H in a predetermined action start direction that is at least a predetermined first threshold. In this case, the action start direction is a direction pre-input by the user to the robot control unit 367, which is a translation direction for translating the hand H. The action start direction is preferably a direction different from the predetermined direction described below, but it can also be the same as the predetermined direction. The first threshold is a threshold pre-input by the user to the robot control unit 367, or it can be any threshold. Moreover, regarding the action start condition, in addition to the force applied to the hand H in the predetermined action start direction being at least a predetermined first threshold, the magnitude of the torque applied to the hand H in the predetermined action start direction can also be at least a predetermined second threshold. In this case, the action start direction is a direction pre-input by the user to the robot control unit 367, which is a rotation direction for rotating the hand H. The second threshold is a threshold pre-input by the user to the robot control unit 367, or it can be any threshold. Furthermore, the start condition for an action can be replaced by other conditions.
[0144] In step S405, if it is determined that an action start instruction has been received (step S405 - Yes), the robot control unit 367 determines whether an external force satisfying the second predetermined condition has been applied to the hand H based on the force detection information obtained by the force detection information acquisition unit 361 from the force detection unit 21 (step S410).
[0145] If, in step S410, it is determined that an external force satisfying the second specified condition is applied to the hand H (step S410 - Yes), the robot control unit 367 moves the control point T1 by a specified amount in a specified direction (step S420).
[0146] The specified direction is the direction pre-input by the user to the robot control unit 367. The specified amount is the amount of movement pre-input by the user to the robot control unit 367. When the specified direction is a translation direction that causes the control point T1 to translate, the specified amount is the translational movement of the control point T1, for example, 1 millimeter. Furthermore, in this case, the specified amount can be a translational movement shorter than 1 millimeter or a translational movement longer than 1 millimeter. When the specified direction is a rotation direction that causes the control point T1 to rotate, the specified amount is the rotation angle of the control point T1, for example, 1 degree. Furthermore, in this case, the specified amount can be a rotation angle smaller than 1 degree or a rotation angle larger than 1 degree, in addition to being 1 degree. Thus, the specified direction can be either the translational direction or the rotational direction, or both.
[0147] After moving the control point T1 a predetermined amount in a predetermined direction in step S420, the robot control unit 367 determines whether an action end instruction has been received (step S430). An action end instruction is an instruction for the robot control device 30 to end the processing that causes the robot 20 to move. Here, the robot control unit 367 may be configured to receive the action end instruction from the user on the screen displayed on the display unit 35 via a display control unit (not shown), or it may be configured to receive the action end instruction output from the teaching pendant 50 based on the user's received operation, or it may be configured to receive the action end instruction output from a switch or other device separate from the robot control device 30 and the teaching pendant 50.
[0148] Furthermore, the robot control device 30 may be configured to receive an external force applied to the hand H that satisfies a predetermined action termination condition as an action termination indication. The action termination condition, for example, refers to a force applied to the hand H in a predetermined action termination direction that is at least a predetermined third threshold. In this case, the action termination direction is a direction pre-input by the user to the robot control unit 367, which is a translation direction that causes the hand H to translate. The action termination direction is preferably a direction different from the predetermined direction, but it can also be the same as the predetermined direction. The third threshold is a threshold pre-input by the user to the robot control unit 367, or it can be any threshold. Moreover, for the action termination condition, in addition to the force applied to the hand H in the predetermined action termination direction being at least a predetermined third threshold, the torque applied to the hand H in the predetermined action termination direction may also be at least a predetermined fourth threshold. In this case, the action termination direction is a direction pre-input by the user to the robot control unit 367, which is a rotation direction that causes the hand H to rotate. The fourth threshold is a threshold pre-input by the user to the robot control unit 367, or it can be any threshold. Furthermore, the action termination condition can be replaced by other conditions.
[0149] If it is determined in step S430 that no action end instruction has been received (step S430 - No), the robot control unit 367 moves to step S410 and waits until the second specified condition is met again. On the other hand, if it is determined that an action end instruction has been received (step S430 - Yes), the robot control unit 367 ends the process.
[0150] On the other hand, if in step S410 it is determined that the external force satisfying the second specified condition has not been applied to the hand H (step S410 - No), the robot control unit 367 moves to step S430 to determine whether an action end instruction has been received.
[0151] Thus, when the robot control device 30 moves the robot 20 in the second mode, it moves the hand H by a predetermined amount in a predetermined direction based on the external force applied to the hand H. Therefore, in the second mode, the robot control unit 367 can keep the amount of movement of the hand H caused by the external force applied to it by the user constant. As a result, the robot control device 30 can, for example, pre-input the desired predetermined amount by the user to the robot control unit 367, thereby enabling the position and posture of the control point T1 to be changed to the desired position and posture with high precision.
[0152] Furthermore, even if the user continuously applies an external force satisfying the second predetermined condition to hand H in step S410, the robot control unit 367 in this example only executes the processing of step S420 once. That is, even if the user continuously applies an external force satisfying the second predetermined condition to hand H in step S410, the robot control unit 367 will not move the control point T1 in the predetermined direction by a predetermined amount. Since the user does not move the control point T1 in the predetermined direction by a predetermined amount, the user needs to repeatedly perform the operation from applying an external force satisfying the second predetermined condition to hand H and then releasing the applied external force to hand H a predetermined number of times.
[0153] In the second mode, the robot 20 is made to move. After the user adjusts the position and posture of the hand H, the robot control device 30... Figure 6 The flowchart shown outputs information representing the position and posture of the current control point T1 to the teaching pendant 50. The teaching pendant 50 generates teaching point information based on this information obtained from the robot control device 30. Furthermore, the teaching pendant 50 outputs the generated teaching point information to the robot control device 30. The robot control device 30 stores the teaching point information obtained from the teaching pendant 50. For example, the robot control device 30 stores teaching point information representing the standby teaching point and the final target teaching point obtained from the teaching pendant 50, respectively. Therefore, in the second mode, the robot control device 30 can control the robot 20 based on the position and posture of the stored control point T1 after moving the hand H a predetermined amount in a predetermined direction.
[0154] Here, we will explain the second specified condition mentioned above. The second specified condition, for example, refers to a force applied to the hand H in the movement execution direction that is at least a fifth threshold. In this case, the movement execution direction is the direction pre-input by the user to the robot control unit 367, which is the translation direction that causes the hand H to translate. The fifth threshold is a threshold pre-input by the user to the robot control unit 367, and can also be any threshold. Figures 8-10 The two symbols represent specific examples of the movement execution direction under the second specified condition in this case and the specified direction mentioned above.
[0155] Figure 8 This diagram illustrates a specific example 1 of the movement execution direction and the specified direction under the second specified condition. This specific example 1 is an example where both the movement execution direction and the specified direction are translational directions, but the movement execution direction and the specified direction are different from each other. Figure 8 The image shows a side view of the hand H when viewed from the negative direction of the X-axis of the control point coordinate system TC1 towards the positive direction.
[0156] exist Figure 8In this context, the direction of movement is indicated by the arrow A1. Figure 8 In the example shown, the direction of movement execution is the positive direction of the Y-axis of the control point coordinate system TC1. That is, when a force is applied to the hand H as an external force to translate it in this positive direction, and the magnitude of this force is greater than or equal to a fifth threshold, the robot control unit 367 moves the control point T1 (i.e., the hand H) by a predetermined amount in a predetermined direction. Furthermore, the direction of movement execution can be any translation direction other than the positive direction of the Y-axis in the coordinate system TC1. This other translation direction can be a translation direction along any coordinate axis of the control point coordinate system TC1, or a translation direction not along any coordinate axis of the control point coordinate system TC1.
[0157] In addition, Figure 8 In this context, the direction is indicated by the arrow pointing to direction A2. Figure 8 In the example shown, the specified direction is the negative direction of the Z-axis of the control point coordinate system TC1. That is, when a force is applied to the hand H as an external force to translate it in the positive direction of the Y-axis of the control point coordinate system TC1, and the magnitude of this force is greater than or equal to a fifth threshold, the robot control unit 367 moves the control point T1 (i.e., the hand H) by a specified amount in the negative direction of the Z-axis of the control point coordinate system TC1. In this case, the specified amount is the amount of translation of the control point T1. Furthermore, the specified direction can be any translation direction other than the negative direction of the Z-axis in the coordinate system TC1. This other translation direction can be a translation direction along any coordinate axis of the control point coordinate system TC1, or a translation direction not along any coordinate axis of the control point coordinate system TC1.
[0158] Figure 9 This diagram illustrates a specific example 2 of the movement execution direction and the specified direction under the second specified condition. This specific example 2 is an example where both the movement execution direction and the specified direction are translational directions, and the movement execution direction and the specified direction are the same. Figure 9 The image shows a side view of the hand H when viewed from the negative direction of the X-axis of the control point coordinate system TC1 towards the positive direction.
[0159] exist Figure 9 In this context, the direction of movement is indicated by the arrow A3. Figure 9In the example shown, the direction of movement execution is the negative direction of the Z-axis of the control point coordinate system TC1. That is, when a force is applied to the hand H as an external force to translate it in this negative direction, and the magnitude of this force is greater than or equal to the fifth threshold, the robot control unit 367 moves the control point T1 (i.e., the hand H) by a predetermined amount in a predetermined direction. Furthermore, the direction of movement execution can be any translation direction other than the negative direction of the Z-axis in the coordinate system TC1. This other direction can be a translation direction along any coordinate axis of the control point coordinate system TC1, or a translation direction not along any coordinate axis of the control point coordinate system TC1.
[0160] In addition, Figure 9 In this context, the direction is indicated by the arrow on A4. Figure 9 In the example shown, the specified direction is the same as the direction of movement execution, which is the negative direction of the Z-axis of the control point coordinate system TC1. That is, when a force is applied to the hand H as an external force to translate it in the negative direction of the Z-axis of the control point coordinate system TC1, and the magnitude of this force is greater than or equal to a fifth threshold, the robot control unit 367 moves the control point T1 (i.e., the hand H) in this negative direction by a specified amount. In this case, the specified amount is the amount of translation of the control point T1. Furthermore, the specified direction can be any translation direction other than the negative direction of the Z-axis in the coordinate system TC1. This other translation direction can be a translation direction along any coordinate axis of the control point coordinate system TC1, or a translation direction not along any coordinate axis of the control point coordinate system TC1.
[0161] Figure 10 This diagram illustrates a specific example 3 of the movement execution direction and the specified direction under the second specified condition. This specific example 3 is an example where the movement execution direction is translation and the specified direction is rotation. Figure 10 The image shows a side view of the hand H when viewed from the negative X-axis direction of the control point coordinate system TC1 towards the positive direction.
[0162] exist Figure 10 In this context, the direction of movement is indicated by the arrow A5. Figure 10In the example shown, the direction of movement execution is the positive direction of the Y-axis of the control point coordinate system TC1. That is, when a force is applied to the hand H as an external force to translate it in this positive direction, and the magnitude of this force is greater than or equal to a fifth threshold, the robot control unit 367 moves the control point T1 (i.e., the hand H) by a predetermined amount in a predetermined direction. Furthermore, the direction of movement execution can be any translation direction other than the positive direction of the Y-axis in the coordinate system TC1. This other translation direction can be a translation direction along any coordinate axis of the control point coordinate system TC1, or a translation direction not along any coordinate axis of the control point coordinate system TC1.
[0163] In addition, Figure 10 In this context, the direction is indicated by the arrow pointing to direction A6. Figure 10 In the example shown, when viewing the hand H from the negative direction of the X-axis of the control point coordinate system TC1 towards the positive direction, the specified direction is the rotational direction that causes the hand H to rotate clockwise around the X-axis. That is, when a force is applied to the hand H as an external force that translates it in the positive direction of the Y-axis of the control point coordinate system TC1, and the magnitude of this force is greater than or equal to a fifth threshold, the robot control unit 367 moves the control point T1 (i.e., the hand H) by a specified amount in this rotational direction. In this case, the specified amount is the rotational amount (rotation angle) that causes the control point T1 to rotate. Furthermore, the specified direction can also be any other rotational direction instead of this one. This other rotational direction can be a rotational direction around any coordinate axis of the control point coordinate system TC1, or it can be a rotational direction around an axis different from any coordinate axis of the control point coordinate system TC1.
[0164] Furthermore, the second specified condition can be configured, for example, that the magnitude of the torque applied to the hand H in the movement execution direction is a sixth threshold or higher. In this case, the movement execution direction is the direction pre-input by the user to the robot control unit 367, which is the rotation direction that rotates the hand H. The sixth threshold is a threshold pre-input by the user to the robot control unit 367, and can also be any threshold. Figures 11-13 The two symbols represent specific examples of the movement execution direction under the second specified condition in this case and the specified direction mentioned above.
[0165] Figure 11 This diagram illustrates a specific example 4 of the movement execution direction and the specified direction under the second specified condition. This specific example 4 is an example where both the movement execution direction and the specified direction are rotational directions, and the movement execution direction and the specified direction are the same direction. Figure 11 The image shows a side view of the hand H when viewed from the negative direction of the X-axis of the control point coordinate system TC1 towards the positive direction.
[0166] exist Figure 11 In this context, the direction of movement is indicated by the arrow A7. Figure 11 In the example shown, when viewing the hand H from the negative direction of the X-axis of the control point coordinate system TC1 towards the positive direction, the movement execution direction is the rotation direction that causes the hand H to rotate clockwise around the X-axis. That is, when a torque is applied to the hand H as an external force to rotate it in this rotation direction, and the magnitude of this torque is greater than or equal to a sixth threshold, the robot control unit 367 moves the control point T1 (i.e., the hand H) by a predetermined amount in a predetermined direction. Furthermore, the movement execution direction can also be another rotation direction that causes the hand H to rotate, instead of this rotation direction. This other rotation direction can be a rotation direction about any coordinate axis of the control point coordinate system TC1, or it can be a rotation direction about an axis different from any coordinate axis of the control point coordinate system TC1.
[0167] In addition, Figure 11 In this context, the direction is indicated by the arrow A7. Figure 11 In the example shown, when viewing the hand H from the negative direction of the X-axis of the control point coordinate system TC1 towards the positive direction, the specified direction is the rotation direction that causes the hand H to rotate clockwise around the X-axis. That is, when a torque is applied to the hand H as an external force to rotate it in this rotation direction, and the magnitude of this torque is greater than or equal to a sixth threshold, the robot control unit 367 moves the control point T1 (i.e., the hand H) by a specified amount in this rotation direction. In this case, the specified amount is the rotation amount (rotation angle) that causes the control point T1 to rotate. Furthermore, the specified direction can also be another rotation direction that causes the control point T1 to rotate, instead of the specified direction. This other rotation direction can be a rotation direction about any coordinate axis of the control point coordinate system TC1, or it can be a rotation direction about an axis different from any coordinate axis of the control point coordinate system TC1.
[0168] Figure 12 This diagram illustrates a specific example 5 of the movement execution direction and the specified direction under the second specified condition. This specific example 5 is an example where both the movement execution direction and the specified direction are rotational directions, and the movement execution direction and the specified direction are mutually different. Figure 12 The image shows a side view of the hand H when viewed from the negative direction of the X-axis of the control point coordinate system TC1 towards the positive direction.
[0169] exist Figure 12 In this context, the direction of movement is indicated by the arrow A9. Figure 12In the example shown, when viewing the hand H from the negative direction of the X-axis of the control point coordinate system TC1 towards the positive direction, the movement execution direction is the rotation direction that causes the hand H to rotate clockwise around the X-axis. That is, when a torque is applied to the hand H as an external force to rotate it in this rotation direction, and the magnitude of this torque is greater than or equal to a sixth threshold, the robot control unit 367 moves the control point T1 (i.e., the hand H) by a predetermined amount in a predetermined direction. Furthermore, the movement execution direction can also be another rotation direction that causes the hand H to rotate, instead of this rotation direction. This other rotation direction can be a rotation direction about any coordinate axis of the control point coordinate system TC1, or it can be a rotation direction about an axis different from any coordinate axis of the control point coordinate system TC1.
[0170] In addition, Figure 12 In this context, the direction is indicated by the arrow pointing to direction A10. Figure 12 In the example shown, when viewing hand H from the positive direction of the Y-axis of control point coordinate system TC1 towards the negative direction, the specified direction is the rotation direction that causes hand H to rotate clockwise around the Y-axis. That is, when viewing hand H from the negative direction of the X-axis of control point coordinate system TC1 towards the positive direction, if a torque is applied to hand H as an external force in the rotation direction that causes hand H to rotate clockwise around the X-axis, and the magnitude of this torque is greater than or equal to a sixth threshold, the robot control unit 367 moves control point T1 (i.e., hand H) by a specified amount in the rotation direction that causes hand H to rotate clockwise around the Y-axis when viewed from the positive direction of the Y-axis of control point coordinate system TC1 towards the negative direction. In this case, the specified amount is the rotation amount (rotation angle) that causes control point T1 to rotate. Furthermore, the specified direction may also be any other rotation direction that causes control point T1 to rotate, instead of the specified direction. The other rotation direction can be a rotation direction about any coordinate axis of the control point coordinate system TC1, or a rotation direction about an axis different from any coordinate axis of the control point coordinate system TC1.
[0171] Figure 13 This diagram illustrates a specific example 6 of the movement execution direction and the specified direction under the second specified condition. This specific example 6 is an example where the movement execution direction is the rotational direction and the specified direction is the translational direction. Figure 13 The image shows a side view of the hand H when viewed from the negative direction of the X-axis of the control point coordinate system TC1 towards the positive direction.
[0172] exist Figure 13 In this context, the direction of movement is indicated by the arrow A11. Figure 13In the example shown, when viewing the hand H from the negative direction of the X-axis of the control point coordinate system TC1 towards the positive direction, the movement execution direction is the rotation direction that causes the hand H to rotate clockwise around the X-axis. That is, when a torque is applied to the hand H as an external force to rotate it in this rotation direction, and the magnitude of this torque is greater than or equal to a sixth threshold, the robot control unit 367 moves the control point T1 (i.e., the hand H) by a predetermined amount in a predetermined direction. Furthermore, the movement execution direction can also be another rotation direction that causes the hand H to rotate, instead of this rotation direction. This other rotation direction can be a rotation direction about any coordinate axis of the control point coordinate system TC1, or it can be a rotation direction about an axis different from any coordinate axis of the control point coordinate system TC1.
[0173] In addition, Figure 13 In this context, the direction is indicated by the arrow pointing to direction A12. Figure 13 In the example shown, the defined direction is the negative direction of the Z-axis of the control point coordinate system TC1. That is, when viewing the hand H from the negative X-axis of the control point coordinate system TC1 towards the positive direction, if a torque is applied to the hand H as an external force in the direction of rotation that causes the hand H to rotate clockwise around the X-axis, and the magnitude of this torque is greater than or equal to a sixth threshold, the robot control unit 367 moves the control point T1 (i.e., the hand H) by a defined amount in the negative Z-axis direction of the control point coordinate system TC1. In this case, the defined amount is the amount of translation of the control point T1. Furthermore, the defined direction can be any translation direction other than the negative Z-axis of the coordinate system TC1. This other translation direction can be a translation direction along any coordinate axis of the control point coordinate system TC1, or a translation direction not along any coordinate axis of the control point coordinate system TC1.
[0174] Furthermore, the robot control unit 367 can also be configured such that, in the second mode, for example, if the magnitude of the force applied to the hand H in the direction of movement is a fifth threshold or higher, the control point T1 is moved by a predetermined amount in a predetermined direction; and if the force is a seventh threshold or higher (a threshold greater than the fifth threshold), the control point T1 is moved by an amount different from the predetermined amount, i.e., a second predetermined direction, i.e., a second predetermined amount. That is, the robot control unit 367 can also be configured such that, based on the difference in the magnitude of the stage (discreteness) of the force applied to the hand H, the control point T1 is moved by an amount corresponding to the difference in the direction corresponding to that difference.
[0175] Furthermore, the robot control unit 367 can be configured such that, when the external force applied to the hand H satisfies the second predetermined condition, the rotation angle of the actuator of the predetermined joint changes (moves) by a predetermined amount in a predetermined direction. When the rotation angle of the actuator changes by a predetermined amount in the predetermined direction, the predetermined direction is the rotation direction of the actuator, and the predetermined amount is the rotation angle of the actuator.
[0176] Furthermore, the robot control unit 367 can be configured such that, when the force detection unit 21 is a torque sensor provided for each joint of the manipulator M, the rotation angle of the actuator or the control point T1 of a specified joint is moved by a specified amount in a specified direction based on the external force applied to any one of the joints. When the rotation angle of the actuator is moved by a specified amount in the specified direction, the specified direction is the rotation direction of the actuator, and the specified amount is the rotation angle of the actuator.
[0177] Alternatively, the robot control unit 367 may be configured such that, in step S410, if the state in which the external force applied to the hand H satisfies the second predetermined condition continues for a predetermined time or longer, it is determined that the external force applied to the hand H satisfies the second predetermined condition. Or it may be configured such that, if the state in which the external force applied to the hand H satisfies the second predetermined condition is realized at least once, it is determined that the external force applied to the hand H satisfies the second predetermined condition.
[0178] <A variation of the robot control device's action processing when the action mode is the second mode>
[0179] The direction specified above can also be the direction corresponding to a portion of hand H. This portion refers to the part to which an external force is applied. That is, based on the external force applied to hand H, robot control unit 367 moves hand H by a predetermined amount in the direction corresponding to the portion of hand H to which the external force is applied. Thus, robot control unit 367 allows the user to easily change the direction in which hand H is moved.
[0180] Here, refer to Figure 14 as well as Figure 15 Specific examples of the movement execution direction and the specified direction will be explained when the specified direction is the direction corresponding to the part of hand H. Furthermore, in the specific examples explained below, the second specified condition will be explained as an example when the magnitude of the force applied to hand H in the movement execution direction is a fifth threshold or higher. Furthermore, similar to the specific examples explained above, the second specified condition can also be that the magnitude of the torque applied to hand H in the movement execution direction is a sixth threshold or higher.
[0181] Figure 14This diagram illustrates a specific example 1 of the movement execution direction and the specified direction when the specified direction corresponds to the part of hand H. This specific example 1 illustrates the case where an external force is applied to the upper part of the part of hand H in the positive direction from the Y-axis of control point coordinate system TC1 towards the Z-axis of control point coordinate system TC1. Figure 14 The image shows a side view of the hand H when viewed from the negative X-axis direction of the control point coordinate system TC1 towards the positive direction.
[0182] exist Figure 14 In the text, the direction of movement is indicated by the arrow A13. Furthermore, in... Figure 14 In the diagram, the arrow indicates the part where force F1 is applied to the hand H. Figure 14 In the example shown, the direction of movement execution is the positive direction of the Y-axis of the control point coordinate system TC1. Furthermore, in this example, an external force is applied to the upper part of the hand H. That is, a force F1, acting as an external force, is applied to the hand H to translate in this positive direction. If the magnitude of this force is greater than or equal to a fifth threshold, the robot control unit 367 moves the control point T1 (i.e., the hand H) by a predetermined amount in a predetermined direction corresponding to the upper part of the hand H. Alternatively, the direction of movement execution can replace the positive direction of the Y-axis in the coordinate system TC1, and can be any other translation direction that translates the hand H. This other translation direction can be a translation direction along any coordinate axis of the control point coordinate system TC1, or a translation direction not along any coordinate axis of the control point coordinate system TC1.
[0183] In addition, Figure 14 In this context, the direction is indicated by the arrow pointing to direction A14. Figure 14 In the example shown, the specified direction corresponding to the upper part of the hand H is the positive direction of the Z-axis of the control point coordinate system TC1. That is, when a force is applied to the upper part of the hand H as an external force to translate the hand H in the positive direction of the Y-axis of the control point coordinate system TC1, and the magnitude of this force is greater than or equal to a fifth threshold, the robot control unit 367 moves the control point T1 (i.e., the hand H) by a specified amount in the positive direction of the Z-axis of the control point coordinate system TC1. In this case, the specified amount is the amount of translation of the control point T1. Furthermore, the specified direction can be any translation direction other than the positive direction of the Z-axis in the coordinate system TC1. This other translation direction can be a translation direction along any coordinate axis of the control point coordinate system TC1, or a translation direction not along any coordinate axis of the control point coordinate system TC1. Moreover, the specified direction can also be a rotational direction instead of a translation direction.
[0184] Figure 15This diagram illustrates a specific example 2 of the movement execution direction and the specified direction when the specified direction corresponds to the direction of the hand part H. This specific example 2 is an example where an external force is applied to the lower part of the hand part H, in the negative direction from the Y-axis of control point coordinate system TC1 towards the Z-axis of control point coordinate system TC1. Figure 15 The image shows a side view of the hand H when viewed from the negative direction of the X-axis of the control point coordinate system TC1 towards the positive direction.
[0185] exist Figure 15 In this context, the direction of movement is indicated by the arrow A15. Furthermore, in... Figure 15 The arrow indicates the part of the hand (H) where force F2 is applied. Figure 15 In the example shown, the direction of movement execution is the positive direction of the Y-axis of the control point coordinate system TC1. Furthermore, in this example, an external force is applied to the lower part of the hand H. That is, when a force F2, acting as an external force, is applied to the hand H to translate in this positive direction, and the magnitude of this force is greater than or equal to a fifth threshold, the robot control unit 367 moves the control point T1 (i.e., the hand H) by a predetermined amount in a predetermined direction corresponding to the lower part of the hand H. In addition to being the positive direction of the Y-axis in the coordinate system TC1, the direction of movement execution can also be any other translation direction that translates the hand H. This other translation direction can be a translation direction along any coordinate axis of the control point coordinate system TC1, or a translation direction not along any coordinate axis of the control point coordinate system TC1.
[0186] In addition, Figure 15 In this context, the direction is indicated by the arrow pointing to direction A16. Figure 15 In the example shown, the specified direction corresponding to the lower part of the hand H is the negative direction of the Z-axis of the control point coordinate system TC1. That is, when a force is applied to the lower part of the hand H as an external force to translate the hand H in the positive direction of the Y-axis of the control point coordinate system TC1, and the magnitude of this force is greater than or equal to a fifth threshold, the robot control unit 367 moves the control point T1 (i.e., the hand H) by a specified amount in the negative direction of the Z-axis of the control point coordinate system TC1. In this case, the specified amount is the amount of translation of the control point T1. Furthermore, the specified direction can be any translation direction other than the negative direction of the Z-axis in the coordinate system TC1. This other translation direction can be a translation direction along any coordinate axis of the control point coordinate system TC1, or a translation direction not along any coordinate axis of the control point coordinate system TC1. Moreover, the specified direction can also be a rotational direction instead of a translation direction.
[0187] In this way, the robot control unit 367 moves the hand H by a predetermined amount in the direction corresponding to the part of the hand H to which the external force is applied, based on the external force applied to the hand H. Therefore, the robot control unit 367 allows the user to easily change the direction in which the hand H is moved.
[0188] <Processing of robot actions by the robot control device when the action mode is in the first mode>
[0189] The following is for reference Figures 16-18 The process by which the robot control device 30 causes the robot 20 to move when the action mode is the first mode is explained.
[0190] Figure 16 This is a flowchart illustrating an example of the process by which the robot control device 30 causes the robot 20 to move when the action mode is in the first mode. Furthermore, in Figure 16 The flowchart shown illustrates the case where control point T1 is already aligned with the standby teach point. For example, in the second or third mode described above, the robot control device 30 can align control point T1 with the standby teach point based on the external force applied by the user to hand H. Furthermore, the flowchart also illustrates the case where the robot control device 30's operating mode has been switched to the first mode.
[0191] The robot control unit 367 remains on standby until it receives an action start instruction (step S505). Here, the robot control unit 367 may be configured to receive the action start instruction from the user in the screen displayed on the display unit 35 via a display control unit (not shown), or it may be configured to receive the action start instruction output from the teaching pendant 50 based on an operation received from the user, or it may be configured to receive the action start instruction output from a switch or similar device separate from the robot control unit 30 and the teaching pendant 50. Furthermore, the robot control unit 367 may be configured to receive an external force applied to the hand H that meets predetermined action start conditions as an action start instruction.
[0192] In step S505, if it is determined that an action start instruction has been received (step S505 - Yes), the robot control unit 367, based on the force detection information obtained by the force detection information acquisition unit 361 from the force detection unit 21, causes the position and posture of the control point T1 to change to a position and posture that satisfies the first predetermined condition when the external force applied to the hand H is satisfied (step S510). Specifically, the robot control unit 367 calculates the position and posture to achieve this state based on the force control parameters, dynamic motion equations, and the force detection information pre-input to the robot control unit 367. Furthermore, the robot control unit 367 causes the position and posture of the control point T1 to change towards the calculated position and posture.
[0193] In this example, the first prescribing condition refers to the three conditions 1) to 3) shown below. Furthermore, the first prescribing condition can be a configuration that satisfies some or all of the three conditions, or it can be a configuration that satisfies other conditions besides the three conditions.
[0194] 1) The magnitude of the force applied to the hand H in the positive direction of the Z-axis of the control point coordinate system TC1 is above the specified value.
[0195] 2) The magnitude of the force applied to the hand H in the X-axis and Y-axis directions of the control point coordinate system TC1 is 0 [N].
[0196] 3) The magnitude of the torque applied to the hand H is 0 [N·m] for each coordinate axis of the control point coordinate system TC1.
[0197] Furthermore, condition 1) above can be that the magnitude of the force applied to the hand H in the negative direction of the Z-axis of the control point coordinate system TC1 is greater than or equal to a predetermined value; the magnitude of the force applied to the hand H in the positive or negative direction of the X-axis of the control point coordinate system TC1 is greater than or equal to a predetermined value; or the magnitude of the force applied to the hand H in the positive or negative direction of the Y-axis of the control point coordinate system TC1 is greater than or equal to a predetermined value. In this example, the positive direction of the Z-axis of the control point coordinate system TC1 is the translation direction, and is an example of the first direction. Furthermore, the rotation directions about each coordinate axis of the control point coordinate system TC1 are an example of the second direction.
[0198] Under the first specified condition that the three conditions 1) to 3) above are satisfied respectively, the robot control unit 367 maintains the posture of control point T1 and moves the position of control point T1 in the positive direction of the Z-axis of the control point coordinate system TC1. Here, refer to Figure 17 The processing of step S510 will be explained. Figure 17 This is an example diagram showing the position of control point T1 in step S510 and the positional relationship between the hand H and the worktable TB before the posture change begins. Figure 17 The image shows a side view of the hand H when viewed from the negative X-axis direction of the control point coordinate system TC1 towards the positive direction. Figure 17 As shown, at this moment, control point T1 coincides with standby teaching point P1. Furthermore, in Figure 17 In the side view, since the extent of the configuration area RA is difficult to discern, the configuration area RA is represented by a thick line.
[0199] exist Figure 17In the example shown, no external force is applied to hand H at this moment. That is, since the torque applied to hand H at this moment already satisfies condition 3) above, robot control unit 367 maintains the posture of control point T1 in step S510. Furthermore, since the forces applied to hand H at this moment along the X and Y axes of the control point coordinate system TC1 already satisfy condition 2) above, robot control unit 367 maintains the X and Y axis positions of control point T1 in step S510. Moreover, since the forces applied to hand H at this moment along the positive Z-axis of the control point coordinate system TC1 do not satisfy condition 1) above, robot control unit 367 causes hand H to begin moving in the opposite direction to this positive direction in step S510, thereby applying a force in the positive direction to hand H. Figure 17 In the diagram, the positive direction is indicated by the arrow A17.
[0200] After the position and posture of control point T1 are changed in step S510, the robot control unit 367 continues to move control point T1 as started in step S510 based on the force detection information obtained by the force detection information acquisition unit 361 from the force detection unit 21 until the first predetermined condition is met (step S520). If it is determined that the first predetermined condition is met (step S520 - Yes), the robot control unit 367 determines that the position and posture of control point T1 are consistent with the position and posture desired by the user, and stops the change of position and posture of control point T1 (step S530).
[0201] Here, refer to Figure 18 The processing of step S530 will be explained. Figure 18 This is a diagram illustrating an example of the positional relationship between the hand H and the worktable TB before the change in posture and the position of the stop control point T1 in step S530. Figure 18 The image shows a side view of the hand H when viewed from the negative X-axis direction towards the positive direction in the control point coordinate system TC1. Furthermore, in... Figure 18 In the side view, because the extent of the configuration area RA is difficult to discern, RA is represented by a thick line. Figure 18 In the example shown, the hand H is subjected to a vertical force from the worktable TB at that moment. If the vertical resistance exceeds a predetermined value due to the change in the position and posture of the control point T1 that started in step S510, the robot control unit 367 stops the change in the position and posture of the control point T1 because the external force applied to the hand H at that moment meets the first predetermined condition.
[0202] Thus, when the robot control unit 30 moves the robot 20 in the first mode, the position and posture of the control point T1 are changed to a position and posture that satisfies the first predetermined condition for the external force applied to the hand H. Therefore, in the first mode, the robot control unit 367 can, without requiring the user to apply external force to the hand H, change the position and posture of the robot 20 with high precision to the desired position and posture corresponding to the worktable TB. As a result, for example, when the user's desired condition is input to the robot control unit 367 as the first predetermined condition, the robot control unit 30 can adjust the position and posture of the hand H with good accuracy.
[0203] In the first mode, after the user adjusts the position and posture of their hand H to make the robot 20 move, the robot control device 30... Figure 6 The flowchart shown illustrates the process of outputting information representing the position and orientation of the current control point T1 to the teaching pendant 50. The teaching pendant 50 generates teaching point information based on this information obtained from the robot control device 30. Furthermore, the teaching pendant 50 outputs this generated teaching point information to the robot control device 30. The robot control device 30 stores the teaching point information obtained from the teaching pendant 50. For example, the robot control device 30 stores teaching point information representing the final target teaching point obtained from the teaching pendant 50. Thus, in the first mode, the robot control device 30 can cause the robot 20 to move based on the position and orientation of the stored control point T1, provided that a first predetermined condition is met.
[0204] <Fine-tuning made from the first and second modes>
[0205] As explained above, when the robot 20 is moved in both the first and second modes, the robot control device 30 can accurately adjust the position and posture of the hand H. That is, the robot control device 30 can make fine adjustments to the position and posture of the hand H.
[0206] Such fine-tuning is performed, for example, in direct teaching. In direct teaching, the robot control device 30 moves the robot 20 through a third mode. Thus, the user changes the position and posture of hand H by applying external force to hand H. However, it is difficult for the user to apply the desired external force to hand H with good precision. Therefore, after the user moves the robot 20 based on the third mode using the robot control device 30 to bring the position and posture of hand H closer to the user's desired position and posture, the user then moves the robot 20 using either or both of the first and second modes. That is, in storing the position and posture of hand H in direct teaching, the robot control device 30 teaches using either or both of the first mode that moves the robot 20 and the second mode that moves the robot 20 based on the external force applied to hand H until the external force applied to hand H meets a first predetermined condition. Thus, the robot control device 30 can make the position and posture of hand H match the user's desired position and posture with good precision.
[0207] In addition, such fine-tuning can also be performed instead of direct teaching in the following ways: online teaching, in which the robot control device 30 moves the robot 20 by the user operating the micro-keys and the robot control device 30 stores the position and posture of the hand H; and teaching based on methods developed in the future.
[0208] As described above, when storing the position and posture of the robot (in this example, robot 20), the control device 25 switches between a first mode that moves the robot until the external force applied to the hand (in this example, hand H) meets a predetermined condition (in this example, the first predetermined condition), and a second mode that moves the robot based on the external force applied to a first part of the robot (in this example, hand H). Thus, by using either the first or second mode, the control device 25 can change the robot's position and posture to the desired position and posture with high precision.
[0209] Furthermore, in the first mode, the control device 25 controls the hand to approach the object (in this example, the workbench TB) based on the output of the force detection unit (force detection unit 21) until the specified conditions are met. Thus, in the first mode, the control device 25 can adjust the robot's position and posture with high precision to establish the desired position and posture corresponding to the object without requiring the user to apply external force to the hand.
[0210] Furthermore, in the first mode, the control device 25 moves the robot until at least the force applied to the hand in the first direction is greater than 0, and at least the force applied to the hand in the second direction (in this example, the rotation direction about each coordinate axis of the control point coordinate system TC1) different from the first direction (in this example, the positive direction of the Z-axis of the control point coordinate system TC1) is 0. Thus, in the first mode, the control device 25 can maintain the robot's posture and move the robot's position in the opposite direction to the first direction.
[0211] Furthermore, in the first mode, the control device 25 moves the robot until at least the force applied to the hand in the translational direction (i.e., the first direction) is greater than 0, and the torque in the rotational direction (i.e., the second direction) is 0. Thus, in the first mode, the control device 25 can maintain the robot's posture and move the robot's position in the opposite direction to the translational direction (i.e., the first direction).
[0212] Furthermore, in the first mode, the control device 25 stores the current position and posture of the robot (in this example, the position and posture of control point T1) when certain conditions are met. Thus, in the first mode, the control device 25 can make the robot move based on the robot's position and posture stored when the certain conditions are met.
[0213] Furthermore, in the second mode, the control device 25 moves the second part of the robot (in this example, the hand H) by a predetermined amount in a predetermined direction based on the external force applied to the first part of the robot (in this example, the hand H). Thus, in the second mode, the control device 25 can make the robot's position and posture change to the desired position and posture with high precision based on the external force applied by the user to the first part.
[0214] Furthermore, after moving the second part in a predetermined direction by a predetermined amount, the control device 25 stores the current position and posture of the robot. Therefore, in the second mode, the control device 25 can control the robot based on the stored position and posture of the robot after moving the second part in a predetermined direction by a predetermined amount.
[0215] Furthermore, after moving the second part by a predetermined amount in either the translational or rotational direction, the control device 25 stores the current position and posture of the hand. Thus, in the second mode, the control device 25 can control the robot based on the stored position and posture after moving the second part by a predetermined amount in either the translational or rotational direction.
[0216] Furthermore, the control device 25 moves the second part by a predetermined amount in a direction corresponding to the portion of the first part to which the external force is applied (in this example, the upper or lower portion) based on the external force applied to the first part. Thus, the control device 25 allows the user to easily change the direction in which the second part moves.
[0217] The embodiments of the present invention have been described in detail above with reference to the accompanying drawings. However, the specific configuration is not limited to this embodiment. Changes, substitutions, deletions, etc., can be made as long as they do not depart from the spirit of the present invention.
[0218] Furthermore, programs for implementing the functions of any component of the apparatus described above (e.g., control device 25, robot control device 30, teaching device 50) can be recorded on a computer-readable recording medium, and the program can be loaded into a computer system for execution. In addition, the term "computer system" as used herein refers to hardware devices including an OS (Operating System), peripheral devices, etc. Furthermore, "computer-readable recording medium" refers to portable media such as floppy disks, optical disks, ROMs, CD-ROMs, and storage devices such as hard disks built into a computer system. Further, "computer-readable recording medium" refers to a device that holds programs for a constant time, such as volatile memory (RAM) within a computer system that acts as a server or client, in cases where programs are transmitted via networks such as the Internet or communication lines such as telephone lines.
[0219] Furthermore, the aforementioned program can also be transmitted from a computer system storing the program in a storage device or similar device to another computer system via a transmission medium or by transmission waves within the transmission medium. Here, "transmission medium" for transmitting the program refers to a medium that has the function of transmitting information, such as a network (communication network) like the Internet or a communication line (communication line) like a telephone line.
[0220] Furthermore, the program described above can also be a part of a program used to implement the functions described above. Moreover, the program described above can also be a so-called differential file (differential program) that implements the functions described above by combining it with programs already recorded in the computer system.
[0221] Explanation of reference numerals in the attached figures:
[0222] 1…Robot system; 20…Robot; 21…Force detection unit; 30…Robot control device; 31, 51…CPU; 32, 52…Storage unit; 33, 53…Input receiving unit; 34, 54…Communication unit; 35, 55…Display unit; 36, 56…Control unit; 361…Force detection information acquisition unit; 363…Storage control unit; 364…Information reading unit; 365…Motion mode switching unit; 366…Information output unit; 367…Robot control unit; 561…Display control unit; 563…Instruction information generation unit; 565…Instruction information output unit.
Claims
1. A robot system, characterized in that, The robot system has the following features: The robot comprises a first part, a second part, and a force detection unit for detecting external forces; and The control device causes the robot to move either the first part or the second part by a predetermined amount in a predetermined direction when the external force is applied to the first part, and to move either the first part or the second part by an integer multiple of the predetermined amount in the predetermined direction when the operation from the application of the external force to the release of the external force applied to the first part is repeated by the user a predetermined number of times.
2. A robot system, characterized in that, The robot system has the following features: The robot comprises a first part, a second part, and a force detection unit for detecting external forces; and The control device switches between a first mode and a second mode and causes the robot to move. The first mode is a mode in which the robot moves without the user applying external force to the first part until the external force detected by the force detection unit meets a predetermined condition. The second mode is a mode in which the first part or the second part of the robot moves a predetermined amount in a predetermined direction based on the user's external force.
3. The robot system according to claim 1 or 2, characterized in that, The direction of the external force applied to the first part is the direction of rotation, and the specified direction is the direction of rotation.
4. The robot system according to claim 1 or 2, characterized in that, The direction of the external force applied to the first part is the direction of translation, and the specified direction is the direction of rotation.
5. The robot system according to claim 1 or 2, characterized in that, The direction of the external force applied to the first part is the translation direction, and the specified direction is the translation direction.
6. The robot system according to claim 1 or 2, characterized in that, The direction of the external force applied to the first part is different from the specified direction.
7. The robot system according to claim 1 or 2, characterized in that, The direction of the external force applied to the first part is the same as the specified direction.
8. The robot system according to claim 1 or 2, characterized in that, After moving the first part or the second part by the specified amount along the specified direction, the current position and posture are stored.
9. The robot system according to claim 1 or 2, characterized in that, The specified direction is the direction corresponding to the portion of the first part. Based on the external force applied to the first part, the first part or the second part is moved by the predetermined amount in the direction corresponding to the portion of the first part to which the external force was applied.
10. A method for controlling a robot, characterized in that, The robot includes a first part, a second part, and a force detection unit for detecting external forces. When the external force is applied to the first part, the first part or the second part moves by a predetermined amount in a predetermined direction. When the user repeatedly performs the operation from applying the external force to the first part to releasing the external force applied to the first part a predetermined number of times, the first part or the second part is moved by an integer multiple of the predetermined amount in the predetermined direction.
11. A method for controlling a robot, characterized in that, The robot includes a first part, a second part, and a force detection unit for detecting external forces. Switch between a first mode and a second mode and make the robot move. The first mode is a mode in which the robot moves without the user applying external force to the first part until the external force detected by the force detection unit meets the specified conditions. The second mode is a mode in which the first part or the second part of the robot moves a predetermined amount in a predetermined direction based on the user's external force.
Citation Information
Patent Citations
Device and method for directly teaching position and attitude of robot
JP1991123908A
Teaching method of robot
JP1988162180A
Direct teaching device of articulated robot
JP1993237784A
Force / torque sensor, apparatus and method for robot teaching and operation
US20150323398A1