ROBOT TRAJECTORY UNDER COLLISION CONSTRAINTS

Information

  • Patent Application
  • 20240238977
  • Publication Number
    20240238977
  • Date Filed
    January 17, 2023
    2 years ago
  • Date Published
    July 18, 2024
    7 months ago
Abstract
Processing circuitry selects surrogate time instances respectively representing temporal subsets of a time duration of a first intermediate trajectory for a robot. The processing circuitry determines surrogate constraints respectively associated the surrogate time instances, the surrogate constraints require a distance between the robot and an obstacle to satisfy a safe distance requirement at the surrogate time instances. The processing circuitry determines an adjustment from the first intermediate trajectory to a second intermediate trajectory based on the surrogate constraints. The processing circuitry determines a first strict surrogate constraint for a first surrogate time instance representing a first temporal subset based on the first temporal subset, the first strict surrogate constraint ensures the safe distance requirement being satisfied in the first temporal subset in response to the first strict surrogate constraint being satisfied. The processing circuitry performs a safety check of the second intermediate trajectory according to the first strict surrogate constraint.
Description
TECHNICAL FIELD

The present disclosure describes embodiments generally related to robotic technology.


BACKGROUND

The background description provided herein is for the purpose of generally presenting the context of the disclosure. Work of the presently named inventors, to the extent the work is described in this background section, as well as aspects of the description that may not otherwise qualify as prior art at the time of filing, are neither expressly nor impliedly admitted as prior art against the present disclosure.


In some robotic applications, trajectory generation for articulated robots is used to plan robotic motions. The trajectory generation can be performed under various requirements. In some examples, a collision-free guarantee is one of the requirements. The collision-free guarantee requires a robot body to be bounded away from static and dynamic obstacles by a safe distance.


SUMMARY

Aspects of the disclosure provide methods and apparatuses for generating a trajectory of a robot. In some examples, an apparatus for generating a trajectory of a robot includes processing circuitry. The processing circuitry selects a plurality of surrogate time instances respectively representing a plurality of temporal subsets of a time duration of a first intermediate trajectory for the robot. The processing circuitry determines a plurality of surrogate constraints respectively associated the plurality of surrogate time instances, the plurality of surrogate constraints requires a distance between the robot and an obstacle to satisfy a safe distance requirement at the plurality of surrogate time instances. The processing circuitry determines an adjustment from the first intermediate trajectory to a second intermediate trajectory based on the plurality of surrogate constraints. The processing circuitry further determines at least a first strict surrogate constraint for a first surrogate time instance representing a first temporal subset in the plurality of temporal subsets based on the first temporal subset, the first strict surrogate constraint ensures the safe distance requirement being satisfied at other time instances in the first temporal subset in response to the first strict surrogate constraint being satisfied at the first surrogate time instance. The processing circuitry performs a safety check of the second intermediate trajectory according to at least the first strict surrogate constraint.


In some examples, in response to a failure of the safety check according to the first strict surrogate constraint, the processing circuitry subdivides the first temporal subset into at least two intervals for replacing the first temporal subset.


In some examples, the processing circuitry selects midpoints respectively of the plurality of temporal subsets as the plurality of surrogate time instances.


According to some aspects of the disclosure, the processing circuitry forms a cost function that is an unconstrained non linear programing (NLP) according to a penalty function and the plurality of surrogate constraints, determine a search direction based on the cost function, and determine the adjustment based on the search direction and a step size.


In some examples, the cost function includes a weighed sum of a plurality of penalty function terms respectively at the plurality of surrogate time instances, the plurality of penalty function terms are weighted respectively according to the plurality of temporal subsets.


According to an aspect of the disclosure, the penalty function P satisfies









lim

x

0



x


P

(
x
)



=


,




and is twice differentiable.


In some examples, the processing circuitry reduces the step size in response to a cost difference of the first intermediate trajectory and the second intermediate trajectory failing a converge condition. In some examples, the processing circuitry reduces the step size in response to a failure of the safety check according to the first strict surrogate constraint.


In some examples, the processing circuitry determines a first plurality of spatial subsets of the robot, and determines a second plurality of spatial subsets of the obstacle. The processing circuitry determines a Lipschitz constant based on the first plurality of spatial subsets of the robot and the second plurality of spatial subsets of the obstacle. Then, the processing circuitry determines the first strict surrogate constraint based on a safe distance in the safe distance requirement and a multiplication of the Lipschitz constant and a time length of the first temporal subset.


Aspects of the disclosure also provide a non-transitory computer-readable medium storing instructions which when executed by a computer cause the computer to perform the method for generating the trajectory of the robot.





BRIEF DESCRIPTION OF THE DRAWINGS

Further features, the nature, and various advantages of the disclosed subject matter will be more apparent from the following detailed description and the accompanying drawings in which:



FIG. 1 shows a diagram of a robot with an obstacle in some examples.



FIG. 2 shows a diagram of a penalty function.



FIGS. 3A-3C show diagrams illustrating techniques in a solver according to some aspects of the disclosure.



FIGS. 4-6 show some algorithms in some examples.



FIG. 7 shows a diagram illustrating a robot arm with hinge joints in some examples.



FIG. 8 shows a flow chart outlining a process according to some aspects of the disclosure.



FIG. 9 is a schematic illustration of a computer system in accordance with an embodiment.





DETAILED DESCRIPTION OF EMBODIMENTS

The detailed description set forth below in connection with the appended drawings is intended as a description of various configurations and is not intended to represent the only configurations in which the concepts described herein may be practiced. The detailed description includes specific details for the purpose of providing a thorough understanding of various concepts. However, these concepts may be practiced without these specific details.


According to some aspects of the disclosure, trajectory generation for articulated robots requires both robustness and optimality. In some examples, the robot body needs to be bounded away from static and dynamic obstacles by a safe distance at any time instance to achieve robustness. Further, in some examples, the generated trajectory needs to have a minimal value for a cost function in order to achieve optimality. The cost function can include smoothness, energy efficacy, time optimization, and the like.


According to an aspect of the disclosure, the trajectory generation needs to deal with collision constraints of infinite time instances, thus the trajectory generation can be a semi-infinite programing (SIP) problem. The present disclosure provides techniques for optimizations of robot trajectory which can be the SIP problem under collision constraints. The techniques can be proved to be robust.



FIG. 1 shows a diagram of a robot (101) with a set of obstacles (102) in some examples. In the FIG. 1 example, the robot (101) is shown as an open-loop articulated robot that includes a plurality of rigid bodies (also referred to as links in some examples), such as shown by (111)-(116). Each rigid body occupies a finite volume. In the FIG. 1 example, the set of obstacles (102) is shown as a set of static obstacles. It is noted that, in some examples, the set of obstacles (102) can be a set of movable obstacles, such as one or more other robots.


