Robot system, method of controlling a robot, manufacturing method, and recording medium

By adjusting the rigidity and viscosity parameters of the robot system using impedance control technology, the problems of collision and over-response caused by external forces in the robot are solved, and stable operation in human-robot interaction is achieved.

CN114905485BActive Publication Date: 2025-12-30CANON KK
View PDF 3 Cites 0 Cited by

Patent Information

Application Number
CN202210120655.7
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Priority Date
2021-11-19
Filing Date
2022-02-08
Publication Date
2025-12-30
Estimated Expiration
2042-02-08

AI Technical Summary

Technical Problem

When a robot detects an external force, it may exhibit abnormal postures due to obstacle collisions or overreaction, which can affect its work efficiency.

Method used

By using impedance control technology, the rigidity, viscosity, and inertia parameters in the robot system are adjusted to control changes in robot posture according to changes in external forces. This includes the coordination of contact detection sensors and servo control units to achieve flexible response to external forces.

Benefits of technology

It effectively avoids collisions and over-response caused by external forces, improves the safety and efficiency of robot operation, and ensures stability during human-computer interaction.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN114905485B_ABST
    Figure CN114905485B_ABST
Patent Text Reader

Abstract

A robot system, a method of controlling a robot, a manufacturing method, and a recording medium are provided. In a robot system including a robot and a controller that controls the robot, the controller switches the robot from a first state to a second state based on detection of contact of an object with the robot, in the second state, a change in posture according to an external force applied to the robot is more permitted than in the first state. After a change in posture according to the external force applied to the robot is started and while the external force is being applied to the robot, the controller switches the robot from the second state to a third state, in the third state, a change in posture according to the external force is more restricted than in the second state.
Need to check novelty before this filing date? Find Prior Art

Description

TECHNICAL FIELD

[0001] The present application relates to a robot and a robot system. BACKGROUND

[0002] In recent years, there is a demand for robots to perform flexible operations, such as working in cooperation with humans.

[0003] In the use of a robot, the robot can decelerate or stop in response to contact by a human with the robot. However, a decelerated or stopped robot left in an area where a human is working can hinder the work of the human.

[0004] Japanese Patent Application Publication No. 2016-153156 discloses a robot system that instructs a robot to perform an evacuation operation in which, if an external force detected by an external force detection unit is greater than a first threshold value, the robot moves in a direction in which the external force decreases. SUMMARY

[0005] The present disclosure provides a robot system including a robot and a controller that controls the robot. The controller switches the robot from a first state to a second state based on detection of contact by an object with the robot, in the second state, a change in posture in accordance with an external force applied to the robot is more permitted than in the first state. The controller switches the robot from the second state to a third state after a start of the change in posture in accordance with the external force and while the external force is being applied to the robot, in the third state, the change in posture in accordance with the external force applied to the robot is more restricted than in the second state.

[0006] Further features of the present application will become apparent from the following description of example embodiments with reference to the drawings. BRIEF DESCRIPTION OF DRAWINGS

[0007] Figure 1 is a diagram that schematically shows a configuration of a system according to a first embodiment.

[0008] Figure 2 is a cross-sectional view of a robot according to the first embodiment.

[0009] Figure 3 is a block diagram showing a configuration of a controller according to the first embodiment.

[0010] Figure 4 is a flowchart showing control contents in the system in a second embodiment.

[0011] Figure 5A and Figure 5B is a flowchart showing control contents in the system in a third embodiment.

[0012] Figure 6This is a flowchart illustrating the control content of the system in the fourth embodiment. Detailed Implementation

[0013] Embodiments of this disclosure will be described herein with reference to the accompanying drawings. However, the embodiments described below are merely examples, and this disclosure is not limited to these embodiments. In the following description and drawings, the same reference numerals are added to common parts in the plurality of drawings. Common parts are described with reference to the plurality of drawings, and descriptions of parts to which the same reference numerals are added are appropriately omitted herein. Different things having the same name can be distinguished from each other by adding serial numbers, such as the first thing and the second thing.

[0014] In the robot system disclosed in Japanese Patent Application Publication No. 2016-153156, if there is an obstacle on the robot's evacuation path in the direction of decreasing external force, the robot may collide with the obstacle.

[0015] Furthermore, continued robot evacuation may cause the robot to assume an abnormal posture, or it may cause the robot's evacuation speed to increase excessively in response to an excessive increase in the external force applied to the robot.

[0016] This disclosure provides a technique that helps improve robot operation when an external force is detected applied to the robot.

[0017] First Embodiment

[0018] Now refer to Figure 1 and Figure 2 A robot system (hereinafter referred to as the system) according to a first embodiment is described. Figure 1 This diagram schematically illustrates the construction of the system according to the first embodiment when viewed from the side. The system 100 according to the first embodiment includes a robot 200 and a controller 300 for controlling the robot 200.

[0019] Figure 2 This is a cross-sectional view of a robot 200 according to a first embodiment. The robot 200 according to the first embodiment includes a plurality of joint units 211 to 216. Each joint unit 211 to 216 includes a plurality of servo motors 221 to 226 driving a plurality of joint axes 201 to 206 and a plurality of contact detection sensors 231 to 236. The contact detection sensors 231 to 236 may be connected to the servo motors 221 to 226 respectively, or may not be connected to the servo motors 221 to 226 respectively. The plurality of joint units 211 to 216 may include brakes (not shown).

[0020] The robot 200 in the first embodiment includes servo control units 251 to 256. Servo motors 221 to 226 are controlled by servo control units 251 to 256 respectively.

[0021] Although servo motors 221 to 226 may include electric motors and encoders, using servo motors from the related art is sufficient, and servo motors 221 to 226 can be appropriately modified. The encoders in servo motors 221 to 226 can be used as contact detection sensors 231 to 236, respectively. Although in the first embodiment, contact detection sensors 231 to 236 are respectively disposed in joint units 211 to 216, contact detection sensors 231 to 236 can be disposed outside the robot 200.

[0022] Servo control units 251 to 256 supply current to the motors in servo motors 221 to 226, and the motors are driven based on the current supplied from the servo control units 251 to 256. The robot 200 can change its posture when driven by the motors. Although an example of servo control units 251 to 256 being disposed in the base of the robot 200 has been described, servo control units 251 to 256 can be disposed in the joint units 211 to 216 of the robot 200, respectively. Servo control units 251 to 256 can also be disposed in the controller 300.

[0023] Joint units 211 to 216 support the weight of the energized robot 200 based on the current supplied from servo control units 251 to 256. In other words, the motors prevent the robot 200 from changing its posture due to the gravity applied to its various components. At this time, joint axes 201 to 206 are not fixed.

[0024] The brakes included in joint units 211 to 216 prevent the robot 200 from changing its posture due to its own weight when it is turned off. The brakes fix joint axes 201 to 206 to prevent the robot 200 from changing its posture.

[0025] When robot 200 is powered on and in a controlled state where joint units 211 to 216 support the weight of the powered robot 200 based on current supplied from servo control units 251 to 256, the brakes release the fixation on joint axes 201 to 206. Conversely, when robot 200 is powered off or in a state where the robot 200's weight is not supported, such as in response to a control stop command, the brakes fix joint axes 201 to 206. The brakes included in joint units 211 to 216 are, for example, electromagnetic brakes, such as power-off brakes.

