The present invention relates to a moving body, in particular, to a moving body that can be prevented from moving in a large turn when a target turns.
In Patent Literature 1, a moving robot 1 is disclosed that conduct following action while maintaining a predetermined diagonally forward and relative position to a moving target 2. The moving robot 1 detects an orientation of the target 2 by a camera and the like and determines a target position of the moving robot 1 corresponding to the detected orientation of the target 2. The moving robot 1 calculates a travel route to the determined target position and moves.
However, when the moving robot 1 follows the target 2 in the front thereof, if the target 2 turns, the moving robot 1 follows in a large turn in comparison with the action of the target 2. Especially, when the moving robot 1 follows the target 2 at the position shifted toward the left or right front of the target 2 rather than at the direct front of the target 2, the moving body moves in a larger turn. For example, as shown in Patent Literature 1, when the moving robot 1 follows the target 2 in the right front thereof, if the target 2 turns left, the moving robot 1 moves in a very large left turn. As the distance between the target position of the moving robot 1 and the target 2 increases, this problem becomes noticeable.
The present invention has been made to solve the above-described problem, and an object of the present invention is to provide a moving body that can be prevented from moving in a large turn when a target turns.
In order to achieve this object, a moving body according to the present invention is provided with a movement unit with which the moving body moves following a target. The moving body includes a distance measurement unit for measuring the target, a position orientation calculation unit for calculating position and orientation of the target based on a plurality of distance measurement data measured by the distance measurement unit, a moving target calculation unit for calculating a moving target for the moving body with respect to the target based on a calculation result obtained by the position orientation calculation unit, a moving target shift unit for shifting the moving target to a target side based on an angular deviation formed by an orientation of the moving body and the orientation of the target calculated by the position orientation calculation unit, and a movement control unit for controlling the movement unit so that the moving body moves to the moving target shifted by the moving target shift unit.
It should be noted that, a midpoint on a target path used for calculation of the steering angle by steering angle calculation unit is not necessarily a midpoint of the position of the moving body and the moving target but may be a point near the midpoint on the target path or a point approximated on the target path near the midpoint.
According to the moving body of the present invention, the position and orientation of the target are calculated based on a plurality of distance measurement data obtained by measuring the target, and based on this calculation result the moving target with respect to the target is calculated. Further, based on the angular deviation formed by the orientation of the moving body and the orientation of the target, the moving target is shifted toward the target side. The movement unit is controlled so that the moving body moves to the moving target shifted toward the target side. Thus, the moving body can be prevented from moving in a large turn when the target turns.
Hereinafter, preferred embodiments of the present invention will be described with reference to the accompanying drawings. First, with reference to
As shown in
Hereinafter, the distance and the angle detected by the distance measurement sensor 16 are referred to as “distance measurement data”.
A pair of left and right wheels 17 are provided facing each other at a bottom part of the outer case 2. As shown in
Forward movement and backward movement of the moving body 1 are conducted by normally and reversely rotating the left and right motors with the same output and change of movement direction of the moving body 1 is conducted by differentially rotating the motors. When the moving body 1 moves in the left and right direction, it is necessary to change the moving direction of the moving body 1 since the moving body 1 cannot directly move in left and right directions along which the wheels 17 are provided. That is, the moving body 1 moves through the wheels 17 and the drive unit 18 (moving part) having non-holonomic restraint condition.
Next, with reference to
As shown in
When the user H turns, it is necessary for the moving body 1 to turn along with the user H. Since a distance between the moving body 1 and the moving target T1 is relatively small, a turning radius of the moving body 1 is also small. Since the moving body 1 turns by differentially driving the left and right wheels 17, the moving body 1 cannot turn enough when trying to make a sharp turn with a small turning radius. Thus, there may be a delay in the following the user H.
Therefore, as shown in
Ys=Vu×ΔT Formula 1
In Formula 1, ΔT is a predetermined time interval and “one second is exemplified. That is, the control target T2 is a position that is obtained by adding a distance that the user H advances for one second to the moving target T1. By virtue of the moving body 1 moving with the control target T2 as the moving target, a distance of the moving body 1 and the moving target can be secured. Thus, in comparison with a case where the moving body 1 moves with the moving target T1 as the moving target, the turning radius of the moving body 1 can be enlarged. As a result, even if the user H turns sharply, the moving body 1 can turn gently along a large turning radius, thereby preventing a delay in the following the user H.
A movement action of the moving body 1 when the user H turns or rotates will be hereinafter described. First, when the user H turns right or rotates right, since the user H turns or rotates in a direction to where the moving body 1 is located, a change of the control target T2 according to this rotation or turn is small. Therefore, the trajectory of the moving body 1 that moves following the control target T2 (hereinafter, abbreviated as “movement trajectory”) is small as a whole.
On the other hand, when the user H turns left or rotates left, the user H turns or rotates in a reverse direction with respect to the moving body 1 that is located in the right front of the user H. That is, since the user H turns or rotates in a direction distant from the moving body 1, a change of the control target T2 according to this rotation or turn is larger in comparison with the case where the user H turns right or rotates right. As a result, the movement trajectory is large as a whole.
Further, since the moving body 1 follows the user H in the right front thereof, according to the moving body 1 that is located in the right front of the user H, when the user H turns left or right by the same angle, an angular deviation of the orientation Du of the user H after turning and the orientation Dr of the moving body 1 is smaller when the user H turns left. Although the details will be described with reference to
In the present embodiment, the shift control target T2′ is calculated by moving (shifting) the control target T2 to the user H side in the Xu-axis direction by the Xs based on an angle Δθ by the orientation Dr of the moving body 1 and the moving body 1 is controlled to move targeting the shift control target T2′. Referring to
According to this rotation of the user H, a control target T2a corresponding to the orientation Da of the user H is calculated. In
Sequentially, the control target T2b is calculated from the orientation Db of the user H, the shift amount Xsb is calculated based on the orientation Db of the user H and the orientation Dr of the moving body 1, the shift control target T2b′ is calculated from the control target T2b and the shift amount Xsb. In the same manner, the control target T2c, the shift amount Xsc, and the shift control target T2c′ are calculated from the orientation Dc of the user H and the orientation Dr of the moving body 1, and the shift control T2d, the shift amount Xsd, and the shift control target T2d′ are calculated from the orientation Dd of the user H and the orientation Dr of the moving body 1.
Since the shift control targets T2b′ to T2d′ are shifted in the xu-axis direction than the control targets T2b to T2d, that is, shifted in the front side of the user H, a distance between the position Pu of the user H and the shift control targets T2b′ to T2d′ becomes smaller than a distance between the position Pu and the control targets T2b to T2d. Therefore, the distribution of the shift control targets T2b′ to T2d′ becomes closer to the user H side than the distribution of the control targets T2b to T2d. As a result, since the movement trajectory based on the shift control targets T2b′ to T2d′ can have a smaller radius than the movement trajectory based on the control targets T2b to T2d, even when the user H turns left, the moving body 1 can be prevented from moving in a large turn.
With reference to
The CPU 11 is an arithmetic device for controlling the respective sections mutually connected with the bus line 14. A control program 12a is stored in the flash ROM 12 as a non-volatile rewritable memory device for storing the program executed by the CPU 11 and data of fixed values. Upon execution of the control program 12a by the CPU 11, a main processing shown in
The RAM 13 is a memory to rewritably store various work data and flags and the like when the CPU 11 executes the control program 12a. In the RAM 13, it is respectively provided a distance measurement data memory 13a in which the distance measurement data MP measured from the distance measurement sensor 16 are stored, a user position memory 13b in which a position Pu of the user H is stored, a user velocity memory 13c in which a velocity Vu of the user H is stored, a user orientation memory 13d in which an orientation Du of the user H is stored, a moving body position memory 13e in which a position Pr of the moving body 1 is stored, a moving body orientation memory 13f in which an orientation Dr of the moving body 1 is stored, a target position memory 13g in which the moving target T1 of the moving body 1 is stored, a lateral deviation memory 13h in which a lateral deviation ΔXt (see
The midpoint angle memory 13j is a memory in which an angle Δθt is stored. The angle Δθt is formed by the position Pr of the moving body 1 and a midpoint Tc which is on a target path R of the moving body 1 being connected the position Pr of the moving body 1 and the shift control target T2′ (see
In the present embodiment, the user position memory 13b and the user orientation memory 13d have values therein based on the moving body coordinate system mentioned in the above, and the moving body position memory 13e, the moving body orientation memory 13f, the target position memory 13g, the control target position memory 13i, the midpoint angle memory 13j, and the midpoint angle previous value memory 13k have values therein based on the user coordinate system.
The drive unit 18 is a device to move and operate the moving body 1, and is constituted from the wheels 17 (see
Next, with reference to
Subsequent to the processing of S1, based on the distance measurement data MP of the distance measurement data memory 13a, the position Pu of the user H, the velocity Vu of the user H, and the orientation Du of the user H are calculated based on the moving body coordinate system and respectively stored in the user position memory 13b, the user velocity memory 13c, and the user orientation memory 13d (S2). Since the distance measurement data MP are values based on the moving body 1, the position Pu of the user H, the velocity Vu of the user H, and the orientation Du of the user H are calculated based on the moving body coordinate system.
Subsequent to the processing of S2, a coordinate transformation is performed with the position Pu of and the orientation Du of the user H on the basis of the moving body coordinate system which are stored in the user position memory 13b and the user orientation memory 13d, and thus the position Pr of the moving body 1 and the orientation Dr of the moving body 1 in the user coordinate system are calculated and stored in the moving body position memory 13e and the moving body orientation memory 13f respectively (S3).
Subsequent to the processing of S3, the moving target T1 in the user coordinate system is calculated and stored in the target position memory 13g (S4). After the processing of S4, the lateral deviation ΔXt in the xu-axis direction between the position Pr of the moving body in the moving body position memory 13e and the moving target T1 in the target position memory 13g is calculated and stored in the lateral deviation memory 13h (S5).
Subsequent to the processing of S5, the control target T2 is calculated based on the moving target T1 stored in the target position memory 13g and the velocity Vu of the user H stored in the user velocity memory 13c (S6). Specifically, first, the shift amount Ys (see
Subsequent to the processing of S6, by shifting the control target T2 based on the orientation Dr of the moving body 1 in the moving body orientation memory 13f, the shift control target T2′ is calculated and stored in the control target position memory 13i (S7). The Calculation of the shift control target T2′ by the processing of S7 will be described with reference to
It should be noted that α1, β1 and θmax are coefficients in Formula 2 and these coefficients are values calculated beforehand by experiments. The position XT2′ calculated by Formula 2 is stored in the control target position memory 13i.
With reference to
Also, since the shift amount Xs changes gradually corresponding to the increase in the angular deviation Δθ according to the Sigmoid curve, when the angular deviation Δθ is small, that is, when the orientation Du of the user H changes slightly, the shift amount Xs does not increase sensitively. As a result, since the moving body 1 does not change direction rapidly due to a slight change of the orientation Du of the user H, behavior of the moving body 1 can be stabilized and further movement operation of the moving body 1 can be realized more naturally.
Referring back to
First, in
In
It should be noted that Kp1, Kp2, Kd are coefficients and are values calculated beforehand by experiments. Although the moving body 1 can move toward the shift control target T2′ with the steering command value ω1, in the present embodiment, the moving body 1 is steered based on the steering command value ω obtained by further correcting the steering command value ω1 with a lateral deviation term f (ΔXt) on the basis of the lateral deviation ΔXt. Specifically, the lateral deviation term f (ΔXt) is calculated by Formula 4 and the steering command value co by the lateral deviation term f (ΔXt) and the steering command value ω1 is calculated by Formula 5.
It should be noted that α2, β2, ωmax are coefficients and are values calculated beforehand by experiments. In the processing of S11 in
As shown in
The case where the absolute value of the lateral deviation ΔXt is large corresponds to the case where the deviation of the moving body 1 and the moving target T1 in the xu-axis direction is large, and also corresponds to the case where the moving body 1 is distant from the moving target T1 or the shift control target T2′ calculated based on the moving target T1 are separated. In this case, the steering command value ω becomes large when a large value is set as the lateral deviation term f (ΔXt). As a result, when the moving body 1 and the shift control target T2′ are distant, since the moving body 1 can move to the shift control target T2′ side more quickly due to the large steering command value ω, the moving body 1 can moved in a smaller turn.
On the other hand, the case where the absolute value of the lateral deviation ΔXt is small corresponds to the case where a deviation of the moving body 1 and the shift control target T2′ is small, therefore it is not necessary to steer the moving body 1 toward the user H side. In this case, setting a small value as the lateral deviation term f (ΔXt) does not cause the moving body 1 to be steered toward the user H, therefore unstable action concerning the steering of the moving body 1 can be prevented, thus behavior of the moving body 1 can be stabilized.
Referring back to
As shown in
On the other hand, according to the moving body 1 of the present embodiment, the shift control targets T2a′ to T2d′ which are with a smaller turn than the control targets T2a to T2d are set, and the moving body 1 is moved based on the steering command value ω to which the lateral deviation term f (ΔXt) by the lateral deviation ΔXt between the position Pr of the moving body 1 and the moving target T1 is added. Thus, since the moving body 1 is moved along the more user H side than the shift control targets T2a′ to T2d′ having a smaller turn, the movement trajectory Q of this movement can be in a further smaller turn than that of the shift control targets T2a′ to T2d′.
Therefore, since the moving body 1 of the present embodiment is moved based on the steering command value ω by the shift control targets T2a′ to T2d′ and the lateral deviation term f (ΔXt) even when the user H turns left or rotates left, the moving body 1 can be prevented from moving in a large turn. As a result, the moving body 1 can move appropriately following the user H without a delay in following even when the user H turns left or rotates left.
Although the present invention has been described based on embodiments, the present invention is not limited to the above-described embodiments in any way, and it can be easily understood that various improvements and modifications are possible within the spirit of the present invention.
In the above embodiments, the case where the steering command value ω1 is calculated based on the midpoint Tc of the target path R has been described. However, the present invention is not necessarily limited thereto. The steering command value ω1 may be calculated based on a middle point on the target path R such as a position near the midpoint Tc on the target path R or a position approximate to the target path R near the midpoint Tc. Also, the steering command value ω1 may be calculated based on a position representing a characteristic of the target path R such as an inflection point, a saddle point, a local maximum point, a local minimum point, and a point near the above mentioned points. Further, the steering command value ω1 may be calculated corresponding to the velocity Vr or angle velocity of the moving body 1 at the moment and the velocity or angle velocity of the moving body 1 targeted at the time that the shift control target T2′ is reached.
In the above embodiments, the case where the position Pu, the velocity Vu, and the orientation Du, of the user H are calculated based on the distance measurement data obtained by the distance measurement sensor 16 has been described. However, the present invention is not necessarily limited thereto. The position Pu, the velocity Vu, and the orientation Du, of the user H may be calculated based on images obtained by a camera that is installed instead of the distance measurement sensor 16.
In the above embodiments, the case where, in
In the above embodiments, the case where the lateral deviation ΔXt is defined as a deviation in the xu-axis direction between the position Pr of the moving body and the moving target T1 has been described. However, the present invention is not necessarily limited thereto. The lateral deviation ΔXt may be defined as a deviation in the xu-axis direction between the position Pr of the moving body and the shift control target T2′.
In the above embodiments, the case where the moving body 1 moves while following the right front of the user H has been described. However, the present invention is not necessarily limited thereto. The moving body 1 may move following the user H in the left front thereof.
The numerical values listed in the above embodiments are merely examples, and matter of course, it is possible to adopt other numerical values.
Number | Date | Country | Kind |
---|---|---|---|
2018-061776 | Mar 2018 | JP | national |
Filing Document | Filing Date | Country | Kind |
---|---|---|---|
PCT/JP2019/012300 | 3/25/2019 | WO | 00 |