In the following description, an ith rigid body of the robot (101) is denoted by bi0 as the finite volume in its local frame (bi0⊂R3), and is denoted by bi as the finite volume in the global frame (bi⊂R3). The set of obstacles (102) is denoted by o that occupies finite volume in the global frame (o∈R3). According to the articulated body kinematics, bi is computed from bi0 via rigid transform bi=Mibi0), where Mi defines the rigid transform. In some examples, t denotes time and t∈[0, T], θ denotes a trajectory that can include a set of decision variables, Mi is a function of time and trajectory and is denoted by Mi(t, θ), and thus bi is also a function of time and trajectory, and is denoted by bi(t, θ). In some examples, collision constrained trajectory generation can be performed as minimizing a twice differentiable cost function custom-character(bi), such that each rigid body bi is bounded away from the set of obstacles o by a safe distance denoted by d0 at any t∈[0, T], such as expressed by Eq. (1) in a formal form:









arg

min
0




(


b
i

(

t
,
θ

)

)





Eq
.


(
1
)










s
.
t
.







dist

(



b
i

(

t
,
θ

)

,
o

)



d
0










i



t


[

0
,
T

]



,




where dist(·) denotes the shortest Euclidean distance between two sets. The safe distance d0 can be a user specified safe distance. The cost function custom-character(bi) can encode various requirements (e.g., user requirements) for a trajectory, such as closedness between an end-effector and a target position, or a smoothness of motion. The problem expressed by Eq. (1) is a SIP due to the infinite number of constraints, each corresponding to a time instance. Also, Eq. (1) is a general definition, and the SIP by Eq. (1) is non-smooth as the distance function between two general sets is non differentiable.


According to an aspect of the disclosure, spatial discretization is used to convert non-smooth SIP to smooth SIP.


In some examples, each rigid body bi can be spatially discretized into a finite number of spatial subsets, thus bi=custom-characterj bij, where bij denotes the jth spatial subset of rigid body bi in the global frame. Similarly, the set of obstacles (102) denoted by o can be decomposed into a finite number of spatial subsets, thus o=custom-characterk ok, where ok denotes the kth spatial subset of the set of obstacles (102).


In some examples, spatial discretization is performed based on point cloud, thus each bij or ok is a point. It is noted that pointwise distance is differentiable.


In some examples, spatial discretization is performed based on triangle mesh. The distance between a pair of triangles can be converted to a first type of distance and a second type of distance. The first type of distance is the distance between a point and a triangle, the second type of distance is a distance between two pair of edges. It is noted that the first type of distance and the second type of distance are both twice differentiable after a regularization.


It is noted that, in some examples, other suitable spatial discretization that converts the non-smooth SIP to smooth SIP can be used.


In some examples, using suitable spatial discretization, each rigid body bi is spatial discretized into a finite number of spatial subsets that can be represented by bi=custom-characterj bij, and the set of obstacles (102) is spatial discretized into a finite number of spatial subsets that can be represented by o=custom-characterk ok, such that dist (bij, ok) is sufficiently smooth for any custom-characteri, j, kcustom-character. When the dist (bij, ok) between a pair of spatial subsets is differentiable, then the non-smooth SIP in Eq. (1) can be converted to smooth SIP expressed by Eq. (2):









arg

min
θ




(


b
i

(

t
,
θ

)

)





Eq
.


(
2
)










s
.
t
.







dist

(



b
ij

(

t
,
θ

)

,

o
k


)



d
0









i

,
j
,

k


t



[

0
,
T

]

.







Some aspects of the disclosure further provide techniques to solve the smooth SIP with guaranteed robustness. In some examples, a time duration of a trajectory for a robot can be divided into intervals and conservative motion bounds are respectively determined for the intervals to ensure the collision-free property during each interval. Further, penalty functions (also referred to as barrier penalty functions) are formed for the intervals, and the penalty functions can guide optimizations to stay inside the feasible domain and approach an optimal solution of the smooth SIP. In some examples, a user-specified precision can be used by the optimizations to approach the optimal solution.


In some examples, the techniques include first techniques for determining a motion bound that conservatively estimates a range of motion of a point on the robot over a finite time interval, second techniques of a safe line-search algorithm that prevents the intersection between the motion bound and obstacles and third techniques of a motion subdivision scheme that recursively reduces the error of conservative motion estimation. According to an aspect of the disclosure, a solver (e.g., in software instructions) that is implemented using the first techniques, the second techniques and the third techniques can solve the smooth SIP problem with convergence within a finite number of iterations. In some examples, the solver is implemented by a single desktop computer, and the desktop computer can generate trajectories for some applications in a couple of minutes. In an example, the solver is used to determine a trajectory of an industrial robot arm reaching a target pose in an environment with obstacles. In another example, the solver is used to generate trajectories of multiple unmanned aerial vehicles (UAVs) to reach a set of designated goal positions. The multiple UAVs are able to perform rotation and translation simultaneously, and may interact with each other in some examples.


According to an aspect of the disclosure, the solver divides the temporal field (a time duration for a trajectory) into temporal subsets (also referred to as time intervals in some examples), and chooses a surrogate time instance for each temporal subset, thus SIP problem is reduced to nonlinear programing (NLP) problem. Further, the solver determines a strict surrogate constraint for each temporal subset such that the feasible domain according to the strict surrogate constraints is a strict subset of a true feasible domain of the original problem. In some examples, the solver solves the NLP problem using a feasible interior point method to generate iterations satisfying all the strict surrogate constraints. According to an aspect of the disclosure, the solver also performs subdivisions of the temporal subsets to adaptively adjust the temporal subsets in order to approach the true feasible domain of the original problem. In some examples, the solver is referred to as subdivision-based SIP solver.


In some examples, the solver performs spatial and temporal discretization to generate spatial-temporal subsets, and each spatial-temporal subset can have infinite spatial-temporal subset of constraints due to the infinite time instances in the temporal subset. The infinite spatial-temporal subset of constraints can be expressed by Eq. (3):










dist


(



b
ij

(

t
,
θ

)

,

o
k


)




d
0





Eq
.


(
3
)












t


[


T
0

,

T
1


]



[

0
,
T

]






where bij denotes a spatial subset of the robot, ok denotes a spatial subset of the obstacle, [T0, T1] denotes a temporal subset.


Further, a surrogate constraint is used to replace the time interval [T0, T1] with a single time instance. In an example, a midpoint constraint is used as the surrogate constraint, such as shown by Eq. (4):










dist


(



b
ij


(




T
0

+

T
1


2

,
θ

)

,

o
k


)




d
0





Eq
.