[0026] Each contact detection sensor 231 to 236 may be a sensor capable of detecting the contact between the object 400 (the contact object) and the robot 200. Preferably, each contact detection sensor 231 to 236 detects a physical quantity corresponding to the external force applied to the robot 200 due to the contact between the contact object and the robot 200. Each contact detection sensor 231 to 236 may determine whether the robot 200 has any contact object and may be disposed within or outside the robot 200. For example, contact detection sensors 231 to 236 may be disposed on joint axes 201 to 206 of the robot 200, and may be force sensors (torque sensors) that detect the torque around joint axes 201 to 206 that changes with the external force. Alternatively, contact detection sensors 231 to 236 may be disposed on joint axes 201 to 206 of the robot 200, and may be force sensors (pressure sensors) that detect the pressure in the direction intersecting joint axes 201 to 206 that changes with the external force. Alternatively, the contact detection sensors 231 to 236 can be disposed within the robot 200 or the controller 300, and can be current sensors that detect the current flowing through the multiple servo motors 221 to 226, which changes with external force. Alternatively, the contact detection sensors 231 to 236 can be disposed within the outer casing of the robot 200, and can be tactile sensors that detect any contact with the robot 200. Alternatively, the contact detection sensors 231 to 236 can be disposed outside the robot 200, and can be visual sensors (vision sensors) that detect any contact between the object 400 and the robot 200 through image processing.

[0027] It can be equipped with one contact detection sensor or multiple contact detection sensors.

[0028] Now refer to Figure 3 Describe controller 300.

[0029] Figure 3 This is a block diagram illustrating the construction of the controller 300 according to the first embodiment.

[0030] The controller 300 is configured as a computer and includes an arithmetic unit 301 that acts as a control unit. The arithmetic unit 301 is a central processing unit (CPU), an application-specific integrated circuit (ASIC), or a field-programmable gate array (FPGA). The controller 300 includes a read-only memory (ROM) 302 that acts as a storage unit and a main storage device 303 such as random access memory (RAM). Basic programs such as the Basic Input / Output System (BIOS) are stored in the ROM 302. The main storage device 303 is a storage device that temporarily stores various data, such as the results of operations processed in the arithmetic unit 301. The controller 300 includes an auxiliary storage device 304 that acts as a storage unit, such as a hard disk drive (HDD) or a solid-state drive (SSD). The auxiliary storage device 304 stores the results of operations processed in the arithmetic unit 301 and data acquired from outside the controller 300. The controller 300 also includes an interface 305.

[0031] ROM 302, main storage device 303, auxiliary storage device 304, and interface 305 are connected to the arithmetic unit 301 via bus 310. Servo control units 251 to 256 in robot 200 are connected to interface 305. Operating devices such as operation panels or teach pendants, and display devices such as displays or lights, can be connected to interface 305. An information input unit for inputting information into controller 300 can be included in interface 305. Operating devices are connected to the information input unit in controller 300 via wired and / or wireless connections. Connecting the operating device to controller 300 in the above manner enables operation of controller 300 using the operating device. An information output unit that outputs information to be displayed on a display device can be included in interface 305 as a display unit for displaying information on a display device. The information output unit may include a graphics controller and a microcomputer. Connecting the display device to controller 300 in the above manner enables information to be displayed on the display device.

[0032] The arithmetic unit 301 performs various processes based on the program 320 stored in the auxiliary storage device 304 to operate the robot 200. In this process, the arithmetic unit 301 issues a command to move the robot 200 to a desired position, that is, a command to change the robot 200 to a desired posture. Data about the position command is supplied to the servo control units 251 to 256 in the robot 200 via the bus 310 and the interface 305 at predetermined time intervals.

[0033] When robot 200 changes its posture, computing unit 301 issues a command to move robot 200 to the desired position. Servo control units 251 to 256, based on the position command given to robot 200, apply current to joint units 211 to 216 of robot 200 to control the drive of the motors. Controlling the drive of the motors enables the posture change of robot 200 to be controlled.

[0034] Impedance control can be used in the control of robot 200. Controller 300 can change the posture of robot 200 while altering its response characteristics to external forces by applying impedance control to robot 200. In other words, by changing the stiffness and viscosity, which are parameters in impedance control, the posture of robot 200 can be changed simultaneously with altering the person's perception of the force when an external force is applied to robot 200.

[0035] Human perception of force is, for example, when a person applies an external force to a robot 200, the person feels either difficulty in changing their posture or ease in changing their posture.

[0036] We will now use the equations of impedance control to describe the rigid and viscous parameters, which are parameters in impedance control. The equations of impedance control are expressed by equation (1):

[0037] F = Md 2 x / dt 2 +Ddx / dt+Kx (1)

[0038] In equation (1), F represents the external force applied by the human to the robot 200, x represents the position displacement of the robot 200, d / dt represents the derivative with respect to time, M represents the inertial parameter in impedance control, D represents the viscous parameter in impedance control, and K represents the rigid parameter in impedance control.

[0039] We will now describe how the pose change of robot 200 is affected by the change in the stiffness parameter in the impedance control equation. Therefore, in equation (1), M = 0 and D = 0. The equation in impedance control in this case is expressed by equation (2):

[0040] F = Kx (2)

[0041] Equation (2) shows that the change in the rigidity parameter K can alter the degree of displacement of each component of robot 200 due to the external force applied to robot 200 by the human. When the rigidity parameter K increases, the displacement of each component of robot 200 due to the change in posture caused by the external force decreases. In contrast, when the rigidity parameter K decreases, the displacement of each component of robot 200 due to the change in posture caused by the external force increases.

[0042] We will now describe how the pose change of robot 200 is affected by the change in the viscous parameter in the impedance control equation. Therefore, in equation (1), M = 0 and K = 0. The equation in impedance control in this case is expressed by equation (3):

[0043] F=Ddx / dt (3)

[0044] Equation (3) shows that changes in the viscosity parameter D can alter the rate at which the various components of robot 200 change posture from their current posture to a target posture due to external forces applied to them by the human. When the viscosity parameter D increases, the rate at which the various components of robot 200 change posture due to external forces decreases. Conversely, when the viscosity parameter D decreases, the rate at which the various components of robot 200 change posture due to external forces increases.

[0045] Changing the stiffness, a parameter in impedance control, can alter the displacement of the robot 200 caused by the external force applied to the robot 200, and changing the viscosity, a parameter in impedance control, can alter the velocity of the robot 200 caused by the external force applied to the robot 200.

[0046] We will now describe how the pose change of robot 200 is affected by the change in the inertial parameter in the impedance control equation. Therefore, in equation (1), D = 0 and K = 0. The equation in impedance control in this case is expressed by equation (4):

[0047] F = Md 2 x / dt 2 (4)

[0048] Equation (4) shows that a change in the inertia parameter M can alter the acceleration of the posture change of each component of the robot 200 caused by the external force applied to the robot 200 by the human. When the inertia parameter M increases, the acceleration of the posture change of each component of the robot 200 caused by the external force decreases. In contrast, when the inertia parameter M decreases, the acceleration of the posture change of each component of the robot 200 caused by the external force increases. However, in the impedance control of the first embodiment, the posture change of the robot 200 is not controlled by changing the inertia parameter.

[0049] Increasing the rigidity or viscosity in impedance control makes it difficult for a person to perceive a change in the robot's posture when an external force is applied to the robot. In contrast, decreasing the rigidity or viscosity in impedance control makes it easy for a person to perceive a change in the robot's posture when an external force is applied to the robot.

[0050] For example, when a force sensor detects an external force greater than a predetermined value, increasing the rigidity or viscosity in the impedance control can restrict changes in posture.

[0051] Impedance control allows for the increase or decrease of resistance to external forces in response to changes in the robot 200's posture caused by a human-applied force. This helps determine whether to continue applying the external force.

[0052] Although the basic structure for controlling the posture of robot 200 in system 100 has been described above, the structure can be appropriately modified using common techniques, or the structure can be appropriately improved using less common techniques.

[0053] The construction for detecting objects 400 that may be present around robot 200 will now be described.

[0054] The controller 300 may include an object information processing unit 312, a data generation unit 313, a contact determination unit 314, and a posture change control unit 315. In the controller 300, the object information processing unit 312, the contact determination unit 314, and the posture change control unit 315 are connected to an interface 305. At least one of the object information processing unit 312, the contact determination unit 314, and the posture change control unit 315 may be disposed in the robot 200. For example, the data generation unit 313 may be disposed in each of the joint units 211 to 216.

