Processing device, robot system, end effector, and program
Patent Information
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Filing Date
- 2025-12-12
- Publication Date
- 2026-03-13
AI Technical Summary
Existing robotic systems face challenges in accurately detecting and controlling external forces acting on end effectors, including gravity and external forces, which affects the precision and efficiency of tasks such as pick and place operations.
A processing device equipped with a control unit that utilizes a sensor device to detect external forces by decomposing gravity components and estimating external forces through a force detection signal, allowing for precise control of end effectors based on these calculations.
Enhances the precision and efficiency of robotic tasks by accurately determining and controlling external forces, reducing the influence of temperature drift and allowing for real-time adjustment of holding forces, thereby improving the reliability and efficiency of robotic operations.
Abstract
Description
Processing device, robot system, end effector and program
[0001] The present disclosure relates to techniques for using sensor devices.
[0002] Patent Document 1 describes a technology related to a robot.
[0003] Japanese Patent Application Publication No. 7-205075
[0004] A processing device, a robot system, an end effector, and a program are disclosed. In one embodiment, the processing device includes a control unit that detects an external force acting on the end effector from a force detection signal output from a sensor device. The control unit has an acquisition unit. The acquisition unit acquires the external force acting on the end effector based on a plurality of first resolved components of the gravity of the end effector itself acting on the end effector in a first orientation that is an orientation when the sensor device is set to a reference position, a plurality of second resolved components of the gravity of the end effector itself acting on the end effector in a second orientation that is an orientation when the external force is acting on the end effector, and the force detection signal when the external force is acting on the end effector.
[0005] In one embodiment, a robot system includes the above-described processing device and a robot having an end effector controlled based on an external force acquired by the processing device.
[0006] In one embodiment, the end effector is an end effector that is controlled based on an external force acquired by the processing device.
[0007] In one embodiment, the program is a program for causing a computer device to function as the processing device.
[0008] FIG. 1 is a schematic diagram for explaining an example of a processing device. FIG. 1 is a schematic diagram showing an example of the configuration of a robot system. FIG. 2 is a schematic diagram showing an example of the configuration of a processing device. FIG. 3 is a flowchart showing an example of the operation of a processing device. FIG. 4 is a flowchart showing an example of the operation of a control system. FIG. 1 is a schematic diagram for explaining an example of the operation of a processing device. FIG. 2 is a schematic diagram showing an example of the configuration of a processing device. FIG. 3 is a schematic diagram showing an example of a holding posture of an end effector (holding mechanism).
[0009] FIG. 1 is a schematic diagram illustrating an example of a processing device 1. The processing device 1 receives, for example, a force detection signal 21 output by a sensor device 20 that detects a force acting on an end effector 12 whose posture changes. The sensor device 20 is fixed to the end effector 12, and the posture of the force sensor 20 changes in response to changes in the posture of the end effector 12. The sensor device 20 can detect a force acting on the end effector 12 from outside the end effector 12. Specifically, the sensor device 20 can detect an external force, including gravity, acting on the end effector 12. In other words, the sensor device 20 can detect gravity acting on the end effector 12 and external forces other than gravity acting on the end effector 12. The sensor device 20 outputs a force detection signal 21 indicating the detection result. The processing device 1 is capable of removing the influence of gravity acting on the end effector 12 contained in the force detection signal 21 from the force detection signal 21, and acquiring (in other words, estimating or calculating) the external force acting on the end effector 12 excluding gravity.
[0010] Hereinafter, when we say "force acting on an object," we mean external forces acting on that object, including gravity. Also, when we say "external force acting on an object," we mean external forces acting on that object, excluding gravity. An external force acting on an object can be said to be a force acting on that object from the outside, excluding gravity.
[0011] The end effector 12 may be, for example, a holding mechanism capable of holding an object (also referred to as a holding object). In this case, the sensor device 20 is capable of detecting a force acting on the holding mechanism. The end effector 12 may also be something other than a holding mechanism. For example, the end effector 12 may be a processing member at the tip of a machine tool. The end effector 12 may also be, for example, a member for tightening screws, a member for painting, a member for welding, or a member for cutting. The object may be, for example, an industrial product such as an electronic device or a screw, a food product such as a vegetable or bread, or a household item such as a diaper, a toothbrush, or a cup.
[0012] An example of the processing device 1 will be described below using the case where the end effector 12 is an end effector of a robot 10. Fig. 2 is a schematic diagram showing an example of the configuration of a robot system 100 including the processing device 1 and the robot 10.
[0013] 2, the robot system 100 includes, for example, a robot 10 and a control system 50 that controls the robot 10. The control system 50 can also be referred to as, for example, a control device or a controller.
[0014] <Example of Robot Configuration> The robot 10 is, for example, an arm-type robot. The robot 10 includes, for example, an arm 11, a holding mechanism serving as an end effector 12, and a sensor device 20. The end effector 12 is a holding mechanism that holds an object 80. The end effector 12 is connected to the arm 11. The end effector 12 has, for example, a plurality of fingers, and can grasp the object 80 with the plurality of fingers. The end effector 12 includes, for example, a motor that drives the plurality of fingers. The plurality of fingers can grasp the object 80 by being driven by the motor. Note that the end effector 12 may hold the object 80 by suction.
[0015] The arm 11 includes, for example, at least one joint. The arm 11 includes, for example, a motor that rotates the at least one joint. The arm 11 can change its posture. The posture of the end effector 12 changes in response to the change in posture of the arm 11.
[0016] The robot 10 performs a task of, for example, holding and moving an object 80. The robot 10 can move the object 80 by, for example, changing the posture of the arm 11 while holding the object 80 with the end effector 12. The robot 10 holds the object 80 placed on a work table 90 with the end effector 12. Next, the robot 10 moves the arm 11 to move the held object 80 from the work table 90 to a work table 91. The robot 10 then causes the end effector 12 to release the hold of the object 80 and place the object 80 on the work table 91. This type of task is sometimes called pick-and-place.
[0017] The work performed by the robot 10 is not limited to the above example. For example, the robot 10 may hold and move one object 80 at a time from a plurality of objects 80 that are piled up randomly. The robot 10 may also hold and turn over an object 80 on the work table 90, and then place the object 80 back on the work table 90.
[0018] The sensor device 20 is capable of detecting a force (also referred to as an acting force) acting on the end effector 12. The sensor device 20 repeatedly detects the acting force and repeatedly outputs a force detection signal 21 indicating the detection result of the acting force. The sensor device 20 is, for example, a force sensor 20. The acting force detected by the force sensor 20 includes gravity acting on the end effector 12 (also referred to as an acting gravity) and an external force acting on the end effector 12 (also referred to as an acting external force) detected by the force sensor 20. The force sensor 20 may be, for example, an electrical resistance type, a capacitance type, a piezoelectric type, or an optical type.
[0019] The force sensor 20 is located, for example, between the arm 11 and the end effector 12 and is fixed to the end effector 12. The relative posture relationship between the force sensor 20 and the end effector 12 is constant. The force sensor 20 can detect gravity acting on the end effector 12, for example, when the end effector 12 is not placed on a surface such as the ground but is in the air. The posture of the force sensor 20 changes in response to a change in the posture of the end effector 12. Because the posture of the end effector 12 changes in response to a change in the posture of the arm 11, the posture of the force sensor 20 changes in response to a change in the posture of the arm 11.
[0020] For example, an xyz Cartesian coordinate system is set in the force sensor 20. Hereinafter, the xyz Cartesian coordinate system set in the force sensor 20 will be referred to as the sensor coordinate system. Furthermore, the x-axis direction, y-axis direction, and z-axis direction of the sensor coordinate system will be referred to as the x-direction, y-direction, and z-direction, respectively.
[0021] The attitude of the sensor coordinate system changes in accordance with changes in the attitude of the force sensor 20. Since the attitude of the force sensor 20 changes in accordance with changes in the attitude of the end effector 12, the attitude of the sensor coordinate system changes in accordance with changes in the attitude of the end effector 12. Furthermore, since the attitude of the force sensor 20 changes in accordance with changes in the attitude of the arm 11, the attitude of the sensor coordinate system changes in accordance with changes in the attitude of the arm 11.
[0022] The force sensor 20 can detect, for example, the x-direction component of the acting force (also referred to as the acting force x-component), the y-direction component of the acting force (also referred to as the acting force y-component), and the z-direction component of the acting force (also referred to as the acting force z-component). Hereinafter, the acting force x-component detected by the force sensor 20 will be referred to as the detected acting force x-component. Also, the acting force y-component detected by the force sensor 20 will be referred to as the detected acting force y-component. Also, the acting force z-component detected by the force sensor 20 will be referred to as the detected acting force z-component. The force detection signal 21 output from the force sensor 20 indicates the detected acting force x-component, the detected acting force y-component, and the detected acting force z-component.
[0023] The force sensor 20 can detect, for example, the x-direction component of acting gravity (also referred to as the acting gravity x-component), the y-direction component of acting gravity (also referred to as the acting gravity y-component), and the z-direction component of acting gravity (also referred to as the acting gravity z-component). Hereinafter, the acting gravity x-component detected by the force sensor 20 will be referred to as the detected acting gravity x-component. Also, the acting gravity y-component detected by the force sensor 20 will be referred to as the detected acting gravity y-component. Also, the acting gravity z-component detected by the force sensor 20 will be referred to as the detected acting gravity z-component.
[0024] The force sensor 20 can detect, for example, the x-direction component of an acting external force (also referred to as the acting external force x-component), the y-direction component of an acting external force (also referred to as the acting external force y-component), and the z-direction component of an acting external force (also referred to as the acting external force z-component). Hereinafter, the acting external force x-component detected by the force sensor 20 will be referred to as the detected acting external force x-component. Also, the acting external force y-component detected by the force sensor 20 will be referred to as the detected acting external force y-component. Also, the acting external force z-component detected by the force sensor 20 will be referred to as the detected acting external force z-component.
[0025] The detectable action force x-component includes a detectable action gravity x-component and a detectable action external force x-component. If the force sensor 20 does not detect the x-direction component of the action gravity, the detectable action gravity will be zero. Also, if the force sensor 20 does not detect the x-direction component of the action external force, the detectable action external force will be zero. The detectable action force y-component includes a detectable action gravity y-component and a detectable action external force y-component, and the detectable action force z-component includes a detectable action gravity z-component and a detectable action external force z-component.
[0026] In this example, reference setting is performed to adjust the reference point of the force detection signal 21. For example, the force sensor 20 performs reference setting in response to an execution instruction from the processing device 1. Reference setting is also called reference point setting, which sets the reference point of the force detection signal 21. Reference setting is also called offset, for example. In reference setting, for example, the reference points of the detected action force x component, the detected action force y component, and the detected action force z component are adjusted (in other words, set). The force detection signal 21 after reference setting indicates the detected action force x component after reference setting, the detected action force y component after reference setting, and the detected action force z component after reference setting. The reference point is also called a zero point, for example, and reference setting is also called zero point setting or zero point adjustment, for example.
[0027] In the reference setting, the detected x-component, y-component, and z-component of the action force at the time of the reference setting are set to the reference point. Here, the detected x-component, y-component, and z-component of the action force set to the reference point, i.e., the detected x-component, y-component, and z-component of the action force at the time of the reference setting, are referred to as the x-component adjustment value, the y-component adjustment value, and the z-component adjustment value, respectively.
[0028] The value obtained by subtracting the x-component adjustment value from the detected action force x-component is the detected action force x-component after the reference is set. Similarly, the value obtained by subtracting the y-component adjustment value from the detected action force y-component is the detected action force y-component after the reference is set. Similarly, the value obtained by subtracting the z-component adjustment value from the detected action force z-component is the detected action force z-component after the reference is set. Hereinafter, a detected action force x-component that does not begin with "after the reference is set" does not mean the detected action force x-component after the reference is set, but the original detected action force x-component when no reference is set. The same applies to the detected action force y-component and the detected action force z-component.
[0029] The detected action force x component after the reference setting indicates the amount of change in the detected action force x component (i.e., the original detected action force x component when the reference setting is not performed) from the time of the reference setting. The detected action force x component after the reference setting includes the amount of change in the detected action gravity x component from the time of the reference setting.
[0030] The detected action force y-component after the reference setting indicates the amount of change in the detected action force y-component since the reference setting. The detected action force y-component after the reference setting includes the amount of change in the detected action gravity y-component since the reference setting was performed.
[0031] The detected action force z component after the reference setting indicates the amount of change in the detected action force z component since the reference setting. The detected action force z component after the reference setting includes the amount of change in the detected action gravity z component since the reference setting was performed.
[0032] When the reference is set again after the reference was set, the detected x-component, y-component, and z-component of the action force at the time of the new reference setting are set to a new reference point. That is, the detected x-component, y-component, and z-component of the action force at the time of the new reference setting are set as the x-component adjustment value, y-component adjustment value, and z-component adjustment value, respectively, and the x-component adjustment value, y-component adjustment value, and z-component adjustment value are subtracted from the detected x-component, y-component, and z-component of the action force, respectively.
[0033] Offsets contained in the detected action force x-component, the detected action force y-component, and the detected action force z-component are removed by setting the reference for the force detection signal 21. Furthermore, repeated reference setting can reduce temperature drifts appearing in the detected action force x-component, the detected action force y-component, and the detected action force z-component.
[0034] <Configuration Example of Control System> The control system 50 that controls the robot 10 includes, for example, a main controller 60 and a processing device 1. The processing device 1 functions as a controller 1 that controls the end effector 12, for example.
[0035] The main controller 60 is, for example, a control device that manages the overall operation of the robot 10. The main controller 60 is also called, for example, a robot controller. The main controller 60 is capable of controlling the arm 11. The main controller 60 is also capable of controlling the end effector 12 through the processing device 1. The main controller 60 can also be called a processing device.
[0036] The processing device 1 can control the holding of the object 80 by the end effector 12. The processing device 1 can cause the end effector 12 to hold the object 80 or release the hold of the object 80. The processing device 1 can also control the holding force of the object 80 by the end effector 12. In this example, since the end effector 12 grips the object 80, it can also be said that the processing device 1 can control the gripping force of the object 80 by the end effector 12. The processing device 1 can adjust the holding force of the object 80 by adjusting the spacing between the multiple fingers of the end effector 12 that hold the object 80.
[0037] <Configuration example of processing device> Fig. 3 is a schematic diagram showing an example of the configuration of the processing device 1. The processing device 1 is, for example, a computer device. As shown in Fig. 3, the processing device 1 includes, for example, a control unit 2, a storage unit 3, an interface 4, an interface 5, and an interface 6. The processing device 1 can also be said to be, for example, a processing circuit.
[0038] The interface 6 is capable of communicating with the main controller 60. The interface 6 may communicate with the main controller 60 via wired or wireless communication. The interface 6 may also be referred to as, for example, an interface circuit, a communication unit, or a communication circuit. Instructions and notifications given by the main controller 60 to the processing device 1 are input to the control unit 2 via the interface 6. The control unit 2 can also send notifications to the main controller 60 via the interface 6.
[0039] The interface 4 is capable of communicating with the force sensor 20. The interface 4 may communicate with the force sensor 20 via wired or wireless communication. The interface 4 may also be referred to as, for example, an interface circuit, a communication unit, or a communication circuit. The force detection signal 21 received by the interface 4 from the force sensor 20 is input to the control unit 2.
[0040] The interface 5 can drive the end effector 12 in response to an instruction from the control unit 2. The interface 5 can also be referred to as, for example, an interface circuit or a drive circuit. The interface 5 can drive, for example, a motor provided in the end effector 12.
[0041] The control unit 2 can generally manage the operation of the processing device 1 by controlling the other components of the processing device 1. The control unit 2 can also be referred to as a control circuit, for example. The control unit 2 includes at least one processor to provide control and processing power for performing various functions, as described in more detail below.
[0042] According to various embodiments, the at least one processor may be implemented as a single integrated circuit (IC) or as multiple communicatively connected integrated circuits ICs and / or discrete circuits. The at least one processor may be implemented according to various known techniques.
[0043] In one embodiment, a processor includes one or more circuits or units configured to perform one or more data computational procedures or processes, for example, by executing instructions stored in associated memory. In other embodiments, a processor may be firmware (e.g., discrete logic components) configured to perform one or more data computational procedures or processes.
[0044] According to various embodiments, the processor may include one or more processors, controllers, microprocessors, microcontrollers, application specific integrated circuits (ASICs), digital signal processors, programmable logic devices, field programmable gate arrays, or any combination of these devices or configurations, or other known devices and configurations, to perform the functions described below.
[0045] The control unit 2 may include, for example, a CPU (Central Processing Unit) as a processor. The storage unit 3 may include a non-transitory recording medium readable by the CPU of the control unit 2, such as a ROM (Read Only Memory) and a RAM (Random Access Memory). The storage unit 3 stores, for example, a program 300 for controlling the processing device 1. Various functions of the control unit 2 are realized, for example, by the CPU of the control unit 2 executing the program 300 in the storage unit 3.
[0046] The configuration of the control unit 2 is not limited to the above example. For example, the control unit 2 may include multiple CPUs. The control unit 2 may also include at least one DSP (Digital Signal Processor). All or some of the functions of the control unit 2 may be realized by a hardware circuit that does not require software to realize the function. The storage unit 3 may also include a computer-readable non-transitory recording medium other than ROM and RAM. The storage unit 3 may also include, for example, a small hard disk drive or SSD (Solid State Drive).
[0047] The main controller 60 may have the same configuration as the processing device 1. For example, the main controller 60 may have a control unit similar to the control unit 2, a storage unit similar to the storage unit 3, an interface for communicating with the processing device 1, and an interface for driving the arm 11.
[0048] <Example of Processing to Estimate Acting External Force> The control unit 2 executes external force estimation processing to estimate an acting external force based on the force detection signal 21. The external force estimation processing can also be said to be processing to detect an external force acting on the end effector 12 from the force detection signal 21. The control unit 2 is capable of detecting the acting external force from the force detection signal 21. The control unit 2 controls the holding force of the end effector 12 to hold the object 80, based on the acting external force estimated in the external force estimation processing.
[0049] When the CPU of the control unit 2 executes the program 300 in the storage unit 3, for example, a holding control unit 200 and an acquisition unit 250 are formed as functional blocks in the control unit 2. The holding control unit 200 controls the holding of the object 80 by the end effector 12 through the interface 5. The acquisition unit 250 estimates (in other words, detects) the applied external force from the force detection signal 21 received by the interface 4.
[0050] The acquisition unit 250 includes, for example, a first estimation unit 210 and a second estimation unit 220. The first estimation unit 210 estimates (in other words, calculates) the detection result of the acting gravity detected by the force sensor 20 when the reference is set. The second estimation unit 220 estimates (in other words, calculates) the acting external force based on the force detection signal 21 after the reference is set and the estimation result by the first estimation unit 210, etc.
[0051] Note that all or some of the functions of the holding control unit 200 may be realized by a hardware circuit that does not require software to realize the function. The same applies to the acquisition unit 250, the first estimating unit 210, and the second estimating unit 220.
[0052] Fig. 4 is a flowchart showing an example of the operation of the control unit 2. As shown in Fig. 4, after the calibration process in step s1 is executed, the external force estimation process in step s2 is executed. The calibration process can also be considered as a preparatory process for estimating the acting external force.
[0053] In step s11 of the calibration process, the control unit 2 instructs the force sensor 20 to perform reference setting via the interface 4. The control unit 2 instructs the force sensor 20 to perform reference setting when no external force is acting on the end effector 12. As a result, reference setting is performed when no external force is acting on the end effector 12. The force sensor 20, having received the execution instruction from the control unit 2, performs reference setting. After performing reference setting, the force sensor 20 outputs a force detection signal 21 after reference setting. Hereinafter, the attitude of the end effector 12 when reference setting is performed, in other words, the attitude of the end effector 12 when the control unit 2 instructs the force sensor 20 to perform reference setting, will be referred to as the reference setting attitude or first attitude. The reference setting attitude is not limited to a specific attitude and may be any attitude.
[0054] After step s11, in step s12, the first estimation unit 210 estimates a first detection result of the acting gravity component detected by the force sensor 20 when the reference is set. In other words, the first estimation unit 210 estimates a first detection result of the acting gravity component detected by the force sensor 20 when the end effector 12 is in a reference-set posture and no external force is acting on it. The first detection result includes a detected acting gravity x-component, a detected acting gravity y-component, and a detected acting gravity z-component. The first estimation unit 210 estimates the first detection result by calculating first predicted values of the detected acting gravity x-component, the detected acting gravity y-component, and the detected acting gravity z-component when the reference is set.
[0055] The first estimation unit 210 estimates the first detection result based on the reference setting posture of the end effector 12, the weight of the end effector 12, and the gravitational acceleration. That is, the first estimation unit 210 calculates first predicted values of the detected acting gravity x-component, the detected acting gravity y-component, and the detected acting gravity z-component based on the reference setting posture, the weight of the end effector 12, and the gravitational acceleration.
[0056] Here, the x-direction, y-direction, and z-direction of the sensor coordinate system at the time of reference setting are referred to as the reference setting x-direction, the reference setting y-direction, and the reference setting z-direction, respectively. The first estimator 210 determines the reference setting x-direction component of gravity acting on the end effector 12 based on the weight of the end effector 12 and the gravitational acceleration, and sets the determined value as the predicted value of the detected acting gravity x-component. The first estimator 210 also determines the reference setting y-direction component of gravity acting on the end effector 12 based on the weight of the end effector 12 and the gravitational acceleration, and sets the determined value as the predicted value of the detected acting gravity y-component. The first estimator 210 also determines the reference setting z-direction component of gravity acting on the end effector 12 based on the weight of the end effector 12 and the gravitational acceleration, and sets the determined value as the predicted value of the detected acting gravity z-component.
[0057] The first predicted values of the detected action gravity x component, detected action gravity y component, and detected action gravity z component obtained by the first estimation unit 210 can be said to be multiple first decomposed components of the gravity of the end effector 12 itself acting on the end effector 12 in the reference setting posture (in other words, the first posture).
[0058] Information regarding the weight and gravitational acceleration of the end effector 12 is stored in advance in the storage unit 3. The first estimator 210 can recognize the reference-setting posture of the end effector 12. For example, consider a case where an acceleration sensor that detects the posture of the end effector 12 is provided in the end effector 12. In this case, the first estimator 210 acquires the detection result from the acceleration sensor in step s12, for example, and identifies the current posture of the end effector 12 based on the acquired detection result. Then, the first estimator 210 uses the identified posture as the reference-setting posture.
[0059] Furthermore, the first estimator 210 may be notified of the current posture of the end effector 12 by the main controller 60 that controls the posture of the arm 11. In this case, for example, the main controller 60 repeatedly identifies the current posture of the end effector 12 and repeatedly notifies the processing device 1 of the identified current posture. The main controller 60 that controls the arm 11 can identify the current posture of the end effector 12, for example, based on the current posture of the arm 11. The first estimator 210 uses the current posture of the end effector 12 that the main controller 60 notifies the processing device 1 of in step s12 as the reference setting posture.
[0060] When step s12 is executed and the calibration process is completed, the external force estimation process is executed. The external force estimation process may be executed immediately after the calibration process is executed, or may be executed some time after the calibration process is executed. Furthermore, the external force estimation process may be executed multiple times after the calibration process.
[0061] In the external force estimation process, first, in step s21, the second estimation unit 220 acquires the force detection signal 21 after the reference is set and output by the force sensor 20. Also in step s21, the second estimation unit 220 estimates a second detection result of the acting gravity currently detected by the force sensor 20. Here, the posture of the end effector 12 when the external force estimation process is executed is referred to as the external force estimation posture or second posture. The external force estimation posture is the posture of the end effector 12 after the reference is set.
[0062] In step s21, the second estimation unit 220 can be said to estimate the second detection result of the acting gravity detected by the force sensor 20 when the end effector 12 is in the external force estimation posture. Alternatively, the second estimation unit 220 can be said to estimate the second detection result of the acting gravity detected by the force sensor 20 when the external force estimation process is executed (also referred to as when estimating the external force). Alternatively, the second estimation unit 220 can be said to estimate the second detection result of the acting gravity detected by the force sensor 20 when estimating the acting external force.
[0063] The external force estimation posture is not limited to a specific posture and may be any posture. The external force estimation posture may be the same as the reference setting posture or may be different from the reference setting posture.
[0064] The second detection result includes a detected action gravity x-component, a detected action gravity y-component, and a detected action gravity z-component. The second estimation unit 220 estimates the current second detection result of the force sensor 20 by determining second predicted values of the current detected action gravity x-component, detected action gravity y-component, and detected action gravity z-component of the force sensor 20. In other words, the second estimation unit 220 estimates the second detection result at the time of external force estimation by determining second predicted values of the detected action gravity x-component, detected action gravity y-component, and detected action gravity z-component at the time of external force estimation.
[0065] The second estimator 220 estimates a second detection result at the time of external force estimation based on the orientation of the end effector 12 at the time of external force estimation, the weight of the end effector 12, and the gravitational acceleration. That is, the second estimator 220 calculates second predicted values of the detected acting gravity x-component, the detected acting gravity y-component, and the detected acting gravity z-component at the time of external force estimation based on the orientation of the end effector 12 at the time of external force estimation, the weight of the end effector 12, and the gravitational acceleration. In step s21, the second estimator 220 may identify the current orientation of the end effector 12 based on the detection result of an acceleration sensor provided in the end effector 12 and use the identified orientation as the orientation at the time of external force estimation. Alternatively, in step s21, the second estimator 220 may use the current orientation of the end effector 12 notified by the main controller 60 as the orientation at the time of external force estimation. The method for calculating the second predicted values of the detected action gravity x component, the detected action gravity y component, and the detected action gravity z component is the same as the method for calculating the first predicted values of the detected action gravity x component, the detected action gravity y component, and the detected action gravity z component in step S12.
[0066] The second predicted values of the detected action gravity x component, detected action gravity y component, and detected action gravity z component obtained by the second estimation unit 220 can be said to be multiple second decomposed components of the gravity of the end effector 12 itself acting on the end effector 12 in the posture at the time of external force estimation (in other words, the second posture).
[0067] After step s21, in step s22, the second estimator 220 estimates the acting external force currently acting on the end effector 12. In other words, the second estimator 220 estimates the acting external force acting on the end effector 12 in the posture at the time of external force estimation. In further words, the second estimator 220 estimates the acting external force acting on the end effector 12 at the time of external force estimation. The second estimator 220 estimates the acting external force currently acting on the end effector 12 based on the force detection signal 21 acquired in step s21, the estimated second detection result, and the first detection result estimated by the first estimator 210 in step s12. For example, the second estimator 220 predicts the acting external force by calculating predicted values of the x-direction component, the y-direction component, and the z-direction component of the acting external force currently acting on the end effector 12. The second estimation unit 220 can also be said to estimate the external force acting on the end effector 12 in the posture at the time of external force estimation based on the force detection signal 21 when the end effector 12 is in the posture at the time of external force estimation, the estimated second detection result, and the first detection result estimated in step s12.
[0068] Here, the first detection result estimated by the first estimation unit 210, i.e., the first predicted values of the detected action gravity x-component, the detected action gravity y-component, and the detected action gravity z-component (in other words, the multiple first resolved components), are respectively designated as Fg1x, Fg1y, and Fg1z. Also, the second detection result estimated by the second estimation unit 220, i.e., the second predicted values of the detected action gravity x-component, the detected action gravity y-component, and the detected action gravity z-component (in other words, the multiple second resolved components), are respectively designated as Fg2x, Fg2y, and Fg2z. Also, the detected action force x-component, the detected action force y-component, and the detected action force z-component after reference setting, indicated by the force detection signal 21 acquired in step s21, are respectively designated as Fmx, Fmy, and Fmz. The predicted values of the x-direction component, y-direction component, and z-direction component of the external force currently acting on the end effector 12 are set to Fox, Foy, and Foz, respectively.
[0069] The second estimation unit 220 calculates Fox, Foy, and Foz using the following equation (1).
[0070]
[0071] Fmx includes the amount of change in the currently detected acting gravity x-component since the reference setting. Therefore, the value obtained by adding Fmx to the first predicted value Fg1x of the detected acting gravity x-component at the reference setting includes a value equivalent to the currently detected acting gravity x-component and the x-direction component of the currently acting external force. Therefore, the value obtained by subtracting the second predicted value Fg2x of the currently detected acting gravity x-component from the value obtained by adding Fmx to Fg1x corresponds to the x-direction component of the currently acting external force (in other words, the acting external force acting on the end effector 12 during external force estimation). In other words, (Fg1x + Fmx - Fg2x) can be said to be the predicted value Fox of the x-direction component of the currently acting external force.
[0072] Similarly, the value obtained by subtracting the second predicted value Fg2y of the currently detected acting gravity y-component from the value obtained by adding Fg1y and Fmy corresponds to the y-component of the currently acting external force. In other words, (Fg1y + Fmy - Fg2y) can be said to be the predicted value Foy of the y-component of the currently acting external force.
[0073] Similarly, the value obtained by subtracting the second predicted value Fg2z of the currently detected acting gravity z-component from the value obtained by adding Fmz to Fg1z corresponds to the z-component of the currently acting external force. In other words, (Fg1z + Fmz - Fg2z) can be said to be the predicted value Foz of the z-component of the currently acting external force.
[0074] In this way, by adding the predicted value of the first detection result of the acting gravity at the time of setting the reference to the force detection signal 21 after setting the reference and subtracting the predicted value of the second detection result of the acting gravity after setting the reference, the influence of the acting gravity can be removed from the force detection signal 21 after setting the reference. This makes it possible to estimate the acting external force. In other words, it is possible to acquire the acting external force. Note that the x-direction component, y-direction component, and z-direction component of the acting external force may be acquired as the acting external force, or the magnitude of the acting external force (a combined value of the x-direction component, y-direction component, and z-direction component), which will be described later, may be acquired as the acting external force.
[0075] In the case where there are multiple types of end effectors 12 and weights corresponding to the respective types of end effectors 12 are stored in the storage unit 3, the first estimating unit 210 may read out the weight corresponding to the type of end effector 12 currently being controlled from the storage unit 3 and use it in step s12. In this case, for example, effector type information indicating the type of end effector 12 currently equipped to the robot 10 is stored in the storage unit 3. The first estimating unit 210 can identify the type of end effector 12 currently equipped to the robot 10 based on the effector type information in the storage unit 3. The type of end effector 12 currently equipped to the robot 10 may also be notified to the processing device 1 from the main controller 60.
[0076] Furthermore, posture identification information for identifying the posture at the time of setting the reference may be stored in the storage unit 3. In this case, the first estimation unit 210 may use the posture identification information in the storage unit 3 to execute step s12 at a timing different from the timing at which the reference was set, unlike the example in Fig. 4. For example, the first estimation unit 210 may execute step s12 some time after the reference was set.
[0077] The calibration process and external force estimation process shown in Fig. 4 can be executed in various situations. Fig. 5 is a flowchart showing an example of the operation of the control system 50 when the calibration process and external force estimation process are executed when the robot 10 performs pick-and-place on an object 80 on a work table 90.
[0078] 5, in step s51, the main controller 60 of the control system 50 controls the movement of the arm 11 to move the end effector 12 to an initial position. The initial position is set, for example, above the object 80 on the work table 90.
[0079] Next, in step s52, the main controller 60 controls the movement of the arm 11 to bring the end effector 12 closer to the object 80 on the work table 90. Specifically, the main controller 60 controls the movement of the arm 11 to bring the end effector 12 closer to the object 80 so that the object 80 is positioned between the multiple fingers of the end effector 12. Then, in step s53, the main controller 60 issues an instruction to the processing device 1 to cause the end effector 12 to hold the object 80 (also referred to as a holding execution instruction).
[0080] Upon receiving the holding execution instruction, the processing device 1 executes the above-described step s1 to perform the calibration process. As a result, before the holding control unit 200 causes the end effector 12 to hold the object 80, the reference is set and the first detection result of the acting gravity at the time of the reference setting is estimated.
[0081] After step s1, in step s61, the holding control unit 200 controls the end effector 12 to hold the object 80 with a constant holding force. When the object 80 is held by the end effector 12, in step s62, the processing device 1 sends a holding completion notification to the main controller 60 to notify that the end effector 12 has completed holding the object 80.
[0082] In step s54, the main controller 60, having received the holding completion notification, causes the robot 10 to start moving the object 80 held by the end effector 12 to the work table 91. The main controller 60 controls the movement of the arm 11 to cause the robot 10 to move the object 80 to the work table 91. When moving the object 80 on the work table 90 to the work table 91, the robot 10 first lifts the object 80 from the work table 90. Thereafter, the robot 10 moves the lifted object 80 to the work table 91.
[0083] In the processing device 1, after step s62, the above-described step s2 is executed to execute the external force estimation process. By executing the external force estimation process, the external force currently acting on the end effector 12 is estimated. The processing device 1 repeatedly executes the external force estimation process from the time the robot 10 lifts the object 80 from the work table 90 until the object 80 separates from the work table 90. As a result, the second estimating unit 220 estimates the acting external force acting on the end effector 12 multiple times from the time the object 80 is held by the end effector 12 until the object 80 is lifted. In other words, the second estimating unit 220 estimates the acting external force acting on the end effector 12 at each of multiple timings from the time the object 80 is held by the end effector 12 until the object 80 is lifted. The second estimation unit 220 uses the first detection result estimated in the calibration process immediately after step s53 in each of the multiple external force estimation processes performed from the time the object 80 is held by the end effector 12 until the object 80 is lifted.
[0084] Each time the second estimating unit 220 executes the external force estimation process, it determines in step s63 whether or not the robot 10 has completed lifting the object 80. When the second estimating unit 220 determines that the robot 10 has completed lifting the object 80 (YES in step s63), in other words, when it determines that the object 80 has left the work table 90, it ends the repeated execution of the external force estimation process.
[0085] The holding control unit 200 may control the holding force of the end effector 12 on the object 80 based on the acting external force estimated by the second estimating unit 220 while the object 80 is being lifted after the object 80 is held by the end effector 12. In other words, the holding control unit 200 may control the holding force of the end effector 12 on the object 80 based on the acting external force repeatedly estimated by the second estimating unit 220 after step s61 is executed until a YES determination is made in step s63. Hereinafter, the term "holding force" simply refers to the holding force of the end effector 12 on the object 80.
[0086] Fig. 6 is a schematic diagram illustrating an example of holding force control by the holding control unit 200. The graph shown in the upper part of Fig. 6 is a graph illustrating an example of how the magnitude of the external force acting on the end effector 12 changes from when the object 80 is held by the end effector 12 until the object 80 is lifted. The graph shown in the lower part of Fig. 6 is a graph illustrating an example of how the holding force is controlled from when the object 80 is held by the end effector 12 until the object 80 is lifted. In this example, it is assumed that from when the object 80 is held by the end effector 12 until the object 80 is lifted, only the external force due to the weight of the object 80 held by the end effector 12 and gravity act on the end effector 12.
[0087] 6 , before the object 80 is held by the end effector 12 and attempted to be lifted, no external force other than gravity acts on the end effector 12, and the magnitude of the acting external force (i.e., a force acting from the outside on the end effector 12, excluding gravity) is zero. Then, in this example, when the robot 10 attempts to lift the object 80 away from the work table 90, that is, when the robot 10 starts the operation of lifting the object 80, the magnitude of the acting external force gradually increases. Thereafter, when the lifting of the object 80 is completed, that is, when the object 80 is separated from the work table 90, the magnitude of the acting external force becomes constant.
[0088] Each time the second estimating unit 220 executes the external force estimation process, it calculates the magnitude of the acting external force estimated by the external force estimation process. In this example, the magnitude of the resultant vector of the predicted values of the x-direction component, y-direction component, and z-direction component of the acting external force calculated by the external force estimation process becomes the magnitude of the acting external force estimated by the external force estimation process. When the magnitude of the acting external force estimated by the repeatedly executed external force estimation process gradually increases and becomes constant, the second estimating unit 220 determines that lifting of the object 80 is complete (YES in step s63) and ends the repeated execution of the external force estimation process.
[0089] 6, for example, while the object 80 is being held by the end effector 12 and then lifted, the holding control unit 200 may gradually increase the holding force in accordance with a gradual increase in the magnitude of the acting external force estimated by the second estimating unit 220. This makes it less likely that the object 80 will fall off the end effector 12 when the robot 10 lifts the object 80 held by the end effector 12.
[0090] The posture of the end effector 12 when holding the object 80 is not limited to a specific posture and may be any posture. Furthermore, the posture of the end effector 12 when the robot 10 lifts the object 80 held by the end effector 12 is not limited to a specific posture and may be any posture.
[0091] After step s54 is executed and movement of the object 80 starts, in step s55 the main controller 60 causes the robot 10 to move the object 80 to the work table 91, and step s56 is executed. In step s56, the main controller 60 issues an instruction to the processing device 1 to release the end effector 12 from holding the object 80 (also referred to as a holding release instruction).
[0092] In the processing device 1 that has received the hold release instruction, in step s64, the hold control unit 200 causes the end effector 12 to release the hold of the target object 80. This completes the pick-and-place operation.
[0093] When a new object 80 is placed on the work table 90, the control system 50 executes the series of processes shown in Fig. 5 to cause the robot 10 to pick and place the new object 80. Thereafter, the robot system 100 operates in the same manner every time a new object 80 is placed on the work table 90.
[0094] Even when the robot 10 holds multiple objects 80 piled up randomly on the work table 90 and moves them one by one to the work table 90, the control system 50 can operate in the same manner as in the example of FIG. 5 . In this case, for example, the robot system 100 includes a camera that captures the multiple objects 80 piled up randomly. In step s52, the main controller 60 determines an object 80 to be used as a work target from among the multiple objects 80 piled up randomly based on a camera image acquired by the camera. Next, the main controller 60 determines, based on the camera image, the direction from which the end effector 12 should approach the object 80 determined as the work target. That is, the main controller 60 determines, based on the camera image, the approach direction of the end effector 12 with respect to the object 80 determined as the work target. By determining the approach direction of the end effector 12, a holding posture in which the end effector 12 approaches and holds the object 80 is determined. Then, the main controller 60 controls the movement of the arm 11 to move the end effector 12 toward the target object 80 from the determined approach direction. Thereafter, steps s53, s1, and s61 are executed, and the end effector 12 holds the target object 80. Thereafter, the control system 50 operates in the same manner.
[0095] The external force estimation process may be repeatedly executed from when the end effector 12 holds the object 80 until the object 80 moves and the end effector 12 releases its hold on the object 80. In this case, step s63 does not need to be executed. Furthermore, in this case, the holding control unit 200 may control the holding force of the end effector 12 on the object 80 based on the acting external force estimated by the second estimator 220 from when the end effector 12 holds the object 80 until the end effector 12 releases its hold on the object 80. When the external force estimation process is repeatedly executed while the end effector 12 is moving the object 80, the second posture in the external force estimation process (in other words, the posture at the time of external force estimation) may change due to a change in the posture of the end effector 12 while the object 80 is moving. In other words, the external force estimation process may be repeatedly executed when the posture of the end effector 12 changes.
[0096] As described above, in this example, the acquisition unit 250 acquires the external force acting on the end effector 12 based on the multiple first resolved components of the gravity of the end effector 12 itself acting on the end effector 12 in the reference setting posture (in other words, the first posture), the multiple second resolved components of the gravity of the end effector 12 itself acting on the end effector 12 in the posture when an external force is applied (in other words, the second posture), and the force detection signal 21 when an external force is applied to the end effector 12. This allows the processing device 1 to appropriately acquire the external force acting on the end effector 12 (i.e., a force acting from outside the end effector 12, excluding gravity). This improves the convenience of the processing device 1.
[0097] Furthermore, in this example, since the reference setting posture and external force estimation posture of the end effector 12 are not limited to specific postures, the processing device 1 can acquire the external force acting on the end effector 12 without being restricted by the posture of the end effector 12.
[0098] Furthermore, in this example, regardless of the orientation of the end effector 12 at the time of reference setting, the external force acting on the end effector 12 after reference setting can be acquired, and therefore the processing device 1 can repeatedly set the reference without being restricted by the orientation of the end effector 12, thereby reducing the influence of temperature drift appearing in the detection results of the force sensor 20. As a result, for example, if the end effector 12 is the end effector 12 of a robot 10, the reference can be repeatedly set without interrupting the work of the robot 10, thereby reducing the influence of temperature drift appearing in the detection results of the force sensor 20. This can improve the work efficiency of the robot 10.
[0099] Furthermore, as in this example, the holding control unit 200 controls the holding force of the object 80 at the end effector 12 based on the acting external force estimated by the second estimation unit 220 while the object 80 is held by the end effector 12, thereby making it less likely that the object 80 will fall from the end effector 12.
[0100] Furthermore, in this example, when the processing device 1 receives a holding execution instruction from the main controller 60, the reference setting is performed before the holding control unit 200 causes the end effector 12 to hold the object 80. Before the end effector 12 holds the object 80, an external force is unlikely to act on the end effector 12. Therefore, by setting the reference before the object 80 is held, it is possible to reliably perform the reference setting when no external force is acting on the end effector 12.
[0101] In the above example, the force sensor 20 sets the reference, but the control unit 2 of the processing device 1 may also set the reference. In this case, in step s11 of the calibration process, the control unit 2 sets the detected action force x-component, detected action force y-component, and detected action force z-component indicated by the latest force detection signal 21 output from the force sensor 20 as reference points to set the reference. That is, in step s11, the control unit 2 sets the detected action force x-component, detected action force y-component, and detected action force z-component indicated by the latest force detection signal 21 output from the force sensor 20 as the x-component adjustment value, y-component adjustment value, and z-component adjustment value, respectively, to set the reference. After setting the reference, the control unit 2 sets the value obtained by subtracting the x-component adjustment value from the detected action force x-component indicated by the force detection signal 21 from the force sensor 20 as the detected action force x-component indicated by the force detection signal 21 after setting the reference (i.e., the detected action force x-component after setting the reference). Furthermore, after setting the reference, the control unit 2 sets the value obtained by subtracting the y-component adjustment value from the detected action force y-component indicated by the force detection signal 21 from the force sensor 20 as the detected action force y-component indicated by the force detection signal 21 after setting the reference (i.e., the detected action force y-component after setting the reference). Furthermore, after setting the reference, the control unit 2 sets the value obtained by subtracting the z-component adjustment value from the detected action force z-component indicated by the force detection signal 21 from the force sensor 20 as the detected action force z-component indicated by the force detection signal 21 after setting the reference (i.e., the detected action force z-component after setting the reference).
[0102] The external force estimation process may be executed after the object 80 is lifted. For example, the external force estimation process may be executed at least once during the period from when the object 80 is lifted until the object 80 moves to the work table 91. In this case, when the magnitude of the acting external force estimated by the second estimating unit 220 becomes equal to or greater than a threshold value due to, for example, the end effector 12 colliding with an obstacle, the control unit 2 may notify the main controller 60 of an error via the interface 6. Upon receiving the error notification, the main controller 60 may stop the movement of the arm 11 and stop the robot 10.
[0103] Furthermore, the external force estimation process may be performed when the end effector 12 is not holding an object 80. For example, the external force estimation process may be performed at least once when the end effector 12 places an object 80 on the work table 91 and then moves to an initial position to hold the next object 80. In this case, the control unit 2 may notify the main controller 60 of an error via the interface 6 when the magnitude of the acting external force estimated by the second estimator 220 becomes equal to or greater than a threshold value due to, for example, the end effector 12 colliding with an obstacle.
[0104] Furthermore, the second estimating unit 220 may estimate, for each of a plurality of different postures of the end effector 12, the acting external force acting on the end effector 12 in that posture. For example, consider a case where the posture of the end effector 12 changes when the robot 10 is moving the object 80 held by the end effector 12 to the work table 91. In this case, the second estimating unit 220 may estimate, for each of a plurality of postures taken by the end effector 12 while the object 80 is moving, the acting external force acting on the end effector 12 in that posture. In other words, the second estimating unit 220 may estimate, for each of a plurality of second postures taken by the end effector 12 while the object 80 is moving, the acting external force acting on the end effector 12 in that second posture.
[0105] Furthermore, the acquisition unit 250 of the control unit 2 may acquire the weight of the object 80 based on the acting external force estimated by the second estimating unit 220. FIG. 7 is a schematic diagram showing an example of the configuration of the processing device 1 in this case. In the example of FIG. 7 , the acquisition unit 250 includes a weight estimation unit 230 that performs weight estimation processing to estimate the weight of the object 80 based on the acting external force estimated by the second estimating unit 220. The weight estimation processing can also be said to be weight acquisition processing to acquire the weight of the object 80. The weight estimation unit 230 is a functional block that is realized when the CPU of the control unit 2 executes the program 300 in the storage unit 3. Note that all or some of the functions of the weight estimation unit 230 may be realized by a hardware circuit that does not require software to realize the function.
[0106] The weight estimation unit 230 may perform the weight estimation process, for example, after the robot 10 lifts the object 80 held by the end effector 12. In this case, after the object 80 is lifted, an external force / weight estimation process consisting of an external force estimation process and a weight estimation process is executed. In the external force / weight estimation process, the weight estimation unit 230 estimates the weight of the object 80 by dividing the magnitude of the acting external force estimated in the external force / weight estimation process by the magnitude of the gravitational acceleration.
[0107] If the weight estimated in the external force / weight estimation process is smaller than the first threshold value and therefore too small, the control unit 2 may notify the main controller 60 of an error through the interface 6. Furthermore, if the weight estimated in the external force / weight estimation process is larger than a second threshold value that is larger than the first threshold value and therefore too large, the control unit 2 may notify the main controller 60 of an error through the interface 6.
[0108] Furthermore, the weight estimation unit 230 may execute the weight estimation process multiple times. In this case, for example, after the object 80 is lifted, the external force / weight estimation process including the external force estimation process and the weight estimation process may be executed multiple times.
[0109] Furthermore, the control unit 2 may estimate the weight of the object 80 when the end effector 12 is in each of a plurality of different holding postures in which the end effector 12 holds the object 80, based on the force detection signal 21. In this case, the control unit 2 functions as an estimation unit that estimates the weight of the object 80 when the end effector 12 is in each of a plurality of holding postures, based on the force detection signal 21. This example will be described below.
[0110] For example, consider a case where the end effector 12 holds a plurality of loosely stacked objects 80 one by one, and the approach direction of the end effector 12 toward a first object 80 (also referred to as first object 80a) included in the plurality of objects 80 is different from the approach direction of the end effector 12 toward a second object 80 (also referred to as second object 80b) included in the plurality of objects 80, and the approach direction of the end effector 12 toward a third object 80 (also referred to as third object 80c) included in the plurality of objects 80. In such a case, a first holding posture in which the end effector 12 approaches the first object 80a and holds the first object 80a, a second holding posture in which the end effector 12 approaches the second object 80b and holds the second object 80b, and a third holding posture in which the end effector 12 approaches the third object 80c and holds the third object 80c are different from one another.
[0111] Fig. 8 is a schematic diagram showing an example of the end effector 12 in a first holding posture, an example of the end effector 12 in a second holding posture, and an example of the end effector 12 in a third holding posture, in which an example of the end effector 12 in the first holding posture is shown in the upper part of Fig. 8, an example of the end effector 12 in the second holding posture is shown in the center of Fig. 8, and an example of the end effector 12 in the third holding posture is shown in the lower part of Fig. 8.
[0112] In this example, the external force / weight estimation process is executed after the first object 80a is lifted while the end effector 12 is holding the first object 80a in the first holding posture. In this external force / weight estimation process, the second estimator estimates the acting external force while the end effector 12 is in the first holding posture, and the weight estimator 230 estimates the weight of the first object 80a based on the acting external force estimated by the second estimator 220.
[0113] Furthermore, with the end effector 12 holding the second object 80b in the second holding posture, an external force / weight estimation process is executed after the second object 80b is lifted. In this external force / weight estimation process, when the end effector 12 is in the second holding posture, the second estimating unit 220 estimates the acting external force, and further, the weight estimating unit 230 estimates the weight of the second object 80b based on the acting external force estimated by the second estimating unit 220.
[0114] Furthermore, with the end effector 12 holding the third object 80c in the third holding posture, an external force / weight estimation process is executed after the third object 80c is lifted. In this external force / weight estimation process, when the end effector 12 is in the third holding posture, the second estimating unit 220 estimates the acting external force, and further, the weight estimating unit 230 estimates the weight of the third object 80c based on the acting external force estimated by the second estimating unit 220.
[0115] In addition, if the posture of the end effector 12 changes while the object 80 is moving to the workbench 91, the control unit 2 may estimate the weight of the object 80 when the end effector 12 is in each of several different holding postures that the end effector 12 shows while the object 80 is moving.
[0116] In this way, in this example, the control unit 2 can estimate the weight of the object 80 held by the end effector 12 regardless of the holding posture of the end effector 12, thereby improving the convenience of the processing device 1.
[0117] In the above example, the processing device 1, which functions as a controller controlling the end effector 12, performs the calibration process and the external force estimation process. However, the main controller 60 may also perform the calibration process and the external force estimation process. That is, the control unit of the main controller 60 may function as the first estimator 210 and the second estimator 220 of the processing device 1. In this case, the main controller 60 communicates with the force sensor 20 and receives a force detection signal 21 from the force sensor 20. The main controller 60 then notifies the processing device 1 of the applied external force estimated in the external force estimation process. In the processing device 1, the holding control unit 200 of the control unit 2 controls the holding force of the end effector 12 on the object 80 based on the applied external force estimated by the main controller 60. Alternatively, the main controller 60 may also perform the calibration process, the external force estimation process, and the weight estimation process. That is, the control unit of the main controller 60 may function as the first estimator 210, the second estimator 220, and the weight estimator 230 of the processing device 1.
[0118] 3, when the processing device 1 that controls the end effector 12 estimates the applied external force acting on the end effector 12, the holding control unit 200 can obtain the estimated result of the applied external force more quickly than when the applied external force is estimated by the main controller 60. Therefore, in the example of FIG. 3, the holding control unit 200 can, for example, control the holding force in real time in accordance with the estimated applied external force.
[0119] As described above, the processing device and the system including the same have been described in detail, but the above description is merely an example in all respects, and this disclosure is not limited thereto. Furthermore, the various examples described above can be applied in combination as long as they are not mutually contradictory. It is understood that countless examples not illustrated can be envisioned without departing from the scope of this disclosure.
[0120] For example, the processing device 1 may be a cloud server 1. In this case, the cloud server 1 may transmit information on the detected (in other words, estimated) applied external force (also referred to as applied external force information) to a device other than the cloud server 1, and the device may control the holding force of the end effector 12 based on the received applied external force information. Also, the main controller 60 may be a cloud server.
[0121] Furthermore, in the above example, the end effector 12 holds an object, but the object held by the end effector 12 may be a living organism such as a human or an animal. Furthermore, in the above example, the robot 10 is an arm-type robot, but this is not limiting. For example, the robot 10 may be a nursing robot or a remote-controlled robot. Furthermore, the robot 10 may be a humanoid robot.
[0122] This disclosure includes the following:
[0123] In one embodiment, (1) the processing device includes a control unit that detects an external force acting on the end effector from a force detection signal output from a sensor device, and the control unit has an acquisition unit that acquires the external force acting on the end effector based on a plurality of first resolved components of the gravity of the end effector itself acting on the end effector in a first posture that is the posture at the time of reference setting of the sensor device, a plurality of second resolved components of the gravity of the end effector itself acting on the end effector in a second posture that is the posture of the end effector when the external force is acting on it, and the force detection signal when the external force is acting on the end effector.
[0124] (2) In the processing device of (1) above, the acquisition unit acquires the external force acting on the end effector in each of a plurality of second postures different from one another of the end effector.
[0125] (3) In the processing device of (1) or (2) above, the acquisition unit determines the magnitude of the external force.
[0126] (4) In the processing device according to any one of (1) to (3) above, the end effector is a holding mechanism capable of holding an object.
[0127] (5) In the processing device of (4) above, the acquisition unit acquires the weight of the object based on the external force acquired when the holding mechanism is holding the object.
[0128] (6) In the processing device of (5) above, the acquisition unit acquires the weight for each of a plurality of different holding postures in which the holding mechanism holds the object.
[0129] (7) In the processing apparatus according to any one of (4) to (6) above, a holding control unit is provided that controls holding of the object by the holding mechanism.
[0130] (8) In the processing device of (7) above, when the processing device receives an instruction to hold the object in the holding mechanism, the reference setting is performed before the holding control unit causes the holding mechanism to hold the object.
[0131] (9) In the processing device of (7) or (8) above, the holding control unit controls the holding force of the object in the holding mechanism based on the external force acquired by the acquisition unit.
[0132] (10) In the processing device of (9) above, the acquisition unit acquires the external force acting on the holding mechanism multiple times while the object is held by the holding mechanism and then lifted, and the holding control unit controls the holding force based on the external force acquired by the acquisition unit.
[0133] (11) A robot system includes a processing device according to any one of (1) to (10) above, and a robot having an end effector controlled based on the external force acquired by the processing device.
[0134] (12) The end effector is an end effector that is controlled based on the external force acquired by any one of the processing devices (1) to (10) above.
[0135] (13) The processing device includes an estimation unit that estimates the weight of the object when the holding mechanism is in each of a plurality of different holding postures in which the holding mechanism holds the object, based on a force detection signal output by a force sensor that detects the force acting on the holding mechanism.
[0136] (14) The program is for causing a computer device to function as any one of the processing devices (1) to (10) and (13) above.
[0137] REFERENCE SIGNS LIST 1 Processing device 12 End effector 20 Sensor device 21 Force detection signal 60 Main controller 80 Object 100 Robot system 250 Acquisition unit
Claims
1. The system includes a control unit that detects the external force acting on the end effector from the force detection signal output from the sensor device. The control unit, Multiple first decomposed components of gravity of the end effector itself acting on the end effector in a first posture, which is the posture of the sensor device at the time of reference setting, Multiple second decomposition components of gravity of the end effector itself acting on the end effector in the second posture, which is the posture of the end effector when the external force is applied, A processing apparatus having an acquisition unit that acquires the external force acting on the end effector based on the force detection signal when the external force acts on the end effector.
2. The apparatus according to claim 1, The acquisition unit is a processing device that acquires the external force acting on the end effector in each of a plurality of mutually different second positions of the end effector.
3. The apparatus according to claim 1, The acquisition unit is a processing device that determines the magnitude of the external force.
4. The apparatus according to claim 1, The end effector is a holding mechanism capable of holding an object, and is a processing apparatus.
5. The processing apparatus according to claim 4, The acquisition unit is a processing device that acquires the weight of an object based on the external force acquired when the holding mechanism is holding the object.
6. The processing apparatus according to claim 5, The acquisition unit is a processing device that acquires the weight for each of a plurality of different holding positions in which the holding mechanism holds the object.
7. The processing apparatus according to claim 4, A processing apparatus comprising a holding control unit that controls the holding of the object in the holding mechanism.
8. The apparatus according to claim 7, In a processing device, when the processing device receives an instruction to perform the holding of the object in the holding mechanism, the holding control unit performs the reference setting before causing the holding mechanism to hold the object.
9. The apparatus according to claim 7, The holding control unit is a processing device that controls the holding force of the object in the holding mechanism based on the external force acquired by the acquisition unit.
10. The processing apparatus according to claim 9, Between the time the object is held by the holding mechanism and the time the object is lifted, The acquisition unit acquires the external force acting on the holding mechanism multiple times, A processing apparatus wherein the holding control unit controls the holding force based on the external force acquired by the acquisition unit.
11. A processing apparatus according to any one of claims 1 to 10, A robot having the end effector which is controlled based on the external force acquired by the processing device, A robotic system equipped with [the necessary components].
12. An end effector controlled based on the external force acquired by the processing apparatus according to any one of claims 1 to 10.
13. A program for causing a computer device to function as a processing device according to any one of claims 1 to 10.