(
4
)








It is noted that other suitable time instance constraint can be used as the surrogate constraint.


It is noted that the domain specified by Eq. (4) is larger than the domain specified by Eq. (3), which is a violation for feasibility requirement. In some examples, the violation is remedied by upper bounding the feasibility error due to the use of the surrogate constraint. In an example, a linear upper bound is established based on two assumptions. The first assumption assumes that dist (bij, ok) is sufficiently smooth for any custom-characteri, j, kcustom-character, and the second assumption assumes that the feasible domain of t and θ is bounded. Based on the first assumption and the second assumption, it can be proved that there exists a constant L1, such that the inequality in Eq. (5) is true:












"\[LeftBracketingBar]"



dist

(



b
ij

(


t
1

,
θ

)

,

o
k


)

-

dist

(



b
ij

(


t
2

,
θ

)

,

o
k


)




"\[RightBracketingBar]"





L
1





"\[LeftBracketingBar]"



t
1

-

t
2




"\[RightBracketingBar]"







Eq
.


(
5
)








where t1 and t2 are any two time instances in the [T0, T1]. In some examples, the constant L1 is Lipschitz constant.


According to Eq. (5), in some examples, the feasibility error of the midpoint surrogate constraint can be upper bounded by L1(T1−T0)/2. In some examples, a feasible domain specified by a strict surrogate constraint (also referred to as conservative surrogate constraint) in Eq. (6) is a subset of the true feasible domain:










dist


(



b
ij

(

t
,
θ

)

,

o
k


)





d
0

+


L
1





"\[LeftBracketingBar]"



T
1

-

T
0




"\[RightBracketingBar]"


/
2.






Eq
.


(
6
)








According to an aspect of the disclosure, Eq. (5) and Eq. (6) can be used in a safety check. In some examples, the solver includes an optimizer that performs optimization according to the surrogate constraints in Eq. (4) to determine a trajectory, and the solver uses strict surrogate constraints shown by Eq. (6) to perform safety check to determine whether the trajectory is safe. It is noted that the feasible domain according to the surrogate constraints in Eq. (4) can be larger than the true feasible domain, and using the strict surrogate constraints in Eq. (6) as a safety check can make sure that the trajectory is feasible. It is noted that other suitable upper bounds that converge can be used in a similar manner as the strict surrogate constraints in Eq. (6).


According to an aspect of the disclosure, the solver can use a feasible interior point method to solve NLP. In some examples, the solver can turn each inequality of a collision constraint into a penalty function, such as shown in Eq. (7):










P
ijk


=



P

(


dist

(



b
ij

(

t
,
θ

)

,

o
k


)

-

d
0


)





Eq
.


(
7
)








where P is a smooth monotonically decreasing penalty function defined on (0,∞), such that








lim

x

0



P

(
x
)


=





and




lim

x





P

(
x
)



=

0
.






Further, in some examples, in order to sandle SIP problem, the penalty function is designed to satisfy








lim

x

0



x


P

(
x
)



=


.





In an example, Eq. (8) is a valid penalty function. In another example, Eq. (9) is a valid penalty function.










P

(
x
)

=


-

log

(
x
)


/
x





Eq
.


(
8
)
















P

(
x
)

=