[0055] The data generation unit 313 generates data (analog or digital data) that it can process based on the signals detected and output by the contact detection sensors 231 to 236, and supplies the generated data to the contact determination unit 314. The value indicated by the data generated by the data generation unit 313 corresponds to the physical quantity detected by the contact detection sensors 231 to 236. The data generation unit 313 may be referred to as the contact detection unit.

[0056] The contact determination unit 314 analyzes the contact information output from the data generation unit 313, which is configured in or outside the controller 300, to determine the presence of an object in contact with the robot 200.

[0057] The object detection sensor 311 can be installed in or outside the system 100.

[0058] The object detection sensor 311 is a sensor capable of detecting objects present around the robot 200. Various sensors, including image sensors, range sensors, ultrasonic sensors, and radar sensors, can be used as the object detection sensor 311. The range sensor can be a time-of-flight (ToF) sensor. The object detection sensor 311 is connected to, for example, interface 305.

[0059] The object information processing unit 312 analyzes the object information output from the object detection sensor 311.

[0060] The object information processing unit 312 is able to determine the existence of an object 400 in the movable area of ​​the robot 200 (hereinafter referred to as the movable area) and calculate the distance to the object 400.

[0061] The posture change control unit 315 controls the posture change based on the data in the object information processing unit 312 about the objects existing in the movable area of ​​the robot 200 and the data in the contact determination unit 314 about the existence of the contacting objects.

[0062] The system 100 of the first embodiment can use contact detection sensors 231 to 236 to detect contact between an object and the robot 200. The controller 300 can control the robot 200 based on the detection of contact. Furthermore, the controller 300 can use object detection sensor 311 to detect the presence of objects 400 around the robot 200. Furthermore, the controller 300 can control the robot 200 based on the detection of the presence of objects 400.

[0063] Second Embodiment

[0064] Now refer to Figure 4 The operation of system 100 as a second embodiment is described. Although system 100 described in the first embodiment can be used in the second embodiment, system 100 described in the second embodiment is not limited to system 100 of the first embodiment.

[0065] Figure 4 This is a flowchart illustrating the main part of the operation processing performed in the system 100 in the second embodiment.

[0066] Reference Figure 4 In step S0, robot 200 is shut down and joint axes 201 to 206 are secured in a shut-down state by brakes included in joint units 211 to 216.

[0067] Robot 200 is powered on to begin operation of system 100.

[0068] In step S1, the brakes are released and joint axes 201 to 206 are not fixed by the brakes. However, the robot 200 is in a non-moving state. The non-moving state in step S1 is the state in which the electric motor supports the weight of the robot 200. In other words, the non-moving state is the state in which the electric motor prevents the robot 200 from changing its posture due to the gravity applied to the various parts of the robot 200. It is assumed that no external force is applied to the robot 200 in step S1. When an external force is applied to the robot 200, which is supporting its own weight, at this time, no posture change occurs. The fact that the robot 200 is in a state of not changing its posture in response to external force can be indicated using a graphical user interface (GUI) or lights to make it possible to determine whether posture change is available. The robot 200 can enter a state of changing its posture in response to a specific operation performed in advance by the user. The specific operation is, for example, pressing a button or changing a mode setting. In the following description, the external force applied to the robot 200 is the human force applied to the robot 200, excluding the gravity applied to the robot 200's own weight and non-human forces such as atmospheric pressure applied to the robot 200. The non-moving state of robot 200 means that robot 200 maintains its posture. The posture-maintaining state (stopped state) of robot 200 can include the closed state in step S0 and the non-moving state in step S1.

[0069] In step S2, control of the robot 200 by the controller 300 is performed, and the robot 200 is in a state where the robot 200 is changing its posture (posture change state). The state in step S2 can be a state where the controller 300 changes the posture of the robot 200 based on posture change instructions stored in the controller 300. Alternatively, the state in step S2 can be a state where the controller 300 changes the posture of the robot 200 based on instructions issued by the user using an operating device.

[0070] Step S2 can be omitted, and the process can proceed from the non-moving state in step S1 to step S3. Although the state immediately preceding step S3 is either the non-moving state in step S1 or the posture-changing state in step S2, in both cases, no external force can be applied to the robot 200. The state immediately preceding step S3 is one in which even if an external force is applied to the robot 200, the robot 200's posture is limited from changing according to the external force. In other words, in the non-moving state in step S1 or the posture-changing state in step S2, even if the user attempts to change the robot 200's posture by applying an external force, the robot 200's posture is difficult to change. The states immediately preceding step S3 can be collectively referred to as the first state.

[0071] In step S3, each of the contact detection sensors 231 to 236 detects the external force applied to the robot 200 in the first state. Furthermore, the contact determination unit 314 determines whether the external force applied to the robot 200 is determined to be contact.

[0072] The controller 300 is configured such that if the external force detected in step S3 has an amplitude Fl, it determines that the robot 200 has any contact with an object. Consequently, the contact determination unit 314 determines that the robot 200 has contact with an object. The controller 300 is also configured such that if the external force detected in step S3 has an amplitude F2 less than the amplitude Fl, it determines that the robot 200 has no contact with an object. Consequently, the contact determination unit 314 determines that the robot 200 has no contact with an object.

[0073] Specifically, a threshold corresponding to the amplitude F3 of the external force is set, and it is determined whether the robot 200 has any contact with any object based on whether the external force detected in step S3 has an amplitude greater than the threshold F3.

[0074] The threshold amplitude F3 is less than the amplitude F1 and greater than the amplitude F2 (F1>F3>F2). It can be appropriately set to determine whether the robot 200 is in contact with an object or not when an external force equal to the threshold amplitude F3 is detected.

[0075] For example, methods for detecting torque around joint axes 201 to 206, methods for detecting changes in flowing current, or methods for using visual sensors to detect whether the robot 200 is in contact with any object are used as methods for detecting external forces.

[0076] If, in step S3, each of the contact detection sensors 231 to 236 detects an external force applied to the robot 200 in the first state, the contact determination unit 314 determines whether the external force is determined to be contact. The external force applied to the robot 200 in the first state means an external force exerted by an object 400 surrounding the robot 200 through contact with the robot 200. The object 400 surrounding the robot 200 is a facility (fixed or movable object) other than the robot, existing in the space where the robot 200 is installed. For example, the object 400 could be a person.

[0077] If each contact detection sensor 231 to 236 detects an external force applied to the robot 200 in the first state, the data generation unit 313 supplies data based on the outputs from the contact detection sensors 231 to 236 to the contact determination unit 314. The contact determination unit 314 determines whether the detected external force is greater than a first threshold to determine whether the robot 200 has any contact object.

[0078] When the contact detection sensors 231 to 236 are torque sensors, the data generation unit 313 can generate a torque value based on the output from the contact detection sensors 231 to 236. In this case, the contact determination unit 314 determines whether the torque value corresponding to the output from each of the contact detection sensors 231 to 236 exceeds a predetermined torque value (first threshold).

[0079] When the contact detection sensors 231 to 236 are current sensors, the data generation unit 313 generates a current value based on the amount of current flowing through the motor. In this case, the contact determination unit 314 determines whether the current value corresponding to the amount of current flowing through each motor exceeds a predetermined current value (first threshold).

[0080] If the output value from the data generation unit 313 exceeds a predetermined value (first threshold), the contact determination unit 314 determines that the robot 200 has contact with an object. If the output value from the data generation unit 313 does not exceed the predetermined value (first threshold), the contact determination unit 314 determines that the robot 200 has not contacted an object.

[0081] When contact detection sensors 231 to 236 are visual sensors, the contact determination unit 314 determines whether the robot 200 has any contact object through image processing. In this case, step S3 can be omitted. The aforementioned first threshold can be set by the user according to the method used.

