The present invention relates to a technique of controlling a multi-joint manipulator of a robot.
A robot having a multi-joint manipulator (a multi-joint arm) is known.
Specifically, one end of a supporting section 103 is attached to a fixed base section 102. One side of a first joint J101 is attached to the other end of the supporting section 103. One end of a first link L101 is attached to the other side of the first joint J101. One side of a second joint J102 is attached to the other end of the first link L101. Hereinafter, in the same way, one side of a sixth joint J106 is attached to the other end of a fifth link. One end of a sixth link L106 is attached to the other side of the sixth joint J106. An end effector 104 is attached to the other end of the link L106.
An operator specifies a position command value on the world coordinate system of a specification point 105 which is set to the tip of the end effector 104 to a control device. The control device calculates an angle command value of each of the joints J101 to J10n to move the specification point 105 to a direction indicated by the position command value. Each of the joints J101 to J10n is driven by a motor and so on according to the angle command value. Through such a control, the distal end (the specification point 105) of the multi-joint manipulator 101 can be moved to a desired position.
In Non-Patent Literature 1, a method of using a linear feedback control and a method of using 2-step control of linearization and servo compensation are described as a position control method for a robot. Also, an obstacle avoidance control in the control of a manipulator has been described in Non-Patent Literature 1.
[Non-Patent Literature 1] “Robot Control Basis Theory”, (Tsuneo Kikkawa), Corona Inc., Published on Nov. 25, 1988
As mentioned above, the multi-joint manipulator 101 is often controlled by specifying a position of a distal end. In case of such a control, each of the joints J101 to J10n is automatically controlled based on the calculation to realize the specified distal end position.
By the way, the multi-joint manipulator 101 is sometimes difficult to work only by specifying the position of the distal end. The inventors of the present invention are carrying forward development about the control of the multi-joint manipulator 101 in such a case.
Note that
The control device according to some embodiments is used for the control of the multi-joint manipulator which has the plurality of joints connected through the links. The control device includes a specification point setting section which sets a position except for the distal end as the specification point to the multi-joint manipulator, and a calculating section which generates a restrained control command value to control the multi-joint manipulator in a restrained condition that at least one of degrees of freedom of movement of the multi-joint manipulator in the specification point is restrained, when a control command value to control the multi-joint manipulator is given.
A method of generating control data according to some embodiments generates control data of a multi-joint manipulator which has a plurality of joints connected through links. The method of generating control data includes setting a position except for a distal end as a specification point to the multi-joint manipulator; and generating a restrained control command value to control the multi-joint manipulator in a restrained condition that at least one of degrees of freedom of movement of the multi-joint manipulator in the specification point is restrained, when a control command value to control the multi-joint manipulator is given.
A robot system according to some embodiments includes a multi-joint manipulator which has a plurality of joints connected through links; a control device which carries out specification point setting processing and restrained control command value calculating processing. The specification point setting processing is processing of setting a position except for a distal end as the specification point to the multi-joint manipulator. The restrained control command value calculation processing is processing of calculating a restrained control command value to control the multi-joint manipulator in a restrained condition that at least one of degrees of freedom of movement of the multi-joint manipulator in the specification point is restrained, when a control command value to control the multi-joint manipulator is given. The control device transmits the restrained control command value to the multi-joint manipulator.
An appropriate control becomes possible in the environment in which it is difficult to control only by specifying the position of the distal end of the multi-joint manipulator.
The attached drawings are incorporated into this specification to help the description of the embodiments. Note that the drawings should not be used to interpret the present invention to limit to examples shown in the drawings and described.
[
[
[
[
[
[
[
[
[
[
[
[
[
[
[
[
[
[
[
[
[
Hereinafter, embodiments will be described with reference to the attached drawings. In the following detailed description, to provide the comprehensive understanding of the embodiments, many detailed specific items are disclosed for the purpose of description. However, it would be clear that one or plural embodiments can be realized without these detailed specific items.
Like a reference example described with reference to
The computer C1 is connected with the multi-joint manipulator 1. The computer C1 is composed of a non-transitory recording medium such as a hard disk. The computer C1 executes a software program stored in the recording medium and can carry out a virtual display of the state or operation of the multi-joint manipulator 1 (in a simulation display) on the display device C2. The operator can previously confirm the state or operation of the multi-joint manipulator 1 on a screen of the display device C2 by a simulation display. The operator can see an image 6 of the multi-joint manipulator 1 displayed on the screen, specify the specification point 5 on the screen, move a part of the multi-joint manipulator 1 corresponding to the specification point 5 on the screen, and specify the attitude of the part of the multi-joint manipulator 1 in the specification point on the screen, by using a graphical user interface such as Pointer 14 and Interactive Marker to be described later. For example, through such a screen operation, a control command value (the position command value and/or the attitude command value) of the distal end of the multi-joint manipulator 1 can be set.
On the other hand, the operator uses the computer C1 to input a distal end command indicating a target position of the specification point 5 and a target attitude there while viewing the simulation image on the display device C2. The computer C1 calculates a deviation E (including, for example, a position deviation or an attitude deviation) of the distal end position and attitude specified by the distal end command from the current distal end position and attitude calculated in A1 (A2). Furthermore, the computer C1 multiplies the deviation E by a proportional gain KP for the position control set previously (A3).
A Jacobian matrix [J] is calculated based on a detection value of the current angle of each of the joints J1 to J6 (A4). Moreover, an inverse matrix of the Jacobian matrix is calculated (pseudo inverse matrix when the multi-joint manipulator 1 has redundant degrees of freedom) (A5). Using this inverse Jacobian matrix [J]−1, a command value (Vθ) of a joint speed is calculated from the position attitude deviation KP·E which have been multiplied by the gain (A6). By integrating the command value of this joint speed (a joint angular speed) with respect to time, the command value of the joint angle is calculated (A7). Note that “K” in A7 of
The above is a description about the control to move the distal end of the multi-joint manipulator (the specification point 5) to the target position and the target attitude. In addition to it, in the present embodiment, a position except for the distal end (the specification point 5) is sets as a specification point 10 to the multi-joint manipulator 1. Then, a partial fixation control is carried out in which the position and attitude of the distal end are controlled in a restrained condition that at least one of degrees of freedom of operation of the multi-joint manipulator 1 in the specification point 10 is restrained. In the partial fixation control of the present embodiment, the end effector 4 is operated in the condition that a position of the specified one of the links L1 to L6 is fixed. Hereinafter, such a control will be described.
The computer C1 executes the above-mentioned program to carry out specification point setting processing, current position data generation processing, restrained control command value calculation processing, specification attitude setting processing, object data acquisition processing, object image display processing, specification joint setting processing, reference coordinate setting processing, fixation-side length calculation processing, traveling destination setting processing, movable-side joint control command value generation processing, fixation-side joint control command value generation processing and so on.
The specification point setting section 31 carries out the specification point setting processing of setting an optional position on the multi-joint manipulator 1 as the specification point 10. Specifically, the operator carries out an input operation of operating a pointer displayed on the screen and specifying a desired position of an image 6 of the multi-joint manipulator (the image of the multi-joint manipulator on the display device C2). The specification point setting section 31 sets the specification point 10 according to the input operation. For example, the specification point 10 is specified in a robot coordinate system (a local coordinate system of the multi-joint manipulator 1). Such a specification can be carried out based on a link number and a relative position from a link original point as described later.
As an example of the specification point, the specification point 10 is shown on the link L4 in
Data that is important typically as position data for specifying the specification point 10 is a position on the manipulator in a length direction (in other words, a position in the length direction of the links L1 to L6). Therefore, the operator can specify, as the specification point 10, an optional position on a centerline CL in a movable section (on the side of the distal end from the first joint J1) when a virtual centerline CL from the base section 2 of the multi-joint manipulator 1 toward the end effector 4 (reference to
Such a specification point 10 can be specified based on the link number and a distance from the link origin in the length direction. The link number is an identifier which specifies each link individually (for example, “L4” of the links L1 to L6 in
The coordinate setting section 32 sets the specification position showing a fixation position of the specification point 10 in the world coordinate system (shown by the xyz coordinates in
The calculating section 33 carries out the current position data generation processing of generating data showing the current position of the specification point 10 based on a detection value supplied from the multi-joint manipulator 1 (each joint angle θ). The calculating section 33 generates a command value to operate (move or travel) the specification point 10 from the current position to the specification position. The generated command value is transmitted to the multi-joint manipulator 1 (the operation control unit of the multi-joint manipulator). The multi-joint manipulator 1 drives the joints J1 to J6 based on the command value to operate the specification point 10 to the specification position (in other words, the operation control unit of the multi-joint manipulator transmits a control command value to a motor corresponding to each joint and so on, such that the motor drives the joint).
The calculating section 33 carries out the restrained control command value calculation processing of calculating a command value (the restrained control command value) for controlling the position and attitude of the distal end of the multi-joint manipulator 1 in the condition that the specification point 10 is fixed on the specification position. In the restrained control command value calculation processing, when the operator inputs the target position 15 of the specification point 5 in the distal end, the calculating section 33 calculates a control command value (the restrained control command value) to each of the joints J1 to J6 such that the specification point 5 of
In the above, the method of generating the control data of the multi-joint manipulator in the present embodiment 1 has been described. The computer C1 transmits the control data to the multi-joint manipulator 1 (the operation control unit of the multi-joint manipulator) such that the control of the multi-joint manipulator 1 is carried out in the condition that the specification point 10 is fixed on the specification position.
If the degrees of freedom on the side of the distal end is enough as in case that the number of joints on the side of the distal end from the specification point 10 is equal to or more than six (joints J5 and J6 in the example of
In the partial fixation control, moreover, the control of the multi-joint manipulator can be carried out in the condition that the attitude of the multi-joint manipulator 1 in the specification point 10 is fixed in addition to the position of the specification point 10. In such a case, the attitude setting section 34 of
In such a case, the calculating section 33 calculates the command value to control the operation of the multi-joint manipulator 1 in the condition that the multi-joint manipulator 1 is fixed on the specification position in the specification point 10 and the attitude is fixed on the specification attitude. By transmitting this command value to (the operation control unit of) the multi-joint manipulator 1, the multi-joint manipulator 1 can be controlled in the condition that the position of the specification point 10 of the specified link L4 is fixed, as shown in
In the partial fixation control, it is possible to carry out an object fixation control in which a position except for any position on the multi-joint manipulator 1 is set as the specification point 10.
Even if the specification point 10 is set to such a position, the calculating section 33 can generate a restrained control command value in the condition that the position and attitude of the object 11 is fixed in the specification point 10. However, the position and attitude of the object 11 to the link L6 to which the end effector 4 has been attached are supposed to be fixed. By such a control, when not the distal end of the multi-joint manipulator 1 but the position and attitude of the tip of the object held by the end effector 4 is to be fixed, the specification point can be easily set.
In case of this control, the operator specifies a desired portion of the links L1 to L6 or the joints J1 to J6. Moreover, the operator specifies a target position and/or a target attitude of that portion. The calculating section 33 calculates an angle of each of the joints J1 to J6 such that the specified portion heads for the target position and/or the target attitude, in the restrained condition that the specification point 10 on the object 11 has been fixed on the specified position in the world coordinate system.
In case of the object fixation control, the specification point 10 can be set as follows. A link number and a relative position in the world coordinate system to the link origin of a link corresponding to the link number are set. In case of
The specification point 10 can be set as follows. In a robot head and so on which the multi-joint manipulator 1 has, a detector which can detect the shape of the object near the end effector 4 is provided (e.g. a laser scanner, and the detector is not shown). The detector detects the position, shape and attitude of the object 11. The detector transmits a detection signal corresponding to the position, shape and attribute of the object 11 (the detected object data or the object data acquired by the detection) to the computer C1. The computer C1 receives the detection signal (the object data) from the detector. The computer C1 carries out the object data acquisition processing of acquiring the object data (data of the position, shape and attitude of the object) based on the received detection signal.
The computer C1 carries out the object image display processing of displaying the object image on the display device C2 based on the acquired object data. That is, the simulation image of the multi-joint manipulator 1 is displayed on the display device C2 in the condition that the object 11 is held in an actual space. The operator sees the image of the object 11 on the screen and carries out an input operation of setting the specification point 10 on the object image by a pointer and so on. The specification point setting section 31 sets the specification point 10 according to the input operation.
Next, as one embodiment, a distal end fixation control and a base fixation control will be described. Either of these controls is same as the embodiments described with reference to
First, the distal end fixation control will be described. In case of this control, the control is carried out in the condition that all the joints in a part of the multi-joint manipulator 1 on the distal end side from some joint are fixed. Referring to FIG. 12, this control will be described. In the present embodiment, a fixed position of the base section of the multi-joint manipulator 1 (such as the connection section between the base section 2 and the supporting section 3) is referred to as an “absolute reference coordinates 20”, a position of a specification joint specified by the operator (the joint J3 in
Next, which of the base and the distal end is fixed is selected. In the present embodiment, the distal end fixation control is selected according to the input operation to the computer C1 by the operator. By this selection, the base side from the “setting coordinates 21” is a movable side and the distal end side from the “setting coordinates 21” is a fixation side (Step S2).
Next, the calculating section 33 sets the position of the base section on the movable side as the reference coordinates (in other words, the calculating section 33 carries out reference coordinates setting processing of setting the position of the base section on the movable side as the reference coordinate). Because the base side is the movable side in case of the distal end fixation control, the “absolute reference coordinates 20” corresponding to the base section of the whole multi-joint manipulator 1 are set as the reference coordinates (Step S3).
Next, the calculating section 33 calculates a length on the fixation side (in other words, the calculating section 33 carries out fixation side length calculation processing of calculating the length on the fixation side). In an example of
Next, the coordinates setting section 32 carries out traveling destination setting processing of setting a traveling destination of the setting coordinates 21 as specification coordinates (Step S5). The calculating section 33 carries out movable side joint control command value generation processing of generating a control command value of each of the joints J1 and J2 on the movable side (one example of the restrained control command value generation processing) based on the inverse kinematics calculation such that the setting coordinates 21 is moved to the specification coordinates (Step S6). Although only two joints J1 and J2 on the movable side are shown in
The computer C1 transmits a command value of an angle of each of the joints J1 to J6 generated in the above processing to the multi-joint manipulator 1. Each of the joints J1 to J6 of the multi-joint manipulator 1 is driven based on the command value (Step S8).
Generally, the position of the distal end of the end effector 4 in the world coordinate system is an object to be controlled for some work. The position can be known by adding the coordinates of the specification joint J4 and the length on the distal end side 24 calculated at step S4.
Next, the base fixation control will be described. In case of this control, the control is carried out in the condition that all the joints in a portion of the multi-joint manipulator 1 on the base side from some joint are fixed. Referring to
Next, the calculating section 33 sets the position of the base on the movable side as the reference coordinates (in other words, the calculating section 33 carries out reference coordinate setting processing of setting the position of the base on the movable side as the reference coordinates). In case of base fixation control, because the distal end side is the movable side, the “setting coordinates 21” corresponding to the base on the distal end side is set as the reference coordinates (Step S3).
Next, the calculating section 33 calculates a length on the fixation side (in other words, the calculating section 33 carries out fixation side length calculation processing of calculating the length on the fixation side). In an example of
Next, the coordinates setting section 32 carries out the traveling destination setting processing of setting a traveling destination of the setting coordinates 21 as the specification coordinates (Step S5). The calculating section 33 carries out movable side joint control command value generation processing of generating the control command value of each of the joints J4, J5, and J6 on the movable side (an example of the restrained control command value generation processing) based on the inverse kinematics calculation for the setting coordinates 21 to be traveled to the specification coordinates (Step S6). Next, the calculating section 33 carries out fixation side joint control command value generation processing of fixing the angle command value of each of the joints J1, J2, and J3 on the fixation side (from the absolute reference coordinates 20 to the setting coordinates 21) to a constant value (one example of the restrained control command value generation processing) (Step S7).
The computer C1 transmits a command value of the angle of each of the joints J1 to J6 generated in the above processing to the multi-joint manipulator 1. Each of the joints J1 to J6 of the multi-joint manipulator 1 is driven based on the command value (Step S8).
Through the above processing, the base fixation control in which each of the joints J4 to J7 on the distal end side 24 operates becomes possible in the condition that each of the joints J1 to J3 on the base side 23 shown in
As an application of the above-mentioned distal end fixation control and base fixation control, the operation of only a single specification joint may be fixed. In such a control, the relative positions and the relative attitude of a couple of links connected with the specification joint are fixed and the control of the other joints is carried out.
Next, a method of setting the specification point 10 will be described.
In the default condition, the specification point 10 is displayed in the distal end position (the predetermined position on the end effector 4). A marker 13 is displayed to show the three-dimensional attitude of the selected link L6 in the position of the specification point 10. The interactive Marker of ROS (Robot Operating System) which is a middleware developed by Willow Garage Inc. can be used as the marker 13.
The pointer 14 which can be operated by a pointing device such as a mouse is displayed on the screen. The operator operates the pointer 14 to specify a desired link of the multi-joint manipulator image 6 for a selection operation.
The marker 13 is displayed near the specification point 10 to show the attitude of the selected link L5. The marker 13 has arrows of three axes of XYZ and an angle can be freely set in the three-dimensional space. The operator specifies the marker 13 by the pointer 14 and sets the attitude of the link L5 by rotating to a desired angle on the screen.
The whole multi-joint manipulator image 6 may be displayed once more according to the setting of the attitude of the link L5. In this case, the calculating section 33 carries out the forward kinematics calculation and the inverse kinematics calculation according to the attitude which has been set by using the marker 13 to calculate the angle of each of the joints J1 to J6, and displays the multi-joint manipulator image 6 after changing the attitude of the link L5 into the setting attitude.
The operator can freely change the position and the angle of s virtual viewpoint to see the multi-joint manipulator image 6.
Next, a method of setting the partial fixation control to fix the object 11 described with reference to
As shown in
The present invention is not limited to each of the above embodiments. It would be clear that each of the embodiments may be changed and modified appropriately in a range of features of the present invention. Also, various techniques used in the embodiments or the modification examples can be applied to another embodiment or a modification example, unless there is not any technical contradiction.
This application is based on Japanese Patent Application JP 2014-52516 filed on Mar. 14, 2014 and claims the priority of that application. The disclosure of that application is incorporated herein by reference.
Number | Date | Country | Kind |
---|---|---|---|
2014-052516 | Mar 2014 | JP | national |
Filing Document | Filing Date | Country | Kind |
---|---|---|---|
PCT/JP2015/055863 | 2/27/2015 | WO | 00 |