{






(


x
0

-
x

)

3


x
4





x


x
0






0



x
>

x
0










Eq
.


(
9
)









FIG. 2 shows a diagram (200) of the penalty function in Eq. (9). The diagram (200) includes a first curve (210) corresponding to x0 being 1, a second curve (220) corresponding to x0 being 0.5, and a third curve (230) corresponding to x0 being 0.25. It is noted that the penalty function in Eq. (9) is twice differentiable and locally supported within (0, x0) with x0 being a small positive constant. In some experiment,







x
0

=

1


0

-
3







is used in the barrier penalty function in Eq. (9).


According to an aspect of disclosure, the infinite number of constraints can be transformed into a finite form by integrating the penalty function over infinite variable, such as represented by Eq. (10):












P
¯

ijk

(


T
0

,

T
1

,
θ

)


=






T
0




T
1






P

i

j

k

l


(
t
)


d

t






Eq
.


(
10
)








According to some aspects of the disclosure, the temporal domain is discretized into a disjoint set of temporal subsets, such as represented by [0, T]=Ul[T0l, T1l]. For each temporal subset, a midpoint constraint is used as a surrogate constraint of the temporal subset. Using a suitable penalty function, the inequality-constrained NLP can be transformed into an unconstrained NLP, such as shown by Eq. (11):










arg

min
θ


ε


(
θ
)



=






(
θ
)


+

μ






ijkl



(


T
0
l

-

T
1
l


)




P
ijkl

(
θ
)







Eq
.


(
11
)












P
ijkl

(
θ
)


=




P
ijkl

(




T
0
l

+

T
1
l


2

,
θ

)





where μ denotes a positive weight, such as a positive weight controlling a duality gap. It is noted that in Eq. (10), the penalty function Pijkl(θ) is weighted by a time span T1l−T0l to approximate the integral form.


In some examples, the solver can use suitable first order and/or second order algorithms to solve Eq. (11). For example, the solver can determine the search direction of a first order according to Eq. (12), and or can determine the search direction of a second order according to Eq. (13):










d

(
1
)



=



-



θ








Eq
.


(
12
)
















d

(
2
)



=
Δ


adj



(



θ
2

ε

)


-
1




d

(
1
)







Eq
.


(
13
)








where adj(·) is an adjustment function, such as an adjustment function for a Hessian matrix.


Further, in some examples, the solver can adaptively determine a step size α in a line search algorithm to satisfy a converge condition in Eq. (14):












(

θ
+

d

α


)






(
θ
)

+

c





d

α

,



θ












Eq
.


(
14
)








where c∈(0,1) is a positive constant, d denotes the search direction and is set to d(1) when the first order search direction is used, and is set to d(2) when the second order search direction is used. It is noted that when a smallest positive integer z is selected such that α=1/z satisfies Eq. (14), the feasible interior point method can converge to the first order critical point of ε.


According to some aspects of the disclosure, the line search algorithm determines, based on a current trajectory (e.g., represented by θ), the step size α for a next trajectory (e.g., represented by θ+dα), and accepts α when the next trajectory passes the safety check. According to an aspect of the disclosure, the failure of the safety check can due to two reasons. The first reason is that the step size α is too large, and the second reason is that more subdivisions are need. In some examples, when the next trajectory fails the safety check, the solver can choose to reduce the step size α until reaching a lower bound (denoted by ϵα) for the step size α. Further, in some examples, the solver can determine at least one strict surrogate constraint is not sufficiently accurate approximation of the semi-infinite constraints for a temporal subset (e.g., represented by [T0l, T1l]), and the solver can perform a subdivision procedure that subdivides the temporal subset into multiple intervals, such as two intervals [T0l, (T0l+T1l)/2] and [(T0l+T1l)/2, T1l]. The subdivision procedure can be repeated until α found by the line search algorithm passes the safety check.



FIGS. 3A-3C show diagrams illustrating techniques used in the solver according to some aspects of the disclosure.



FIG. 3A shows a current trajectory (310) (also referred to as a first intermediate trajectory) and an obstacle (301). The current trajectory (310) corresponds to θ. The current trajectory (310) can describe a moving trajectory for a point of a robot from a starting position A to a target position B in a time duration T (also referred to as temporal domain).


The temporal domain is discretized into a disjoint set of temporal subsets, such as five temporal subsets shown by (391)-(395). For each temporal subset, a midpoint constraint is used as surrogate constraint of the temporal subset. For example, a position (321) on the current trajectory (310) corresponds to the midpoint of the temporal subset (391); a position (322) on the current trajectory (310) corresponds to the midpoint of the temporal subset (392); a position (323) on the current trajectory (310) corresponds to the midpoint of the temporal subset (393); a position (324) on the current trajectory (310) corresponds to the midpoint of the temporal subset (394); and a position (325) on the current trajectory (310) corresponds to the midpoint of the temporal subset (395). Further, a set of surrogate constraints for the temporal subsets (391)-(395) are determined. For example, a surrogate constraint associated with the position (321) is used to replace the infinite number of distance constraints in the temporal subset (391); a surrogate constraint associated with the position (322) is used to replace the infinite number of distance constraints in the temporal subset (392); a surrogate constraint associated with the position (323) is used to replace the infinite number of distance constraints in the temporal subset (393); a surrogate constraint associated with the position (324) is used to replace the infinite number of the distance constraints in the temporal subset (394); a surrogate constraint associated with the position (325) is used to replace the infinite number of distance constraints (e.g., inequality constraints in Eq. (3)) in the temporal subset (395). Using the set of surrogate constraints, the SIP problem is reduced to NLP problem. Further, using a suitable penalty function, the inequality-constrained NLP can be transformed into an unconstrained NLP, for example according to the Eq. (11).


In some examples, strict surrogate constraints for the temporal subsets are determined, for example, according to Eq. (6). In FIG. 3A, the strict surrogate constraints are represented by bounding boxes associated with the positions (321)-(325), the bounding boxes are upper bounded based on the temporal subsets. In the FIG. 3A example, a bounding box (331) indicates the strict surrogate constraint associated with the position (321); a bounding box (332) indicates the strict surrogate constraint associated with the position (322); a bounding box (333) indicates the strict surrogate constraint associated with the position (323); a bounding box (334) indicates the strict surrogate constraint associated with the position (324); a bounding box (335) indicates the strict surrogate constraint associated with the position (325). In some examples, when the bounding boxes (331)-(335) do not intersect with the obstacle (301), the current trajectory (310) is feasible.


In some examples, the solver can determine the search direction d based on Eq. (11). The search direction can be the first order search direction according to Eq. (12), or can be the second order search direction according to Eq. (13). FIG. 3A shows the search direction by (329).


Further, in some examples, from the current trajectory (310), a potential next trajectory (350) can be determined based on the search direction d and a potential step size α, and the safety check is performed on the potential next trajectory (350).



FIG. 3B shows bounding boxes for the potential next trajectory (350) in some examples. For example, a position (361) on the potential next trajectory (350) corresponds to the midpoint of the temporal subset (391); a position (362) on the potential next trajectory (350) corresponds to the midpoint of the temporal subset (392); a position (363) on the potential next trajectory (350) corresponds to the midpoint of the temporal subset (393); a position (364) on the potential next trajectory (350) corresponds to the midpoint of the temporal subset (394); and a position (365) on the potential next trajectory (350) corresponds to the midpoint of the temporal subset (395). Further in the FIG. 3B example, a bounding box (371) indicates the strict surrogate constraint associated with the position (361); a bounding box (372) indicates the strict surrogate constraint associated with the position (362); a bounding box (373) indicates the strict surrogate constraint associated with the position (363); a bounding box (374) indicates the strict surrogate constraint associated with the position (364); a bounding box (375) indicates the strict surrogate constraint associated with the position (365). It is shown that the bounding box (373) intersects with the obstacle (301), the potential next trajectory (350) is not feasible, and the potential next trajectory (350) fails the safety check.


In some examples, the potential step size α can be reduced to generate an updated potential step size. Then, an updated potential next trajectory corresponding to the updated potential step size is generated, and the safety check can be performed on the updated potential next trajectory. The potential step size can be repetitively reduced until the safety check is successful or the lower bound of the potential step size is reached. When the safety check is successful, the potential next trajectory becomes the current trajectory.


In some examples, when the lower bound of the potential step size is reached, subdivisions can be performed. For example, the strict surrogate constraint for the temporal subset (393) is not sufficiently accurate approximation of the semi-infinite constraints for the temporal subset (393), and the temporal subset (393) is subdivided into multiple intervals.



FIG. 3C shows an example of subdivision in some examples. As shown in FIG. 3C, the temporal subset (393) is subdivided into smaller temporal subsets, such as a first interval (397) and a second interval (398), to replace the temporal subset (393). Further, surrogate constraints and strict surrogate constraints for the first interval (397) and the second interval (398) are determined. A position (327) on the current trajectory (310) corresponds to the midpoint of the first interval (397); a position (328) on the current trajectory (310) corresponds to the midpoint of the second interval (398). Further, a first surrogate constraint associated with the position (327) is used to replace the infinite number of distance constraints in the first interval (397); a second surrogate constraint associated with the position (328) is used to replace the infinite number of distance constraints in the second interval (398). Then, the set of surrogate constraints is updated to remove the surrogate constraint for the temporal subset (393) and to add the first surrogate constraint for the first interval (397) and the second surrogate constraint for the second interval (398). Thus, the SIP problem is reduced to an updated NLP problem. Further, using the suitable penalty function, the inequality-constrained NLP can be transformed into an unconstrained NLP, for example according to the Eq. (11).


Further, in some examples, strict surrogate constraints are determined. In FIG. 3C, the strict surrogate constraints are presented by bounding boxes. In the FIG. 3C example, a bounding box (337) indicates the strict surrogate constraint associated with the position (327); a bounding box (338) indicates the strict surrogate constraint associated with the position (328). The bounding boxes (337) and (338) in FIG. 3C replace the bounding box (333) in FIG. 3A. It is noted that the bounding boxes (337) and (338) are less strict than the bounding box (333) in FIG. 3A.



FIGS. 4-6 show algorithms for implementing the solver in some examples.



FIG. 4 shows a first algorithm (400) of feasible interior point method for solving NLP. FIG. 5 shows a second algorithm (500) for safety check. FIG. 6 shows a third algorithm (600) for a line search procedure.


The first algorithm (400) receives an initial feasible trajectory (denoted by θ), and other parameters, such as an initial weight μ, a lower bound ϵα for the step size, a lower bound ϵd for the search direction, a lower bound ϵμ for the weight, and a scaling factor γϵ(0,1).


The first algorithm (400) includes an inner loop (403) that repetitively calls the third algorithm (shown by (404) in FIG. 4) that is the line search algorithm (denoted by Line-Search) to determine the step size α for a next trajectory based on the current trajectory, and update the current trajectory to be the next trajectory (shown by (405) in FIG. 4) in order to approaching a local optimal trajectory. The inner loop (403) terminates when |d|≤ϵd. The first algorithm (400) also includes an outer loop (401) that iteratively reducing the weight u based on the scaling factor γ until μ≤ϵμ. The first algorithm (400) can use the first order search direction or the second order search direction as shown by (402).


The second algorithm (500) checks whether a trajectory (e.g., represented by θ) is feasible. In FIG. 5, the second algorithm (500) checks the trajectory for every combination of custom-characteri, j, k, lcustom-character according to the strict surrogate constraint (e.g., Eq. (6)) as shown by (510) in FIG. 5. When the strict surrogate constraint is satisfied by the trajectory for every combination of custom-characteri, j, k, lcustom-character, the safety check is passed by the trajectory (e.g., return none). When the strict surrogate constraint is not satisfied by the trajectory for a combination of custom-characteri, j, k, lcustom-character, the safety check fails, the combination of custom-characteri, j, k, lcustom-character is returned.


The third algorithm (600) performs a line search based on a current trajectory to determine the step size α for a next trajectory that approaches the local optimal. The third algorithm (600) repetitively performs a loop procedure (610) until the step size α found by the loop procedure (610) passes the safety check (e.g., the second algorithm returns none).


In the FIG. 6 example, during the loop procedure (610), in response to a failure of the safety check and the step size is higher than the lower bound, the step size α is reduced by the scaling factor γ, as shown by (615). The step size can be repetitively reduced until the safety check is successful or the lower bound of the step size is reached. When the safety check is successful, the step size is output for indicating the next trajectory.


It is noted that in the FIG. 6 example, when a converge condition (e.g., Eq. (14)) is not satisfied, the step size is also reduced, as shown by (617).


In the FIG. 6 example, when the lower bound of the step size is reached (shown by (611)), subdivision is performed as shown by (613). It is noted that any suitable subdivision technique can be used. In an example, a subdivision divides a temporal subset into two intervals of equal length. After the subdivision, the unconstrained NLP according to Eq. (11) is re-formed and reevaluated, for example to update the search direction, as shown by (614).


According to an aspect of the disclosure, it can be proved that each trajectory generated by an iteration of the first algorithm is a feasible solution to Eq. (1). According to another aspect of the disclosure, it can be proved that the first algorithm terminates after a finite number of subdivisions. According to another aspect of the disclosure, it can be proved that when the first algorithm is performed for infinite number of iterations using null sequences {uk} and {ϵdk}, where k is the iteration number, then a solution sequence {θk} is obtained such that every accumulation point θ0 satisfies the first order optimality condition of Eq. (1).


Some aspects of the disclosure also provide techniques for determining the Lipschitz constant L1. In some examples, the Lipschitz constant L1 are evaluated for a first case of two edges in an edge pair, and a second case of a vertex and a triangle. In the following description, L1ij denotes the Lipschitz constant of bij satisfying Eq. (6). In an example, bij is considered to be a moving point, the first case and the second case can be modification of this example. According to an aspect of the disclosure, the Lipschitz constant can be calculated by the chain rule, for example according to Eq. (15):













L
1
ij

=


max




"\[LeftBracketingBar]"





d


i

s


t

(



b

i

j


(

t
,
0

)

,

o
k


)




t




"\[RightBracketingBar]"









=


max




"\[LeftBracketingBar]"








d


i

s


t

(



b

i

j



t

,
0

)


,

o
k


)







