Download as pdf or txt
Download as pdf or txt
You are on page 1of 9

Mechatronics 92 (2023) 102969

Contents lists available at ScienceDirect

Mechatronics
journal homepage: www.elsevier.com/locate/mechatronics

Kinodynamic optimal trajectories generation in cluttered environments


using Bernstein polynomials✩
Bruno Strano ∗, Michele Furci, Lorenzo Marconi
CASY-DEI, University of Bologna, Italy

ARTICLE INFO ABSTRACT

Keywords: We develop a trajectory planning strategy for autonomous agents using Bernstein polynomials. The focus is
Path planning on generating trajectories that are functionally controllable for under-actuated vehicles and that guarantee a
Bézier curves safe path to avoid obstacles. The algorithm is suitable for local replanning and onboard quick re-computation
Replanning
of the trajectory when unplanned obstacles pop up. By leveraging on the properties of Bernstein polynomials
Optimality
the problem is cast into a quadratic programming problem that can be solved in polynomial time.
High differentiable curves

1. Introduction this work, we focus on the latter. The waypoints can be generated
by different methods, some suppose a map to be known (or partially
Trajectory planning for autonomous agents is becoming more and known) and outputs the positions of waypoints, like RRT developed
more important as the usage of mobile robots increases. The applica- by LaValle [2] or RRT* PRM* and RRG proposed by Karaman and
tions are vastly different, from navigation in automated warehouses to Frazzoli [3]. The former is a sampling-based method where samples
navigation in search and rescue operations. Nonetheless, the generation were drawn randomly from the search space and used to build a tree
of trajectories is a challenging task since it needs to take into account towards the goal. The latter are asymptotically optimal sampling-based
various kinds of constraints, depending on the applications. Broadly
methods in which the solution converges to an optimum as the samples
speaking, a typical navigation mission requires the autonomous agent
increase. In those methods, search non-convex high-dimensional spaces
to move from an initial pose to a desired one, eventually passing
are discretized and the problem of finding a path between two points
through some intermediate waypoints. The trajectory generated must
be compatible with the dynamics of the chosen vehicle to be tracked is turned into graph searching. Other methods compute directly a
efficiently and is usually the result of an optimization problem. A tra- curve connecting two points in a complex map like the Fast marching
jectory generation algorithm can be implemented in an online fashion method [4] applied in [5]. Over the past decades, many approaches to
with no ‘‘a priori’’ knowledge of the environment, allowing the vehicle generate curves through waypoints have been proposed like polynomial
to navigate in an initially unknown environment to perform a task or to methods [6,7]. Those methods represent the trajectory as piecewise
explore and map. In order to guarantee the safeness of the vehicle, the polynomial functions of a certain order over time intervals. This makes
trajectory has to be modifiable online to avoid unplanned changes in it possible to find trajectories that minimize functionals written using
the environment. Among all the different strategies used to compute these basis functions. The degree of the polynomial depends on the
suitable trajectories for mobile robots, we focus on planning using number of conditions to be satisfied and on the ‘‘smoothness’’ of
Bézier curves, which allows us to obtain smooth and optimal trajec- the resulting motion. Similarly, Bernstein polynomials can be used to
tories with an iterative procedure and with replanning capabilities. address this problem [8,9]. The work of Constanzi and Fanelli [10] uses
Moreover, the implementation of Bèzier specific algorithms, such as the a Bézier curve to address an optimization problem that, solved with
de Casteljau algorithm [1], allows for fast computation of the curve and a direct search method, outputs the control point of the Bézier curve.
bound on the vehicle’s motion derivatives. Some approaches use Bézier curves as a basis ending up in bsplines [11]
for the more controllable parameters i.e. control polygon, which can
1.1. Related work
be easily modified and can be easily integrated into optimization pro-
We consider the motion planning module split between a safe cedures. The Bernstein polynomials are also used to perform collision
waypoint generator and a trajectory through-waypoint generator. In avoidance [12] using a time parametrization and calculating a detour

✩ This paper was recommended for publication by Associate Editor Ivan Petrović.
∗ Corresponding author.
E-mail address: bruno.strano2@unibo.it (B. Strano).