[0082] The controller 300 is configured such that if none of the contact detection sensors 231 to 236 detect an external force in step S3, it is determined that the robot 200 is not in contact with the object. This corresponds to "No" in step S3 and the process returns from step S3 to step S2.

[0083] The controller 300 is configured such that if the external force detected in step S3 has an amplitude F2 less than a first threshold, it is determined that the robot 200 has not contacted the object. This corresponds to "No" in step S3 and the process returns from step S3 to step S2.

[0084] If the process returns from step S3 to step S2, the robot 200 may not move to the non-moving state (step S1) and may continuously change its posture in the first state (step S2). However, if the step immediately preceding step S3 is step S1, the process may return from step S3 to step S1, or it may proceed to step S2. Furthermore, if the step immediately preceding step S3 is step S2, the process may return from step S3 to step S1.

[0085] If the external force detected in step S3 has an amplitude Fl, the contact determination unit 314 determines that the robot 200 has a contact object. If the contact determination unit 314 determines that the robot 200 has a contact object ("yes" in step S3), the process proceeds to step S4. In step S4, the controller 300 switches the robot 200 from the first state to a state that performs posture changes according to the external force.

[0086] The controller 300 can change the posture of the robot 200 while altering its response characteristics to external forces by controlling the impedance of the robot 200.

[0087] In other words, by changing the rigidity or viscosity, which is a parameter in impedance control, it is possible to change the posture of the robot 200 while altering the human's perception of the force when an external force is applied to the robot 200.

[0088] Reducing at least one of the rigidity and viscosity in the impedance control enables the robot 200 in the first state to switch to a state available for posture change based on external forces.

[0089] The state in which robot 200 changes its posture according to external forces is called the second state.

[0090] The second state is a state in which the restriction on posture changes based on external forces, which was in the first state, is lifted. The restriction on posture changes based on external forces in the first state and the lifting of this restriction in the second state are defined based on the relative relationship between the two states. Specifically, posture changes based on external forces are more restricted in the first state than in the second state. A state where the restriction on posture changes is more relaxed compared to the first state is a state where posture restrictions are permissible. Therefore, this does not imply the unavailability of posture changes based on external forces in the first state. For example, when an external force exceeding the strength of joint units 211 to 216 is applied, the robot 200 can change its posture in the first state. The restriction on posture changes based on external forces in the second state is more relaxed than in the first state. Therefore, this does not imply that there are no restrictions on posture changes based on external forces in the second state. For example, also in the second state, the robot 200 can have a certain degree of resistance to external forces such as friction inherent in joint units 211 to 216.

[0091] In step S5, the robot 200 in the second state begins to change its posture according to the external force applied to it. Although the external force applied to the robot 200 at this time is preferably detected by the robot 200 using contact detection sensors 231 to 236, other methods can be used to detect the external force, or it may not need to be detected at all. The external force applied to the robot 200 in step S5 is an external force that may occur in the robot 200 in response to pressure exerted by the user. Alternatively, the external force applied to the robot 200 in step S5 is an external force that may occur in the robot 200 in response to pressure exerted by a robot other than the robot 200.

[0092] In step S6, it is determined whether an external force is continuously detected applied to the robot 200 in the second state. If it is determined that no external force is detected ("No" in step S6), the robot 200 stops changing its posture according to the external force.

[0093] If it is determined that an external force is continuously detected ("Yes" in step S6), the process proceeds to step S7. In step S7, the robot 200 continues to change its posture according to the external force. Then, the process proceeds to step S8.

[0094] In step S8, it is determined again whether the robot 200 continuously detects external forces.

[0095] If it is determined that no external force is detected ("No" in step S8), the robot 200 stops changing its posture based on the external force.

[0096] If robot 200 stops changing its posture in step S6 or S8, controller 300 determines that the person has completed the posture change that brought robot 200 to the desired position. Then, the process ends. Figure 4 Operation processing within.

[0097] If it is determined that robot 200 continuously detects external forces ("Yes" in step S8), the process proceeds to step S9. In step S9, object information processing unit 312 determines whether robot 200 meets a constraint condition. The constraint condition is used to determine whether the pose change of robot 200 is restricted. For example, the pose change of robot 200 is restricted in the following situations: for example, when robot 200 approaches an object 400 surrounding robot 200, when robot 200 changes pose due to excessive external force or at excessive speed, or when robot 200 approaches a singular point. Furthermore, for example, the condition restricting the pose change of robot 200 is met when robot 200 has traveled a predetermined distance and / or when robot 200 has performed a pose change for a predetermined time period. An "OR" condition can be established between traveling a predetermined distance and changing pose for a predetermined time period, or an "AND" condition can be established between them.

[0098] If the object information processing unit 312 determines that the robot 200 meets the constraint condition ("Yes" in step S9), the process proceeds to step S10. In step S10, after the robot 200 has begun to change its posture according to the external force and while the external force is being applied to the robot 200 in the second state, the controller 300 switches to a state where the posture change is more restricted than the second state.

[0099] The controller 300 adds at least one of rigidity and viscosity in the impedance control to limit the posture changes of the robot 200.

[0100] Increasing at least one of rigidity and viscosity in the impedance control enables the restriction of posture changes of robot 200 that is undergoing posture changes based on external forces.

[0101] The state in which posture changes are more restricted than in the second state is called the third state.

[0102] The third state is a state where posture changes based on external forces are restricted, while the restrictions on posture changes are relaxed compared to the second state. The relaxation of restrictions on posture changes based on external forces in the second state and the restrictions on posture changes based on external forces in the third state are defined based on the relative relationship between these two states. Specifically, posture changes based on external forces are more restricted in the third state than in the second state. Therefore, this does not mean that posture changes based on external forces are unavailable in the third state. For example, when an external force exceeding the strength of joint units 211 to 216 is applied, the robot 200 can change its posture in the third state. The restrictions on posture changes based on external forces are more relaxed in the second state than in the third state. Therefore, this does not mean that there are no restrictions on posture changes based on external forces in the second state. For example, also in the second state, the robot 200 can have a certain degree of resistance to external forces such as friction inherent in joint units 211 to 216.

[0103] In step S10, the robot 200 in the second state is switched to the third state. In other words, the posture change of the robot 200, which changes posture according to an external force, is restricted. The restriction on posture change causes, for example, posture change to stop and the robot 200 to be in a non-moving state. Alternatively, the restriction on posture change reduces the amount of posture change caused by the applied external force.

[0104] The above controls can be used to limit changes in the robot 200's posture.

[0105] Third Embodiment

[0106] Now refer to Figure 5A and Figure 5B An exemplary flow is described as a process in the third embodiment. The flow in the second embodiment can be implemented using methods different from those described in the third embodiment. Furthermore, the flow in the third embodiment can use methods different from those described below. Figure 5A and Figure 5B The described process is implemented using methods.

[0107] Figure 5A and Figure 5B This is a detailed flowchart illustrating the operational processes performed in the system of the third embodiment.

[0108] Reference Figure 5A Steps S101 to S104 correspond to the process in step S2 of the second embodiment.

[0109] In step S101, a teaching operation is performed to store operations on the robot 200 while it is in a non-moving state. At this time, a person can perform the teaching operation using an operating device (not shown), or a person can directly touch the robot 200. Alternatively, an operation file containing pre-assumed operations through simulation or other means can be stored in the controller 300.

[0110] After teaching is completed, in step S102, object information about the objects 400 present in the movable area of ​​the robot 200 is acquired. For example, an image sensor that captures images of the area around the robot 200, or an object detection sensor such as an ultrasonic sensor, an optical ToF sensor, or a radar sensor, can be used to acquire object information. Singularities of the robot 200 are also stored here as object information.