b

i

j




t

,
0

)








b

i

j


(

t
,
0

)





Θ

(

t
,
0

)








Θ

(

t
,
0

)




t





"\[RightBracketingBar]"










Eq
.


(
15
)








where ⊖ denotes the vector of joint parameters, which is also a function of t and θ.


Without a loss of generality, each entry of









Θ

(

t
,
0

)




t





is limited to the range of [−1, 1]. The first term in Eq. (15) is a distance function, whose sub-gradient has a norm at most 1. Thus, from Eq. (15), Eq. (16) can be obtained:










L
1

i

j




max





"\[LeftBracketingBar]"






b
ij

(

t
,
0

)





Θ

(

t
,
0

)





"\[RightBracketingBar]"



2
,
1







Eq
.


(
16
)








which means L1ij can be upper bound of 2, 1-norm of the Jacobian matrix.


In some examples, in the case that bij is a triangle with three vertices denoted as bij1, bij2, and bij3, a closest point on bij to ok lies on an interpolated point bij1ξ1, bij2ξ2, and bij3ξ3, where ξ1, ξ2, and ξ3 are interpolation weights that are also function of θ(t). In some examples, Eq. (17) holds for every point:












"\[LeftBracketingBar]"





d


i


st

(



b
ij

(

t
,
0

)

,

o
k


)




t




"\[RightBracketingBar]"






"\[LeftBracketingBar]"





d


i

s


t

(




b
ij
1



ξ
1


+


b
ij
2



ξ
2


+


b
ij
3



ξ
3



,

o
k


)




t




"\[RightBracketingBar]"






Eq
.


(
17
)








Based on Eq. (17), and ξ1, ξ2, and ξ3 form a convex combination, the Eq. (18) can be obtained:













L
1

i

j


=


max




"\[LeftBracketingBar]"





d


i


st

(



b

i

j


(

t
,
θ

)

,

o
k


)




t




"\[RightBracketingBar]"












max




"\[LeftBracketingBar]"






d


i

s


t

(



b

i

j


(

t
,
θ

)

,

o
k


)










b

i

j

1




ξ
1


+








b

i

j

2



ξ
2


+


b

i

j

3



ξ
3

















b

i

j

1




ξ
1


+








b

i

j

2



ξ
2


+


b

i

j

3



ξ
3









Θ

(

t
,
θ

)








Θ

(

t
,
θ

)




t





"\[RightBracketingBar]"












max







m
=
1

3






"\[LeftBracketingBar]"





b

ij

