Searcharxiv⌕ Search

arXiv subjects

Tommaso Sartor

Publications and source records attributed to Tommaso Sartor.

4 recordsLinked to original sources

An Efficient Real-Time NMPC for Quadrotor Position Control under Communication Time-Delay

The advances in computer processor technology have enabled the application of nonlinear model predictive control (NMPC) to agile systems, such as quadrotors. These systems are characterized by their underactuation, nonlinearities, bounded inputs, and time-delays. Classical control solutions fall short in overcoming these difficulties and fully exploiting the capabilities offered by such platforms. This paper presents the design and implementation of an efficient position controller for quadrotors based on real-time NMPC with time-delay compensation and bounds enforcement on the actuators. To deal with the limited computational resources onboard, an offboard control architecture is proposed. It is implemented using the high-performance software package acados, which solves optimal control problems and implements a real-time iteration (RTI) variant of a sequential quadratic programming (SQP) scheme with Gauss-Newton Hessian approximation. The quadratic subproblems (QP) in the SQP scheme are solved with HPIPM, an interior-point method solver, built on top of the linear algebra library BLASFEO, finely tuned for multiple CPU architectures. Solution times are further reduced by reformulating the QPs using the efficient partial condensing algorithm implemented in HPIPM. We demonstrate the capabilities of our architecture using the Crazyflie 2.1 nano-quadrotor.

cs.RO↗

A Time-Freezing Approach for Numerical Optimal Control of Nonsmooth Differential Equations with State Jumps

We present a novel reformulation of nonsmooth differential equations with state jumps which enables their easier simulation and use in optimal control problems without the need of using integer variables. The main idea is to introduce an auxiliary differential equation to mimic the state jump map. Thereby, also a clock state is introduced which does not evolve during the runtime of the auxiliary system. The pieces of the trajectory that correspond to the parts when the clock state was evolving recover the solution of the original system with jumps. Our reformulation results in nonsmooth ordinary differential equations where the discontinuity is in the first time derivative of the trajectory, rather than in the trajectory itself. This class of systems is easier to handle both theoretically and numerically. We provide numerical examples demonstrating the ease of use of this reformulation in both simulation and optimal control. In the optimal control example a single call of a nonlinear programming (NLP) solver yields the same solution as a multi-stage formulation, without the need for exploring the optimal number of stages by enumeration or heuristics.

math.OC↗

The BLAS API of BLASFEO: optimizing performance for small matrices

BLASFEO is a dense linear algebra library providing high-performance implementations of BLAS- and LAPACK-like routines for use in embedded optimization and other applications targeting relatively small matrices. BLASFEO defines an API which uses a packed matrix format as its native format. This format is analogous to the internal memory buffers of optimized BLAS, but it is exposed to the user and it removes the packing cost from the routine call. For matrices fitting in cache, BLASFEO outperforms optimized BLAS implementations, both open-source and proprietary. This paper investigates the addition of a standard BLAS API to the BLASFEO framework, and proposes an implementation switching between two or more algorithms optimized for different matrix sizes. Thanks to the modular assembly framework in BLASFEO, tailored linear algebra kernels with mixed column- and panel-major arguments are easily developed. This BLAS API has lower performance than the BLASFEO API, but it nonetheless outperforms optimized BLAS and especially LAPACK libraries for matrices fitting in cache. Therefore, it can boost a wide range of applications, where standard BLAS and LAPACK libraries are employed and the matrix size is moderate. In particular, this paper investigates the benefits in scientific programming languages such as Octave, SciPy and Julia.

cs.MS↗

BLASFEO: basic linear algebra subroutines for embedded optimization

BLASFEO is a dense linear algebra library providing high-performance implementations of BLAS- and LAPACK-like routines for use in embedded optimization. A key difference with respect to existing high-performance implementations of BLAS is that the computational performance is optimized for small to medium scale matrices, i.e., for sizes up to a few hundred. BLASFEO comes with three different implementations: a high-performance implementation aiming at providing the highest performance for matrices fitting in cache, a reference implementation providing portability and embeddability and optimized for very small matrices, and a wrapper to standard BLAS and LAPACK providing high-performance on large matrices. The three implementations of BLASFEO together provide high-performance dense linear algebra routines for matrices ranging from very small to large. Compared to both open-source and proprietary highly-tuned BLAS libraries, for matrices of size up to about one hundred the high-performance implementation of BLASFEO is about 20-30% faster than the corresponding level 3 BLAS routines and 2-3 times faster than the corresponding LAPACK routines.

cs.MS↗