The present disclosure relates to a path planning apparatus, and more particularly relates to a path planning apparatus that plans an operation for implementing automated driving of a vehicle or the like.
In recent years, automated driving of an automobile and an autonomous moving system of a conveyance carriage or the like have been developed. In the autonomous moving system, a path including a track to be traveled by a moving body and a speed is generated, and control is performed so that the moving body travels along the generated path. Regarding path planning, in many scenes, path planning along the center of a road and an inductor such as a magnetic marker is performed. However, depending on a case, in a scene of traveling near a toll booth with no white lines on a road or on an unpaved road and a scene in which an autonomous conveyance carriage with no use of an inductor moves to a destination, such information cannot be used. In such scenes, a path that enables reaching the destination while avoiding an obstruction in a space where there is no information of a marker to be traveled on is required. For example, as disclosed in Patent Document 1, a technology has been developed in which path planning is implemented even when there is no information of a marker to be traveled on.
Patent Document 1 employs a method of generating a traveling route, based on a direction along a road including a line passing through center points of a plurality of circles inscribed in a travelable region with no obstructions. In this case, for example, inscribed circles cannot be determined in a significantly wide travelable region such as an airport, and thus a traveling route cannot be generated and a destination cannot be reached. Further, in a travelable region having a complicated shape and having great changes in the width, such as near a toll booth, a correct direction along a road cannot be calculated and a destination cannot be reached.
The present disclosure is made in order to solve the problems as described above, and has an object to provide a path planning apparatus that enables reaching a destination through a travelable region, even when the travelable region is complicated such as in an airport and near a toll booth.
A path planning apparatus according to the present disclosure is a path planning apparatus configured to plan a path of a moving body. The path planning apparatus includes: a travelable region calculation unit configured to calculate a travelable region of the moving body, based on surrounding information of the moving body; a target state calculation unit configured to calculate target state quantity including at least a target position of the moving body; a state prediction unit configured to predict at least current state quantity of the moving body and state quantity of the moving body at one or more positions between a current position and the target position of the moving body, and thereby generate one or more path candidates; a predicted state evaluation unit configured to evaluate the one or more path candidates based on the target state quantity and the travelable region, and output evaluation results; and a path generation unit configured to generate the path from the one or more path candidates based on the evaluation results, and output the path to a motion controller configured to control the moving body based on the path.
According to the path planning apparatus of the present disclosure, a path up to the target state quantity is evaluated based on the target state quantity including the target position of the moving body, and the travelable region, and the path is generated based on evaluation results. Therefore, even when the travelable region is complicated, a destination can be reached through the travelable region.
The information acquisition unit 100 includes a target value acquisition unit 110, a self state acquisition unit 120, and a surrounding environment acquisition unit 130.
The target value acquisition unit 110 acquires information such as a target position to be reached by the moving body, a target speed, and a target azimuth. The target value acquisition unit 110 acquires information from infrastructure information received from controlling, information specified by a user in advance, a predetermined position in map information stored by the moving body, and the like, for example. Here, the map information stored by the moving body refers to, for example, a map of a car navigation device or a point cloud map generated using simultaneous localization and mapping (SLAM) or the like, rather than a high-accuracy map.
Examples of the target position include an entrance of a gate or a position of a bar at a toll booth, a position of a refuge on an expressway, a nose wheel part of an airplane for a towing tractor, and a position of the moving body 1 specified by a user. Examples of the target speed include a legal speed limit and a specified speed set by a user in advance. The target azimuth is a target angle at the time of passing through the target position, examples of which include a direction perpendicular to a gate at the time of passing through the gate.
The self state acquisition unit 120 acquires the current state of the moving body itself. Examples of the self state acquisition unit 120 include a speed sensor, an acceleration sensor, an inertial measurement unit, a steering angle sensor, a steering torque sensor, a yaw rate sensor, and a global satellite positioning system (global navigation satellite system (GNSS)) sensor. Here, the inertial measurement unit is hereinafter referred to as an inertial measurement unit (IMU) sensor.
The surrounding environment acquisition unit 130 acquires a wall around the moving body, a position, a speed, and an azimuth of a moving obstruction, and space information of a travelable space with no obstructions. Examples of the surrounding environment acquisition unit 130 include millimeter-wave radar, a camera, Light Detection and Ranging (LiDAR), sonar, a vehicle-to-vehicle communication apparatus, and a road-to-vehicle communication apparatus.
The path planning apparatus 200 includes a travelable region calculation unit 210, a target state calculation unit 220, a state prediction unit 230, a predicted state evaluation unit 240, a path point calculation unit 250, and a path generation unit 260.
The travelable region calculation unit 210 calculates a travelable region with no obstructions in which the moving body 1 can travel, based on surrounding information of the moving body 1 acquired from the surrounding environment acquisition unit 130.
The target state calculation unit 220 calculates target state quantity in the destination to be reached by the moving body 1, based on the information from the target value acquisition unit 110. The target state quantity includes at least the target position of the moving body 1.
The state prediction unit 230 predicts at least the current state quantity of the moving body 1 and the state quantity of the moving body 1 at one or more positions between the current position and the target position of the moving body 1, and thereby generates one or more path candidates. Thus, for example, through use of state estimation calculation using a motion model of the moving body, a predetermined plurality of inputs are input to the motion model of the moving body to predict the state quantity of at least one next step ahead of the plurality of inputs, that is, one sampling time ahead in a control cycle, and thereby one or more path candidates are generated. In the present embodiment, particle filters are used as an example of a method for state estimation.
The particle filters are a method of predicting time-series data using a probability density distribution, and may be referred to as sequential Monte Carlo methods. Further, the particle filters as state estimation calculation approximate a probability density distribution of a state using a plurality of particles. For example, when there are many particles having certain state quantity, using the particle filters as its state estimation calculation enables estimation of the whole probability density distribution, and thus the frequency of outputting a local optimal solution can be reduced.
The predicted state evaluation unit 240 assigns a weight to each predicted state quantity, that is, each particle, to obtain weighted path candidates, evaluates the weighted path candidates based on their weights, and outputs evaluation results. In this case, weights are assigned based on the target state quantity calculated in the target state calculation unit 220 and the travelable region calculated in the travelable region calculation unit 210. When a path point is calculated in the path point calculation unit 250 to be described later, with the weights, the state quantity with high likelihood can be calculated by calculating a weighted average of a plurality of state quantities predicted in the state prediction unit 230 based on a value of the weight of each of the predicted state quantities.
For example, if a weighting coefficient of the state quantity outside of the travelable region is set to 0, in calculation of the weighted average, the state quantity is multiplied by the weighting coefficient of 0, and thus the state quantity can be prevented from being the path point outside of the travelable region, and a path that is ensured to be a path inside of the travelable region TA can be generated.
The path point calculation unit 250 calculates the path point from the path candidates. Specifically, the path point calculation unit 250 performs calculation of calculating the weighted average of the predicted state quantities predicted in the state prediction unit 230 according to the weights assigned by the predicted state evaluation unit 240, and then calculating the state quantity subjected to the weighted average as the path point.
As illustrated in
The path generation unit 260 generates a path out of the path candidates based on the evaluation results, and outputs the path to the motion controller 300 that controls the moving body 1 based on the generated path. Specifically, the path generation unit 260 outputs a point sequence including path points at respective discrete times calculated in the path point calculation unit 250 to the motion controller 300 as a generated path.
As illustrated in
The motion controller 300 includes a control amount calculation unit 310 and an actuator controller 320.
The control amount calculation unit 310 calculates a target control value for the moving body 1 for traveling along the target path by using the path generated in the path generation unit 260 as the target path, and outputs the target control value to the actuator controller 320.
The actuator controller 320 is a controller equipped in the moving body 1, and causes an actuator to operate so that the moving body follows the target control value calculated in the control amount calculation unit 310. Examples of the actuator include steering, a driving motor, and brakes.
Next, an example of an operation of the path planning apparatus 200 according to the first embodiment will be described with reference to the flowchart illustrated in
First, as input information of the path planning apparatus 200, target values, such as the target position, the target speed, and the target azimuth, are acquired from the target value acquisition unit 110, self states, such as the position, the speed, and the azimuth of the moving body, are acquired from the self state acquisition unit 120, and surrounding environment information, such as coordinates of each vertex, the position of the moving obstruction, and the speed in the travelable region, are acquired from the surrounding environment acquisition unit 130 (Step S101).
In
The target state quantity TG includes coordinates (xt, yt) of the target position, a target azimuth θt, and a target speed vt, and the current self state quantity of the moving body 1 includes an x-coordinate being represented by xe, an x-coordinate being represented by ye, a speed being represented by ve, and an azimuth being represented by Θe.
Further, coordinates of each moving obstruction MOB include an x-coordinate being represented by xO1, xO2, xO3, . . . , xOi, a y-coordinate being represented by yO1, yO2, yO3, . . . , yOi, a speed being represented by vO1, vO2, vO3, . . . , vOi, and an azimuth being represented by θO1, θO2, θO3, . . . , θOi.
In
Note that, in the present embodiment, each vertex of the travelable region TA is extracted as information of the travelable region TA. However, information of a line such as a circle or an ellipse may be used.
Further, by using the self states obtained from the self state acquisition unit 120, values converted into a moving body coordinate system may be used, in which the position of the moving body 1 is represented as the origin, the direction of the moving body 1 is represented as the x-axis, and a direction perpendicular to the direction of the moving body is represented as the y-axis, as illustrated in
As illustrated in
The target state quantity TG includes coordinates (Xt, Yt) of the target position, a target azimuth Θt, and a target speed Vt, and the current self state quantity of the moving body 1 includes an X-coordinate being represented by Xe, a Y-coordinate being represented by Ye, a speed being represented by Ve, and an azimuth being represented by Θe.
Further, coordinates of each moving obstruction MOB include an X-coordinate being represented by XO1, XO2, XO3, . . . , XOi, a Y-coordinate being represented by YO1, YO2, YO3, . . . , YOi, a speed being represented by VO1, VO2, VO3, . . . , VOi, and an azimuth being represented by ΘO1, ΘO2, ΘO3, . . . , ΘOi.
In coordinate transformation of each value related to target value information, the following Expression (1) is used.
In coordinate transformation of each value related to moving obstruction information, the following Expression (2) is used.
In coordinate transformation of each value related to each vertex of the travelable region TA, the following Expression (3) is used.
Here, description returns back to the flowchart of
Note that, instead of using the X-coordinates Xf1 to Xfi and the Y-coordinates Yf1 to Yfi related to each vertex VTA of the travelable region TA for path generation, based on time series variation of a shape of the travelable region TA calculated in the past, a travelable region in time later than the travelable region calculated at the current time may be predicted and used as a predicted travelable region, and the travelable region calculated at the current time and the predicted travelable region may be combined together and used as the travelable region to be used for path generation.
In
By using the predicted travelable region ETA, the path can be generated up to a region farther than the travelable region that can be recognized at the current time and is obtained by external sensors. The region may be the travelable region in the future.
Further, based on a type of an obstruction outside of the travelable region TA, the predicted travelable region may be calculated and used for path generation.
In
In the left figure of
In the right figure of
By using the predicted travelable region TAX, the path can be generated up to a position farther than the travelable region that can be recognized at the current time and is obtained by external sensors. This enhances reliability because the travelable region is predicted based on actual movement of the obstruction. Further, the travelable region TA can be predicted considering not only actual movement of the obstruction but also time series variation of the shape of the travelable region TA as illustrated in
Further, in calculation of the travelable region TA in Step S102, when there is a region that is travelable but may be a dead end, processing of excluding the region from the travelable region TA is performed as necessary.
Regarding a region that may be a dead end, for example, a place with its value in a y-axis direction having a deviation despite a value in an x-axis direction being a value substantially the same as the target position TGP is regarded as a dead end. Alternatively, when an overhead view, an aerial photograph, or the like as that in
This enables generation of a path for preventing from being surrounded by a dead end and being immovable before reaching the target position TGP, even inside the travelable region TA.
Further, in calculation of the travelable region TA in Step S102, when there is a region that is travelable but prohibits entry, processing of excluding the region from the travelable region TA is performed as necessary.
Regarding the entry-prohibited area IPA, when an overhead view, an aerial photograph, or the like as that in
Further, in calculation of the travelable region TA in Step S102, when there is a cross-over prohibiting line that prohibits traveling across the cross-over prohibiting line, processing of making only a region in which the travelable region TA and the cross-over prohibiting line overlap travelable is performed.
As described above with reference to
Here, description returns back to the flowchart of
Target state quantity Pt is expressed by the following Expression (4), where the target state quantity includes a target lateral position YL, a target speed Vt, and a target azimuth Θt representing a position in a direction perpendicular to the target position in a target azimuth direction calculated using the target position (Xt, Yt), the target speed Vt, and the target azimuth Θt, and further includes a target vehicle-to-vehicle distance Dt in order to make a distance Do from the moving obstruction MOB in a danger region D equal to or larger than the target vehicle-to-vehicle distance Dt, as illustrated in
By including the target speed Vt in the target state quantity, for example, a path travelable at any speed such as within a legal speed limit can be generated.
By including the target azimuth Θt in the target state quantity, for example, in entry to a narrow passage ahead in a scene of passing through a toll booth gate or the like, by setting the azimuth in a direction perpendicular to the gate to the target state quantity, a path to allow entry straight into the gate can be generated.
By including the target lateral position YL in the target state quantity and using only components of the target position in the sideways direction as the target state quantity for the moving body 1 that cannot move sideways, a deviation with respect to the target position in the sideways direction can be reduced at an early stage, and the target position can be brought into a state allowing passing in the target azimuth at an early stage.
The danger region D illustrated in
Further, the target state quantity Pt may be expressed in the following Expression (5), using the target position (Xt, Yt).
Further, when at least the target position (Xt, Yt) is included in the target state quantity Pt, the target state quantity Pt may not use the target speed Vt, the target azimuth Θt, and the target vehicle-to-vehicle distance Dt. This is because when the target position (Xt, Yt) is at least included as the target state quantity, a path reachable to the target position can be generated in the path generation unit 260.
Further, when the target state quantity is outside of the travelable region TA, the target state calculation unit 220 may perform processing such that the state quantity inside of the travelable region TA closest to the target state quantity is set as the target state quantity.
By performing such processing, in comparison to a case in which the target position TGP is outside of the travelable region TA, the generated path is more easily set inside of the travelable region TA, which enables safe traveling.
Further, the target state calculation unit 220 may set an upper limit value to the target state quantity related at least to the speed among the target state quantities, depending on the shape of the travelable region TA calculated in the travelable region calculation unit 210. For example, an upper limit value is set to the target state quantity related to the speed when the travelable region TA is so narrow and when the recognized distance of the travelable region TA is so short that high-speed traveling is inhibited.
In this case, by setting an upper limit value to the target state quantity related to the target position or the target azimuth, the generated path is more easily set inside of the travelable region TA, which enables traveling that does not put mental burdens on occupants of the moving body 1.
Such a scene is assumed when the moving body 1 is a towing tractor and there is an airplane to be towed ahead of the moving body 1, when there is a wall at a close position ahead, and when a front detection distance of a camera sensor attached to the moving body 1 is short.
In this case, by setting an upper limit value to the target state quantity related to the speed, the generated path is more easily set inside of the travelable region TA, which enables traveling that does not put mental burdens on occupants of the moving body 1.
Here, description returns back to the flowchart of
Note that the two-dimensional positions Xp and Yp and the azimuth Θp are represented in the coordinate system of
Note that the number of particles may be variable depending on the shape and the area of the travelable region TA, or may be variable depending on a degree of deviation from the target state quantity.
After the particles are defined in Step S104, in the state prediction unit 230, as many inputs as the number of random particles using uniform random numbers are given to the respective particles, and the state quantity in a discrete time length Ta is predicted (Step S105). A method of predicting the state of each particle will be described below.
Prediction of the state quantity of each particle is performed using a system model, and a model used in the present embodiment will be described below. State variables of the system model are two-dimensional positions Xp and Yp, an azimuth Θp, a speed Vp, and a steering angle op of the particle, and the state quantity is expressed by the following Expression (8).
Further, an input value Pu to the system model includes acceleration a and a steering angular velocity u of the vehicle, and is expressed by the following Expression (9).
Further, a sideslip angle β of the moving body 1 is expressed by the following Expression (10).
[Expression 10]
β=tan−1(tan(δ)/2) (10)
Here, the system model is expressed by the following Expression (11) as a differential equation, using a wheelbase L of the moving body 1.
Note that it can be said that the system model described above is a kinematic model in which a four-wheeled vehicle is approximated to a two-wheeled vehicle and mechanics is not taken into consideration. However, another vehicle motion model may be used, such as a two-wheeled vehicle model being a dynamic model in which a four-wheeled vehicle is approximated to a two-wheeled vehicle.
Among the input variables to the system model, for the acceleration a, regarding any upper limit value amx and any lower limit value amn set in advance, a value satisfying the following Expression (12) is determined using a uniform random number for each particle.
Further, among the input variables to the system model, for the steering angular velocity u, regarding an upper limit value umx (>0) set in advance, satisfaction of the following Expression (13) is a first constraint condition for the steering angular velocity u.
Further, regarding an upper limit value δmx (>0) related to the steering angle, a steering angle δ′ in a discrete time length Ta satisfying the following Expression (14) is a second constraint condition for the steering angular velocity u.
The steering angle δ′ in the discrete time length Td is expressed by the following Expression (15).
Thus, the second constraint condition is expressed by the following Expression (16).
For the steering angular velocity u among the input value Pu to the system model, a value satisfying the first constraint condition and the second constraint condition is determined using a uniform random number for each particle.
As described above, state quantity Px′ in the discrete time length Ta is predicted according to the system model described above, using the input value Pu determined based on the steering angle upper limit value δmx as a constraint. This enables prediction of the state of particles considering constraints.
The state quantity of each particle is updated using the predicted state quantity Px′ and the input value Pu, and is expressed by the following Expression (17). Further, a value obtained by adding the discrete time length Td to the time T is used as time after the update.
Note that, in calculation of the state prediction unit 230, inputs are determined using uniform random numbers in accordance with a uniform distribution in order to give random inputs. However, normal random numbers in accordance with a normal distribution or random inputs in accordance with another distribution may be used.
Further, in calculation of the state prediction unit 230, inputs that do not exceed any upper limit value set in advance are used. However, the inputs may be values that may be variable depending on the shape of the travelable region TA.
Further, when the travelable region TA has a narrow and long shape, by reducing the number of inputs, the amount of calculation can be reduced.
Further, when the travelable region TA has a wide shape, by increasing the number of inputs, a more suitable path is made to be more easily obtained.
Note that, when a deviation between the current state quantity and the target state quantity of the moving body 1 is large, the state prediction unit 230 may increase the number of input values to the motion model of the moving body 1, whereas when the degree of deviation is small, the state prediction unit 230 may reduce the number of input values.
As illustrated in
In this case, a distribution of the steering angle is set wide. In other words, ranges of upper and lower limit values of the steering angle are set wide. Further, by increasing the number of input values, a more suitable path is made to be more easily obtained. With this, even when the deviation between the current state quantity and the target state quantity of the moving body 1 is large, the target position is made to be more easily reached. In contrast, when the deviation is small, by reducing the number of input values, the amount of calculation is reduced, and a calculation load can be thus reduced. In this manner, by making the number of input values variable depending on the degree of deviation between the current state quantity and the target state quantity, smooth path generation and reduction of a calculation load in the moving body 1 can be implemented.
Here, description returns back to the flowchart of
Here, the danger region D is a rectangular region with a direction of long sides being inclined in the direction of the azimuth Θp of the particle Pd, and the region is a region having a length of a distance Dx ahead of the particle Pd and a length of a distance Dy in the right and left. Here, the distance Dx is expressed by the following Expression (19), using the speed Vp of the particle Pd and safety expected time Ts set in advance.
Further, the distance Dy is expressed by the following Expression (20), using a parameter Tsy set in advance.
After the observation value of each particle is calculated in Step $106, in the predicted state evaluation unit 240, the weight W of each particle is updated from a difference between the observation value Py of each particle and an ideal observation value Pyi (Step S107). Here, the ideal observation value Pyi is an observation value for the moving body 1 in virtually set target state quantity, and when the moving body 1 satisfies the target state quantity, the moving body 1 is in an ideal state. In the present embodiment, the ideal observation value Pyi includes a deviation Lenom from a target sideways deviation, a target vehicle speed Vnom, a target azimuth Θtnom, and a target entering distance Dnom, based on the target state quantity, and is expressed by the following Expression (21).
Further, when the position of the particle is outside of the travelable region TA calculated in Step S102, the weight of each particle is set to 0, or is set to a value lower than the particles inside of the travelable region TA. For example, determination regarding outside or inside of the travelable region TA is performed by determining whether or not there are two-dimensional positions Xp and Yp of the particle in a polygonal region connecting each vertex of the travelable region TA and the moving body 1.
Here, in the description above, the particles outside of the travelable region TA have weights of 0. However, regarding the particles outside of the travelable region TA, the weights to be assigned to the particles may be variable, depending on a degree of deviation from the travelable region TA.
Further, on an outside of the weight W4-assigned region RW4, a weight W3-assigned region RW3 is set, and a particle PW3 present therein is assigned a weight W3. Further, on a further outside of the weight W3-assigned region RW3, a weight W2-assigned region RW2 is set, and if a particle is present therein, the particle is assigned a weight W2. Further, on a further outside of the weight W2-assigned region RW2, a weight W1-assigned region RW1 is set, and a particle PW1 present therein is assigned a weight W1. Note that, regarding the weight, W4 is the heaviest, and the weight is lighter in order of the weights W3, W2, and W1.
In this manner, by performing evaluation of the predicted state quantity depending on the distance from the travelable region TA without removing the particles (prediction points) outside of the travelable region TA, path candidates can remain also in a region that is recognized as outside of the travelable region TA by the external sensors despite being the travelable region TA in actuality due to a limit of a recognizable range of external sensors or the like, and for the remaining path candidates, evaluation of the prediction points can be performed depending on the distance from the travelable region TA, that is, reliability, which makes path planning more easily succeed. Further, by assigning lighter weights to particles farther from the travelable region TA, it can be made less likely that a path is generated based on the particles, and safety of the generated path can be enhanced.
Further, in
Further, regarding the particles in the travelable region TA, the weights to be assigned to the particles may be variable, depending on the distance from a boundary defining the travelable region TA.
In this manner, by performing assignment of the weights that become smaller as the regions are closer to the boundary defining the travelable region TA in the predicted state quantity inside of the travelable region TA, the weights of the predicted state quantity located at the center of the travelable region TA are greater than those near the boundary of the travelable region TA, and path planning that avoids the boundary of the travelable region TA to the extent possible can be performed, and safety of the generated path can be enhanced.
Further, in
Further, regarding the particles inside of the travelable region TA, processing may be performed so as to assign weights of 0 or small weights to the particles that are predicted at a point that may be a dead end after traveling despite being present inside of the travelable region TA.
In this manner, this enables generation of a path for preventing from being surrounded by a dead end and being immovable before reaching the target position TGP, even inside the travelable region TA.
Note that, regarding determination as to whether it may be a dead end, for example, particles that have a small deviation in the x direction and have a large deviation in the y direction from the target position TGP in
Further, as described above with reference to
Further, regarding the particles inside of the travelable region, when there is a cross-over prohibiting line inside of the travelable region, and when the particles calculated in Step S105 are present at the path point generated in the path point calculation unit 250 one step before or the position to cross the cross-over prohibiting line for the moving body 1, the particles may be assigned the weight W of 0 or may be assigned a small weight.
In this manner, by setting the weight of 0 to the particles predicted at the position to cross the cross-over prohibiting lines NSL with respect to the path point TP, a path can be prevented from being set in a region in which the moving body 1 cannot travel in the future, and safety of the generated path can be enhanced.
Further, as described above with reference to
Further, regarding the particles outside of the travelable region that can be recognized at the current time, when there is a predicted travelable region, and when the particles are located in the predicted travelable region, processing may be performed so as not to set the weight W of the particles to 0, and the weight smaller than the weight of the particles inside of the travelable region that can be recognized at the current time may be assigned.
In
By using the predicted travelable region ETA, a path can be generated up to position farther than the travelable region TA that can be recognized at the current time by the external sensors. Further, because reliability of the predicted travelable region ETA is not high, by relatively increasing the weight of the predicted state quantity inside of the travelable region TA that can be recognized at the current time by the external sensors, a path with high reliability can be generated.
Here, regarding the particles for predicting the state quantity in the discrete time length Td in Step S105, with use of the predicted path of the moving obstruction obtained from the surrounding environment acquisition unit 130, determination is performed as to whether or not there is a predicted obstruction obtained using the predicted path at simultaneous time, that is, the same time as the time of predicting the particles, in a region around each of the particles, and when the predicted obstruction is present, processing of setting the weight W of the particles to 0 may be performed.
The weight W before update of each particle is defined again as Wp. The weight W is proportional to the weight before update and likelihood LLV, and is updated so that an integrated value of the weights of all of the particles is 1, using the following Expression (22).
Here, the likelihood LLV is calculated using the following Expression (23), using a covariance matrix Q related to the state quantity Px of the particle set in advance and a covariance matrix R related to the observation value Py.
Here, a matrix Π is expressed by the following Expression (24).
Note that, when Px=Pxn, a value Hn of a measurement matrix H in the n-th particle is a value obtained by differentiating a measurement function h with the state quantity Px, and is expressed by the following Expression (25).
Further, the measurement function h is a function for calculating the observation value Py from the state quantity Px, and is expressed by the following Expression (26).
Regarding weight update of each particle based on a difference between the observation value of each particle and the ideal observation value, an evaluation weight as to which item is to be evaluated in what degree may be set, based on a difference between the moving body 1 and the target state quantity or an application scene.
In
By performing such setting, for example, in a scene of passing through a toll booth gate, when the target position is a gate to pass through, in a scene in which passing in a direction perpendicular to the gate is necessary, by placing more importance on a difference from the target state quantity related to the position in the sideways direction than a difference from the target state quantity related to the position in a direction perpendicular thereto, the position in the sideways direction can be adapted before the position in the direction perpendicular thereto is adapted, and a path enabling early reaching to the position to allow entry in the direction perpendicular to the gate can be generated.
Further, in
By performing such setting, for example, in a scene of passing through a toll booth gate, when the target position is a gate to pass through, by setting a low evaluation weight of the state quantity related to the azimuth at a point with a far distance from the target position and setting a large evaluation weight of the state quantity related to the azimuth at a point with a close distance therefrom, there is a high degree of freedom of the state quantity related to the azimuth of a path at the point far from the target position, and such a path to adapt the state quantity related to the azimuth as approaching closer to the target position can be generated.
Here, description returns back to the flowchart of
Here, the effective number Neff of particles is expressed by the following Expression (27).
In resampling, similarly to regular particle filters, sampling is performed at even intervals from an empirical distribution function. When resampling is performed, based on the following Expression (28), the weights are reset on an assumption that the weights of the particles are equal.
After resampling of the particles is performed in Step S108, in the path point calculation unit 250, regarding the position and the speed of the particles, a weighted average value is calculated in the path generation unit 260, based on the weights calculated in the predicted state evaluation unit 240, and the points subjected to the weighted average including at least position data and speed data are stored as path points in a memory (not illustrated) in the path generation unit 260, for example (Step S109).
Further, regarding the path points, based on the weights calculated in the predicted state evaluation unit 240, the particles having the largest weight, that is, the largest weighting coefficient, may be used as the path points.
Further, the path points may include not only the position data and the speed data, but also azimuth data, steering angle data, and the like.
Further, the path points may use only the points of the position data as the path points.
After the path points are stored in Step S109, whether the time T has reached a planning horizon Tthr is determined (Step S110). When the time is less than the planning horizon (in a case of No), processing of Step SS104 and the subsequent steps is repeated. When the time T is equal to or more than the planning horizon Tthr (in a case of Yes), a point sequence of the path points including the position data and the speed data at respective discrete times that are stored as the path points in the path generation unit 260 is output to the motion controller 300 as a generated path.
As illustrated in
Further, by using the particles having the largest weight, that is, the largest weighting coefficient, in each of the particle groups G1 to G3 as the path points, effects similar to the above can be achieved.
An example of path generation until reaching the target state quantity using the path planning apparatus 200 of the present embodiment described above will be described with reference to
According to the path planning apparatus 200 of the first embodiment as described above, a path up to the target state quantity is evaluated based on the target state quantity including the state quantity of the position of the moving body 1 and the travelable region, and the path is generated based on evaluation results. Therefore, even when the travelable region is complicated, a destination can be reached through the travelable region.
In the moving body 1 illustrated in
As a method of calculating polynomial paths connecting the moving body 1 and the target state quantity TG, the following description will be given based on an assumption that the target state quantity TG is a target position (xg, yg).
As in
Further, the polynomial is subjected to a constraint condition that the polynomial must pass through the position (origin) and the target position TG of the moving body 1, and the direction must face the x-axis (the angle is 0 degrees) at the position point of the moving body 1 or must face a predetermined direction (angle) at the target position point.
Representing the above with a mathematical expression, by solving the following boundary condition, that is, simultaneous equations of conditions of a moving body position point and a target position point, each coefficient ci can be calculated. The simultaneous equations are expressed by the following Expressions (30) and (31). Here, x0 is an x-coordinate value of the moving body position, and xg is an x-coordinate value of the target position.
Next, a case in which the polynomial is expressed by the following Expression (32) will be described.
For example, given a boundary condition that a function value (f(x0)) at the moving body position point is a y-coordinate value of the moving body 1, a function value (f′(x0)) representing an inclination at the moving body position point is an azimuth of the moving body 1, and a function value (f″(x0)) representing curvature at the moving body position point is 0, coefficients C0, C1, and C2 are uniquely calculated, and by giving the remaining term of x3 at random, as many polynomial paths as the number of such random terms can be generated as illustrated in
The polynomials for giving the polynomial paths PT1, PT2, and PT3 are respectively expressed by the following Expressions (33), (34), and (35).
From the plurality of polynomial paths, evaluation such as a reach value to the target position TG and whether the polynomial path is away from the boundary of the travelable region TA and is inside of the travelable region TA is performed, and the polynomial path having the highest evaluation is used as the generated path. In the example of
Further, in a case in which the polynomial is expressed by above Expression (32), the polynomial paths can be obtained with the following method as well.
For example, given a boundary condition that the function value (f(x0)) at the moving body position point is a y-coordinate value of the moving body 1, a function value (f′(x0)) representing an inclination at the moving body position point is an azimuth of the moving body 1, a function value (f(xg)) at the moving body position point is a y-coordinate value of the target position TG, and a function value (f(xg)) at the moving body position point is an azimuth of the target position TG, coefficients C3, C2, C1, and C0 can be uniquely calculated. By changing respective coefficients at random around values of the calculated coefficients C3, C2, C1, and C0, a plurality of polynomial paths can be generated as in
The polynomials for giving the polynomial paths PT1, PT2, and PT3 are respectively expressed by the following Expressions (36), (37), and (38).
From the plurality of polynomial paths, evaluation such as a reach value to the target position TG and whether the polynomial path is away from the boundary of the travelable region TA and is inside of the travelable region TA is performed, and the polynomial path having the highest evaluation is used as the generated path. In the example of
As described above, the path planning apparatus 200A of the second embodiment obtains the generated path by calculating polynomials each passing through the current position and the target position of the moving body 1, instead of using particle filters for state estimation, and thus does not calculate the path points and does not include the path point calculation unit 250.
Here, one advantage of a case of employing the method of obtaining the generated path by calculating polynomials is that there is a low calculation load. In other words, by merely solving the simultaneous equations described above, one candidate path can be calculated. However, when particle filters are used, calculation needs to be repeated for the length of the path in which state transitions of a large number of particles are to be generated, and thus there is a large calculation load.
In contrast, one advantage of a case of employing the method of obtaining the generated path by using particle filters is that a path that ensures being inside of the travelable region TA can be generated. In other words, the particle filters are a method of calculating one path point by using a large number of prediction points (predicted state quantities), and from a positional relationship between the point of each particle and the travelable region TA, evaluation as to whether the path point is outside or inside of the travelable region TA can be performed. Therefore, a path that ensures being inside of the travelable region TA can be generated. In contrast, in the method of obtaining the generated path by calculating polynomials, a path connecting the moving body 1 and the target position TG can be generated, but “being inside of the travelable region TA” and “avoiding an obstruction” cannot be included in a mathematical expression of the polynomials or cannot be considered, and thus the generated path may be outside of the travelable region TA.
Further, one advantage of a case of employing the method of obtaining the generated path by using particle filters is that a search range of a path is wide. In other words, in the method of obtaining the generated path by calculating polynomials, only a path that can be expressed by a polynomial can be obtained and thus the search range is small. However, when the particle filters are used, prediction points of the state is used as a base, that is, points are used for expression, and thus the search range is wide. Further, a non-linear path can also be obtained, and a path that cannot be expressed by a polynomial can be generated as well.
The predicted state evaluation unit 240 of the first embodiment described above assigns a weight to each predicted state quantity, that is, each particle, and obtains weighted path candidates. In this case, when the predicted state quantity is greatly deviated from the current state quantity of the moving body 1 or is greatly deviated from the state quantity of the path point previously calculated, and a path is generated using the path point calculated based on such predicted state quantity, the path may suddenly change and cause the ride of the moving body 1 to be uncomfortable.
In view of this, in the predicted state evaluation unit 240, when the predicted state quantity is greatly deviated from the current state quantity of the moving body 1 and is greatly deviated from the state quantity of the path point previously calculated, the weighting coefficient can be reduced, so that such a suddenly changing path can be prevented from being generated and the ride of the moving body 1 can be improved to be comfortable.
Here, regarding a degree of deviation between the current state quantity and the predicted state quantity (particles) of the moving body 1, the difference between both of the state quantities can be determined based on a threshold determined in advance. When the difference is larger than the threshold, it can be determined that the deviation is large, whereas when the difference is equal to or less than the threshold, it can be determined that the deviation is small.
Further, regarding weighting for the particles, the weighting coefficients may be changed based on an absolute value of a difference between the current state quantity and the predicted state quantity (particles) of the moving body 1. For example, such weighting coefficients that gradually change may be set in advance based on an absolute value of a difference between both of the state quantities. When the difference between both of the state quantities becomes larger, the weighting coefficients may be gradually reduced, whereas when the difference between both of the state quantities becomes larger, the weighting coefficients may be gradually increased.
Here, regarding a degree of deviation between the state quantity of the path point TP2 previously calculated and the predicted state quantity (particles), the difference between both of the state quantities can be determined based on a threshold determined in advance. When the difference is larger than the threshold, it can be determined that the deviation is large, whereas when the difference is equal to or less than the threshold, it can be determined that the deviation is small.
Further, regarding weighting for the particles, the weighting coefficients may be changed based on an absolute value of a difference between the state quantity of the path point TP2 previously calculated and the predicted state quantity (particles). For example, such weighting coefficients that gradually change may be set in advance based on an absolute value of a difference between both of the state quantities. When the difference between both of the state quantities becomes larger, the weighting coefficients may be gradually reduced, whereas when the difference between both of the state quantities becomes larger, the weighting coefficients may be gradually increased.
Note that each constituent element of the path planning apparatuses 200 and 200A according to the first and second embodiments described above can be configured using a computer, and is implemented when the computer executes a program. In other words, the path planning apparatuses 200 and 200A are implemented by a processing circuit 50 illustrated in
Note that dedicated hardware may be applied to the processing circuit 50. When the processing circuit 50 is dedicated hardware, the processing circuit 50 is, for example, a single circuit, a composite circuit, a programmed processor, a parallel programmed processor, an application specific integrated circuit (ASIC), field-programmable gate array (FPGA), a combination of these, or the like.
In the path planning apparatuses 200 and 200A, functions of respective constituent elements may be implemented in individual processing circuits, or those functions may be collectively implemented in one processing circuit.
Further,
Here, the memory 52 may be, for example, a non-volatile or volatile semiconductor memory such as a RAM, a ROM, a flash memory, an erasable programmable read only memory (EPROM), and an electrically erasable programmable read only memory (EEPROM), a hard disk drive (HDD), a magnetic disk, a flexible disk, an optical disc, a compact disc, a MiniDisc, a Digital Versatile Disc (DVD) and a driving apparatus or the like therefor, or any storage medium to be used in future.
A configuration in which the functions of the constituent elements of the path planning apparatuses 200 and 200A are implemented by one of hardware and software or the like is described above. However, this is not restrictive, and a part of the constituent elements of the path planning apparatuses 200 and 200A may be implemented by dedicated hardware, and another part of the constituent elements may be implemented by software or the like. For example, functions of a part of the constituent elements may be implemented by the processing circuit 50 as dedicated hardware, and functions of another part of the constituent elements may be implemented by the processing circuit 50 as the processor 51 reading and executing the program stored in the memory 52.
As described above, the path planning apparatuses 200 and 200A can implement each of the functions described above, using hardware, software or the like, or a combination of these.
While the present disclosure has been described in detail, the foregoing description is in all aspects illustrative and not restrictive. It is therefore understood that numerous unillustrated modifications can be devised without departing from the scope of the present disclosure.
Note that, in the present disclosure, each of the embodiments can be freely combined and each of the embodiments can be modified or omitted as appropriate within the scope of the disclosure.
Filing Document | Filing Date | Country | Kind |
---|---|---|---|
PCT/JP2021/019503 | 5/24/2021 | WO |