(

t
,
θ

)

m





Θ

(

t
,
θ

)





"\[RightBracketingBar]"



2
,
1




ξ
m





max



m
=
1


,



,
3






"\[LeftBracketingBar]"





b

ij

(

t
,
θ

)

m





Θ

(

t
,
θ

)





"\[RightBracketingBar]"



2
,
1










Eq
.


(
18
)








In other words, the Lipschitz constant of a moving triangle is the maximal Lipschitz constant over its three vertices. It is noted that similar result can be obtained for the case that bij is a moving edge.


Further, upper bound of the 2, 1-norm of the Jacobian matrix for a moving point bij can be evaluated. The upper bound can be derived from the forward kinematic function. FIG. 7 shows a diagram (700) illustrating a robot arm with hinge joints (701), (702) and (703). When the moving point bij lies on the Kth link, then the position of bij is affected by ⊖1, . . . , ⊖K. In FIG. 7, the kth link has a length of lk. The maximal influence of ⊖k on bij happens when all the k, . . . Kth links are straight. Thus, Eq. (19) can be obtained:













"\[LeftBracketingBar]"





b
ij





Θ
k





"\[RightBracketingBar]"






Σ



m
=
1

k



l
m









"\[LeftBracketingBar]"





b

t

j





Θ




"\[RightBracketingBar]"



2
,
1






Σ



k
=
1

K




Σ



m
=
k

K



l
m







Eq
.


(
19
)








According to an aspect of the disclosure, L1ij formulation relies on the boundedness of










Θ

(

t
,
θ

)




t


.




In some examples, an articulated robot can have joint limits that may need to be satisfied at any t∈[0,T]. In some examples, high-order composite Bezier curves are used to parameterize the trajectory ⊖(t,θ) in the configuration space, so that ⊖(t,θ) is a high order polynomial function. Then, bounds on ⊖(t,θ) at an arbitrary t can be transformed into bounds on control points. denotes the upper joint limit, and denotes the lower joint limit, Mk denotes the matrix extracting the control points of ⊖k and Mik denotes the ith row of Mk, then the joint limit constraints can be conservatively enforced a log-barrier function, such as shown in Eq. (20):















i







k



P

(



Θ
¯

k




-

M

i

k





Θ
k



)


+

P

(


-


Θ
_

k


+


M

i

k




Θ
k



)





Eq
.


(
20
)








In some examples, similar approach is used to bound










Θ
k

(

t
,
θ

)




t





to the range [−1, 1]. It is noted that the gradient of a Bezier curve is another Bezier curve with a lower order. M′k denotes the matrix extracting the control points of











Θ
k

(

t
,
θ

)




t


,




and M′k denotes the ith row of M′k. The boundedness of









Θ

(

t
,
θ

)




t





for any t can be realized by adding the log barrier function shown in Eq. (21):















i







k



P

(

1
-


M
ik




Θ
k



)


+

P

(

1
+


M

i

k




Θ
k



)





Eq
.


(
21
)








It is noted that the constraints in Eq. (20) and Eq. (21) are strictly conservative. Further, more control points in the Bezier curve composition can allow an arbitrarily long trajectory of complex motions.


In some examples, the solver is implemented on a single desktop computer with multiple CPU cores. The multiple CPU cores can parallelize various computations, such as collision check, energy function computation, derivative computations. In an example, the solver is used to determine a trajectory of an industrial robot arm reaching a target pose through an environment with obstacles, the solver converges after finite number of subdivisions and iterations with about 10 minutes computation. In another example, the solver is used to generate trajectories of 6 unmanned aerial vehicles (UAVs) to reach a set of designated goal positions, the solver converges after finite number of subdivisions and iterations with about 45 minutes of computation.



FIG. 8 shows a flow chart outlining a process (800) according to an embodiment of the disclosure. In some embodiments, the process (800) is implemented as software instructions of algorithms in a solver, thus when processing circuitry executes the software instructions, the processing circuitry performs the process (800). The process (800) can be used for trajectory planning in various applications. In an example, the process (800) is used to generate a trajectory for an articulated robot in an environment with obstacles. In another example, the process (800) is used to design trajectories for a plurality of UAVs to reach a set of designated goal positions. In another example, the process (800) is used in trajectory planning for controlling virtual objects in virtual worlds, such as in video game. The process starts at (S801) and proceeds to (S810).


At (S810), a plurality of surrogate time instances are selected respectively representing a plurality of temporal subsets of a time duration of a first intermediate trajectory (e.g., the current trajectory (310)). In some examples, midpoints of the plurality of temporal subsets are selected as the plurality of surrogate time instances.


At (S820), a plurality of surrogate constraints respectively associated the plurality of surrogate time instances are determined. The plurality of surrogate constraints require a distance between the robot and an obstacle to satisfy a safe distance requirement at the plurality of surrogate time instances. In an example, the safe distance requirement limits a shortest distance between the robot and the obstacle to be greater than a user defined safe distance.


At (S830), an adjustment from the first intermediate trajectory to a second intermediate trajectory (e.g., the potential next trajectory (350)) is determined based on the plurality of surrogate constraints.


At (S840), at least a first strict surrogate constraint for a first surrogate time instance representing a first temporal subset in the plurality of temporal subsets is determined based on the first temporal subset. The first strict surrogate constraint ensures the safe distance requirement being satisfied at other time instances in the first temporal subset in response to the first strict surrogate constraint being satisfied at the first surrogate time instance.


At (S850), a safety check of the second intermediate trajectory is performed according to at least the first strict surrogate constraint.


In some examples, in response to a failure of the safety check according to the first strict surrogate constraint, the first temporal subset is subdivided into at least two intervals for replacing the first temporal subset. In an example, the first temporal subset is evenly subdividing the first temporal subset into the at least two intervals.


In some examples, to determine the adjustment, a cost function (e.g., Eq. (11)) that is an unconstrained non linear programing (NLP) is formed according to a penalty function and the plurality of surrogate constraints. Then, a search direction is determined based on the cost function, and the adjustment is determined based on the search direction and a step size. In an example, the cost function includes a weighed sum of a plurality of penalty terms respectively at the plurality of surrogate time instances based on the penalty function, the plurality of penalty terms are weighted respectively according to the plurality of temporal subsets. In some examples, the penalty function P satisfies









lim

x

0



x


P

(
x
)



=


,




and is twice umrerentiable. In some examples, the step size is reduced in response to a cost difference of the first intermediate trajectory and the second intermediate trajectory failing a converge condition (e.g., Eq. (14)). In some examples, the step size is reduced in response to a failure of the safety check according to the first strict surrogate constraint.


