The present invention generally relates to collision-free control of autonomous robots and a robot having such control, and in particular relates to a process using a collision-free dynamic window approach (DWA) for avoiding moving obstacles and a robot and system configured for avoiding obstacles using the approach.
A primary requirement for autonomous vehicles (AVs) is to be collision-free, and autonomous navigation should in theory guarantee a collision-free environment under normal operating conditions. Vehicles configured to operate under the DWA satisfy this requirement under certain conditions. In general, the DWA involves a determination of velocities that are reachable by an AV agent within a defined, typically short, time interval and then selecting an admissible, i.e., collision-free and thereby safe, velocity among the determined velocities. A velocity dynamic window Vd for a vehicle is determined by the following:
where vc and ωc are current translational and angular velocity; {dot over (v)}a and {dot over (v)}d are translational acceleration and deceleration, respectively; {dot over (ω)}a and {dot over (ω)}d are angular acceleration and deceleration, respectively; and Δt is control cycle time, e.g., 0.1 second. Criterion 1 may be applied for both two-dimensional (2-D) and three-dimensional (3-D) vehicle systems. In contrast to the velocity determinations for 2-D applications, velocity determinations for 3-D applications include translational velocity along the z-axis direction, as well as translation velocities along the x- and y-axes as in 2-D settings, and further include yaw {dot over (θ)} and roll {dot over (φ)} rotational velocities, in addition to the pitch {dot over (β)} rotational velocities as in 2-D settings. Thus, for 2-D systems, v=[{dot over (x)},{dot over (y)}] and ω={dot over (β)} whereas for 3-D systems, v=[{dot over (x)}, {dot over (y)}, ż] and ω=[{dot over (β)}, {dot over (θ)}, {dot over (φ)}].
A properly designed DWA is considered to be collision-free for static obstacles, as shown in the example of
Current DWA approaches considering moving obstacles that are of unknown future velocity use trajectory prediction for moving obstacles so that admissible velocities of the agent can be determined. However, the longer the future prediction period, the larger the prediction error. Probabilistic trajectory prediction may alleviate the problem by including a set of possible trajectories with corresponding probabilities for collision. In addition to the computational burden of such methods, there is still a certain probability that the actual trajectory of an obstacle is outside a predicted confidence interval. Furthermore, such a confidence interval prediction itself could be inaccurate due to an error in the uncertainty analysis. As such, there is no guarantee for any trajectory prediction method that the predicted trajectory is accurate and thus collisions have been reported for DW approaches involving moving obstacles.
Therefore, there remains a need to enhance the ability of AV agents such that they may operate collision-free within unpredictable dynamic environments.
Predicting a future trajectory of an obstacle over a relatively long time period T when the obstacle has an unknown trajectory is difficult and even when such predictions may be possible, they are subject to computational processing limitations of an agent depending on the number of samples to be taken and the sampling method applied. Without considering other constraints such as an obstacle's operational velocity space or traffic rules to follow, Vdobs defines an obstacle's velocity dynamic window within one control cycle Δt. By applying any velocity (ve, ωe) in Vdobs for a relatively long time period T, the obstacle's mobility boundary for the time T is calculated and defined by a set of equations as follows:
If the set of admissible velocities is the empty set, then collision-free travel of the agent cannot be guaranteed. However, such collision-free travel is nonetheless likely because the obstacle takes only one velocity within Vdobs while the agent determines admissible velocities by considering all velocities in Vdobs. Collision is only guaranteed to occur in this situation if one or multiple obstacles' chosen velocities make all of the agent's candidate velocities inadmissible until collision. Such collision, however, is due to the obstacles' chosen actions rather than the agent's. In this manner, the agent may be said to be “passively collision-free” in contrast to being “actively collision-free” in which an agent may be further configured to avoid collisions due to irrational motions of obstacles or other moving objects such as when a stationary agent vehicle is struck by another vehicle from behind. If the one or multiple obstacles are configured to apply the passively collision-free DWA such that such obstacles may be said to be passively collision-free as well, such obstacles will choose admissible velocities considering the agent's mobility boundary. Once an admissible velocity is chosen by a moving obstacle, all of the agent's candidate velocities are admissible with respect to that obstacle. If the candidate velocities for both the agent and the obstacle are all inadmissible, both the agent and the obstacle may be configured to reduce their respective velocities as much as possible. Given a sufficient time period T, collision-free travel may be guaranteed for both the agent and the obstacle when both are configured to apply the passively collision-free DWA.
For the agent to consider all velocities (ve, ωe)∈Vdobs is computationally infeasible. As such, to ensure collision-free travel over the time interval T, the agent must be configured to identify its admissible velocities based on a finite set of velocity samples which the agent shall be configured to take for each obstacle of the set of obstacles. In accordance with an aspect of the technology, the number of obstacle velocity samples N taken from Vdobs for each obstacle may be the minimum number of samples required for projected mobility regions of each of the obstacles of a set of obstacles within the environment determined from such velocity samples over a predefined time interval T to cover a mobility boundary Πk for each obstacle of the set of obstacles over the time interval T. For clarity, the number of obstacle velocity samples N may, and often will, vary for each obstacle of a set of obstacles. In ascertaining the number of samples N, a trial number of velocity samples Q for each obstacle of the set of obstacles within an environment must be considered and varied until a number of velocity samples Q is applied in which there is no agent position (xiagent, yiagent)ϵΠi where Πi=(xiobs,yiobs), i.e., is the mobility boundary for an obstacle at the ith time step, and the Euclidean distance to all (xi, lobs, yi, lobs) where l=1, . . . , Q is larger than r. The number of samples N is set as the Q number of samples at which these criteria are met.
Once the number of obstacle velocity samples N is determined for each obstacle, then the agent may be configured to ascertain N obstacle trajectories at each time step i of length Δt over the predefined time interval T by using velocities within Vdobs calculated by the agent for each obstacle at each respective time step i. The agent may be further configured to evaluate M candidate velocities for the agent among velocities within the agent's velocity DW Vdagent at the respective time step i and then identify an optimal velocity for the agent during the subsequent time step i+1. Often, candidate velocities are subject to the control resolution of the linear and angular velocities within Vdagent that are achievable by the agent in view of factors such as control settings for the agent or physical limits of the agent. For example, the agent may be set such that there are five (5) available levels for a linear velocity and eight (8) available levels for an angular velocity within Vdagent. In that example, a total of forty (40) candidate velocities within the Vdagent would be evaluated for consideration as the optimal velocity.
In some arrangements, the optimal velocity determined by the agent during the current control cycle ti to be applied during travel in the subsequent control cycle ti+1 may be identified as the admissible velocity with the highest value determined by an objective function such as the following:
where v and ω are the current translational and angular velocities of the agent; ƒh(•), ƒd(•), and ƒv(•) are normalized heading, distance, and velocity functions determined from the agent's current velocity pair (v, ω); and α, β, and γ are user-defined weight coefficients. When there are no admissible candidate velocities, the optimal velocity is the lowest possible velocity that may achieved during the subsequent time step i+1. The agent may be configured to then travel at the optimal velocity at the subsequent time step i+1. The agent may be further configured at each time step i to determine an optimal velocity for the agent to travel at the respective subsequent time step i+1 and to then travel at the optimal velocity at such subsequent time step until the agent reaches the destination goal.
In some arrangements, the agent may be configured to evaluate candidate velocities by applying the objective function before determining whether such candidate velocities are admissible, i.e., collision-free velocities. In some other arrangements, the agent may be configured to determine the admissibility of the collision-free velocities before applying the objective function. In such an arrangement, the agent may be further configured to not evaluate any candidate velocities relative to the objective function that are not admissible.
In accordance with another aspect, an agent's admissible velocities may be identified from the agent's velocity DW Vdagent as satisfying the following:
In accordance with another aspect, a robot may navigate or may be navigated to a predetermined first static or dynamic target location. In this process, a first obstacle position of a first obstacle, a first obstacle velocity of the first obstacle at the first obstacle position, and a first obstacle acceleration of the first obstacle at the first obstacle position may be obtained during a predetermined first time cycle. A first obstacle first velocity dynamic window for the first obstacle may be determined, via one or more computer processors and during the first time cycle, based on the first obstacle velocity and the first obstacle acceleration. A first obstacle first mobility boundary defining a first set of subsequent obstacle positions reachable by the first obstacle during or at the completion of a predetermined second time cycle may be determined, via one or more computer processors and during the first time cycle, following the first time cycle from the first obstacle position based on the first obstacle first velocity dynamic window. The second time cycle may be of equal duration to the first time cycle. A first new robot velocity to be applied to the robot at the completion of the first time cycle may be selected, via one or more computer processors and during the first time cycle, from a set of first new robot velocity candidates for the robot. The first new robot velocity i) may be one at which a first new robot position of the robot at the completion of the second time cycle is outside of a first obstacle first inflated boundary of the first obstacle spaced from the first obstacle first mobility boundary by a predetermined offset or ii) may be a first reduced robot velocity when there is no reachable position for the robot outside of the first obstacle first inflated boundary at the completion of the second time cycle. The robot may be moved at the first new robot velocity during the predetermined second time cycle and immediately following the first time cycle.
In some arrangements, the first obstacle position of the first obstacle, the first obstacle velocity of the first obstacle at the first obstacle position, and the first obstacle acceleration of the first obstacle at the first obstacle position may be stored, via the one or more computer processors, in a memory.
In some arrangements, any one or any combination of the first obstacle position, the first obstacle velocity at the first obstacle position, and the first obstacle acceleration at the first obstacle position may be detected, via at least a first sensor, when being obtained.
In some arrangements, the first obstacle first inflated boundary may be determined, via the one or more computer processors, by offsetting each of the obstacle positions of the first set of subsequent obstacle positions reachable by the first obstacle during or at the completion of a predetermined second time cycle by a fixed distance in radial directions from the first obstacle first inflated boundary.
In some arrangements, the set of first new robot velocity candidates may be determined, via the one or more computer processors, from a robot first velocity dynamic window based on a current robot velocity of the robot, and a current robot acceleration of the robot during the first time cycle.
In some arrangements, the first new robot velocity may be selected by a process. In this process, a set of first new robot position candidates corresponding to the set of first new robot velocity candidates may be determined via the one or more computer processors. The set of first new robot position candidates may be at radial distances from the current position of the robot equal to a product of a length of the first time cycle and respective ones of the set of first new robot velocity candidates. The set of first new robot position candidates may be compared to the first obstacle first inflated boundary.
In some arrangements, the first new robot velocity may be selected by selecting a first new robot velocity candidate of the set of first new robot velocity candidates having the highest value based on an objective function.
In some arrangements, at or after the completion of the moving of the robot and during a predetermined subsequent time cycle, a first obstacle actual position of the obstacle, a first obstacle actual velocity of the first obstacle at the first obstacle actual position, and a first obstacle actual acceleration of the first obstacle at the first obstacle actual position may be obtained. A first obstacle subsequent velocity dynamic window for the first obstacle may be determined, via one or more computer processors and during the subsequent time cycle, based on the first obstacle actual velocity and the first obstacle actual acceleration. A first obstacle subsequent mobility boundary defining a second set of subsequent obstacle positions reachable by the first obstacle during or at the completion of a predetermined further subsequent time cycle following the subsequent time cycle from the first obstacle actual position may be determined, via one or more computer processors and during the subsequent time cycle, based on the first obstacle subsequent velocity dynamic window. A subsequent new robot velocity to be applied to the robot at the completion of the subsequent time cycle may be selected, via one or more computer processors and during the subsequent time cycle, from a set of subsequent new robot velocity candidates for the robot. The subsequent new robot velocity i) may be one at which a subsequent new robot position of the robot at the completion of the further subsequent time cycle is outside of a first obstacle subsequent inflated boundary of the first obstacle spaced from the first obstacle subsequent mobility boundary by a predetermined offset or ii) may be a subsequent reduced robot velocity when there is no reachable position for the robot outside of the first obstacle subsequent inflated boundary at the completion of the further subsequent time cycle. The subsequent and the further subsequent time cycles may be of equal duration to the first time cycle. The robot may be moved at the subsequent new robot velocity during the further subsequent time cycle. These steps then may be repeated until the robot reaches the target location.
In some arrangements, a maximum first obstacle linear velocity may be stored, via the computer processor, in a memory of the robot. In some such arrangements, the first obstacle velocity dynamic window may be limited by the maximum first obstacle linear velocity.
In some arrangements, any one or any combination of the first obstacle velocity, the first obstacle acceleration, and a maximum first obstacle linear velocity may be wirelessly received, via a radio receiver, from the first obstacle upon the detecting of the first obstacle. In some such arrangements, the one or combination of the first obstacle velocity, the first obstacle acceleration, and the maximum first obstacle linear velocity wirelessly received may be stored, via the one or more computer processors, in a memory of the robot.
In some arrangements, the set of first new robot velocity candidates may be generated, via the computer processor, in response to the detection of the first obstacle.
In some arrangements, one or more additional obstacle positions of one or more respective additional obstacles, one or more respective additional obstacle velocities of the one or more additional obstacles at the one or more respective additional obstacle positions, and one or more respective additional obstacle accelerations of the one or more additional obstacles at the one or more respective additional obstacle positions may be obtained during the first time cycle. The first new robot velocity may be selected as one at which the first new robot position of the robot at the completion of the second time cycle is outside of each of one or more respective additional obstacle first inflated boundaries of the respective one or more additional obstacles or may be the first reduced robot velocity when there is no reachable position for the robot outside of every one of the first obstacle first inflated boundary and the one or more respective additional obstacle first inflated boundaries at the completion of the second time cycle. The one or more additional obstacle first inflated boundaries may be those spaced by respective predetermined offsets from one or more respective additional obstacle first mobility boundaries reachable by the one or more respective additional obstacles from the one or more respective additional obstacle positions at the completion of the second time cycle.
In some arrangements, the one or more additional obstacle positions of the one or more respective additional obstacles, the one or more respective additional obstacle velocities of the one or more additional obstacles at the one or more respective additional obstacle positions, and the one or more respective additional obstacle accelerations of the one or more additional obstacles at the one or more respective additional obstacle positions may be stored, via the one or more computer processors, in a memory.
In some arrangements, any one or any combination of the one or more respective additional obstacle positions, the one or more respective additional obstacle velocities at the one or more respective additional obstacle positions, and the one or more respective additional obstacle accelerations at the one or more respective additional obstacle positions may be detected, via at least the first sensor or at least one other sensor, when being obtained.
In accordance with another aspect, a robot may navigate or may be navigated to a predetermined first static or dynamic target location within a dynamic environment in a process. The dynamic environment may have a predefined boundary. In this process, respective obstacle positions of a first set of obstacles within the predefined boundary, respective obstacle velocities of the first set of obstacles at the respective obstacle positions, and respective obstacle accelerations of the first set of obstacles at the respective obstacle positions may be obtained. A predefined quantity of respective obstacle trajectories for each of the obstacles of the first set of obstacles may be determined, via one or more computer processors and within a predetermined first time cycle, based on the respective obstacle velocities of the first set of obstacles at the respective obstacle positions and the respective obstacle accelerations of the first set of obstacles at the respective obstacle positions. A first new robot velocity to be implemented for the robot in a subsequent time cycle may be selected, via the one or more computer processors, from a first set of robot velocity candidates for the robot. The first new robot velocity i) may be one at which a first robot position of the robot at the completion of the subsequent time cycle overlaps none of the determined respective obstacle trajectories at the completion of the subsequent time cycle or ii) may be a first reduced robot velocity when there is no reachable position for the robot that does not overlap at least one of the determined respective obstacle trajectories at the completion of the subsequent time cycle. The robot may be at the first new robot velocity during the subsequent time cycle.
In some arrangements, the subsequent time cycle may be the same length as the first time cycle. In some other arrangements, the subsequent time may be a preset time period.
In some arrangements, any one or any combination of the respective obstacle positions, the respective obstacle velocities at the respective obstacle positions, and the respective obstacle accelerations at the respective obstacle positions may be detected, via at least the first sensor or at least one other sensor, when obtained.
In some arrangements, the first set of robot velocity candidates from a robot first velocity dynamic window may be determined, via the one or more computer processors, based on a current robot velocity of the robot and a current robot acceleration of the robot during the first time cycle.
In some arrangements, respective subsequent obstacle positions of the first set of obstacles, respective subsequent obstacle velocities of the first set of obstacles at the respective subsequent obstacle positions, and respective subsequent obstacle accelerations of the first set of obstacles at the respective obstacle positions may be obtained. A predefined quantity of respective subsequent obstacle trajectories for each of the obstacles of the first set of obstacles may be determined, via the one or more computer processors and within the subsequent time cycle, based on the respective subsequent obstacle velocities of the first set of obstacles at the respective subsequent obstacle positions and the respective obstacle accelerations of the first set of obstacles at the respective subsequent obstacle positions. A subsequent new robot velocity to be implemented for the robot in a further subsequent time cycle may be selected, via the one or more computer processors, from a subsequent set of robot velocity candidates for the robot. The subsequent new robot velocity i) may be one at which a subsequent robot position of the robot at the completion of the further subsequent time cycle overlaps none of the determined respective obstacle trajectories at the completion of the further subsequent time cycle or ii) may be a subsequent reduced robot velocity when there is no reachable position for the robot that does not overlap at least one of the determined respective obstacle trajectories at the completion of the further subsequent time cycle. The robot may be moved at the subsequent new robot velocity during the further subsequent time cycle. These steps may be repeated until the robot reaches the target location.
In some arrangements, the predefined quantity of the respective obstacle trajectories to be determined for each of the obstacles of the first set of obstacles within the first time cycle may be determined by a testing process prior to obtaining the respective obstacle positions. In some such arrangements of this process, at a step 1, a respective maximum translational velocity of each of obstacles of the first set of obstacles may be defined via the one or more computer processors. At a step 2, an obstacle velocity dynamic window for each of the obstacles of the first set of obstacles may be determined, via the computer processor, based on the respective maximum translational velocities of each of the obstacles of the first set of obstacles. At a step 3, a final step obstacle mobility boundary for each of the obstacles of the first set of obstacles at a final time step of the time interval T may be determined, via the computer processor, based on the respective maximum translational velocities of each of the obstacles of the first set of obstacles. At a step 4, test quantities of obstacle velocity candidates for each of the obstacles of the first set of obstacles may be generated via the one or more computer processors. At a step 5, respective test obstacle positions for each of the obstacles of the first set of obstacles may be determined via the one or more computer processors. Each of the respective test obstacle positions may be based on an initial position of the largest obstacle and a respective one of the largest obstacle velocity candidates. At a step 6, respective test obstacle regions for each of the obstacles of the first set of obstacles may be determined via the one or more computer processors. Each of the respective test obstacle regions may correspond to a predefined collision threshold applied about the respective test obstacle positions. At a step 7, steps 4-6 may be repeated by applying, at step 4, a larger test quantity of obstacle velocity candidates within the respective obstacle dynamic windows determined for each of the obstacles of the first set of obstacles than those generated during an immediately preceding performance of step 4 for any one or more of the obstacles of the first set of obstacles when the respective test obstacle regions of the one or more obstacles of the first set of obstacles do not cover the respective determined final step obstacle mobility boundary associated with the one or more obstacles of the first set of obstacles. At a step 8, the test quantities of the obstacle velocity candidates may be stored in a memory of the robot, via the one or more computer processors, for use as the predefined quantity of respective obstacle trajectories when the respective test obstacle regions of the one or more obstacles of the first set of obstacles cover the respective determined final step obstacle mobility boundary associated with the one or more obstacles of the first set of obstacles.
In some arrangements of the testing process prior to obtaining the respective obstacle positions, the larger test quantity of largest obstacle velocity candidates within the largest obstacle dynamic window applied at step 6 may be one greater than the one applied during the immediately preceding performance of step 3.
In some arrangements, the predefined collision threshold may be a circle having a predefined radius.
In accordance with another aspect, a robot may be configured for navigation to a predetermined first static or dynamic target location. The robot may include an object detection system, a computer system in communication with the object detection system, and a vehicle power system in communication with the computer system. The object detection system may be configured for obtaining, during a predetermined first time cycle, a first obstacle position of a first obstacle, a first obstacle velocity of the first obstacle at the first obstacle position, and a first obstacle acceleration of the first obstacle at the first obstacle position. The computer system may include a non-transitory computer-readable storage medium on which computer readable instructions of a program may be stored and one or more computer processors. The instructions, when executed by the one or more processors, may cause the computer system to perform a process. In the process, the computer system may determine, during the first time cycle, a first obstacle first velocity dynamic window for the first obstacle based on the first obstacle velocity and the first obstacle acceleration. In the process, the computer system may determine, during the first time cycle, a first obstacle first mobility boundary defining a first set of subsequent obstacle positions reachable by the first obstacle during or at the completion of a predetermined second time cycle following the first time cycle from the first obstacle position based on the first obstacle first velocity dynamic window in which the second time cycle may be of equal duration to the first time cycle. In the process, the computer system may select, during the first time cycle, a first new robot velocity to be applied to the robot at the completion of the first time cycle from a set of first new robot velocity candidates for the robot. The first new robot velocity may be i) one at which a first new robot position of the robot at the completion of the second time cycle is outside of a first obstacle first inflated boundary of the first obstacle spaced from the first obstacle first mobility boundary by a predetermined offset or ii) a first reduced robot velocity when there is no reachable position for the robot outside of the first obstacle first inflated boundary at the completion of the second time cycle. The vehicle power system may be configured for moving the robot at the first new robot velocity at the first new robot velocity during the predetermined second time cycle and immediately following the first time cycle.
In some arrangements of this aspect, the robot is a vehicle, e.g., an autonomous or semi-autonomous vehicle.
In some arrangements of this aspect, the object detection system may include one or more Light Detection and Ranging (LiDAR) sensors. In some arrangements, the computer system may include a control module, which may include a central processing unit (CPU). In some arrangements, the vehicle power system may be a vehicle propulsion system. In some such arrangements, the vehicle propulsion system may include an engine or motor assembly and a power supply, e.g., a battery. In some arrangements, the computer system may be configured for controlling vehicle power system and thereby control the movement of the robot.
In some arrangements of this aspect, either one or both of the object detection system and the vehicle power system may be in communication with the computer system via any one or any combination of electrical, optical, and wireless communications or any other appropriate form of communication known to those skilled in the art. When either one of the object detection system and the vehicle power system are in electrical communication with the computer system, such electrical communications may be via one or more electrical wires. When either one of the object detection system and the vehicle power system are in optical communication with the computer system, such optical communications may be via one or more optical fibers. When either one of the object detection system and the vehicle power system are in wireless communication with the computer system, such wireless communications may be via a radio transmission from the object detection system to the computer system and a radio transmission from the computer system to the vehicle power system, respectively, e.g., from a radio transmitter or transceiver of the object detection system to a radio receiver or transceiver of or in electrical communication with the computer system, from a radio transmitter or transceiver of or in electrical communication with the computer system to a radio receiver or transceiver of or in electrical communication with the vehicle power system, or via other forms of wireless communication known to those skilled in the art.
In accordance with another aspect, a robot may be configured for navigation to a predetermined first static or dynamic target location within a dynamic environment. The dynamic environment may have a predefined boundary. The robot may include an object detection system, a computer system in communication with the object detection system, and a vehicle power system in communication with the computer system. The object detection system configured for obtaining respective obstacle positions of a first set of obstacles within the predefined boundary, respective obstacle velocities of the first set of obstacles at the respective obstacle positions, and respective obstacle accelerations of the first set of obstacles at the respective obstacle positions. The computer system may include a non-transitory computer-readable storage medium on which computer readable instructions of a program may be stored and one or more computer processors. The instructions, when executed by the one or more processors, may cause the computer system to perform a process. In the process, the computer system may determine, within a predetermined first time cycle, a predefined quantity of respective obstacle trajectories for each of the obstacles of the first set of obstacles based on the respective obstacle velocities of the first set of obstacles at the respective obstacle positions and the respective obstacle accelerations of the first set of obstacles at the respective obstacle positions. In the process, the computer system may select a first new robot velocity to be implemented for the robot in a subsequent time cycle from a first set of robot velocity candidates for the robot. The first new robot velocity may be i) one at which a first robot position of the robot at the completion of the subsequent time cycle overlaps none of the determined respective obstacle trajectories at the completion of the subsequent time cycle or ii) a first reduced robot velocity when there is no reachable position for the robot that does not overlap at least one of the determined respective obstacle trajectories at the completion of the subsequent time cycle. The vehicle power system may be configured for moving the robot at the first new robot velocity during the subsequent time cycle.
In some arrangements of this aspect, the robot is a vehicle, e.g., an autonomous or semi-autonomous vehicle.
In some arrangements of this aspect, the object detection system may include one or more LiDAR sensors. In some arrangements, the computer system may include a control module, which may include a CPU. In some arrangements, the vehicle power system may be a vehicle propulsion system. In some such arrangements, the vehicle propulsion system may include an engine or motor assembly and a power supply, e.g., a battery. In some arrangements, the computer system may be configured for controlling vehicle power system and thereby control the movement of the robot.
In some arrangements of this aspect, either one or both of the object detection system and the vehicle power system may be in communication with the computer system via any one or any combination of electrical, optical, and wireless communications or any other appropriate form of communication known to those skilled in the art. When either one of the object detection system and the vehicle power system are in electrical communication with the computer system, such electrical communications may be via one or more electrical wires. When either one of the object detection system and the vehicle power system are in optical communication with the computer system, such optical communications may be via one or more optical fibers. When either one of the object detection system and the vehicle power system are in wireless communication with the computer system, such wireless communications may be via a radio transmission from the object detection system to the computer system and a radio transmission from the computer system to the vehicle power system, respectively, e.g., from a radio transmitter or transceiver of the object detection system to a radio receiver or transceiver of or in electrical communication with the computer system, from a radio transmitter or transceiver of or in electrical communication with the computer system to a radio receiver or transceiver of or in electrical communication with the vehicle power system, or via other forms of wireless communication known to those skilled in the art.
By way of description only, embodiments of the present disclosure are described herein with reference to the accompanying figures, in which:
Referring now to
Still referring to
At step 4 of process 1, an obstacle mobility boundary Πk for each of the obstacles is determined, via the one or more microprocessors or microcontrollers of the one or more local or remote computers designated for conducting such analysis, using Criterion 2.1 or 2.2, as appropriate, at a final time step over the time period of travel T for the agent, i.e., the period (T−Δt) to T. To obtain a worst-case scenario, i.e., a largest possible obstacle mobility boundary, the maximum translational velocity is used as the velocity in Criterion 2.1 or 2.2, as appropriate, and rotational velocity is not considered. The sample starting positions (x0obs, y0obs) for each of the obstacles may be determined, via the one or more microprocessors or microcontrollers of the one or more local or remote computers designated for conducting such analysis, by a known sampling scheme such as a full factorial sampling, and further may depend on the shape of the region Πk in order to obtain starting positions that lead to the largest possible obstacle mobility boundaries for each of the respective obstacles. As such, it is to be understood that the sample starting positions and thereby the chosen sampling scheme influences the minimum number of required samples.
At step 5 of process 1, regardless of the shape of the region Πk, a set of quantity Q obstacle velocity samples from the respective velocity spaces (vbs, ωobs) of each of the obstacles are selected for each of the obstacles, via the one or more microprocessors or microcontrollers of the one or more local or remote computers designated for conducting such analysis, by a known sampling scheme such as a fractional factorial sampling where Q=m×n and m and n are the number of discrete levels for translational and angular velocity in Vdobs, respectively. It is to be understood that the value of Q may be the same or may vary among the set of obstacles being evaluated.
At step 6 of process 1, each velocity sample for the set of quantity Q obstacle velocity samples of each of the obstacles are applied using Criterion 2.1 or 2.2, as appropriate, at the final time step, i.e., the period (T-d t) to T, via the one or more microprocessors or microcontrollers of the one or more local or remote computers designated for conducting such analysis, to obtain quantity Q, e.g., 3, 4, 5, . . . , of sample projected mobility positions for each of the obstacles. Again, it is to be understood that the value of Q may be the same or may vary among the set of obstacles being evaluated. In one example shown in
At step 7 of process 1, for each of the obstacles, a collision threshold r is then applied, via the one or more microprocessors or microcontrollers of the one or more local or remote computers designated for conducting such analysis, to each of the sample mobility boundaries. The collision threshold r may be a radius dependent on the radius of each of the respective obstacles such that the collision threshold may vary from obstacle to obstacle. In some arrangements, the collision threshold may be defined by ragent+robs (see Criterion 3.1 or 3.2, as appropriate). The collision threshold r applied to the sample mobility boundaries defines an inflated sample mobility boundary. In the example of
At step 8, for each of the obstacles, a combination of the Q inflated sample mobility boundaries defined at step 7 and associated with the obstacles is compared, via the one or more microprocessors or microcontrollers of the one or more local or remote computers designated for conducting such analysis, to the respective obstacle mobility boundary Πk. In the example of
Still referring to
Where there are no admissible candidate velocities, the agent is configured to reduce its velocity, as may be directed via the one or more microprocessors or microcontrollers of the agent, as much as possible during the next control cycle ti+1, as shown at step 17A. Otherwise, at step 17B, an optimal agent velocity is selected, via the one or more microprocessors or microcontrollers of the agent, for the velocity of the agent during the next control cycle ti+1. The optimal velocity, in this example, is the admissible velocity with the highest value determined by the objective function.
In some arrangements, steps 15 and 16 may be reversed such that the determination as to the admissibility of candidate velocities is made prior to the evaluation of the objective functions. In this instance, to reduce the number of evaluations to be made against the objective functions calculated for each of the obstacles, only admissible candidate velocities may be evaluated against the objective function for each of the obstacles.
At step 18, after completion of either step 17A or step 17B, the agent updates, via the one or more microprocessors or microcontrollers of the agent, its current position and velocity, and in some arrangements, its pose or other such orientational characteristics. Then, at step 19, if the agent determines, via the one or more microprocessors or microcontrollers of the agent, that the agent has not reached its destination goal, then steps 11-19 are repeated. If, at step 19, the agent determines, via the one or more microprocessors or microcontrollers of the agent, that the agent has reached its destination goal, then the modified DWA approach process ends. At this point, the agent preferably stops its movement.
Referring now to
Then, at step 34, each of the mobility boundaries Πi,j determined at step 33 are inflated to inflated boundaries using the polygon offset function ƒoffset(Πi, r) of Criterion 5.1 or 5.2, as appropriate. In such arrangement, offset constant r provides a safety factor to avoid a collision with the agent and preferably may take into account a size, e.g., a radius ragent, of the agent and a size, e.g., a radius robs, of the obstacle. In the example of
At step 35 of approach process 30, the agent's velocity DW, i.e., Vdagent, is calculated in the same manner as in step 14 of modified DWA approach process 10. Step 35 may be performed at any time prior to step 36, including before, simultaneously with, or after any one or any combination of steps 31-34.
Then, at step 36, the agent's velocity samples, i.e., candidate velocities, are generated, via the one or more microprocessors or microcontrollers of the agent as described previously herein with respect to step 15 of process 10. At this same step, the projected positions (and in some instances the projected poses or other orientations) of the agent by the end of the next time step i+1 is determined, via the one or more microprocessors or microcontrollers of the agent, for each of the agent's velocity samples that are within Vdagent based on the position and velocity (and respectively the pose when appropriate) of the agent at time step i (see Criterion 2.1 or 2.2, as appropriate). Isolation of the agent's velocity samples that are within Vdagent could be performed by the agent, via the one or more microprocessors or microcontrollers of the agent, at a later step of approach 30, but such an order of steps would be inefficient.
Then, at step 37, the projected positions for each of the candidate velocities of the agent within Vdagent are compared, via the one or more microprocessors or microcontrollers of the agent, to each of the inflated boundaries determined at step 34 and that are based on the mobility boundaries Πi, j determined at step 33 and described above. Each of the projected positions that do not overlap any of the determined inflated boundaries are admissible velocities, which the agent may be configured to identify as such via the one or more microprocessors or microcontrollers of the agent. Where there are no admissible candidate velocities within Vdagent the agent is configured to reduce its velocity, as may be directed via the one or more microprocessors or microcontrollers of the agent, as much as possible during the next control cycle ti+1, as shown at step 38A. Otherwise, at step 38B, an optimal agent velocity is selected, via the one or more microprocessors or microcontrollers of the agent, for the velocity of the agent during the next control cycle ti+1. The optimal velocity may be the admissible velocity within Vdagent with the highest value determined by an objective function such as Criterion 4.
At step 39, after completion of either step 38A or step 38B, the agent updates, via the one or more microprocessors or microcontrollers of the agent, its current position and velocity, and in some arrangements, its pose or other such orientational characteristics. Then, at step 40, if the agent determines, via the one or more microprocessors or microcontrollers of the agent, that the agent has not reached its destination goal, then steps 31-40 are repeated. If, at step 40, the agent determines, via the one or more microprocessors or microcontrollers of the agent, that the agent has reached its destination goal, then the modified DWA approach process ends. At this point, the agent preferably stops its movement.
It is to be understood that the disclosure set forth herein includes any possible combinations of the particular features set forth above, whether specifically disclosed herein or not. For example, where a particular feature is disclosed in the context of a particular aspect, arrangement, configuration, or embodiment, that feature can also be used, to the extent possible, in combination with and/or in the context of other particular aspects, arrangements, configurations, and embodiments of the disclosure. Furthermore, although the disclosure herein has been described with reference to particular embodiments, it is to be understood that these embodiments are merely illustrative of the principles and applications of the present invention. It is therefore to be understood that numerous modifications may be made to the illustrative embodiments and that other arrangements may be devised without departing from the spirit and scope of the present disclosure as defined by the appended claims.
The present application claims the benefit of U.S. Provisional Application No. 63/273,571, filed Oct. 29, 2021, the disclosure of which is hereby incorporated by reference in its entirety herein.
Filing Document | Filing Date | Country | Kind |
---|---|---|---|
PCT/US2022/047693 | 10/25/2022 | WO |