[0111] In step S103, the human instructs the robot 200 to perform the teaching operation in step S101. In step S104, the robot 200 begins to change its posture.

[0112] In step S104, the robot 200 changes its posture without being subjected to any external force. Although this state is referred to as the first state, the robot 200 can be in various states because the first state is the state preceding the second state described in the second embodiment.

[0113] Steps S105 to S106 correspond to the process in step S3 of the second embodiment. In step S105, the data generation unit 313 and the contact determination unit 314 determine whether each contact detection sensor 231 to 236 detects a first external force applied to the robot 200 in the first state.

[0114] If the data generation unit 313 and the contact determination unit 314 determine that each contact detection sensor 231 to 236 detects a first external force applied to the robot 200 in the first state ("yes" in step S105), then the data generation unit 313 and the contact determination unit 314 acquire contact information. Then, the process proceeds to step S106.

[0115] In step S106, the contact determination unit 314 determines whether the detected first external force is greater than the amplitude F3 (first threshold). In other words, the contact determination unit 314 determines whether the robot 200 is determined to have any contact object.

[0116] In step S106, each contact detection sensor 231 to 236 detects a first external force applied to the robot 200 in the first state. If the first external force has an amplitude F1 greater than a first threshold, the contact determination unit 314 determines that the robot 200 is in contact with an object. The external force applied to the robot 200 in the first state is, for example, an external force applied to the robot 200 by a person or an external force caused by contact with another robot.

[0117] Steps S107 to S111 correspond to the flow from step S4 to step S6 in the second embodiment where external forces are continuously detected. If the contact determination unit 314 determines that the robot 200 has a contact object ("Yes" in step S106), the process proceeds to step S107. In step S107, the controller 300, while performing deceleration control on the robot 200, finally stops driving the robot 200.

[0118] If the data generation unit 313 and the contact determination unit 314 determine in step S105 that no first external force applied to the robot 200 is detected, the controller 300 is set to determine that the robot 200 is not in contact with the object. This process corresponds to "No" in step S105. In this case, the process returns from step S105 to step S104.

[0119] In step S106, if the first external force detected in step S105 has an amplitude F2 less than or equal to the first threshold, the controller 300 is set to determine that the robot 200 is not in contact with the object. This process corresponds to "No" in step S106. In this case, the process returns from step S106 to step S104.

[0120] In step S108, the controller 300 switches the robot 200, which stopped driving in step S107, to a state where it changes posture according to a second external force. This state where the robot 200 changes posture according to the second external force is called the second state. The external force applied to the robot 200 in the second state is, for example, a force applied to the robot 200 by a person or a force caused by contact with another robot.

[0121] At this time, in order to indicate to people around robot 200 that robot 200 is in a state of changing posture according to external forces, lights can be turned on or a display can be made on the operating device. The state of changing posture according to external forces is a state in which robot 200's posture change is available but has not yet been performed.

[0122] The controller 300 can change the robot 200's posture while altering its response characteristics to external forces through impedance control of the robot 200 in the second state. Specifically, the controller 300 can change the robot 200's posture while altering the human's perception of force when an external force is applied to the robot 200 by changing the stiffness or viscosity, which are parameters in the impedance control.

[0123] Reducing at least one of the rigidity and viscosity in impedance control enables the robot 200 in a non-moving state to switch to a state available for posture change based on external forces.

[0124] In step S109, the data generation unit 313 and the contact determination unit 314 determine whether each contact detection sensor 231 to 236 detects a second external force applied to the robot 200 in the second state.

[0125] If the data generation unit 313 and the contact determination unit 314 determine that each contact detection sensor 231 to 236 detects a second external force applied to the robot 200 in the second state ("yes" in step S109), then the data generation unit 313 and the contact determination unit 314 acquire contact information. Then, the processing proceeds to... Figure 5B Step S110 in the process.

[0126] In step S110, it is determined whether the second external force is greater than the second threshold. If the second external force detected in step S109 has an amplitude F4 ("yes" in step S110), the process proceeds to step S111. In step S111, the robot 200 begins to change its posture according to the external force.

[0127] At this time, in order to indicate to people around the robot 200 that a posture change based on an external force is in progress, lights can be turned on or a display can be made on the operating device. The state of "posture change based on external force" refers to the state in which the robot 200 is undergoing a posture change.

[0128] If the second external force detected in step S109 has an amplitude of F5 (not detected in step S110), then the process continues to... Figure 5B Step S119. In step S119, the drive of robot 200 is stopped.

[0129] Specifically, a threshold (second threshold) corresponding to the amplitude F6 of the external force is set, and based on whether the external force detected in step S109 is greater than, less than, or equal to the threshold amplitude F6, as determined in step S110, the process proceeds to step S111 or step S119. The controller 300 compares the value corresponding to the amplitude of the external force applied to the robot 200 with the threshold.

[0130] The threshold amplitude F6 is less than the amplitude F4 and greater than the amplitude F5 (F4>F6>F5). It can be appropriately set whether the processing proceeds to step S111 or step S119 when an external force equal to the threshold amplitude F6 is detected.

[0131] The controller 300 can change the amplitude F6 between the value corresponding to amplitude F4 and the value corresponding to amplitude F5.

[0132] Steps S112 to S118 correspond to the flow from steps S7 to S10 in the second embodiment. After the pose change of the robot 200 begins, in step S112, the controller 300 detects an object 400 present in the movable area of ​​the robot 200, which is undergoing a pose change based on an external force. Here, the object 400 is an obstacle present in the movable area of ​​the robot 200, such as a person, other robot, or equipment.

[0133] After the controller 300 detects the object 400 in step S112, the process proceeds to step S113. In step S113, the robot 200 obtains the distance to the detected object 400 based on the object information analyzed by the object information processing unit 312. Here, the object information processing unit 312 calculates the distance between the robot 200 and the object 400, taking into account information such as the presence and size of the object 400, and adds the calculated distance to the object information obtained in step S102.

[0134] In step S114, the controller 300 determines whether the distance between the robot 200 and the object 400 obtained in step S113 is greater than a predetermined distance.

[0135] If the distance between the robot 200 and the object 400 is less than or equal to a predetermined distance and greater than zero ("No" in step S114), the process proceeds to step S117. In step S117, the controller 300 increases at least one of rigidity and viscosity in the impedance control to limit the pose change of the robot 200. The state in which the pose change is limited is called the third state.

[0136] Increasing at least one of rigidity and viscosity in the impedance control enables the restriction of posture changes of robot 200 that is undergoing posture changes based on external forces.

[0137] For example, in step S108, only the stiffness in the impedance control can be reduced, and in step S117, only the viscosity in the impedance control can be increased. In contrast, in step S108, only the viscosity in the impedance control can be reduced, and in step S117, only the stiffness in the impedance control can be increased.

[0138] The parameters in the impedance control are set such that the load occurring when a person presses on the robot 200 gradually increases as the robot 200 gets closer to the object 400. This gradually increasing load is the state in which the stiffness and viscosity in the impedance control increase as the robot 200 gets closer to the object 400. This state in which the stiffness and viscosity in the impedance control increase as the robot 200 gets closer to the object 400 is referred to as the fourth state.

[0139] The fourth state is the state in which the distance between the robot 200 and the object 400 is less than or equal to a predetermined distance and greater than zero, and the robot 200 is moving in the direction in which the object 400 exists, in the third state where the robot 200's posture change is restricted.

[0140] If the distance between robot 200 and object 400 is less than or equal to a predetermined distance and greater than zero, and robot 200 does not move in the direction in which object 400 exists, then robot 200 is in a second state where its posture changes according to external forces.

[0141] In other words, no pose change is made in the direction in which robot 200 approaches object 400. This also applies to cases where the distance to the singularity is less than or equal to a predetermined distance and greater than zero, and robot 200 makes a pose change in the direction closer to the singularity. Specifically, robot 200 switches to the third state, and then switches to the fourth state in which the rigidity and viscosity in impedance control gradually increase as robot 200 gets closer to the singularity.