https://doi.org/10.1016/j.mechatronics.2023.102969
Received 5 April 2022; Received in revised form 20 February 2023; Accepted 5 March 2023
Available online 21 March 2023
0957-4158/© 2023 The Authors. Published by Elsevier Ltd. This is an open access article under the CC BY license (http://creativecommons.org/licenses/by/4.0/).
B. Strano et al. Mechatronics 92 (2023) 102969

curve to be added to the original curve to perform the avoidance • Obstacle avoidance. For each pair of waypoints 𝑊 𝑝𝑗 and
manoeuvre. A Recent work [13] shows how is possible to perform 𝑊 𝑝𝑗+1 , 𝑗 = 0, … , 𝑚 − 1, we suppose that the portion of trajectory
optimal motion planning using Bernstein’s approximants in real-time lying between them, namely 𝛤 (𝑡) with 𝑡 ∈ [𝑇𝑗 , 𝑇𝑗+1 ], must be
that guarantees safety in a complex environment for a multiple-vehicle necessarily contained in a region, denoted by 𝑗 , which is free
mission. A collision avoidance system is of paramount importance of obstacles. Such a region is supposed to be a convex polygon
in trajectory generation and can be designed in different ways. The composed by at most 𝜂 > 0 half-planes described by
works [14,15], extensively describe different approaches in design a
collision avoidance system, with a particular focus on UAVs and drones. 𝜑𝑗𝑖 x ≤ 𝜇𝑗𝑖 𝑗 = 0, … , 𝑚 − 2, 𝑖 = 1, … , 𝜂
In this work, we assume collision avoidance as a part of a path planning
procedure in which the trajectory is generated in a free path that avoids with x = (𝑥, 𝑦, 𝑧)𝑇 . By collecting row-wise the 𝜂 vectors 𝜑𝑗𝑖 , 𝑖 =
collision with static obstacles. In case of an unplanned obstacle pops 1, … , 𝜂, in a matrix 𝛷𝑗 of dimension 𝜂 × 3 and the scalars 𝜇𝑗𝑖 in a
up we aim to modify online the trajectory in a new free path. In column vector 𝑀𝑗 of dimension 𝜂, the obstacle-free trajectory is
known, or partially known maps, global approaches like [5] are usually thus expected to fulfil
used. These methods allow for generating a global optimal trajectory
that passes through predetermined waypoints and satisfies certain pro- 𝛷𝑗 𝛤 (𝑡) ≤ 𝑀𝑗 ∀ 𝑡 ∈ [𝑇𝑗 , 𝑇𝑗+1 ], 𝑗 = 0, … , 𝑚 − 2 . (1)
prieties and constraints. Methods that use bsplines, polynomials and
Using Bézier curves we can express the trajectory 𝛤 (𝑡) as a com-
similar are usually implemented using the global approach, addressing
bination of control points and constraint their positions (i.e. the
a big optimization problem in which the piecewise curve is determined.
geometric trajectory, thanks to the convex hull propriety) with
Conversely, in this work we calculate, using a local iterative approach,
a trajectory composed of optimal Bézier curves, and we guarantee the 4 inequality constraints by injecting (1) as an inequality constraint
times differentiability of the curve, replanning feature, and constraints in a quadratic optimization problem. Fig. 1 graphically sketches a
on the derivative bounds imposed by the dynamics of the vehicle. The scenario of two convex polygons 𝑗−1 and 𝑗 across three generic
paper is organized as follows: Section 2 formulates the problem and waypoints 𝑊 𝑝𝑗−1 , 𝑊 𝑝𝑗 , 𝑊 𝑝𝑗+1 .
presents the instrument to solve it, Section 3 describes our proposed
local approach the results of which are presented in Section 4. Finally, Typical trajectory design strategies are then characterized by op-
chapter 5 presents some final thoughts and some look at possible future timality requirements asking that the trajectory 𝛤 (𝑡) is optimal with
works and applications. respect to some functional cost that might depend on the specific
context. For instance, in [5] the trajectory is expected to be optimal
2. The framework with respect to the functional cost
∑ 𝑇𝑚−1 ( 𝑑 3 𝛤 (𝑡) )2
2.1. Problem formulation 𝑢
𝐽= 𝑑𝑡 (2)

𝑢∈𝑥,𝑦,𝑧 𝑇0 𝑑𝑡3
The goal of this work is to develop an optimal trajectory generator
for autonomous agents, with obstacle avoidance and the ability to per- aiming to minimize the jerk of the trajectory. Other solutions might aim
form a local online re-planning, suitable to operate in highly dynamic to minimize the snap, which is the previous functional cost with the
environments. The trajectory is parametrized by time 𝑡 and will be third derivative of 𝛤 (𝑡) replaced by the fourth one. The tangential jerk
denoted by 𝛤 (𝑡) ∈ R3 . The general framework considers that 𝛤 (𝑡) has [19] components are then minimized taking into account constraints on
to pass through 𝑚 waypoints in the 3D space given by derivatives, up to the third, and on 𝑥, 𝑦, 𝑧’s ranges. Since the authors [5]
⎡𝑥𝑗 ⎤ use Bèzier curves, all the constraints are expressed in terms of control
𝑊 𝑝𝑗 = ⎢𝑦𝑗 ⎥ 𝑗 = 0, … , 𝑚 − 1 . points and the problem is cast as constrained quadratic optimization.
⎢ ⎥
⎣𝑧𝑗 ⎦
where 𝑊 𝑝0 and 𝑊 𝑝𝑚−1 are the start and end points respectively, at 2.2. Bézier curves
prescribed times that are denoted by 𝑇𝑗 , 𝑗 = 0, 1, … , 𝑚 − 1. We suppose
the vector of times 𝑇𝑗 , 𝑗 = 0, 1, … , 𝑚 − 1 coming from a previous We consider the trajectory 𝛤 (𝑡) as given by concatenating 𝑚 − 1
module that assigns the time span based on a logic inherent to the Bézier curves of order 𝑛 given by
waypoint’s position (e.g. the euclidean distance between waypoints).
The 𝑚 waypoints are dynamically generated by a high-level algorithm, ∑
𝑛
𝐵𝑗 (𝑢𝑗 ) = 𝑏𝑛𝑖 (𝑢𝑗 ) ⋅ 𝑃𝑗𝑖 (3)
such as the one proposed in [2] or [16,17], not of interest in the 𝑖=0
paper. The trajectories have to be sufficiently smooth to be functionally
controllable for an under-actuated mechanical system. In this paper, by with 𝑗 = 0, … , 𝑚 − 2, where 𝑃𝑗𝑖 , 𝑖 = 0, … , 𝑛, are the 𝑛 + 1 control points
following [6], we consider a trajectory of class 𝐶 4 although a higher or of the curve, 𝑏𝑛𝑖 (𝑢𝑗 ) is the associated Bernstein polynomial basis defined
lower order of continuity can be considered by slightly changing the as
upcoming arguments. This choice is particularly motivated by under- ( )
𝑛
actuated vehicles such as quadcopters, having the snap directly related 𝑏𝑛𝑖 (𝑢𝑗 ) = ⋅ 𝑢𝑖 ⋅ (1 − 𝑢)𝑛−𝑖 (4)
𝑖
to vehicle angular acceleration, and thus to the control torque acting (𝑛)
on the vehicle [18], since it results in trajectories mapped in smooth 𝑖
is the binomial coefficient, and 𝑢𝑗 ∈ [0, 1]. At 𝑢𝑗 = 0 and 𝑢𝑗 = 1 the
control commands. Typically the trajectory 𝛤 (𝑡) is required to fulfil a curve passes through 𝑃𝑗0 and 𝑃𝑗𝑛 respectively. The requirement that the
dynamic feasibility constraint and a safety constraint better specified trajectory has to pass through the waypoints then necessarily imposes
in the following: that 𝑃𝑗0 = 𝑊 𝑝𝑗 , 𝑃𝑗𝑛 = 𝑊 𝑝𝑗+1 . The other 𝑛 − 1 control points of each trait
are degree-of-freedom that will be played to find the optimal trajectory.
• Dynamic feasibility constraint. At each time 𝑡 ∈ [𝑇0 , 𝑇𝑚−1 ] the
As for the parameter 𝑢𝑗 , we choose a linear time parametrization for the
trajectory is expected to fulfil lower and upper bound on the time
𝑗th trait of the form
derivatives up to the order 4. Namely, we are given 𝛾 (𝑘) < 0 and
𝛾̄ (𝑘) > 0, 𝑘 = 1, … , 4, and the trajectory 𝛤 (𝑡) is required to fulfil 𝑡 − 𝑇𝑗
𝑢𝑗 (𝑡) = 𝑗 = 0, … , 𝑚 − 2 . (5)
𝑑 𝑘 𝛤 (𝑡) 𝑇𝑗+1 − 𝑇𝑗
𝛾 (𝑘) ≤ ≤ 𝛾̄ 𝑘 ,
𝑑𝑡𝑘 so that the trajectory structurally passes through the indicated way-
for all 𝑡 =∈ [𝑇0 , 𝑇𝑚−1 ] and 𝑘 = 1, … , 4. points at the prescribed times 𝑇𝑗 , 𝑗 = 0, 1, … , 𝑚 − 1. Overall the

2
B. Strano et al. Mechatronics 92 (2023) 102969

trajectory 𝛤 (𝑡) is thus of the form Bézier curve and the second and first half of control points of the two
∑𝑛 𝑛 ( ) consecutive (𝑗 − 1)-th and 𝑗th Bézier curves, namely
⎧ ( )
⎪ 𝑏𝑖 𝑢0 (𝑡) ⋅ 𝑃0𝑖 𝑡 ∈ [𝑇0 , 𝑇1 ]
∑𝑖=0
𝑛 𝜒𝑗 = 𝑃 0 𝑃𝑗1 … 𝑃𝑗9 𝑗 = 0, … , 𝑚 − 2
⎪ 𝑛 𝑖
𝑖=0 𝑏𝑖 (𝑢1 (𝑡)) ⋅ 𝑃1 𝑡 ∈ [𝑇1 , 𝑇2 ] ( 𝑗 )
𝛤 (𝑡) = ⎨ (6) 5 9
⎪ ⋮ 𝜌𝑗 = 𝑃𝑗−1 … 𝑃𝑗−1 𝑃𝑗0 … 𝑃𝑗4 𝑗 = 1, … , 𝑚 − 2 .
∑𝑛 𝑛
⎪ 𝑖
𝑖=0 𝑏𝑖 (𝑢𝑚−2 (𝑡)) ⋅ 𝑃𝑚−2 𝑡 ∈ [𝑇𝑚-2 , 𝑇𝑚-1 ]
⎩ Furthermore, we let 𝜌0 and 𝜌𝑚−1 be the ‘‘boundary’’ vectors of dimen-
( )
A nice property that will be used later is that derivatives of the sion 5 defined as 𝜌0 = 𝑃00 … 𝑃04 and
( 5 9
)
Bézier curves are also Bézier curves of lower order with specific control 𝜌𝑚−1 = 𝑃𝑚−1 … 𝑃𝑚−1 The idea pursued in the paper is to
points. In particular, it is a well-known fact that the 𝑘th derivative of optimize at each step the vector 𝜌𝑗+1 and to compute the control points
𝐵𝑗 (𝑢𝑗 ), with 𝑘 ∈ 1, … , 𝑛 − 1, is given by of 𝜒𝑗 (needed to obtain the trait of trajectory 𝐵𝑗 (𝑢𝑗 (𝑡))) by using the
( 𝑘 ) second half of 𝜌𝑗 , fixed at the previous iteration, and the first half of

dk 𝐵𝑗 (𝑢𝑗 ) 𝑛−𝑘 ∏ 𝜌𝑗+1 . The description of the iterative procedure follows.
𝑛−𝑘 𝑘
= 𝑏𝑖 (𝑢𝑗 ) (𝑛 − 𝑙) 𝐷𝑖 (7)
d𝑢𝑘𝑗 𝑗 Computation of 𝜒0 . We compute the 𝜌0 as a solution of a de-
𝑖=0 𝑙=0
termined system obtained imposing the initial derivatives, up to the
where fourth, in 𝑊 𝑝0 . Furthermore, we compute 𝜌1 by running the pro-
𝐷𝑖𝑘 = 𝐷𝑖+1
𝑘−1
− 𝐷𝑖𝑘−1 with 𝐷𝑖0 = 𝑃𝑗𝑖 . (8) cedure described in the next step. The vector 𝜒0 then follows by
𝑗 𝑗 𝑗 𝑗
complementing 𝜌0 with the first half of 𝜌1 .
Namely, it is a Bézier curve of order 𝑛 − 𝑘 with control points given by Optimization of 𝜌𝑗+1 and computation of 𝜒𝑗 . With reference to
∏𝑘 𝑘
𝑙=0 (𝑛 − 𝑙) 𝐷𝑖𝑗 .
Fig. 1, we suppose that 𝜒𝑗−1 and 𝜌𝑗 are fixed and that 𝑡 ∈ [𝑇𝑗−1 , 𝑇𝑗 ],
As said, the paper considers the case in which the trajectory 𝛤 (𝑡) has namely the Bézier curve between the way points 𝑊 𝑝𝑗−1 and 𝑊 𝑝𝑗 is
to be differentiable up to the snap. This motivates us to fix the order already fixed. This iterative step aims at fixing 𝜌𝑗+1 , whose first 5
𝑛 of the Bézier curves sufficiently large. The value of 𝑛 = 9 (namely 10 elements, along with the second half of the already fixed 𝜌𝑗 , yield
control points) is taken to guarantee the continuity of the curves up to 𝜒𝑗 , namely the 𝑗th Bézier curve interpolating 𝑊 𝑝𝑗 and 𝑊 𝑝𝑗+1 . We set
the snap. up an optimization problem involving 𝜌𝑗+1 by fulfilling the different
constraint as follow.
2.3. A global approach
• Continuity Constraints. The first constraint regards continuity
of the Bézier curves 𝐵𝑗 (⋅) and 𝐵𝑗+1 (⋅) up to the time derivatives
In this section, we revisit a ‘‘global’’ solution to the previous prob- of order 4 at the waypoint 𝑊 𝑝𝑗+1 , which can be expressed as
lem, such as the one proposed in [5]. The idea is to employ the
properties of the Bézier curves recalled before to set up a constrained d𝑘 𝐵𝑗 (𝑢𝑗 (𝑡)) | d𝑘 𝐵𝑗+1 (𝑢𝑗+1 (𝑡)) |
| = |
| |
convex optimization problem involving the (𝑛 + 1) control points of the d𝑡𝑘 |𝑇𝑗+1 d𝑡𝑘 |𝑇𝑗+1
𝑚−1 curves in (6) as degree-of-freedom. As shown in [5,20], a trajectory
for 𝑘 = 0, 1, … , 4. By using property (7), (8) and the time law
minimizing (2) can be calculated as a solution to the following global
(5) simple computations show that the previous condition is
quadratic optimization problem:
equivalent to
min 𝑐 𝑇 𝐻𝑐 s. t.
𝑐 𝐴c𝑗+1 𝜌𝑗+1 = 𝑏𝑐𝑗+1 (10)
𝐴𝑒𝑞 𝑐 = 𝑏𝑒𝑞 (9)
𝐴𝑖𝑒 𝑐 ≤ 𝑏𝑖𝑒 where the 6 × 10 matrix 𝐴c𝑗+1 and the 6 × 1 vector 𝑏c𝑗+1 are
𝑐𝑗 ∈ 𝛺𝑗 𝑗 = 1, 2, … , 𝑚 − 2 reported in Appendix A.
• Dynamic Constraints. Then, we consider the dynamic feasibility
where 𝑐 = [𝑃00 , 𝑃01 , … , 𝑃𝑚−2
𝑛−1 , 𝑃 𝑛 ] are all the control points, 𝐻 is the
𝑚−2 constraint (see Section 2.1) applied to 𝐵𝑗 (⋅), namely
Hessian matrix of the objective function 𝐽 , 𝐴𝑒𝑞 ≤ 𝑏𝑒𝑞 are continuity
constraints reformulated as linear equality constraints, 𝐴𝑒𝑞 ≤ 𝑏𝑒𝑞 are 𝑑 𝑘 𝐵𝑗 (𝑢𝑗 (𝑡))
𝛾 (𝑘) ≤ ≤ 𝛾̄ (𝑘) (11)
dynamical constraints reformulated as linear inequality constraints. 𝑑𝑡𝑘
The overall quadratic optimization problem is convex and can be for all 𝑡 ∈ [𝑇𝑗 , 𝑇𝑗+1 ] and 𝑘 = 1, … , 4. Since 𝜌𝑗+1 is across the
solved in polynomial time by general off-the-shelf convex solvers. This waypoint 𝑊 𝑝𝑗+1 and impacts on both 𝐵𝑗 (⋅) and 𝐵𝑗+1 (⋅), this
solution allows one to find globally optimized trajectories, in this case requirement induces two sets of constraints on 𝜌𝑗+1 . The first
with a minimum jerk, that satisfies continuity constraints, namely are imposes that the trait of trajectory that is across waypoint 𝑊 𝑝𝑗+1 ,
continuous up to a certain degree, and are suitable to be tracked by a and that involves both 𝐵𝑗 (⋅) and 𝐵𝑗+1 (⋅), fulfils the dynamic
vehicle with known dynamics. The main drawback of such an approach feasibility constraint. By using again (7), (5) and (8) the constraint
is the fact that a change of the constraints, for instance, because of an in question can be written as
obstacle popping up during the execution of the trajectory, requires the
𝐴d𝑗+1 𝜌𝑗+1 ≤ 𝑏d𝑗+1 (12)
computation of the whole trajectory. This holds true also for a change
in waypoints locations. Furthermore, according to [21], the computa- where the 10 × 10 matrix 𝐴d𝑗+1 and the 10 × 1 vector 𝑏d𝑗+1
tional complexity of this approach, in a framework with 𝑚 waypoints are reported in Appendix B. The previous condition does not
( )
and Bézier curves of degree 9, can be expressed with 𝑂 (10 m)3 . guarantee that 𝐵𝑗 (⋅) fulfils (11). As a matter of fact, 𝐵𝑗 (⋅) depends
on the second half of the control point 𝜌𝑗 , which has been fixed
3. A new iterative solution in the previous iteration, and the first half of 𝜌𝑗+1 to be fixed.
A second set of constraints for 𝜌𝑗+1 is thus needed that aims to
The idea proposed in this paper is to approach the problem in ‘‘link’’ 𝜌𝑗 and 𝜌𝑗+1 to fulfil (11). By using again (7), (5) and (8),
an iterative way by solving 𝑚 − 1 optimization problems instead of a the ‘‘link’’ constraint in question can be written as
single one. Such a solution has the clear advantage of tackling possible
𝐴𝓁𝑗+1 𝜌𝑗+1 ≤ 𝑏𝓁𝑗+1 (13)
dynamic environments where fast replanning is a must, by reducing
the overall computational complexity. Let 𝜒𝑗 and 𝜌𝑗 be the vectors where the 20 × 10 matrix 𝐴𝓁𝑗+1 and the 20 × 1 vector 𝑏𝓁𝑗+1 are
of dimension 10 collecting respectively the control points of the 𝑗th reported in Appendix C.

3
B. Strano et al. Mechatronics 92 (2023) 102969

• Safety Constraints. By bearing in mind (1) and by using the trigger can be a change in the waypoints location, the addition/removal
key property that Bézier curves lie within the convex hull of of waypoints, changes in 𝐹𝑗 or changes in the time span 𝑇𝑗 . As an
their control points, it turns out the trait of trajectory across the example, if an obstacle pops up we might need to change 𝑊 𝑝𝑗 and/or
waypoint 𝑊 𝑝𝑗+1 is obstacle free if 𝜌𝑗+1 fulfils 𝐹𝑗 . Based on the events triggering the re-planning, the procedure to
replan is the following:
𝐴s𝑗+1 𝜌𝑗+1 ≤ 𝑏s𝑗+1 (14)
• Change in 𝑊 𝑝𝑗 without changing time spans: we need to recom-
where 𝐴s𝑗+1
= blkdiag(𝛷𝑗 , … , 𝛷𝑗 , 𝛷𝑗+1 , … , 𝛷𝑗+1 ) is a block diago-
pute the 𝑗th problem (16) with the new value of 𝑊 𝑝𝑗 ;
nal matrix of dimension 10𝜂 × 30, and
( ) • Change in time span 𝑇𝑗 : the time span of a trajectory affects 2
𝑏s𝑗+1 = col 𝑀𝑗−1 ⋯ 𝑀𝑗−1 𝑀𝑗 ⋯ 𝑀𝑗 is a vector of
optimization problems (16) which need to be solved for 𝑗 and
dimension 30𝜂 × 1.
𝑗 − 1;
• Optimality. The iterative nature of the proposed algorithm clearly
• Change in 𝑊 𝑝𝑗 changing the two adjacent time span 𝑇𝑗−1 , 𝑇𝑗 : 3
prevents one to set up optimization problems involving the whole
trajectory 𝛤 (𝑡). Similarly, the fact that the iterative procedure optimization problems (16) need to be solved for 𝑗 − 1, 𝑗, 𝑗 + 1;
focuses on 𝜌𝑗+1 , namely it iteratively fixes control points of two • Change in 𝐹𝑗 : the free area affects 2 optimization problems (16)
consecutive Bézier curves, prevents one to set up optimization which need to be solved for 𝑗, 𝑗 + 1.
problems involving 𝐵𝑗 (𝑢𝑗 (𝑡)), 𝑡 ∈ [𝑇𝑗 , 𝑇𝑗+1 ]. The latter, in fact, is Is worth noticing that, in recomputing some part of the trajectory
fixed in two iterations by picking as control points the second half (i.e. some optimization problem) we might want to introduce additional
of 𝜌𝑗 and the first half of 𝜌𝑗+1 . One possible choice to complete dynamic constraints like Eq. (13) to ensure that 𝐵𝑗 (.) fulfils (11). As an
the optimization problem is to fix a punctual optimization at the example, suppose to compute the whole trajectory and then modify 𝜌𝑗 .
time at which the trajectory is expected to transit the waypoint. We need to ‘‘link’’ 𝜌𝑗 to 𝜌𝑗−1 and also to 𝜌𝑗+1 through constraints like
In the following, for instance, we select 𝜌𝑗+1 to minimize the snap (13).
at 𝑊 𝑝𝑗 , namely the following functional cost As a general re-planning example, if two consecutive waypoints
( )2 with index 𝑗 = 3, 4 and their time spans are modified, then 4 optimiza-
𝜕 4 𝐵𝑗 (𝑡) |
𝐽𝑗 = | (15) tion problems with 𝑗 = 2, 3, 4, 5 need to be computed and trajectories
𝜕𝑡4 ||𝑡=𝑇𝑗
with 𝑗 = 1, 2, 3, 4, 5 recomputed from the newly obtained control points.
which, by simple computations, can be expressed as the quadratic The replanning procedure can be cast even if in case the optimization
form 𝜌𝑗+1 𝑇 𝐻𝑗+1 𝜌𝑗+1 in which 𝐻𝑗+1 is the 10 × 10 Hessian matrix procedure does not find a solution due to the constraints considered
of the objective function 𝐽𝑗 . assigning a bigger time span to the track and triggering the procedure
described above. It is also possible to iteratively assign an optimized
Overall, by considering (10), (12), (13) and (14), the problem can tract as a backup node and retrieve the optimization with relaxed time
be cast as a convex optimization problem of the form spans (or different waypoints if the waypoints generator module gives
min 𝜌𝑇𝑗+1 𝐻𝑗+1 𝜌𝑗+1 s. t. us other paths) from there in case the successive ones fail (see Fig. 2).
𝜌𝑗+1
𝐴c𝑗+1 𝜌𝑗+1 = 𝑏c𝑗+1
4. Simulation results
𝐴d𝑗+1 𝜌𝑗+1 ≤ 𝑏d𝑗+1 (16)
𝐴𝓁𝑗+1 𝜌𝑗+1 ≤ 𝑏𝓁𝑗+1 We implemented the proposed algorithm in a MatLab simulation
𝐴s𝑗+1 𝜌𝑗+1 ≤ 𝑏s𝑗+1 in two different scenarios. In the first implementation, we considered
a map of dimension [25 m, 25 m, 2 𝑚] with 9 known obstacles with
Computation of the terminal trait 𝜒𝑚−1 . While the iterative nature
different shapes. The idea is to simulate navigation in an obstacle-
of the proposed method does not require having a ‘‘terminal’’ waypoint,
dense environment with waypoints coming from a waypoint-generation
namely 𝑚 could be not specified a priori, in the following we detail how
module. We suppose that is possible to connect a couple of waypoints
𝜌𝑚−1 can be computed in the scenario in which a closing trait has to be
with an obstacle-free line. The waypoints are 𝑊 𝑝0 = [0, 6.5, 0], 𝑊 𝑝1 =
computed. Once determined the final waypoint 𝑊 𝑝𝑚−1 , the boundary
vector 𝜌𝑚−1 is determined by imposing the values of the derivatives, up [6, 12, 1], 𝑊 𝑝2 = [14, 10, 0.7], 𝑊 𝑝3 = [16, 15, 1], 𝑊 𝑝4 = [23, 14, 1.5],
to the fourth, of the last tract, in 𝑊 𝑝𝑚−1 . 𝑊 𝑝5 = [28, 14.2, 1.4], 𝑊 𝑝6 = [29, 18, 1.8], 𝑊 𝑝7 = [25, 16.5, 1]. We
The computational complexity of convex quadratic programming is considered 𝛾 (1) = −7, 𝛾̄ 1 = 7, 𝛾 (2) = −6.5, 𝛾̄ 2 = 6.5. The time span vector
𝑂(𝑣3 ) [21], where 𝑣 is the number of variables of the problem. In (9), is given by [5.0, 4.1, 3.7, 5.0, 4.1, 4.0, 3.9, 5.2]. The resulting trajectory, in
( ) Figs. 2–4, guarantees the respect of the imposed dynamics bounds and
the computational complexity is given by 𝑂 ((𝑚 − 1)𝑛)3 where 𝑚 is
the number of waypoints (so 𝑚 − 1 is the number of tracts) and 𝑛 is the safety constraints, minimizing the snap at the waypoints. Besides,
the number of variables for each tract. Solving 𝑚 − 3 problems with if some waypoints or some time spans change, the trajectory can be
𝑛 variables, i.e. solving an optimization problem for each piece of the locally modified without the need to recompute the whole process. Is
trajectory except for the first and the last, the computational complexity it worth noticing that, using a local approach optimizing 𝜒𝑗 instead of
( ) 𝜌𝑗 , there are no guarantees to satisfy the safety constraints.
becomes 𝑂 (𝑚 − 3)𝑛3 , which means scaling down with the square
of the number of trajectory pieces. It follows that, in contrast with In scenario 2 we implemented a simulation of navigation in an
the global approach, the proposed method allows finding the desired agriculture-like application where the vehicle has to navigate through
trajectory by casting 𝑚 − 3 convex quadratic optimization problems, in trees in lines to check the state of the plant. Here, differently from
a framework with 𝑚 waypoints. The computational complexity of the scenario 1, it is not always possible to connect two waypoints with a
( )
singles convex quadratic optimization problems is 𝑂 103 . It follows strict obstacle-free line. In the simulation. there are 3 obstacles, the
that the computational complexity of the whole iterative procedure can waypoints are 𝑊 𝑝0 = [6, 0, 0], 𝑊 𝑝1 = [15, 0, 1], 𝑊 𝑝2 = [15, 5, 1],
( )
be expressed by 𝑂 (𝑚 − 3)103 since the ‘‘boundary conditions’’ can be 𝑊 𝑝3 = [6, 5, 1], 𝑊 𝑝4 = [6, 10, 1], 𝑊 𝑝5 = [15, 10, 1], 𝑊 𝑝6 = [15, 15, 1],
imposed separately. 𝑊 𝑝7 = [6, 15, 1], the time span vector is given by [5, 3, 5, 3, 5, 3, 5]. As
for the scenario 1, we considered 𝛾 (1) = −7, 𝛾̄ 1 = 7, 𝛾 (2) = −6.5,
3.1. Re-planning 𝛾̄ 2 = 6.5. We supposed an unexpected obstacle pops up in location
[15, 4.5, 1] with dimension [2, 1, 2] after the calculation of the whole
In this work, the re-planning is intended as the ability to re-calculate trajectory. Since the obstacles invalidate a part of a trajectory, in
some part of the curve when some input changes. In particular, the particular the position of waypoint 𝑊 𝑝3 , the replanning routine is

4
B. Strano et al. Mechatronics 92 (2023) 102969

5
Fig. 1. Example of control points nomenclature. The collection of control points ranging from 𝑃𝑗−1 to 𝑃𝑗4 is referred as 𝜌𝑗 .

Fig. 2. Example of the derivatives of a curve calculated through the proposed algorithm in scenario 1 with the proposed method. In order of representation, we can find the
velocity, acceleration, jerk, and snap.

triggered. Supposing to receive a new waypoint 𝑊 𝑝3𝑛 𝑒𝑤 = [15, 5.8, 1] we the optimization problem of the successive tracts. When using a method
perform one optimization run centred in the new waypoint location, so with control points, this implies fixing the position of the control points
we re-calculate 𝜌3 . We apply the ‘‘link’’ constraints (13) to the control near the waypoint, so we cannot ensure the safety of the trajectory
points in 𝜌2 and 𝜌4 that will remain unchanged. The new Bèzier curves constructed on these control points. Is worth noticing that, differently
of the second and third tract are then calculated. The results can be from the proposed method, using this approach we optimize a curve j
seen in Fig. 5. without considering how could be the j+1 curve. Instead, the proposed
method introduces knowledge of the j+1 tract when constructing the
𝑗th curve because we optimize 𝜌𝑗 and 𝜌𝑗+1 before building the curve.
4.1. Other methods simulations
As an example, let us take the case reported in Fig. 6. In this simu-
lation, we confront our proposed method (in red), a global method like
We repeated the same simulation scenario using a classic bspline the one reported in [5] (in blue), and a curve obtained by generating
method in a global and local fashion. Methods like these, turn out to be local bsplines (in black). Here, the continuity imposes a relationship
very performing if applied in a global setup [6,11] but are not suitable between the control points of the bsplines (in black) around the second
to be applied in generating and connecting piecewise trajectories lo- waypoint. To maintain snap continuity, the first 4 control points of the
cally. In fact, due to continuity constraints, we lose control of a portion second tract are fixed, resulting in a trajectory that crashes against the
of control points, resulting in a potentially unsafe trajectory. When we first obstacle. The solution is to consider all the control points and
create a trajectory in a certain tract j we optimize the control points 𝜒𝑗 , constraints in a single optimization problem, obtaining the curve in
then we proceed to perform the same operation in the tract 𝑗 + 1. To blue, ending up in the global approach described in Section 2.3. An
impose the C4 continuity we have to inject some equality constraints in alternative could be to impose the derivative values at each waypoint

5
B. Strano et al. Mechatronics 92 (2023) 102969

Fig. 3. 2D view of the whole trajectory in scenario 1, composed of different tracts, in a map with convex obstacles.

Fig. 4. 3D view of the whole trajectory in scenario 1, composed of different tracts, in a map with convex obstacles.

resulting in a low flexible non-optimal method. It is worth noting that, the need to re-compute the whole curve. This makes possible a local
despite a global approach presenting the advantage of performing an re-computation of the trajectory if unplanned obstacles pop up or if
optimization procedure among all control points, we lose the possibility the map changes, making the algorithm suitable to be applied when
of local changes in the curve. Instead, the proposed method allows for there is no a priori knowledge of the map. It is also possible to apply
local replanning of the curve.
the proposed algorithm to modify portions of a curve defined with
a global method, making it interesting to combine a global method
5. Conclusion and future work
in scenarios, when we know the map, to our proposed approach in
In this work, we presented an iterative algorithm that allows us scenarios with map uncertainties or necessities of local replannings.
to create optimal dynamical feasible trajectories that guarantee a safe In future works, we will aim first to implement the algorithm in a
path to avoid obstacles. The main advantage of the developed method Gazebo/ROS simulation and release the package as a free repository
is the possibility to perform local changes in the trajectory, without and then test it in a real-world scenario.

6
B. Strano et al. Mechatronics 92 (2023) 102969

Fig. 5. Scenario 2 simulation. In figure (a) the trajectory is calculated with the proposed algorithm. In (b) there is the same trajectory after the local modification due to the
change in the third waypoint.

Fig. 6. Simulation with trajectories calculated using the proposed method, a global method and a bspline in a local fashion. The trajectory in black fails after the first iteration
because it tries to keep C4 continuity in waypoints. For the sake of showing the unsafe trajectory result, we showed just one of the possible wrong outcomes. The red trajectory
(proposed method) and blue trajectory (global methods) successfully connect the start with the goal with a C4 safe curve.

CRediT authorship contribution statement Appendix A. Continuity constraints matrices

Bruno Strano: Conceptualization, Methodology, Investigation, Soft-


ware, Writing – original draft, Writing – review & editing, Visualization.
Michele Furci: Formal analysis, Validation, Writing – review & editing. ⎡0 0 0 0 1 0 0 0 0 0 ⎤
⎢0 0 0 0 0 1 0 0 0 0 ⎥
Lorenzo Marconi: Supervision, Writing – review & editing. ⎢ ⎥
0 0 0 1 0 𝑎−1 1 0 0 0 ⎥
𝐴𝑐𝑗+1 =⎢
⎢0 0 −1 +2 0 𝑎2 − 1 2𝑎2 −𝑎2 0 0 ⎥
⎢0 1 −3 +3 0 𝑎3 − 1 3𝑎3 −3𝑎3 𝑎3 0 ⎥⎥
Declaration of competing interest ⎢
⎣−1 4 −6 +4 0 𝑎4 − 1 4𝑎4 −6𝑎4 4𝑎4 −𝑎4 ⎦
The authors declare that they have no known competing finan- ⎡𝑊 𝑝𝑗+1 ⎤
cial interests or personal relationships that could have appeared to ⎢𝑊 𝑝𝑗+1 ⎥
influence the work reported in this paper. ⎢ ⎥
0 ⎥
𝑏𝑐𝑗+1 =⎢
⎢ 0 ⎥
⎢ 0 ⎥
Data availability ⎢ ⎥
⎣ 0 ⎦
𝑢̇ 𝑗+1 (𝑇𝑗+1 )
Data will be released as a free package on GitHub. Where 𝑎 = 𝑢̇ 𝑗 (𝑇𝑗+1 )
.

7
B. Strano et al. Mechatronics 92 (2023) 102969

Appendix B. Dynamic constraints matrices References


[ ] [1] Phillips GM. A de Casteljau algorithm for generalized Bernstein polynomials. BIT
𝐴̄ 𝑑𝑗+1
𝐴𝑑𝑗+1 = Numer Math 1997;37(1):232–6.
𝐴𝑑 [2] LaValle SM, et al. Rapidly-exploring random trees: A new tool for path planning.
[ 𝑗+1] Ames, IA, USA; 1998.
𝑏̄ 𝑑
𝑏𝑑𝑗+1 = 𝑗+1 [3] Karaman S, Frazzoli E. Sampling-based algorithms for optimal motion planning.
𝑏𝑑𝑗+1 2011, arXiv:1105.1186.
[4] Sethian JA. Level set methods and fast marching methods: Evolving interfaces
Where, 𝐴̄ 𝑑𝑗+1 = −𝐴𝑑𝑗+1 , 𝑏̄ 𝑑𝑗+1 = −𝑏𝑑𝑗+1 but with 𝛾 (𝑘) instead of 𝛾̄ (𝑘) . in computational geometry, fluid mechanics, computer vision, and materials
science, vol. 3. Cambridge University Press; 1999.
⎡0 0 0 0 0 −𝑎1 𝑎1 0 0 0⎤ [5] Gao F, Wu W, Lin Y, Shen S. Online safe trajectory generation for quadrotors
⎢0 0 0 0 0 0 −𝑎1 𝑎1 0 0⎥ using fast marching method and Bernstein basis polynomial. In: 2018 IEEE
⎢ ⎥ international conference on robotics and automation. 2018, p. 344–51. http:
⎢0 0 0 0 0 0 0 −𝑎1 𝑎1 0⎥
⎢0 0 //dx.doi.org/10.1109/ICRA.2018.8462878.
0 0 0 0 0 0 −𝑎1 𝑎1 ⎥
⎢ ⎥ [6] Mellinger D, Kumar V. Minimum snap trajectory generation and control for
0 0 0 0 0 𝑎2 −2𝑎2 𝑎2 0 0⎥
𝐴̄ 𝑗+1 = ⎢
𝑑 quadrotors. In: 2011 IEEE international conference on robotics and automation.
⎢0 0 0 0 0 0 𝑎2 −2𝑎2 𝑎2 0⎥ IEEE; 2011, p. 2520–5.
⎢0 0 0 0 0 0 0 𝑎2 −2𝑎2 𝑎2 ⎥⎥ [7] Brescianini D, D’Andrea R. Computationally efficient trajectory generation for
⎢ fully actuated multirotor vehicles. IEEE Trans Robot 2018;34(3):555–71.
⎢0 0 0 0 0 −𝑎3 3𝑎3 −3𝑎3 𝑎3 0⎥
⎢0 0 0 0 0 0 −𝑎3 3𝑎3 −3𝑎3 𝑎3 ⎥
[8] Fowler L, Rogers J. Bézier curve path planning for parafoil terminal guidance.
⎢ ⎥ J Aerosp Inf Syst 2014;11(5):300–15.
⎣0 0 0 0 0 𝑎4 −4𝑎4 6𝑎4 −4𝑎4 𝑎4 ⎦ [9] Choe R, Puig-Navarro J, Cichella V, Xargay E, Hovakimyan N. Cooperative
⎡𝛾̄ (1) ⎤ trajectory generation using Pythagorean hodograph Bézier curves. J Guid Control
⎢𝛾̄ (1) ⎥ Dyn 2016;39(8):1744–63.
⎢ (1) ⎥ [10] Costanzi R, Fanelli F, Meli E, Ridolfi A, Allotta B. Generic path plan-
⎢𝛾̄ ⎥ ning algorithm for mobile robots based on Bézier curves. IFAC-PapersOnLine
⎢𝛾̄ (1) ⎥ 2016;49(15):145–50.
⎢ (2) ⎥
𝛾̄ [11] Babaei A, Karimi A. Optimal trajectory-planning of UAVs via B-splines and
𝑏̄ 𝑑𝑗+1 = ⎢ (2) ⎥
⎢𝛾̄ ⎥ disjunctive programming. 2018, arXiv preprint arXiv:1807.02931.
⎢𝛾̄ (2) ⎥ [12] Mehdi SB, Choe R, Cichella V, Hovakimyan N. Collision avoidance through
⎢ (3) ⎥ path replanning using Bézier curves. In: AIAA guidance, navigation, and control
⎢𝛾̄ ⎥ conference. 2015, p. 0598.
⎢𝛾̄ (3) ⎥ [13] Cichella V, Kaminer I, Walton C, Hovakimyan N, Pascoal AM. Optimal multivehi-
⎢ (4) ⎥
⎣𝛾̄ ⎦ cle motion planning using Bernstein approximants. IEEE Trans Automat Control
2020;66(4):1453–67.
𝑛! 𝑛!
Where, 𝑎1 = 𝑛𝑢̇ 𝑗+1 (𝑡), 𝑎2 = (𝑢̇ (𝑡))2 ,
(𝑛−2)! 𝑗+1
𝑎3 = (𝑢̇ (𝑡))3 ,
(𝑛−3)! 𝑗+1
𝑎4 = [14] Huang S, Teo RSH, Tan KK. Collision avoidance of multi unmanned aerial
𝑛! vehicles: A review. Annu Rev Control 2019;48:147–64.
(𝑢̇ (𝑡))4 .
(𝑛−4)! 𝑗+1 [15] Yasin JN, Mohamed SA, Haghbayan M-H, Heikkonen J, Tenhunen H, Plosila J.
Unmanned aerial vehicles (UAVs): Collision avoidance systems and approaches.
Appendix C. Link constraints matrices IEEE Access 2020;8:105139–55.
[16] Koyuncu E, Inalhan G. A probabilistic B-spline motion planning algorithm for
[ ]
𝐴̄ 𝑙 unmanned helicopters flying in dense 3D environments. In: 2008 IEEE/RSJ
𝐴𝑙𝑗+1 = 𝑗+1 international conference on intelligent robots and systems. 2008, p. 815–21.
𝐴𝑙𝑗+1 http://dx.doi.org/10.1109/IROS.2008.4651122.
[ ]
𝑏̄ 𝑙 [17] Bouffard PM, Waslander SL. A hybrid randomized/nonlinear programming tech-
𝑏𝑙𝑗+1 = 𝑗+1 nique for small aerial vehicle trajectory planning in 3D. Plan Percept Navig Intell
𝑏𝑙𝑗+1 Veh (PPNIV) 2009;63:2009.
[18] Tal E, Karaman S. Accurate tracking of aggressive quadrotor trajectories using
Where, 𝐴̄ 𝑙𝑗+1 = −𝐴𝑙𝑗+1 , 𝑏̄ 𝑙𝑗+1 = −𝑏𝑙𝑗+1 but with 𝛾 (𝑘) instead of 𝛾̄ (𝑘) . incremental nonlinear dynamic inversion and differential flatness. IEEE Trans
Control Syst Technol 2020;29(3):1203–18.
⎡ 𝑎1 0 0 0 0 0 0 0 0 0⎤ [19] Schot SH. Jerk: the time rate of change of acceleration. Amer J Phys
⎢−2𝑎2 𝑎2 0 0 0 0 0 0 0 0⎥ 1978;46(11):1090–4.
⎢ ⎥
⎢ 𝑎2 0 0 0 0 0 0 0 0 0⎥ [20] Moreau J, Melchior P, Victor S, Moze M, Aioun F, Guillemard F. Reactive path
⎢ 3𝑎3 −3𝑎3 𝑎3 0 0 0 0 0 0 0⎥ planning for autonomous vehicle using Bézier curve optimization. In: 2019 IEEE
⎢ ⎥ intelligent vehicles symposium. 2019, p. 1048–53. http://dx.doi.org/10.1109/
−3𝑎3 𝑎3 0 0 0 0 0 0 0 0⎥
𝐴̄ 𝑙𝑗+1 =⎢ IVS.2019.8813904.
⎢ 𝑎3 0 0 0 0 0 0 0 0 0⎥ [21] Ye Y, Tse E. An extension of Karmarkar’s projective algorithm for convex
⎢−4𝑎4 6𝑎4 −4𝑎4 𝑎4 0 0 0 0 0 0⎥⎥ quadratic programming. Math Program 1989;44(1):157–79.

⎢ 6𝑎4 −4𝑎4 𝑎4 0 0 0 0 0 0 0⎥
⎢−4𝑎4 𝑎4 0 0 0 0 0 0 0 0⎥
⎢ ⎥
⎣ 𝑎4 0 0 0 0 0 0 0 0 0⎦
(1) + 𝑎 𝑃 4
⎡ 𝛾̄ 1 𝑗−2 ⎤
⎢ 4
𝛾̄ (2) − 𝑎2 𝑃𝑗−2 ⎥
⎢ ⎥
⎢ 𝛾̄ (2) − 𝑎2 𝑃𝑗−2 4 + 2𝑎 𝑃 3
2 𝑗−2 ⎥
⎢ (3) + 𝑎 𝑃 4 ⎥
⎢ 𝛾̄ 3 𝑗−2 ⎥
⎢ (3) 4
𝛾̄ + 𝑎3 𝑃𝑗−2 − 3𝑎3 𝑃𝑗−2 3 ⎥
̄𝑏𝑙 = ⎢ ⎥
𝑗+1 ⎢ (3) 4 3
𝛾̄ + 𝑎3 𝑃𝑗−2 − 3𝑎3 𝑃𝑗−2 + 3𝑎3 𝑃𝑗−2 2 ⎥
⎢ (4) − 𝑎 𝑃 4 ⎥
⎢ 𝛾̄ 4 𝑗−2 ⎥
⎢ (4) 4
𝛾̄ − 𝑎4 𝑃𝑗−2 + 4𝑎4 𝑃𝑗−2 3 ⎥
⎢ 4 + 4𝑎 𝑃 3 − 6𝑎 𝑃 2

⎢ 𝛾̄ (4) − 𝑎4 𝑃𝑗−2 4 𝑗−2 4 𝑗−2 ⎥
⎢𝛾̄ (4) − 𝑎 𝑃 4 + 4𝑎 𝑃 3 − 6𝑎 𝑃 2 + 4𝑎 𝑃 1 ⎥
⎣ 4 𝑗−2 4 𝑗−2 4 𝑗−2 4 𝑗−2 ⎦
𝑛! 𝑛!
Where, 𝑎1 = 𝑛𝑢̇ 𝑗 (𝑡), 𝑎2 = (𝑢̇ (𝑡))2 ,
(𝑛−2)! 𝑗
𝑎3 = (𝑢̇ (𝑡))3 ,
(𝑛−3)! 𝑗
𝑎4 =
𝑛!
(𝑢̇ (𝑡))4 .
(𝑛−4)! 𝑗

8
B. Strano et al. Mechatronics 92 (2023) 102969

Lorenzo Marconi (Fellow, IEEE) received the graduate


Bruno Strano received the bachelor’s degree in Electronic degree in electrical engineering from the University of
Engineering at the University of Catania, a master’s degree Bologna, Bologna, Italy, in 1995, and the Ph.D. degree
in Automation Engineering at the University of Bologna, and from the Department of Electronics, Computer Science, and
the Ph.D. degree in automation and operative research at Systems, University of Bologna, in 1998. Since 1995, he has
the University of Bologna, under the supervision of Prof. been with the Department of Electronics, Computer Science,
Lorenzo Marconi and in collaboration with Aslatech com- and Systems, University of Bologna. From 1999, he was an
pany. His research topics are focalized on mobile robotics. Assistant Professor with the same department, where he is
In particular, on the development control and guidance of currently a Full Professor. He has held visiting positions
drones in extreme conditions mainly applied to search and with various academic/research international institutions.
rescue operations. He has coauthored more than 250 technical publications
on the subject of linear and nonlinear feedback designs
published on international journals, books, and conference
Michele Furci received the bachelor’s and master’s degrees proceedings. His current research interests include nonlinear
in automation engineering from the University of Bologna, control, output regulation, control of autonomous vehicles,
Bologna, Italy, in 2009 and 2012, respectively. He received fault detection and isolation, and fault tolerant control. Prof.
the Ph.D. degree in automation and operative research Marconi is also the co-recipient of the 2014 IEEE Control
at the same university, supervised by Prof. L. Marconi. Systems Magazine Outstanding Paper Award for the best
His current research interests include nonlinear control paper published in the magazine in the period 2012–2013
and planning applied to aerial and ground robots and and of the 2018 O. Hugo Schuck Best Paper Award. In 2005,
coordination of multi-agents robots. he received the ‘‘Outstanding Application Paper Award’’
from IFAC for a coauthored paper published on Automatica.

You might also like