The present invention relates to a position/force control device for controlling a position and a force of a control target.
Against the background of a declining birthrate, an aging population, etc., it has beer strongly desired that robots conduct work requiring manpower and labor for human beings. However, the motion of conventional robots lacks environmental adaptability and flexibility, and has not yet come to suitably realize a physical action of a human being. In this regard, an attempt has been made to artificially reproduce motion of an actuator by using time-series position information and force Information acquired by a master-slave system. However, mechanical impedance at the time of reproduction is always constant, and adaptability to environmental variations such as the position, size, and mechanical impedance of the environment remains to be achieved. A technique relating to a robot that is remotely controlled by way of the master-slave system is disclosed in, for example, Patent Documents 1 and 2.
Patent Document 1: PCT International Publication No. WO2005/109139
In order to cause a robot to suitably conduct such manpower- and labor-consuming work for a human being, it is very important to achieve highly precise force control resulting in advanced adaptability to the environment and to extract an action in human coordinate system by way of a multi-degree-freedom system. However, the known techniques nave not yet solved these challenges. That is, the known techniques to realize a human physical action using a robot have room for improvement. It is an object or the present invention to provide a technique to cause a robot to realize a physical action of a human being more suitably.
To achieve the above object, a position/force control device according to one aspect of the present invention includes: a force/velocity allocation-by-function transformer that performs transformation to allocate control energy to energy of velocity or position and energy of force in accordance with a function to be implemented, based on information of velocity (position) and force corresponding to information about position that is based on an operation of an actuator, and information serving as a reference of control; a position control amount calculator that calculates a control amount of velocity or position, based on the energy of velocity or position allocated by the force/velocity allocation-by-function transformer; a force control amount calculator that calculates a control amount of force, based on the energy of force allocated by the force/velocity allocation-by-function. transformer; a combiner that combines the control amount of velocity or position with the control amount of force, and in order to return a resultant output to the actuator, inversely transforms the control amount of velocity or position and the control amount of force, and thereby determines an input to the actuator; an action time information retainer that retains not only action information, but also time intervals of an action or time stamps while the action is recorded; a control reference information generator that generates, from recorded action information, information serving as a control reference while the action is re-executed; a control timing determiner that determines, from recorded action time information, timing at which control reference information is outputted while the action is re-executed; and a position/force controller that re-executes the action, based on the generated control reference information and the determined control timing, the position/force control device enabling the action to be re-executed at the same time intervals as those in recording of the action.
The present invention provides a technique to cause a robot to realize a physical action of a human being more suitably.
Embodiments of the present invention will be described with reference to the drawings. First, a basic principle is described which is applied to a position/force control device, a position/force control method, and a position/force control program according to the present invention.
Note that a physical action of a human being is constituted by an individual “function” of one joint or the like, or is composed of a combination of such “functions”. Therefore, in the following description of the present embodiment, the term “action” is defined to represent an integrated function composed of individual “functions” of parts of a human body. For example, an action involving bending and unbending knuckles of a middle finger (e.g., an action of turning a screw) is an integrated function composed of functions of the knuckles of the middle finger.
The basic principle of the present invention is described as follows. Any action can be mathematically expressed with three elements, namely, a force source, a velocity (position) source, and a transformation representing the action. Accordingly, by supplying control energy from an ideal force source and an ideal velocity (position) source which are in a duality relationship with a set of variables defined by a transformation and an inverse transformation, to a system as a control target, an extracted physical action is structuralized, reconstructed or expanded and amplified, so that the physical action is automatically realized (reproduced) in a reversible manner.
The control target system S is a robot operable by the actuator, and controls the actuator based on acceleration or the like. Here, the control target system S is configured to realize a function of one or more parts of a human body. As long as the control law for realizing the function is applied, the specific configuration of the control target system S does not necessarily need to have a shape simulating the human body. For example, the control target system S can be embodied as a robot that causes a link to perform one-dimensional sliding motion with the help of an actuator.
The force/velocity allocation-by-function transformation block FT is a block that defines a transformation of control energy into the region of velocity (position) and the region of force, the transformation being set according to the function of the control target system S. Specifically, in the force/velocity allocation-by-function transformation block FT, a coordinate transformation is defined in which a value (reference value) serving as a reference of the function of the control target system S and a current position of the actuator are utilized as inputs. Generally, by this coordinate transformation, an input vector having the reference value and a current velocity (position) as elements is transformed into an output vector consisting of a velocity (position) for calculation of a control target value of velocity position), and an input vector having the reference value and a current force as elements is transformed into an output vector consisting of a force for calculation of a control target value of force. Specifically, the coordinate transformation in the force/velocity allocation-by-function transformation block FT is generalized and represented as Formulas (1) and (2) below.
Note that in Formula (1), x′1 to x′n (where n is an integer equal to or greater than 1) are velocity vectors for deriving a state value of velocity; x′a to x′m (where m is an integer equal to or greater than 1) are vectors having, as elements, the reference value and a velocity based on an operation of the actuator (a velocity of a movable component of the actuator or a velocity of a target object moved by the actuator); and h1a to hnm are elements of a transformation matrix representing a function. In Formula (2), f″1 to f″n (n is an integer equal to or greater than 1) are force vectors for deriving a state value of force; and f″a to f″m (m is an integer equal to or greater than 1) are vectors having, as elements, the reference value and a force based on an operation of the actuator (a force of the movable component of the actuator or a force of the target object moved by the actuator). Setting the coordinate transformation of the force/velocity allocation-by-function transformation block FT according to a function to be realized makes it possible to realize various actions or to reproduce an action involving scaling. That is, according to the basic principle of the present invention, in the force/velocity allocation-by-function transformation block FT, a variable of the actuator alone (a variable in a real space) is “transformed” into a set of variables of the entire system representing a function to be realized (variables in a virtual space), and control energy is allocated to control energy of velocity (position) and control energy of force. This makes it possible to provide the control energy of velocity (position) and the control energy of force independently from each other, as compared with the case where the control is performed with the variable of the actuator alone (the variable in the real space) being as it is.
The ideal force source block FC is a block that performs an arithmetic operation in the region of force, according to the coordinate transformation defined by the force/velocity allocation-by-function transformation block FT. The ideal force source block FC has therein a target value related to a force for performing an arithmetic operation based on the coordinate transformation defined by the force/velocity allocation-by-function transformation block FT. This target value is set as a fixed value or a variable value according to the function to be realized. For example, in the case of realizing a function similar to the function indicated by the reference value, the target value can be set to be zero. In the case of performing scaling, the target value can be set to be a value obtained by enlarging or reducing information indicating the function to be reproduced.
The ideal velocity (position) source block PC is a block that performs an arithmetic operation in the region of velocity (position), according to the coordinate transformation defined by the force/velocity allocation-by-function transformation block FT. The ideal velocity (position) source block PC has therein a target value related to a velocity (position) for performing the arithmetic operation based on the coordinate transformation defined by the force/velocity allocation-by-function transformation block FT. This target value is set as a fixed value or a variable value according to the function to be realized. For example, in the case of realizing a function similar to the function indicated by the reference value, the target value is set to be zero. In the case of performing scaling, the target value can be set to be a value obtained by enlarging or reducing information indicating the function to be reproduced.
The inverse transformation block IFT is a block that transforms the value of the region of velocity (position) and the value of the region of force into a value (e.g., a voltage value or a current value) of a region of input to the control target system S. With this basic principle, when information of position of the actuator of the control target system S is inputted to the force/velocity allocation-by-function transformation block FT, information of velocity (position) and force that is obtained based on the information of position is used so that in the force/velocity allocation-by-function transformation block FT, control laws of the region of position and the region of force are applied in accordance with the function. In the ideal force source block FC, an arithmetic operation of force is performed according to the function. In the ideal velocity (position) source block PC, an arithmetic operation of velocity (position) is performed according to the function. The control energy is then distributed. to the force and the velocity (position).
The results of the arithmetic operations in the ideal force source block FC and the ideal velocity (position) source block PC serve as information indicating a control target of the control target system S. The inverse transformation block IFT transforms these arithmetic operation results into an input value for the actuator, and the input value is inputted to the control target system S. As a result, the actuator of the control target system S performs motion according to the function defined by the force/velocity allocation-by-function transformation block FT, and thus, intended motion of the robot is realized. In other words, the present invention enables a robot to realize a physical action of a human being more suitably.
Next, specific examples of functions definable by the force/velocity allocation-by-function transformation block FT will be described. In the force/velocity allocation function transformation block FT, the coordinate transformation (transformation from a real space to a virtual space, corresponding to the function to be realized) is defined, the coordinate transformation to be performed on a velocity (position) and a force that are obtained based on the inputted current position of the actuator. In the force/velocity allocation-by-function transformation block FT, the velocity (position) and the force based on the current position, and a velocity (position) and a force as the reference values of the function are utilized a inputs, respective control laws for the velocity (position) and the force are applied in an acceleration dimension. Specifically, the force of the actuator is expressed as the product of a mass and an acceleration, and a velocity (position) of the actuator is expressed as the integral of the acceleration. Therefore, controlling the velocity (position) and the force through a region of acceleration makes it possible to obtain the current position of the actuator and to realize a target function.
In the following, examples of various functions will be specifically described.
In Formula (3) x′p, is a velocity for deriving a state value of velocity (position), and x′f is a velocity related to a state value of force. Further, x′m is a velocity (a differential value of a current position of the master device) of the reference value (an input from the master device), and x′s is a current velocity (differential value of a current position) of the slave device. In Formula (4), fp is a force related to the state value of velocity (position), and ff is a force for deriving the state value of force. Further, fm is a force of the reference value (input from the master device), and fs is a current force of the slave device.
As shown in
In Formula (5), x′mani is a velocity for deriving a state value of velocity (position), and x′qrasp is a velocity related to a state value of force. Further, x′1 is a velocity (differential of a current position) of the first arm, and x′2 is a velocity (differential of a current position) of the second arm. In Formula (6), fmani is a force related to the state value of velocity (position), and fgrasp is a force for deriving the state value of force. Further, f1 is a reaction force that the first arm receives from the object, and f2 is a reaction force that the second arm receives from the object.
In Formula (7), x′a1 is a velocity response value related to an angle of an MP joint, x′a2 is a velocity response value related to an angle of a PIP joint, and x′a3 is a velocity response value related to an angle of a DIP joint. Further, x′τ1 is a velocity response value relate to a torque of the MP joint; x′τ2 is a velocity response value related to a torque of the PIP joint; x′τ3 is a velocity response value related to a torque of the DIP joint; x′t1 is a velocity response value related to a tension of wires W1 to W4 of the finger-type master robot; x′t2 is a velocity response value related to a tension of wires W5 to W8 of the finger-type slave robot; x′1 to x′4 are velocity response values of the wires W1 to W4 coupled to the finger-type master robot, respectively; and x′5 to x′8 are velocity response values of the wires W5 to W8 coupled to the finger-type slave robot, respectively. The angle of the MP joint, the angle of the PIP joint, and the angle of the DIP joint are defined as θ1 to θ3 shown in in
Next, a basic configuration of a position/force control device 1 to which the basic principle of the present invention is applied will be described.
The reference value input unit 10 inputs a value (reference value) serving as a reference for each function of the position/force control device 1, to the control unit 20. This reference value is composed of, for example, detected time-series values outputted from the position sensor provided at the actuator of the master device. In a case where the detected time-series values from the master device are inputted in real time as the reference value to the control unit 20, the reference value input unit 10 can be constituted by a communication interface (communication I/F). In a case where the detected time-series values of the master device are stored and sequentially read as the reference value to be inputted to the control unit 20, the reference value input unit 10 can be constituted by a storage device such as a memory or a hard disk.
The control unit 20 is configured to control the whole position/force control device 1, and is constituted by an information processing device such as a central processing unit (CPU). Further, the control unit 20 has the functions of the force/velocity allocation-by-function transformation block FT, the ideal force source block FC, the ideal velocity (position) source block PC, and the inverse transformation block IFT, which are shown in
The control unit 20 then performs an arithmetic operation in the region of velocity (position), with respect to a velocity (position) for deriving a state value of velocity (position), obtained by the coordinate transformation. Likewise, the control unit 20 performs an arithmetic operation in the region of force, with respect to a force for deriving a state value of force, obtained the coordinate transformation. Further, the control unit 20 processes the result of the arithmetic operation in the region or velocity (position) and the result of the arithmetic operation in the region of force so as to dimensionally unify the results into acceleration or the like, and applies the inverse transformation of the coordinate transformation that is set in accordance with the function. In this way, the control unit 20 transforms the result of the arithmetic operation in the region of velocity (position) and the result of the arithmetic operation in the region of force into a value of a region of input to the actuator.
The driver 30 transforms the value of the region of input to the actuator, which has been inversely transformed by the control unit 20, into a specific control command value for the actuator 40 (e.g., a voltage value or a current value), and outputs the control command value to the actuator 40. The actuator 40 is driven according to the control command value inputted from the driver 30, and controls the position of a control target. The position sensor 50 detects the position of the control target controlled by the actuator 40, and outputs the detected value to the control unit 20.
With the configuration described above, the position/force control device 1 transforms, by the coordinate transformation according to the function, a velocity (position) and a force that are obtained from the position of the control target detected by the position sensor 50 into a state value of the region of velocity (position) and a state value of the region or force. Consequently, the control energy is distributed to the velocity (position) and the force, according to the function. The respective state values are then inversely transformed into a control command value, according to which the actuator 40 is driven by the driver 30. Thus, by detecting the position of the control target, the position/force control device 1 can calculate the state value of velocity (position) and the state value of force that are required to realize an intended function, and can drive the actuator 40 based on these state values, thereby controlling and bringing the position and the force of the control target into an intended state.
Further, the position/force control device 1 can implement different functions by switching the coordinate transformations of the control unit 20 that corresponds to the functions. For example, a storage device included in the position/force control device 1 stores coordinate transformations that correspond to a plurality of functions on a one-to-one basis, and one coordinate transformation corresponding to the associated function is selected according a purpose. In this way, the position/force control device 1 can implement various functions. Further, the position/force control device 1 can utilize, as the reference values inputted to the control unit 20, acquired values of position and force that are inputted in real time from the master device. In this case, the position/force control device 1 can be controlled in real time in conjunction with motion of the master device. Further, the position/force control device 1 can utilize, as the reference values inputted to the control unit 20, acquired time-series values of position and force of the master device or the slave device that have been acquired and stored in advance. In this case, the functions or the position/force control device 1 can implemented based on previously prepared motion of the master device. In other words, the position/force control device 1 can reproduce an intended function in the absence of the master device.
Specific examples of the position/force control device will be described below.
In order to cause a robot to realize a human physical action for a human being, a situation is conceivable in which a physical action performed by the human being or the like is recorded and the robot is caused to re-execute (reproduce) the recorded physical action. In this case, it is extremely important to perform control so that the time intervals at the time of recording the action are the same as the time intervals at the time of re-executing the actions. For example, if a sampling cycle at the time of recording the action is different from a control cycle at the time of re-executing the action, the action is re-executed at a speed different from that at the time of recording the action. Alternatively, if an intermediate portion of data is missed, the action to be re-executed will be discontinuous.
Here, according to the known techniques, time intervals at the time of recording an action and time intervals at the time of re-executing the action are controlled to be the same only under limited execution conditions. For example, if a device used at the time of recording the action and a device used at the time of re-executing the action have the same specification and their operating conditions are set to be the same, the time intervals at the time of recording the action and the time interval at the time of re-executing the action are controlled to be the same. However, the device actually used at the time of re-executing the action is not always the same as the device used at the time of recording. In addition, the operating conditions of the devices are considered to be different. Therefore, according to the known techniques, it is not ensured that the time intervals at the time of recording an action and the time intervals at the time of re-executing the action are controlled to be the same, and consequently the action may be re-executed improperly. To address this problem, the present embodiment achieves a position/force control device which is capable of causing a robot to re-execute a physical action at the same time intervals as the time intervals at the time of recording the action.
The rod members 401A, 401B of the position/force control device 2B are each provided with a manipulation part for allowing a human being to perform grasping motion. An operator who operates the position/force control device 2B performs the grasping motion with chopsticks while holding the manipulation parts. Consequently, the motion of the position/force control device 2B is transmitted to the position/force control device 2A, and the object is grasped by the position/force control device 2A. At this time, an input of the reaction force applied by the object is transmitted from the position/force control device 2A to the position/force control device 2B, whereby the operator can feel a haptic sense of the force of the object. A storage unit 60 or the like stores the values detected by the position sensor during this control process (or values for deriving state values, resulting from a coordinate transformation performed by the control unit 20), together with information of the recording time intervals, whereby the grasping action (human physical action) with chopsticks can be recorded.
To cause a robot to suitably realize a human physical action for a human being, it is extremely important that the robot is operable in a practical use environment. Here, according to the known techniques, a physical action of a human being is extracted in a human coordinate system, and a robot is caused to re-execute the extracted action. However, these techniques are based on the precondition that a surrounding environment and a state of the robot (an initial posture, etc.) are within a specified range, and do not take account of practical changes in an environment and discontinuity of an action. In view of this, the present embodiment achieves a position/force control device which enables a robot to adapt to a change in a re-execution environment, and to re-execute an action continuously when the robot re-executes the physical action.
As an example, when an action is recorded in, for example, the data format of
In order to cause a robot to realize every physical action of a human being, it is extremely important that specified actions (action contents) can be produced and edited flexibly and easily. Here, according to the known techniques, a physical action of a human being is extracted in a human coordinate system, and a robot is caused to re-execute the extracted action. These techniques are based on the precondition that the data about the position and force of the robot is precisely recorded over the entire action, and does not take account of the possibility that a human being intuitively produces and edits action contents. In addition, the amount of data of the action contents may become enormous. To address this, the present embodiment achieves an action expressing method enabling the action contents to be produced and edited flexibly and easily.
The action to be recorded and re-executed in the present embodiment can be expressed by combining a plurality of rules. For example, in the case of an action of the chopstick-type grasping device shown in
In Step S3, the position/force control device 2 switches the action of the actuators 40A and 40B to the grasping action. After Step S3, the standby action ends.
In Step S13, the position/force control device 2 closes the rod members 401A, 401B at a specified velocity (recorded velocity). In Step S14, the position/force control device 2 determines whether the force for grasping the target object has reached a specified force (recorded force). If the force for grasping the target object has not reached the specified force (recorded force), a determination of “NO” is made in Step S14, and the process proceeds to Step S13. On the other hand, if the force for grasping the target object has reached the specified force (recorded force), a determination of “YES” is made in Step S14, and the process proceeds to Step S15.
In Step S15, the position/force control device 2 grasps the target object with the specified force (recorded force). In Step S16, the position/force control device 2 determines whether a specified period of time (recorded grasping period) has elapsed. If the specified period of time (recorded grasping period) has not elapsed, a determination of “NO” is made in Step S16, and the process proceeds to Step S15. On the other hand, if the specified period of time (recorded grasping period) has elapsed, a determination of “YES” is made in Step S16, and the process proceeds to Step S17.
In Step S17, the position/force control device 2 opens the rod members 401A, 401B at a specified velocity (recorded velocity). In Step S18, the position/force control device 2 determines whether the rod members 401A, 401B have reached specified positions (recorded positions). If the rod members 401A, 401B have not reached the specified positions (recorded positions), a determination of “NO” is made in Step S18, and the process proceeds to Step S17. On the other hand, if the rod members 401A, 401B have reached the specified positions (recorded positions), a determination of “YES” is made in Step S18, and the process proceeds to Step S19.
In Step S19, the position/force control device 2 closes the rod members 401A, 401B at a specified velocity (recorded velocity). In S20, the position/force control device 2 determines whether the rod members 401A, 401B have reached a specified force (recorded force). If the rod members 401A, 401B have not reached the specified force (recorded force), a determination of “NO” is made in Step S20, and the process proceeds to Step S19. On the other hand, if the rod members 401A, 401B have reached the specified force (recorded force), a determination of “YES” is made in Step S20, and the process proceeds to Step S21. In Step S21, the position/force control device 2 switches the action of the actuators 40A, 40B to the standby action. After Step S21, the grasping action ends.
As can be seen from the foregoing, the contents of the standby action and those of the grasping action are each defined by a combination of rules, and a series of actions can be expressed by a combination of the contents.
In order to cause a robot to realize a human physical action for a human being, it is important that the robot instantaneously understands the object properties of a contact target, such as rigidity, viscosity, and inertia. Here, according to the known techniques, it is possible to make the robot understand the object properties of a contact target only under limited conditions, such as where the object properties are already known, or where a human being understands the object properties by real-time remote operation and teaches the properties to the robot. In view of this, the present embodiment enables a robot itself to estimate the rigidity, viscosity, inertia, and the like of a contact target by way of motion of the robot to contact with the contact target.
The position/force control device 1 of the present embodiment can implement various functions such as grasping an pushing an object, moving an object, cutting an object, and stirring a fluid, by tale coordinate transformation based on Formulas (1) and (2). At this time, the parameters related to the coordinate transformation (such as the state value of velocity or the state value of force) vary according to the object properties of an object as the contact target. In other words, the parameters related to the coordinate transformation calculated when the position force control device 1 contacts with the object come to correspond to the properties of the object. Therefore, the object properties of the contact target can be estimated from the parameters related to the coordinate transformation calculated when the position/force control device 1 contacts with the object.
For example, an actuator is subjected to motion control such that the position, velocity, and acceleration of the actuator change continuously, while the tip (contact) of the actuator is in contact with a target object. From position information of the actuator, the velocity, acceleration, and force are calculated. The position of the actuator, information of the velocity, acceleration, and force, and sequential application of the least square method allows the rigidity, viscos inertia, and the like of the target object to be estimated.
Note that appropriate modifications, improvements, and the like can be made to the present invention within the scope where the effects of the present invention are exerted. Thus, the present invention is not limited to the above-described embodiments and modifications. For example, the present invention can be implemented as, in addition to the position/force control devices of the above-described embodiments, a position/force control method composed of steps performed by the position/force control device, or a program executed by a processor to implement the functions of the position/force control device.
Note that the above embodiments represent examples in which the present invention is adopted, and are not intended to limit the technical scope of the present invention. In other words, various changes such as omission and substitution can be made to the present invention without departing from the spirit of the present invention, and the present invention can also be implemented as various embodiments different from the above-described embodiments. Various possible embodiments of the present invention and variations thereof are encompassed in the scope of the invention defined in the claims and in the scope of equivalents of the invention.
S: Control Target System
Number | Date | Country | Kind |
---|---|---|---|
2017-239964 | Dec 2017 | JP | national |
Filing Document | Filing Date | Country | Kind |
---|---|---|---|
PCT/JP2018/046206 | 12/14/2018 | WO | 00 |