[0142] The posture change is restricted only when the posture change is made in the direction that the robot 200 is closer to the object 400 or in the direction that the robot 200 is closer to the singularity, and the width of the posture change of the robot 200 according to the external force can be preset.

[0143] In other words, setting the upper limit of the pose change distance of the robot 200 in the second state to, for example, 30cm can suppress pose changes that are unpredictable to humans.

[0144] Alternatively, the time period during which the posture changes according to external forces becomes usable can be preset.

[0145] If the distance to object 400 is greater than a predetermined distance ("Yes" in step S114), the process returns to step S112. Repeating the flow from step S112 to step S114 continuously updates information about objects present in the movable area of ​​robot 200 to facilitate pose changes. As a result, it can resolve situations where a person enters the movable area of ​​robot 200 during a pose change, and situations where an object falls into the movable area of ​​robot 200 during a pose change. The process can be appropriately configured to either return to step S112 or proceed to step S117 when the distance between robot 200 and object 400 equals the predetermined distance.

[0146] When attempting to move the robot 200 using a unit such as an operating device (which changes the robot 200's posture without contacting it) during a posture change caused by an external force, priority is given to posture changes caused by external forces. Therefore, the controller 300 ignores robot drive commands from the operating device. This is to prevent posture changes in the robot 200 in directions unwanted by the person pressing the robot 200 due to posture changes in response to external commands from the operating device.

[0147] In step S115, the posture change control unit 315 acquires the speed of the posture change of the robot 200, and the posture change of the robot 200 based on the external force has already started in step S111.

[0148] If it is determined in step S116 that the speed of the posture change obtained by the posture change control unit 315 is speed V1 ("Yes" in step S116), the process proceeds to step S117. In step S117, the controller 300 switches the robot 200 to a third state, thereby increasing the load generated when a person presses on the robot 200.

[0149] If it is determined in step S116 that the speed of the posture change acquired by the posture change control unit 315 is speed V2 ("No" in step S116), then the process returns to step S115. In step S115, the posture change control unit 315 acquires the speed of the posture change of the robot 200 again.

[0150] Specifically, a threshold corresponding to the speed of posture change V3 (third threshold) is set, and the process proceeds to step S117 or returns to step S115 based on whether the speed of posture change obtained in step S115 is higher than, lower than or equal to the speed V3 as the threshold, as determined in step S116.

[0151] The threshold speed V3 is lower than speed V1 and higher than speed V2 (V1>V3>V2). The processing can be appropriately configured to proceed to step S117 or return to step S115 when a speed equal to the threshold speed V3 is detected.

[0152] Even if robot 200 collides with objects 400 around robot 200 in the manner described above, it can prevent robot 200 from changing its posture too quickly and suppress excessive contact between robot 200 and objects 400 around robot 200.

[0153] After the pose change is restricted in step S117, the robot 200 performs a return operation in step S118. The return operation is performed by the controller 300, which instructs the return operation.

[0154] During the return operation, it is determined whether the robot 200 is currently within the preset operating range and whether the robot 200 has returned from the position after the posture change to the predetermined return position.

[0155] If the robot 200 is outside the set operating range, the controller 300 instructs the robot 200 to return to the point where the robot 200 was stopped in step S107 by reversing the trajectory of the movement in the posture change starting from the point where the robot 200's drive was stopped, and then return to the predetermined return position.

[0156] Since the movement trajectory during the pose change is recorded in the controller 300, the robot 200 can return to the predetermined return position by reversing the movement trajectory. A method similar to storing the trajectory of the pose change during direct teaching can be used to store the trajectory during the return operation. Returning to the predetermined return position by reversing the operation allows the robot to return along a trajectory where no object 400 is present, thus suppressing contact between the robot 200 and the objects 400 surrounding the robot 200.

[0157] Alternatively, the controller 300 may instruct the robot 200 to move to an operating range set along a calculated minimum path, and then return to a predetermined return position, which is closer to the point where the robot 200's drive stops and where there is no object 400 within the set operating range.

[0158] The controller 300 can determine whether the current position of the robot 200 is within the set operating range, and if the current position of the robot 200 is within the set operating range, the controller 300 can instruct the robot 200 to return from the current position to the predetermined return position.

[0159] During the return operation, the object detection sensor 311 detects the object 400. The object information processing unit 312 analyzes the acquired object information to calculate the distance between the robot 200 and the object 400, and supplies this distance to the posture change control unit 315 so that the robot 200 can reliably return to the predetermined return position.

[0160] If the data generation unit 313 and the contact determination unit 314 determine that the respective contact detection sensors 231 to 236 have not detected the second external force ("No" in step S109) or if the detected second external force has an amplitude F5 less than the second threshold ("No" in step S110), the process proceeds to step S119. In step S119, no posture change based on the external force is performed and the posture change of the robot 200 stops. Here, the user can appropriately set the second threshold according to the method used. To indicate to people around the robot 200 that the robot 200 is in any of the first, second, third, and fourth states, lights can be turned on or a display can be made on the operating device. The operating device is, for example, a teach pendant or an operating panel.

[0161] Steps S119 to S126 correspond to the process in step S6 of the second embodiment when no external force is continuously detected. In step S120, it is determined whether to use the operating device to perform any operation on the robot 200, which stopped changing its posture in step S119.

[0162] If it is determined that the operation device is used ("Yes" in step S120), the process proceeds to step S122. In step S122, the robot 200 switches from a second state of changing posture according to external force to a normal stop state. The normal stop state is a state in which no external force is applied to the robot 200 and the controller 300 may be in an erroneous state. In step S123, it is determined whether an external force was applied to the robot 200 in the normal stop state. If it is determined that an external force was applied to the robot 200 in the normal stop state ("Yes" in step S123), the process proceeds to step S124.

[0163] If the contact determination unit 314 determines in step S124 that the detected external force has an amplitude of F7 ("Yes" in step S124), the process proceeds to step S125. In step S125, the controller 300 is in an error state. In the error state, it is sufficient to indicate to people around the robot 200 that the controller 300 is in an error state. For example, an alarm can be sounded.

[0164] If the contact determination unit 314 determines in step S124 that the detected external force has an amplitude F8 ("No" in step S124), the process proceeds to step S126. In step S126, the controller 300 instructs the robot 200 to perform a return operation as shown in step S118.

[0165] Specifically, a threshold (fourth threshold) corresponding to the amplitude F9 of the external force is set, and based on whether the external force detected in step S123 is greater than, less than or equal to the threshold amplitude F9 as determined in step S124, the process proceeds to step S125 or step S126.

[0166] The threshold amplitude F9 is less than the amplitude F7 and greater than the amplitude F8 (F7>F9>F8). It can be appropriately set whether the processing proceeds to step S125 or step S126 when an external force equal to the threshold amplitude F9 is detected.

[0167] If it is determined that no operating device was used to operate the robot 200 ("No" in step S120), the process proceeds to... Figure 5B Step S121. In step S121, it is determined whether no external force was detected within a predetermined time period.

[0168] If the robot 200, whose posture has been stopped, does not detect external force for a period of time longer than a predetermined time period ("Yes" in step S121), then the process proceeds to the normal stop state in step S122.

[0169] If an external force is detected before the predetermined time period has elapsed (in step S121, this is "No"), the process returns to step S109. In step S109, the robot 200 switches to a second state that performs a posture change based on the external force.

[0170] If no external force is applied to the robot 200 ("No" in step S123) or if the detected external force has an amplitude F8 less than the fourth threshold ("No" in step S124), the process proceeds to step S126. In step S126, the controller 300 instructs the robot 200 to perform the return operation as shown in step S118. At this time, the fourth threshold can be appropriately set by the user according to the method used.

[0171] Fourth embodiment

[0172] Now refer to Figure 6 The fourth embodiment is described.

[0173] Figure 6 This is a flowchart illustrating the process of directly teaching robot 200.

[0174] ReferenceFigure 6 ,exist Figure 6 At the beginning of the flowchart, robot 200 is shut down and joint axes 201 to 206 are fixed.

[0175] In step S150, the robot 200 is powered on, but it is in a non-moving state. The non-moving state in step S150 means that the electric motor supports the robot 200's own weight. In other words, the non-moving state is the state in which the electric motor prevents the robot 200 from changing its posture due to the gravity applied to its components.

[0176] The state in which the electric motor supports the weight of the robot 200 and the robot 200 is in a non-moving state is called the first state.

[0177] In step S151, the object detection sensor 311 acquires information about the object 400 present in the movable area of ​​the robot 200. Here, the singularities of the robot 200 are also stored as object information.

[0178] In step S152, the data generation unit 313 and the contact determination unit 314 determine whether each contact detection sensor 231 to 236 detects an external force applied to the robot 200 in the first state.

[0179] If the data generation unit 313 and the contact determination unit 314 determine that the respective contact detection sensors 231 to 236 have not detected any external force, the controller 300 is set to determine that the robot 200 is not in contact with the object. This process corresponds to "No" in step S152. In this case, the process returns from step S152 to step S150. In step S150, the non-moving state continues.

[0180] If the data generation unit 313 and the contact determination unit 314 determine that each contact detection sensor 231 to 236 detects an external force applied to the robot 200 in the first state ("Yes" in step S152), the process proceeds to step S153. In step S153, the robot 200 is in a state where it can be directly taught by a person. A state where it can be directly taught is one in which the robot 200's posture can be changed by a person directly touching the robot 200, and the robot 200 performs a posture change based on the detected external force, and the path of the posture change is recorded. This state is called the second state.

[0181] In step S154, the posture change begins when an external force is applied to the robot 200 by a person.

[0182] After object 400 is detected in step S155, the process proceeds to step S156. In step S156, the object information processing unit 312 obtains the distance to the detected object 400. Here, the object information processing unit 312 calculates the distance between the robot 200 and the object 400, taking into account information such as the presence and size of the object 400, and adds the calculated distance to the object information obtained in step S151.

[0183] As in the third embodiment, in step S157, the object information processing unit 312 determines whether the distance between the robot 200 and the object 400 obtained in step S156 is greater than a predetermined distance greater than zero. It also determines whether the distance between the robot 200 and the singularities of the robot 200 is greater than a predetermined distance.

[0184] If the object information processing unit 312 determines that the distance between the robot 200 and the object 400, or the distance between the robot 200 and the singular point, is less than or equal to a predetermined distance and greater than zero ("No" in step S157), the process proceeds to step S160. In step S160, the controller 300 increases at least one of stiffness and viscosity, which are parameters in impedance control, to limit the posture change of the robot 200. The state in which posture change is limited is called the third state.

[0185] If the object information processing unit 312 determines that the distance between the robot 200 and the object 400 is greater than a predetermined distance ("Yes" in step S157), the processing returns to step S155. Repeating the process from step S155 to step S157 continuously updates information about objects present in the movable area of ​​the robot 200 to allow for pose changes. This allows contact between the robot 200 and the objects 400 surrounding the robot 200 to be suppressed.

[0186] After the posture change based on the external force begins in step S154, in step S158, the posture change control unit 315 acquires the speed of the posture change of the robot 200.

[0187] In step S159, the posture change control unit 315 determines whether the acquired speed exceeds a third threshold.

[0188] If the speed of the posture change is higher than the third threshold speed V1 ("Yes" in step S159), the process proceeds to step S160. In step S160, the controller 300 sets the parameters in the impedance control so that the load generated when the person presses the robot 200 gradually increases.

[0189] If the rate of attitude change is equal to or lower than the third threshold rate V2 ("No" in step S159), the process returns to step S158. In step S158, the attitude change control unit 315 acquires the attitude change rate again. The user can appropriately set the third threshold according to the method used.

[0190] Even if robot 200 collides with objects around robot 200 in the manner described above, it can prevent robot 200 from changing its posture too quickly and suppress contact between robot 200 and objects around robot 200.

[0191] The system 100 of the fourth embodiment is applicable to a manufacturing method performed in cooperation between the system 100 of the fourth embodiment and a manufacturer. This manufacturing method may include manufacturing steps, such as handling and moving of an article. The posture of the robot 200 can be changed by the manufacturer, who touches the robot 200 and applies external forces to it during these steps.

[0192] The system 100 of the fourth embodiment is also applicable to a manufacturing method in which the posture of the robot 200 changes when an external force is applied to the robot 200 holding the article, and the posture change of the robot 200 is restricted when the posture change has been completed and a preset target point has been reached.

[0193] Embodiments of this disclosure may include program 320 for causing a computer to manufacture robot 200. Embodiments of this disclosure may include a recording medium on which program 320 is recorded.

[0194] According to this disclosure, a technique can be provided that improves robot operation when an external force is detected applied to the robot.

[0195] Embodiments of the present invention can also be implemented as follows: a computer of a system or apparatus that reads and executes computer-executable instructions (e.g., one or more programs) recorded on a storage medium (which may also be more fully referred to as a "non-transitory computer-readable storage medium") to perform one or more functions in the above embodiments, and / or, the system or apparatus includes one or more circuits (e.g., application-specific integrated circuits (ASICs)) for performing one or more functions in the above embodiments; and a method executed by the computer of the system or apparatus, for example, reading and executing computer-executable instructions from a storage medium to perform one or more functions in the above embodiments, and / or controlling the one or more circuits to perform one or more functions in the above embodiments. The computer may include one or more A processor (e.g., a central processing unit (CPU), microprocessor unit (MPU)) may be included, and may comprise a separate computer or a network of separate processors, to read and execute the computer-executable instructions. The computer-executable instructions may be provided to the computer, for example, from a network or storage medium. The storage medium may include, for example, one or more of a hard disk, random access memory (RAM), read-only memory (ROM), memory of a distributed computing system, optical discs (such as compact optical discs (CD), digital versatile optical discs (DVD), or Blu-ray discs (BD)™), flash memory devices, and memory cards. The above embodiments may be appropriately modified within the technical spirit of this disclosure. For example, combinations of multiple embodiments may be available. Furthermore, some items in at least one embodiment may be deleted or replaced. Additionally, new items may be added to at least one embodiment.

[0196] The embodiments of the present invention can also be implemented by providing software (programs) that perform the functions of the above embodiments to a system or device via a network or various storage media, and the computer or central processing unit (CPU) or microprocessor unit (MPU) of the system or device reads out and executes the program.

[0197] Although the invention has been described with reference to exemplary embodiments, it should be understood that the invention is not limited to the disclosed exemplary embodiments. The scope of the appended claims should be interpreted in the broadest possible sense to cover all such variations and equivalent structures and functions.

[0198] The disclosure in this specification includes not only the matters expressly described in the specification, but also all matters that can be understood from the specification and the accompanying drawings. The disclosure in this specification supplements the various concepts described in the specification. Specifically, for example, when "A is greater than B" is described in the specification, the fact that "A is not greater than B" is disclosed even if "A is not greater than B" is not described. This is because the description of "A is greater than B" presupposes the situation where "A is not greater than B".

[0199] While the invention has been described with reference to exemplary embodiments, it should be understood that the invention is not limited to the disclosed exemplary embodiments. The scope of the following claims is to be given the broadest interpretation in order to cover all such modifications and equivalent structures and functions.

Claims

1. A robot system comprising: a robot; and a controller configured to control the robot, wherein the controller switches the robot from a first state to a second state based on detection of contact of an object with the robot, in the second state, a change in pose according to an external force applied to the robot is more permitted than in the first state, wherein the controller switches the robot from the second state to a third state after a change in pose according to the external force has started and while the external force is being applied to the robot, in the third state, a change in pose according to the external force is more restricted than in the second state, and wherein the controller switches the robot in the third state to a fourth state, in the fourth state, a change in pose according to the external force is more restricted than in the third state.

2. The robot system according to claim 1, if the robot is making a change in pose when the controller detects contact with the robot, the controller stops the robot from making the change in pose. wherein 3. The robot system according to claim 1 or 2, if an external force of a first magnitude is detected, the controller detects the contact, and wherein, wherein if an external force of a second magnitude less than the first magnitude is detected, the robot continues the first state.

4. The robot system according to claim 1 or 2, the robot makes a change in pose based on a teach operation, and makes a change in pose according to the external force between completion of the teach and switching from the second state to the third state. wherein 5. The robot system according to claim 1 or 2, if a distance between the robot and an object present in a movable region of the robot detected by an object detection sensor is a second distance less than a first distance and greater than zero, the controller switches the robot from the second state to the third state. wherein 6. The robot system according to claim 1 or 2, if a distance between the robot and a singularity of the robot is greater than a first distance, the controller continues a change in pose according to the external force, and if a distance between the robot and the singularity of the robot is a second distance less than the first distance and greater than zero, the controller switches the robot from the second state to the third state. wherein 7. The robot system according to claim 1 or 2, if the robot in the second state has made a change in pose according to the external force for at least one of a predetermined distance and a predetermined period of time, the controller switches the robot from the second state to the third state. wherein 8. The robot system according to claim 1 or 2, if the robot makes a change in pose according to the external force at a first speed, the controller switches the robot in the second state to a third state in which a change in pose according to the external force is more restricted than in the second state, and if the robot makes a change in pose according to the external force at a second speed slower than the first speed, the robot continues the second state. wherein, 9. The robot system according to claim 1 or 2, further comprising: a unit configured to indicate that the robot is in any one of the first state, the second state, and the third state.

10. The robot system according to claim 1, ​ wherein, While the robot is changing the posture according to the external force, the controller acquires information about an object existing in the movable region of the robot detected by the object detection sensor.

11. The robot system according to claim 1, wherein If the external force of the fourth amplitude is detected, the controller starts the posture change of the robot according to the external force, and if the external force of the fifth amplitude smaller than the fourth amplitude is detected, the controller maintains the posture of the robot.

12. The robot system according to claim 11, wherein If the external force is applied to the robot maintaining the posture, the posture change according to the external force is more restricted by the controller than in the second state.

13. The robot system according to claim 11, wherein, The controller includes: a unit that compares a value corresponding to the amplitude of the external force applied to the robot with a threshold value, and a unit that changes the threshold value between a value corresponding to the fourth amplitude and a value corresponding to the fifth amplitude.

14. The robot system according to claim 1, further comprising: an operation device configured to be connected to the controller, wherein the robot changes the posture based on an instruction of the operation device.

15. The robot system according to claim 1, wherein The controller includes a unit that indicates that the robot is changing the posture.

16. The robot system according to claim 1, wherein The controller instructs the robot to perform a return operation from a position after the change of the posture of the robot to a return position recorded in the controller.

17. A robot system comprising: a robot; and a controller configured to control the robot, wherein the controller reduces at least one of stiffness and viscosity in impedance control in the robot based on detection of contact of an object with the robot, wherein the robot performs a change of posture according to an external force, wherein, after the start of the change of posture according to the external force and while the external force is being applied to the robot, the controller increases at least one of the stiffness and the viscosity in the impedance control, and in a state where at least one of the stiffness and the viscosity in the impedance control has been increased, the controller further increases at least one of the stiffness and the viscosity in the impedance control.

18. The robot system according to claim 17, wherein As the robot gets closer to a singularity of the robot or an object existing in the movable region of the robot detected by the object detection sensor, the controller gradually increases at least one of the stiffness and the viscosity in the impedance control.

19. The robot system according to claim 18, wherein, While the robot is changing the posture according to the external force, the controller acquires information about an object existing in the movable region of the robot detected by the object detection sensor.

20. The robot system according to claim 18, further comprising: an operation device configured to be connected to the controller, wherein the robot changes the posture based on an instruction of the operation device.

21. The robot system according to claim 20, wherein, The robot gives a higher priority to the change of posture according to the external force than to a robot drive instruction using the operation device.

22. The robot system according to claim 18, wherein The controller includes a unit that indicates that the robot is changing the posture.

23. The robot system according to claim 18, wherein, the controller instructs the robot to perform a return operation from a position after the change in posture of the robot to a return position recorded in the controller.

24. The robot system according to claim 23, wherein the return operation includes an operation along a trajectory obtained by reversing the trajectory of the change in posture.

25. The robot system according to claim 23, wherein the controller updates information about an object present in a movable region of the robot during the return operation.

26. The robot system according to claim 23, wherein if the robot detects the seventh-magnitude external force in an error state when detecting the external force, the controller outputs an error, and if the robot detects an eighth-magnitude external force smaller than the seventh-magnitude, the controller instructs the robot to perform the return operation.

27. A robot system comprising: a robot; and wherein the robot changes posture in accordance with an external force applied to the robot after detecting contact of an object with the robot that is changing posture, wherein the change in posture in accordance with the external force applied to the robot is more restricted after the change in posture in accordance with the external force applied to the robot has started and while the external force is being applied to the robot than in a state in which the change in posture in accordance with the external force applied to the robot is being performed, and the change in posture in accordance with the external force applied to the robot is further restricted in the state in which the change in posture in accordance with the external force applied to the robot is restricted.

28. A method of manufacturing an article, the method comprising: manufacturing the article in cooperation between the robot and a manufacturer of the article using the robot system according to claim 1 or 27, wherein the contact is contact of the manufacturer of the article with the robot, and wherein the external force is applied to the robot by the manufacturer.

29. The method of manufacturing according to claim 28, wherein, after detecting contact of the manufacturer with the robot that is changing posture, the robot changes posture in accordance with an external force applied to the robot by the manufacturer, wherein the robot performs the change in posture in accordance with the external force, and wherein the robot is more restricted in changing posture in accordance with the external force applied to the robot while the external force is being applied to the robot than during the change in posture in accordance with the external force applied to the robot.

30. A method of controlling a robot, wherein based on detection of contact of an object with the robot, reducing at least one of stiffness and viscosity in impedance control in the robot, wherein at least one of stiffness and viscosity in impedance control is increased while the external force is being applied to the robot, and further increasing at least one of stiffness and viscosity in impedance control in the state in which at least one of stiffness and viscosity in impedance control has been increased.

31. The method of controlling a robot according to claim 30, wherein the controller switches the robot from a first state to a second state in which a change in posture in accordance with an external force applied to the robot is more permitted than in the first state by reducing at least one of stiffness and viscosity in impedance control in the robot based on detection of contact of an object with the robot, wherein the robot performs the change in posture in accordance with the external force, wherein, after the start of the posture change according to the external force and while the external force is being applied to the robot, the controller switches the robot from the second state to a third state in which the posture change according to the external force applied to the robot is more restricted than in the second state, by increasing at least one of the stiffness and the viscosity in the impedance control, based on the detection of the contact of the object with the robot, and wherein the controller switches the robot in the third state to a fourth state in which the posture change according to the external force applied to the robot is more restricted than in the third state, by increasing at least one of the stiffness and the viscosity in the impedance control.

32. A non-transitory recording medium recording a program which causes a computer to execute the method of controlling a robot according to claim 30 or 31.

Citation Information

Patent Citations

  • Human-robot cooperative system causing robot to evacuate according to external force

    JP2016153156A

  • Working robot and control method for working robot

    US20200147787A1

  • Methods and systems for providing feedback during teach mode

    US9592608B1