In some examples, the robot is discretized into a first plurality of spatial subsets, and the obstacle is discretized into a second plurality of spatial subsets. In some examples, a Lipschitz constant is determined based on the first plurality of spatial subsets of the robot and the second plurality of spatial subsets of the obstacle. In an example, the first strict surrogate constraint is determined based on a safe distance in the safe distance requirement and a multiplication of the Lipschitz constant and a time length of the first temporal subset, such as shown by Eq. (6).


Then, the process proceeds to (S899) and terminates.


The process (800) can be suitably adapted. Step(s) in the process (800) can be modified and/or omitted. Additional step(s) can be added. Any suitable order of implementation can be used.


The techniques described above, can be implemented as computer software using computer-readable instructions and physically stored in one or more computer-readable media. For example, FIG. 9 shows a computer system (900) suitable for implementing certain embodiments of the disclosed subject matter.


The computer software can be coded using any suitable machine code or computer language, that may be subject to assembly, compilation, linking, or like mechanisms to create code comprising instructions that can be executed directly, or through interpretation, micro-code execution, and the like, by one or more computer central processing units (CPUs), Graphics Processing Units (GPUs), and the like.


The instructions can be executed on various types of computers or components thereof, including, for example, personal computers, tablet computers, servers, smartphones, gaming devices, internet of things devices, and the like.


The components shown in FIG. 9 for computer system (900) are exemplary in nature and are not intended to suggest any limitation as to the scope of use or functionality of the computer software implementing embodiments of the present disclosure. Neither should the configuration of components be interpreted as having any dependency or requirement relating to any one or combination of components illustrated in the exemplary embodiment of a computer system (900).


Computer system (900) may include certain human interface input devices. Such a human interface input device may be responsive to input by one or more human users through, for example, tactile input (such as: keystrokes, swipes, data glove movements), audio input (such as: voice, clapping), visual input (such as: gestures), olfactory input (not depicted). The human interface devices can also be used to capture certain media not necessarily directly related to conscious input by a human, such as audio (such as: speech, music, ambient sound), images (such as: scanned images, photographic images obtain from a still image camera), video (such as two-dimensional video, three-dimensional video including stereoscopic video).


Input human interface devices may include one or more of (only one of each depicted): keyboard (901), mouse (902), trackpad (903), touch screen (910), data-glove (not shown), joystick (905), microphone (906), scanner (907), camera (908).


Computer system (900) may also include certain human interface output devices. Such human interface output devices may be stimulating the senses of one or more human users through, for example, tactile output, sound, light, and smell/taste. Such human interface output devices may include tactile output devices (for example tactile feedback by the touch-screen (910), data-glove (not shown), or joystick (905), but there can also be tactile feedback devices that do not serve as input devices), audio output devices (such as: speakers (909), headphones (not depicted)), visual output devices (such as screens (910) to include CRT screens, LCD screens, plasma screens, OLED screens, each with or without touch-screen input capability, each with or without tactile feedback capability—some of which may be capable to output two dimensional visual output or more than three dimensional output through means such as stereographic output; virtual-reality glasses (not depicted), holographic displays and smoke tanks (not depicted)), and printers (not depicted).


Computer system (900) can also include human accessible storage devices and their associated media such as optical media including CD/DVD ROM/RW (920) with CD/DVD or the like media (921), thumb-drive (922), removable hard drive or solid state drive (923), legacy magnetic media such as tape and floppy disc (not depicted), specialized ROM/ASIC/PLD based devices such as security dongles (not depicted), and the like.


Those skilled in the art should also understand that term “computer readable media” as used in connection with the presently disclosed subject matter does not encompass transmission media, carrier waves, or other transitory signals.


Computer system (900) can also include an interface (954) to one or more communication networks (955). Networks can for example be wireless, wireline, optical. Networks can further be local, wide-area, metropolitan, vehicular and industrial, real-time, delay-tolerant, and so on. Examples of networks include local area networks such as Ethernet, wireless LANs, cellular networks to include GSM, 3G, 4G, 5G, LTE and the like, TV wireline or wireless wide area digital networks to include cable TV, satellite TV, and terrestrial broadcast TV, vehicular and industrial to include CANBus, and so forth. Certain networks commonly require external network interface adapters that attached to certain general purpose data ports or peripheral buses (949) (such as, for example USB ports of the computer system (900)); others are commonly integrated into the core of the computer system (900) by attachment to a system bus as described below (for example Ethernet interface into a PC computer system or cellular network interface into a smartphone computer system). Using any of these networks, computer system (900) can communicate with other entities. Such communication can be uni-directional, receive only (for example, broadcast TV), uni-directional send-only (for example CANbus to certain CANbus devices), or bi-directional, for example to other computer systems using local or wide area digital networks. Certain protocols and protocol stacks can be used on each of those networks and network interfaces as described above.


Aforementioned human interface devices, human-accessible storage devices, and network interfaces can be attached to a core (940) of the computer system (900).


The core (940) can include one or more Central Processing Units (CPU) (941), Graphics Processing Units (GPU) (942), specialized programmable processing units in the form of Field Programmable Gate Areas (FPGA) (943), hardware accelerators for certain tasks (944), graphics adapters (950), and so forth. These devices, along with Read-only memory (ROM) (945), Random-access memory (946), internal mass storage such as internal non-user accessible hard drives, SSDs, and the like (947), may be connected through a system bus (948). In some computer systems, the system bus (948) can be accessible in the form of one or more physical plugs to enable extensions by additional CPUs, GPU, and the like. The peripheral devices can be attached either directly to the core's system bus (948), or through a peripheral bus (949). In an example, the screen (910) can be connected to the graphics adapter (950). Architectures for a peripheral bus include PCI, USB, and the like.


CPUs (941), GPUs (942), FPGAs (943), and accelerators (944) can execute certain instructions that, in combination, can make up the aforementioned computer code. That computer code can be stored in ROM (945) or RAM (946). Transitional data can be also be stored in RAM (946), whereas permanent data can be stored for example, in the internal mass storage (947). Fast storage and retrieve to any of the memory devices can be enabled through the use of cache memory, that can be closely associated with one or more CPU (941), GPU (942), mass storage (947), ROM (945), RAM (946), and the like.


The computer readable media can have computer code thereon for performing various computer-implemented operations. The media and computer code can be those specially designed and constructed for the purposes of the present disclosure, or they can be of the kind well known and available to those having skill in the computer software arts.


