This application is based upon and claims the benefit of priority from Japanese Patent Application No. 2018-035731, filed on Feb. 28, 2018; the entire contents of which are incorporated herein by reference.
Embodiments described herein relate generally to a manipulator system, a control device, a control method, and a computer program product.
Conventionally, a manipulator system that moves an end effector to a target position has been known.
In this sort of manipulator system, it is meaningful if it is possible to obtain a more improved manipulator system that can move while avoiding an obstacle, for example.
A manipulator system according to an embodiment includes a manipulator, an actuator, and a control device. The actuator is configured to operate the manipulator. The control device is configured to control the actuator so that the manipulator moves while avoiding an obstacle. The control device controls the actuator so that an angle between a moving velocity vector of a first target point on the manipulator and a normal vector at a second target point on a surface of the obstacle is within 90°.
The following discloses exemplary embodiments of a manipulator system. The configurations and control (technical features) in the following embodiments exemplified, as well as the operation and results (effects) that are brought about by such configurations and control, are mere examples.
The following embodiments and a modification include the same constituent elements. In the following description, those same constituent elements may be denoted by common reference signs and the redundant explanations thereof may be omitted. Furthermore, in the present disclosure, ordinal numbers are given to distinguish constituent elements or the like for the sake of convenience, and are not intended to indicate the order of priority or sequence.
Manipulator System
The manipulator 10 is configured as what is called an articulated arm in which a plurality of arms 11 are rotatively coupled at joints 12. The control device 20 changes, by controlling the operation of actuator 14 not depicted in
The manipulator 10 has an end effector 13 at the distal end thereof. A control target point Pc by the control device 20 is set, for example, on the end effector 13.
The control device 20 controls the actuator 14 such that the control target point Pc is in a predetermined position and posture. The control target point Pc may be one point or a plurality of points, and may be set not on the end effector 13.
The actuator 14 changes the angle between two arms 11 at least one joint 12. The actuator 14 is driven by an electric control signal that the control device 20 generates. The actuator 14 is a motor, an artificial muscle, or the like, for example.
In addition, although described in detail later, the control device 20 controls the actuator 14 so that the manipulator 10 will not interfere with an obstacle 30, in other words, so that a constraint condition of interference avoidance is satisfied. In the first embodiment, the control device 20 controls the actuator 14 so that an angle between a moving velocity vector dxp/dt of a first target point Pp of the manipulator 10 and a normal vector nr at a second target point Pr on a surface 31 of the obstacle 30 is within 90°. Accordingly, it is possible to restrain the first target point Pp from getting close to the second target point Pr and the surface 31, and eventually, it is possible to restrain the manipulator 10 from making contact with the obstacle 30. The constraint condition of interference avoidance is one example of a first constraint condition.
The first target point Pp and the second target point Pr are target points for which the constraint condition of interference avoidance is set, and can be set based on the relative position and posture between the obstacle 30 and the manipulator 10, for example. As for the first target point Pp, a point on the end effector 13 or a point on the joint 12 can be selected, for example. In addition, as the first target point Pp, an intermediate position between both ends of any one of the arms 11, in other words, a center position between two joints 12 interposing the arm 11, may be selected, for example.
As for the first target point Pp, one point may be selected, or a plurality of points may be selected. Furthermore, as for the first target point Pp, as one example, a point at which the probability of interfering with the obstacle 30 is high is selected, and does not necessarily coincide with the control target point Pc. As the second target point Pr, one point on the surface 31 may be selected, or a plurality of points on the surface 31 may be selected. In
Control Device and Control Method
The target acquisition unit 21 acquires target information on the control target point Pc. The target information is velocity or angular velocity of the control target point Pc at a subsequent step (time step), for example. The target information is predetermined, for example, and in that case, the target acquisition unit 21 can acquire the target information from a non-depicted storage unit that the control device 20 has.
The obstacle-information acquisition unit 22 acquires obstacle information on the obstacle 30 to avoid, within a range that the manipulator 10 operates. The obstacle information is information indicating position, shape, and the like of the surface 31 of the obstacle 30, for example. The obstacle-information acquisition unit 22 can acquire the obstacle information from an obstacle sensor 15 such as an RGB-D sensor, a camera, a contact sensor, and a distance sensor. The obstacle-information acquisition unit 22 may acquire the obstacle information from a database that holds known obstacle information beforehand, a light detection and ranging (LIDAR), a laser imaging detection and ranging (LiDAR), and the like.
The manipulator-information acquisition unit 23 acquires manipulator information. The manipulator information is information indicating the position and posture of the manipulator 10, and is an angle at each joint 12, for example. The manipulator-information acquisition unit 23 can acquire the manipulator information from a manipulator sensor 16 such as a rotary encoder, a camera, an angle sensor, and a distance sensor.
The actuator controller 24 calculates an optimal solution of move with respect to the target information on the control target point Pc, with a constraint condition that the manipulator 10 and the obstacle 30 do not interfere with, based on the target information, the obstacle information, and the manipulator information. Then, the actuator controller 24 controls the actuator 14 so that the manipulator 10 moves along the optimal solution.
The arithmetic processing and control by the control device 20 may be executed by software or may be executed by hardware. The arithmetic processing and control by the control device 20 may include the arithmetic processing and control by software and the arithmetic processing and control by hardware. In a case of processing by software, the control device 20 reads out and executes a program (application) stored in a recording medium (storage medium) such as a ROM, an HDD, an SSD, a flash memory, and the like. The control device 20 functions, by operating in accordance with the program, as each of the units included in the control device 20, that is, the target acquisition unit 21, the obstacle-information acquisition unit 22, the manipulator-information acquisition unit 23, the actuator controller 24, and others. In this case, the program includes modules corresponding to the above-described various units.
The program can be provided in a file of an installable format or of an executable format recorded on a computer readable recording medium, such as a CD-ROM, an FD, a CD-R, a DVD, and a USB memory. The program can be stored in a storage unit of a computer connected to a communication network, and implemented by being downloaded via the network. The program may be embedded in a ROM or the like in advance.
Furthermore, when at least a part of the control device 20 is made up of hardware, in the control device 20, a field-programmable gate array (FPGA), an application-specific integrated circuit (ASIC), or the like can be included.
Optimization Problem with Constraint Condition
Next, the arithmetic processing and control that the actuator controller 24 executes will be described.
By assuming that the degree of freedom of the manipulator 10 is n, each joint angle indicating the degree of freedom of the manipulator 10 is expressed by a vector q=[q1, q2, q3, . . . , qn]T.
It is assumed that a target velocity of the control target point Pc at the next step that is obtained from the target acquisition unit 21 is vc. This includes a velocity vector that determines a three-dimensional position at the control target point Pc, and an angular velocity that determines the posture at the control target point Pc. When the obstacle 30 is not considered, by using the following Expression (1) including a Jacobian matrix Jc(q) at the control target point Pc, the transformation from a three-dimensional space of the arithmetic processing into a joint angle space is possible:
{grave over (q)}=J
c(q)+vc (1)
where
is a vector indicating the joint angular velocity, and Jc(q)+ indicates a pseudo-inverse matrix of Jc(q) (inverse matrix, if the Jacobian matrix is a square matrix). Accordingly, as for an optimization problem in which the control target point Pc moves to follow the target information as much as possible, it is only necessary to derive the solution of a least squares problem that can be expressed by the following Expression (2).
minq½∥Jc(q){grave over (q)}−vc∥2 (2)
When there are a plurality of (k pieces) control points Pc, by configuring an augmented matrix system as the following Expression (3) by using the corresponding Jacobian matrix and the target information, it is possible to calculate the joint angular velocity.
J
c=[Jc1T,Jc2T, . . . ,JckT]T
v
c=[vc1T,vc2T, . . . ,vckT]T (3)
The Jacobian matrix is a matrix that represents the relation between the change in the joint angle of the manipulator 10, and the velocity and angular velocity of the first target point Pp on the manipulator 10. The Jacobian matrix Ja at a certain point a (three-dimensional coordinate is defined as xa) on the manipulator 10 can be expressed as the following Expression (4):
where a vector of a rotation axis of a joint qi was defined as z1, and the center coordinate of the joint was defined as ri. In this Jacobian matrix Ja, the upper row represents the relation of positions, and the lower row represents the relation of postures.
When the distance between the first target point Pp on the manipulator 10 and the second target point Pr on the obstacle 30 is close to a lower limit, the manipulator 10 needs to avoid the obstacle 30 by the following operation. The distance to the obstacle 30 can be calculated from the obstacle information, and a joint angle in the manipulator information. It is assumed that the outward normal vector nr at the second target point Pr on the obstacle 30 has been acquired from the obstacle information.
The arithmetic processing of the constraint condition of interference avoidance can be executed on two points (the first target point Pp and the second target point Pr) for which the distance is the closest, two points for which the distance is predicted to be the closest, or a plurality of combinations of such two points. The selection of the first target point Pp and the second target point Pr that are the subjects of arithmetic processing, and the calculation of the distance, which is the criterion of the selection, between the first target point Pp and the second target point Pr can be executed by using a known collision detection method such as Boblow method, Lin-Canny method, and Gilbert method in which the calculation is made after the arm 11 of the manipulator 10 and the obstacle 30 are approximated by shapes that are easy to calculate such as a circular cylinder and a rectangular parallelepiped.
The inner product of the position-velocity vector
n
p
T{acute over (x)}=∥np∥∥x′p∥cos αp (5)
where αp is an angle formed by the two vectors. If the αp is in a range equal to or greater than −90° and equal to or less than 90°, it can be considered that the first target point Pp moves in a direction that the obstacle 30 is not present. In other words, if the following Expression (6) is satisfied, in the next step, the first target point Pp does not make contact with the second target point Pr, and at this region, the manipulator 10 does not interfere with the obstacle 30:
n
p
T{acute over (x)}p=npTJBp(q){acute over (q)}≥0 (5)
where JB
When the calculation on a plurality of (m pieces) combinations of the first target point Pp and the second target point Pr is made, it is only necessary to use an augmented matrix as in the following Expression (7).
n=[np1T,np2T, . . . ,npmT]T
J
B(q)=[JBp1T(q),JBp2T(q), . . . ,JBpmT(q)]T
n
T
J
B(q){acute over (q)}≥0 (7)
The actuator controller 24 calculates the optimal solution of the move with respect to the target information on the control target point Pc indicated by Expression (2) while satisfying the constraint condition of interference avoidance indicated by Expression (6). That is, the actuator controller 24 calculates the optimal solution of a linear least-squares problem with a constraint condition as indicated by the following Expression (8).
minq½∥Jc(q){acute over (q)}−vc∥2s.t.nTJB(q){acute over (q)}≥0 (8)
Such a linear least-squares problem with a constraint condition can be solved at a high speed by interior point method, active set method, and the like. Furthermore, it is also possible to add upper and lower limits of the joint angle, upper and lower limits of the joint angular velocity, and the like to the constraint condition, and it can be said that such a method is a highly scalable method.
As in the foregoing, in the first embodiment, the control device 20 controls the actuator 14 so that an angle between the moving velocity vector of the first target point Pp of the manipulator 10 and the normal vector at the second target point Pr on the surface 31 of the obstacle 30 is within 90°. According to such a configuration, the control device 20 can cause the manipulator 10 to operate without interfering with the obstacle 30, for example.
In addition, in the first embodiment, the control device 20 controls the actuator 14 by, based on the Jacobian matrix at the first target point Pp and the normal vector at the second target point Pr of the surface 31, solving an optimization problem of the target operation of the control target point Pc of the manipulator 10 with a constraint condition including the first constraint condition in which the inner product of the moving velocity vector and the normal vector is 0 or more. With such a configuration, the control device 20 can cause the manipulator 10 to operate such that the control target point Pc moves to follow its target information as much as possible without interfering with the obstacle 30, for example.
Furthermore, in the first embodiment, the optimization problem is a problem to optimize the operation of the actuator 14 with respect to the predetermined target operation of the control target point Pc. According to the first embodiment, the control device 20 can cause the manipulator 10 to operate such that the control target point Pc moves to follow the predetermined target information as much as possible while satisfying the constraint condition.
First Modification
Thus, according to the first modification, by the manipulator system 100A of a simpler configuration having no manipulator sensor 16, it is possible to obtain the same effect as that of the above-described first embodiment.
The camera 17 is an image sensor having a photoelectric conversion element, optical system components, and the like, and is an area sensor, RGB-D sensor, or the like, for example.
The camera 17 is attached to the end effector 13 of the manipulator 10 or to a part fixed to the end effector 13, for example.
The image acquisition unit 25 acquires an image of a target photographed by the camera 17.
The feature-quantity calculation unit 26 calculates a feature quantity indicating the feature of the target object by image processing from image data acquired by the image acquisition unit 25.
The visual servo controller 27 calculates a vector vc indicating the velocity and acceleration of the control target point Pc by mainly solving the following Equation (9):
Lv
c
=−λe (9)
where L is an image Jacobian matrix, e is a deviation to be minimized by using visual servo, and A is a positive scalar to ensure stability.
As the method of visual servo control, there are a feature-quantity based method and a position-based method. First, the feature-quantity based method will be described.
Feature-Quantity Based Method
In the feature-quantity based method, when the coordinate of the feature quantity X on an image is represented by [x, y]T, the image Jacobian matrix Lx and deviation ex for the feature quantity X are expressed by the following Expression (10):
where [x*, y*]T is the coordinate of the feature quantity X to target, and Z is a parameter to represent the depth. Although Z is an unknown value, the estimation method thereof is known, and furthermore, it is known that the stability of control is not likely to be impaired even when the accuracy is not so high. By using the augmented image Jacobian matrix L and the deviation e in which Lx and ex are arranged in tandem by using a plurality of feature quantities, a pseudo-inverse matrix of the image Jacobian matrix L is obtained and the vector vc is calculated.
Position-Based Method
In the position-based method, the position and posture that become the targets of the control target point Pc are calculated from the image feature quantity, and the velocity and angular velocity of the control target point Pc to minimize the difference from the current position and posture are calculated. When it is assumed that the positional deviation is t and the postural deviation is R, the image Jacobian matrix L and the deviation e are expressed by the following Expression (11):
where θ and u are vectors representing the postural deviation R by the rotation axis u and the rotation angle θ, I3 is a three-dimensional unit matrix, [u]x is a cross-product matrix of u, and sinc(x)=sin(x)/x. The postural deviation R and the positional deviation t can be calculated by estimating a fundamental matrix or a homography matrix from the feature quantity.
The actuator controller 24 controls the actuator 14 so that, with the position of the control target point Pc at the next step received from the visual servo controller 27 as the target information, by calculating the optimal solution of a linear least-squares problem with a constraint condition as with the above-described first embodiment, the manipulator 10 is in a position and posture that satisfy the optimal solution.
As in the foregoing, in the second embodiment, the optimization problem is a problem of optimizing the operation of the actuator 14 with respect to the target operation of the control target point Pc in the visual servo control. According to the second embodiment, the control device 20B can cause the manipulator 10 to operate such that the control target point Pc moves to follow the target information obtained by the visual servo as much as possible while satisfying the constraint condition.
In the visual servo task, the actuator controller 24 calculates the vector vc indicating the velocity and acceleration of the control target point Pc by mainly solving the following Equation (9).
Lv
c
=−λe (9)
Thus, it is only necessary to derive the solution of a least squares problem that can be expressed by the following Expression (12).
minv
Accordingly, the actuator controller 24 calculates the optimal solution of a linear least-squares problem with a constraint condition as indicated by the following Expression (13).
minq½∥Jc(q){acute over (q)}−vc∥2s.t.nTJB(q){acute over (q)}≥0 (13)
That is, the actuator controller 24 can calculate the angular velocity of each joint 12 by solving the following Expression (14) for which the visual servo task and the interference avoidance task are considered:
where I is a unit matrix.
Furthermore, also in a case in which the visual servo task includes a first visual servo task as the constraint condition task, and a second visual servo task as the optimization task, and in which the constraint condition task further includes the interference avoidance task in addition to the first visual servo task, the actuator controller 24 can calculate the optimal solution that satisfies the constraint condition and control the actuator 14 so as to cause the manipulator 10 to execute the operation in accordance with the optimal solution. The constraint condition in the interference avoidance task is one example of the first constraint condition, and the constraint condition in the first visual servo task is one example of a second constraint condition.
Specifically, the actuator controller 24 assumes, as a constraint condition, the following Expression (15) for the first visual servo task:
L
1
v
c=−λ1e1 (15)
where it is assumed that L1 is a matrix of 1×6 rows (1<6) and that there are a plurality of solutions that can achieve this task.
This first visual servo task can be obtained by the feature-quantity based method that tries to cause a certain feature quantity (coordinate [x, y]) to coincide with the target position (coordinate [x*, y*]). The first visual servo task is equivalent to solving the following Expression (16).
With the first visual servo task expressed by Expression (16), if the feature quantity is taken at the center of the target object and the target position is set to the center of the camera, the control in which the center of the target object is positioned at the center of the image of the camera 17 at all times is implemented, for example.
Furthermore, the actuator controller 24 obtains the optimal solution of the second visual servo task that can be expressed by the following Expression (17):
minv
where an image Jacobian matrix L2, a deviation e2, and Lθu are given by the following Expression (18).
Accordingly, the actuator controller 24 can calculate, by solving the following Expression (19) having the interference avoidance task further added, the angular velocity of each joint 12 of the manipulator 10.
With such a configuration, the control device 20C can cause the manipulator 10 to operate such that the control target point Pc moves to follow the second visual servo task as much as possible while assuming, as the constraint condition, the first visual servo task, and the interference avoidance task with the obstacle 30.
In the third embodiment, the optimization task has been the second visual servo task. However, the actuator controller 24 can solve a task in which the optimization task expressed by a least-squares problem or linear constraint and the interference avoidance task are incorporated. Specifically, the optimization task for the target information on the predetermined position and posture can be replaced with the above-described second visual servo task, for example.
While certain embodiments have been described, these embodiments have been presented by way of example only, and are not intended to limit the scope of the inventions. Indeed, the novel embodiments described herein may be embodied in a variety of other forms; furthermore, various omissions, substitutions and changes in the form of the embodiments described herein may be made without departing from the spirit of the inventions. The accompanying claims and their equivalents are intended to cover such forms or modifications as would fall within the scope and spirit of the inventions.
Number | Date | Country | Kind |
---|---|---|---|
2018-035731 | Feb 2018 | JP | national |