As an example and not by way of limitation, the computer system having architecture (900), and specifically the core (940) can provide functionality as a result of processor(s) (including CPUs, GPUs, FPGA, accelerators, and the like) executing software embodied in one or more tangible, computer-readable media. Such computer-readable media can be media associated with user-accessible mass storage as introduced above, as well as certain storage of the core (940) that are of non-transitory nature, such as core-internal mass storage (947) or ROM (945). The software implementing various embodiments of the present disclosure can be stored in such devices and executed by core (940). A computer-readable medium can include one or more memory devices or chips, according to particular needs. The software can cause the core (940) and specifically the processors therein (including CPU, GPU, FPGA, and the like) to execute particular processes or particular parts of particular processes described herein, including defining data structures stored in RAM (946) and modifying such data structures according to the processes defined by the software. In addition or as an alternative, the computer system can provide functionality as a result of logic hardwired or otherwise embodied in a circuit (for example: accelerator (944)), which can operate in place of or together with software to execute particular processes or particular parts of particular processes described herein. Reference to software can encompass logic, and vice versa, where appropriate. Reference to a computer-readable media can encompass a circuit (such as an integrated circuit (IC)) storing software for execution, a circuit embodying logic for execution, or both, where appropriate. The present disclosure encompasses any suitable combination of hardware and software.


While this disclosure has described several exemplary embodiments, there are alterations, permutations, and various substitute equivalents, which fall within the scope of the disclosure. It will thus be appreciated that those skilled in the art will be able to devise numerous systems and methods which, although not explicitly shown or described herein, embody the principles of the disclosure and are thus within the spirit and scope thereof.

Claims
  • 1. A method of generating a trajectory of a robot, comprising: selecting a plurality of surrogate time instances respectively representing a plurality of temporal subsets of a time duration of a first intermediate trajectory;determining a plurality of surrogate constraints respectively associated the plurality of surrogate time instances, the plurality of surrogate constraints requiring a distance between the robot and an obstacle to satisfy a safe distance requirement at the plurality of surrogate time instances;determining an adjustment from the first intermediate trajectory to a second intermediate trajectory based on the plurality of surrogate constraints;determining at least a first strict surrogate constraint for a first surrogate time instance representing a first temporal subset in the plurality of temporal subsets based on the first temporal subset, the first strict surrogate constraint ensuring the safe distance requirement being satisfied at other time instances in the first temporal subset in response to the first strict surrogate constraint being satisfied at the first surrogate time instance; andperforming a safety check of the second intermediate trajectory according to at least the first strict surrogate constraint.
  • 2. The method of claim 1, wherein in response to the safety check according to the first strict surrogate constraint fails, the method further comprises: subdividing the first temporal subset into at least two intervals for replacing the first temporal subset.
  • 3. The method of claim 1, wherein the selecting the plurality of surrogate time instances further comprises: selecting midpoints respectively of the plurality of temporal subsets as the plurality of surrogate time instances.
  • 4. The method of claim 1, wherein the determining the adjustment further comprises: forming a cost function that is an unconstrained non linear programing (NLP) according to a penalty function and the plurality of surrogate constraints;determining a search direction based on the cost function; anddetermining the adjustment based on the search direction and a step size.
  • 5. The method of claim 4, wherein the cost function comprises: a weighed sum of a plurality of penalty function terms respectively at the plurality of surrogate time instances, the plurality of penalty function terms being weighted respectively according to the plurality of temporal subsets.
  • 6. The method of claim 4, wherein the penalty function P satisfies
  • 7. The method of claim 4, further comprising: reducing the step size in response to at least one of: a cost difference of the first intermediate trajectory and the second intermediate trajectory failing a converge condition; anda failure of the safety check according to the first strict surrogate constraint.
  • 8. The method of claim 1, further comprising: determining a first plurality of spatial subsets of the robot; anddetermining a second plurality of spatial subsets of the obstacle.
  • 9. The method of claim 8, further comprising: determining a Lipschitz constant based on the first plurality of spatial subsets of the robot and the second plurality of spatial subsets of the obstacle.
  • 10. The method of claim 9, wherein the determining at least the first strict surrogate constraint further comprises: determining the first strict surrogate constraint based on a safe distance in the safe distance requirement and a multiplication of the Lipschitz constant and a time length of the first temporal subset.
  • 11. An apparatus, comprising processing circuitry configured to: select a plurality of surrogate time instances respectively representing a plurality of temporal subsets of a time duration of a first intermediate trajectory for a robot;determine a plurality of surrogate constraints respectively associated the plurality of surrogate time instances, the plurality of surrogate constraints requiring a distance between the robot and an obstacle to satisfy a safe distance requirement at the plurality of surrogate time instances;determine an adjustment from the first intermediate trajectory to a second intermediate trajectory based on the plurality of surrogate constraints;determine at least a first strict surrogate constraint for a first surrogate time instance representing a first temporal subset in the plurality of temporal subsets based on the first temporal subset, the first strict surrogate constraint ensuring the safe distance requirement being satisfied at other time instances in the first temporal subset in response to the first strict surrogate constraint being satisfied at the first surrogate time instance; andperform a safety check of the second intermediate trajectory according to at least the first strict surrogate constraint.
  • 12. The apparatus of claim 11, wherein the processing circuitry is configured to: in response to a failure of the safety check according to the first strict surrogate constraint, subdivide the first temporal subset into at least two intervals for replacing the first temporal subset.
  • 13. The apparatus of claim 11, wherein the processing circuitry is configured to: select midpoints respectively of the plurality of temporal subsets as the plurality of surrogate time instances.
  • 14. The apparatus of claim 11, wherein the processing circuitry is configured to: form a cost function that is an unconstrained non linear programing (NLP) according to a penalty function and the plurality of surrogate constraints;determine a search direction based on the cost function; anddetermine the adjustment based on the search direction and a step size.
  • 15. The apparatus of claim 14, wherein the cost function comprises: a weighed sum of a plurality of penalty function terms respectively at the plurality of surrogate time instances, the plurality of penalty function terms being weighted respectively according to the plurality of temporal subsets.
  • 16. The apparatus of claim 14, wherein the penalty function P satisfies
  • 17. The apparatus of claim 14, wherein the processing circuitry is configured to: reduce the step size in response to at least one of: a cost difference of the first intermediate trajectory and the second intermediate trajectory failing a converge condition; ora failure of the safety check according to the first strict surrogate constraint.
  • 18. The apparatus of claim 11, wherein the processing circuitry is configured to: determine a first plurality of spatial subsets of the robot; anddetermine a second plurality of spatial subsets of the obstacle.
  • 19. The apparatus of claim 18, wherein the processing circuitry is configured to: determine a Lipschitz constant based on the first plurality of spatial subsets of the robot and the second plurality of spatial subsets of the obstacle.
  • 20. The apparatus of claim 19, wherein the processing circuitry is configured to: determine the first strict surrogate constraint based on a safe distance in the safe distance requirement and a multiplication of the Lipschitz constant and a time length of the first temporal subset.