## Abstract

This paper derives the dynamic equations of a reduced-order race-car model using Lie-group methods. While these methods are familiar to computational dynamicists and roboticists, their adoption in the vehicle dynamics community is limited. We address this gap by demonstrating how this framework integrates smoothly with the Articulated-Body Algorithm (ABA) and provides a fresh and systematic formulation of vehicle dynamics. For the first time, we model the car body as the end effector of a serial robot with a floating base connected to the track via virtual revolute and prismatic joints. Our formulation also accounts for the effects of 3D track geometry, providing a natural embedding of the car into the 3D track. We rigorously reconcile the ABA steps with key aspects of vehicle dynamics, including road-tire interactions, aerodynamic forces, and load transfers. The resulting model, simple yet accurate, is a powerful tool to efficiently solve Minimum-Lap-Time Planning problems. To demonstrate the effectiveness of our approach, we show numerical results obtained on the Nürburgring circuit. Our optimization problem is formulated via a direct collocation method and solved using the CasADi optimization suite. To validate the results, we test our reduced-order model against a full-fledged multi-body model recently developed by the same authors. The comparison confirms the validity of our reduced-order model, proving both the accuracy of the solution and the computational efficiency achieved.

### Similar content being viewed by others

## 1 Introduction

### 1.1 Literature review

Minimum-Lap-Time Planning (MLTP) problems are among the hottest topics in the automotive research field. Nowadays, they are widely employed in the industry to investigate car performances and provide guidelines both in the design and the tuning stages.

Two fundamental elements of MLTPs are the car and the track model. The choice of the track model is closely related to the MLTP formulation, which can be defined on a time or spatial domain. As well described in [1], the latter approach is the most commonly used, although it requires a well defined and differentiable track. For this, a spline representation is often used and the state of the art is well represented by [2] and [3]. In [2] a 3D ribbon-shaped racetrack model is obtained using a generalized Frenet–Serret apparatus. In particular, the authors propose an optimal estimation procedure that provides a smooth parameterization of the road from noisy data, allowing to model curvature, camber and elevation changes, as well as a variable track width. Lovato et al. in [3] further extended the ribbon-type road model to include lateral curvature. This accounts for lateral camber variations across the track; hence, lateral position-dependent camber is introduced as a generalization required for some racetracks.

The choice of the car model depends on the level of details required to describe the vehicle dynamics. The most simple model is the single-track one [4]. Rucco et al. [5] formulate an optimal control problem adopting the single-track model on a 2D track, and include important aspects of vehicle dynamics such as load transfers and nonlinear tire models. Increasing in complexity, a double-track model is implemented in [6], where longitudinal and lateral load transfers are considered along with aerodynamic loads and Pacejka’s Magic Formula [7]. The double-track model has been further refined to cover four-wheel drive vehicles with active aerodynamic controls [8] and limited-slip differential [9]. Instead, Limebeer et al. [10] develop a double track vehicle model embedded in a 3D track. Hence, they take into account the effects of track geometry when computing load transfers and vehicle absolute velocity.

As the last stage of complexity, a multi-body approach can be used to increase the level of details. In particular, in [11] a 2D multi-body dynamic model is developed where the rear wheels are fixed to the chassis—making it a single rigid body—while the front wheels are independent bodies pinned to the main chassis via revolute joints. Dal Bianco et al. [12] extended further and developed a 3D multi-body car model with 14 degrees of freedom.

Even if successful, all the mentioned contributions do not provide a systematic framework for the assembly of the vehicle dynamic equations, especially when considering their motion on 3D tracks. Their approaches seem episodic lacking a systematic procedure. Moreover, they do not exploit the recent developments in recursive dynamics algorithms, quite popular, on the contrary, in the fields of robotics and general computational dynamics, see e.g. [13] and [14]. In a recent contribution by the authors [15], a detailed multi-body model is constructed employing Featherstone’s Articulated-Body Algorithm (ABA) [14]. The ABA offers a systematic approach and has an algorithmic complexity of *O*(*n*), which scales linearly with the number of degrees of freedom. This leads to a significant reduction in the volume of the algebra during the assembly of the dynamic equations. In contrast, the classical Lagrange equation-based approach, with its complexity of \(O(n^3)\), is not considered in this analysis due to its inferior performance. For more details see [14, chap. 10, p. 203].

In this work, we present a unified framework to systematically build a *reduced-order* vehicle model that strikes a balance between accuracy and efficiency. More specifically, we develop a Lie-group based race-car model where the vehicle is regarded as a serial robot. The effects of 3D track geometry are directly included via a generalized kinematic joint, enabling a natural embedding of the car model into the 3D track. The dynamics equations are obtained by merging an efficient recursive formulation based on the Articulated-Body Algorithm and a simplified yet rigorous treatment of the vehicle dynamics [4]. Finally, fundamental phenomena in vehicle dynamics such as the load transfers and the nonlinear dependence of tire forces on vertical are incorporated within the ABA formulation by suitably defined algebraic equations. A noteworthy result is that our framework opens up the possibility to directly employ efficient and open-source rigid body dynamics libraries (see, e.g. [16] documented in [17]) also within the vehicle dynamics context.

### 1.2 Structure of the work

The main contributions of this paper are organized as follows. In Sect. 2, we delve into the parameterization of the track and vehicle, emphasizing crucial elements such as the mathematical representation of the track, the reference frames, and the kinematic chain that characterizes the vehicle structure. This section provides a comprehensive understanding of the foundational aspects of our reduced-order model.

Section 3 focuses on deriving the vehicle’s dynamic model using the ABA formulation. We describe how tire forces and load transfers are reconciled with the wrench formalism proper of the ABA framework. Key to this reconciliation are the suspension constitutive equations, which are addressed within the framework proposed in [4].

Finally, in Sect. 4, we present numerical results obtained from solving a minimum-lap-time problems on the Nürburgring Nordschleife circuit. First we validate of our proposed reduced-order against a reliable multi-body model introduced by the same authors in [15]. On a particularly demanding segment of the track, we demonstrate how our simplified model accurately manages to capture the essential dynamics of the system, while presenting a significantly improved computational efficiency. This computational advantage makes our model particularly suitable for long-term planning scenarios. As a demonstration, we report a solution for a full lap of the circuit.

## 2 Kinematic model

With reference to Fig. 1, the kinematic model of a vehicle traveling on a 3D track is devised as a serial kinematic chain whose *root* node consists of a fixed Cartesian reference frame \(\{B_{0}\}\) and whose *end-effector* represents the vehicle sprung mass, to which frame \(\{B_{6}\}\) is attached. The serial chain starts with a *complex joint* that accounts for advancing tangentially to the road centerline, and proceeds with a series of virtual prismatic and revolute joints.

To efficiently parameterize the posture of the *i*-th body respect to the fixed reference frame \(\{B_{0}\}\), we employ the *body-fixed* (local) version of the Product of Exponentials (POE) formula [18]

where \(g_{0, i}\in \text {SE(3)}\) denotes the posture of \(\{B_{i}\}\) with respect to \(\{B_{0}\}\), \(g_{k-1, k}(0)\) represents the initial configuration of \(\{B_{k}\}\) w.r.t. \(\{B_{k-1}\}\), \(\hat{X}_k\) are the (homogeneous representations of the) twists of the joints defining the kinematic chain, and \(q = [q_1, \dots , q_i]^T\) are the exponential coordinates of the 2nd kind [19] for a local representation of SE(3) for the *i*-th body.

The symbol \(X_{k}\) is a shorthand for \(X_{k}^{k}\), i.e. \(X_{k} = X_{k}^{k}\) when expressed in the attached local frame \(\{B_{k}\}\), the right superscript denoting the reading frame \(\{B_{k}\}\). It is worth recalling that \(X_k\in \mathbb {R}^6\) is the vector representation of \(\hat{X}_k\in \mathbb {R}^{4 \times 4}\), according to the standard Lie groups notation [19] and [20]. In the general case,

where the *adjoint operator* \({{\,\textrm{Ad}\,}}_{g_{i, j}}\) maps the same twist \(X_{k}^{}\) from reading frame \(\{B_{j}\}\) to \(\{B_{i}\}\).

The rigid-body velocity \(\hat{V}_{0, i}^{i}\) of \(\{B_{i}\}\) w.r.t. \(\{B_{0}\}\) in the moving frame \(\{B_{i}\}\) is given (as a 4x4 matrix) by the following formula

where, given the 3x3 rotation matrix \(R_{0, i}\) from \(\{B_{0}\}\) to \(\{B_{i}\}\), \(\hat{\omega }_{0, i}^{i}:= R_{0, i}^{T}\dot{R}_{0, i}\) is the skew-symmetric matrix of the angular velocity components (in \(\{B_{i}\}\)) of \(\{B_{i}\}\) w.r.t. \(\{B_{0}\}\), and \(v_{0, i}^{i}= R_{0, i}^{T}\dot{d}_{0, i}^{i}\) are the components (in \(\{B_{i}\}\)) of the velocity of the origin \(O_i\) with respect to \(O_0\). Equation (3) can be rewritten (as a 6x1 vector) in a convenient form by factoring out the joint velocities \(\dot{q}\) as follows

with \(q = [q_1 \cdots q_i]^T\) and the *distal* Jacobian \(J_{0, i}^{i}\) can be computed as

where we define \(C_{k, i} = e^{\hat{X}_kq_k} g_{k,i}\) and \(k = 1, \dots , i\).

Similarly to twist formulation, \(W_{k}^{k} \in \mathbb {R}^{6}\) denotes the components in \(\{B_{k}\}\) of the wrench exerted on the *k*-th body. A generic wrench can be expressed, relative to a different frame, as follows

where \(f_k^j\) are the components of the force acting on body *k*, expressed in \(\{B_{j}\}\), and \(m_{k}^{j}\) the components with respect to \(O_{j}\) and in \(\{B_{j}\}\) of the resulting moment applied to body *k*. The operator \({{\,\textrm{Ad}\,}}_{g}^{*} = {{\,\textrm{Ad}\,}}_{g}^{-T}\) maps the same wrench in different reading frames.

### 2.1 Track parameterization

To build an analytical model of the track, that is continuously differentiable and capable of efficiently represent complex shapes while remaining numerically stable, we employ 3D NURBS curves [21]. The track centerline (*spine*) curve \(C(\alpha )\) is defined by a position vector \(\textbf{p}(\alpha )\) such that

In our representation, \(\alpha\) is not necessarily the curvilinear abscissa *s* (i.e. the arc length of the spine), but a generic curvilinear parameter. The relationship between *s* and \(\alpha\) can be described by

where \(\textbf{p}_{,\alpha } = \text {d}\textbf{p}/\text {d}\alpha\).

In order to precisely define a track frame \(\{S\}= (O_{S}; [\textbf{t},\, \textbf{n},\, \textbf{m}])\) that follows the 3D ribbon along its spine (see Fig. 2), an intermediate frame \(\{H\}= (O_{H}; [\textbf{t},\, \textbf{v},\, \textbf{w}])\) needs to be introduced. Here \(\textbf{t}= \text {d}\textbf{p}/\text {d}s\) is the unit vector tangent to *C*; \(\textbf{v}\) is the unit vector obtained normalizing \(\textbf{k}_{G} \times \textbf{t}_{\Pi _{\textbf{k}_G}}\), with \(\textbf{k}_{G}\) the unit vector representing the vertical direction of the ground-fixed reference frame and \(\textbf{t}_{\Pi _{\textbf{k}_G}}\) the projection of \(\textbf{t}\) on the plane \(\Pi _{\textbf{k}_G}\), perpendicular to \(\textbf{k}_{G}\); finally \(\textbf{w}\) is defined as as \(\textbf{t}\times \textbf{v}\). Then, \(\{S\}\) is obtained by rotating \(\{H\}\) about \(\textbf{t}\) through an angle \(\nu\), which represents the track banking.

It is worth remarking that the complex track joint cannot be analyzed using the exponential approach proper of the POE (see (1)); hence, the transformation matrix \(g_{G, S}\), along with the rigid-body velocity \({V}_{G, S}^{S}\) of \(\{S\}\) w.r.t. \(\{G\}\) expressed in \(\{S\}\), need to be derived following the general definition in [19]. Once the track is parameterized and the NURBS analytical model is available, the quantities \([\textbf{t},\, \textbf{n},\, \textbf{m}]\) can be computed and \(g_{G, S}\) can be evaluated as

where \(R_{G, S}\) is the rotation matrix from \(\{G\}\) to \(\{S\}\), and \(t^{G},\, n^{G},\, m^{G}\) are the components of \(\textbf{t},\, \textbf{n},\, \textbf{m}\) in the fixed-ground reference frame \(\{G\}\).

Instead the velocity \({V}_{G, S}^{S}\) can be computed as

Here, \(T_{G, S}^{S}\) is the *geometric twist* obtained by differentiation of *C* and \(R_{G, S}\) with respect to *s*, \(t^{S}\) is the unit tangent vector to the centerline, and \(\Omega _{G, S}^{S}\) is the angular velocity defined by

### 2.2 Vehicle parameterization

The vehicle kinematic chain is shown in Fig. 1, where the kinematic joints are depicted along with the reference frames \(\{B_{0}\}\) to \(\{B_{6}\}\), their corresponding joint variables \(q_i\), and the twist velocities \(X_i\).

Starting from ground, the first joint is associated with the track and transforms the ground frame \(\{B_{0}\}\) into the track frame \(\{B_{1}\}\). Its motion is parameterized by the \(q_1\) coordinate. Then the variables \(q_2\) and \(q_3\), respectively associated with a (virtual) prismatic and revolute joint, encode the vehicle degrees of freedom w.r.t. to \(\{B_{1}\}\). Specifically, the car can translate along the normal direction \(\textbf{j}_1\), thus defining the frame \(\{B_{2}\}\), and rotate along the vertical direction \(\textbf{k}_2\), defining \(\{B_{3}\}\). The latter frame is located at road level and it is thought of as fixed to the car axles plane, where the interaction forces between road and vehicle are exchanged.

The remaining joints variables \(q_4\), \(q_5\) and \(q_6\) parameterize the relative motion of the car body frame \(\{B_{6}\}\) with respect to the car axles plane, due to the suspension system. In particular, \(q_4\) is the vertical displacement, and \(q_5\) and \(q_6\) are, according to common vehicle dynamics terminology [4], the pitch and roll angles of the chassis.

It is worth observing that the last two revolute joints have intersecting axes. Furthermore, our reference frames definition implies that \(O_4 \equiv O_5 \equiv O_6\). In particular, point \(O_6\) does not coincide with car body center of mass \(G_6\) (which is located above along \(\textbf{k}_6\) direction), but coincides with the *vehicle invariant point* (VIP) [4]. This point, regardless of the roll angle, remains centered with respect to the four contact patches, hence in the middle of the vehicle, even when it rolls. This property makes such point the best option to monitor the vehicle position.

As we pointed out in the previous section, the track joint—unlike the joints from \(\{B_{1}\}\) to \(\{B_{6}\}\)—cannot be parameterized by the exponential approach and requires a dedicated formulation. Considering that \(\{S\}\) and \(\{G\}\), introduced in Fig. 2, become \(\{B_{0}\}\) and \(\{B_{1}\}\) according to the notation of Fig. 1, and that the joint variable \(\alpha\) becomes \(q_1\), we can rewrite (9) and (10) as follows

## 3 Dynamic model

Once the vehicle has been parameterized by means of the Lie group machinery, the equations of motion can be derived systematically. To this end we can employ the Articulated-Body Algorithm [14].

Following the ABA approach, the dynamics of a generic body *k* connected to a parent joint is written using the Newton–Euler equations

where \(W_{k_{\text {J}}}^{k}\) is the wrench exerted on body *k* *through* the previous connection joint, \(M_{k}^{k}\) is the inertia matrix *k*, \(\dot{V_{k}}^{k}\)^{Footnote 1} is the rigid-body acceleration, and \(b_{k}^{k}\) is the bias force, defined as

In (14), the first term on the right-hand side accounts for the generalized gyroscopic forces and torques, which are bilinear in \({V_{k}}^{k}\), while \(W_{k_{\text {E}}}^{k}\) is the wrench exerted by the forces *directly* applied to the body *k*. The mathematical operator \({{\,\textrm{ad}\,}}_{V}\) in (14) transforms the input vector \(V = [v^T\, \omega ^T]^T\in \mathbb {R}^6\) in a \(6 \times 6\) matrix as follows

and serves to compute the Lie derivative between two vector fields. Referring to [19], it is worth recalling that \({{\,\textrm{ad}\,}}_{V}^* = -{{\,\textrm{ad}\,}}_{V}^{T}\).

The ABA algorithm revolves about the concept of *articulated body*, defined as a collection of \(N_{B}\) rigid bodies interconnected by movable joints (either active or passive). Remarkably, if *k* is the first body (the *handle*) of the articulated body, its dynamics can still be written similar to (13) in the following form

where \(\hat{M}_{k}^{k}\) and \(\hat{b}_{k}^{k}\) are now generalized inertial and bias terms accounting for the inertia and bias forces of the children bodies in the kinematic chain that are structurally transmitted backwards to the handle *k*.

The explicit expressions of the articulated-body inertia and bias terms \(\hat{M}_{k}^{k}\) and \(\hat{b}_{k}^{k}\), along with other fundamental aspects of the ABA algorithm, will be given in the next subsection.

### 3.1 Forward dynamics via a tailored ABA formulation

The Articulated-Body Algorithm consists of three subsequent steps.

#### 3.1.1 Forward propagation of posture and velocity

In **Step 1**, starting from the handle body, the rigid-body postures and velocities are being propagated from ground to the car body.

The number of rigid bodies in our articulated body is \(N_B = 6\). These are identified by frames \(\{B_{1}\}\) to \(\{B_{6}\}\) and their inertial properties are introduced in the next ABA step. As detailed in Sect. 2, it is worth noting that the first joint (track transformation) is treated separately, via the homogeneous matrix \(g_{0, 1}\) and the Jacobian \(J_1^1\).

#### 3.1.2 Evaluation of the generalized bias force and articulated-body inertia

In this step, starting from the last body of the kinematic chain, we evaluate \(\hat{M}_{k}^{k}\) and \(\hat{b}_{k}^{k}\) (introduced in (16)) for a generic body *k*.

The quantities \(\bar{M}_{l}^{l}\) and \(\bar{b}_{l}^{l}\) are calculated as

where the shorthand notation \(A_{l k} = {{\,\textrm{Ad}\,}}_{g_{k+1,k}}\) is used and \(\tau _l\) is the active joint force (or torque, depending on the nature of the joint). In the vehicle model we propose joints are not actuated: the non-zero \(\tau _l\)’s are passively generated by springs and dampers.

**Step 2** can be easily implemented once the terms \(M_{k}^{k}\), \(\tau _l\) and \(W_{k_{\text {E}}}^{k}\) have been defined for each body.

In our serial kinematic chain, only the inertias of sprung \(M_{6}^{6}\) and unsprung masses \(M_{3}^{3}\), as usual in vehicle dynamics [4], are different from zero.

Regarding the active joint force (or torque) \(\tau _l\), we clearly distinguish the first three joints from the last ones. For the former group of joints, which are fictitious, we have \(\tau _1 = \tau _2 = \tau _3 = 0\). For the latter, although not actuated, we have in general non-zero forces \(\tau _4,\, \tau _5,\, \tau _6\) developed by the presence of springs and dampers. Their constitutive equations are described by

where \(k_{\phi }\), \(k_{\theta }\) and *k* are first-order approximations of roll, pitch and vertical stiffness about a nominal working condition of the vehicle. Similarly, the coefficients \(c_{\phi }\), \(c_{\theta }\) and *c*, respectively approximate the roll, pitch, and vertical damping. Employing symbol *p* to represent either *k* or *c*, the explicit expression of these coefficients can be computed as follows

where, according to the notation in [4], the subscript of \(p_{ij}\) refers to the axle and side of the vehicle (\(i = 1,2\) for front/rear and \(j = 1,2\) for left/right). As usual, \(t_1\) and \(t_2\) denote he front and rear tracks of the car.

Finally, to evaluate \(b_{k}^{k}\) as in (14), we must have the external wrenches \(W_{kE}^k\). The only external contributions in our model come from the aerodynamic forces, applied to the car body (fixed to \(\{B_{6}\}\)), and the interaction between the axle body (fixed to \(\{B_{3}\}\)) and the road. The contribution of gravity is treated separately, as explained in **Step 3**. As far as the aerodynamic wrench \(W_{6E}^{6}\) is concerned, it is convenient to evaluate it in \(\{B_{3}\}\) and then express it back in \(\{B_{6}\}\) through (6) to also model its effects on the roll, pitch and bounce motion. Therefore, its expression is computed as \(W_{6_{\text {E}}}^{6}= {{\,\textrm{Ad}\,}}_{g_{6,3}}^{*}W_{6_{\text {E}}}^{3}\), where

Here, \(\rho\) is the air density, *S* is the vehicle frontal area, \(v_{3_{x}}^3\) is the component of \(v_{3}^3\) along \(\textbf{i}_3\), and \(a_1,\, a_2\) are the longitudinal distances of \(G_6\) from the front and rear axles, respectively. \(C_x > 0\) is the drag coefficient, \(C_z > 0\) the downforce coefficient, and \(C_{z2},\, C_{z1}\) are such that \(C_z = C_{z1} + C_{z2}\).

The other non-zero external wrench \(W_{3_E}^{3}\) is applied directly on the axle body (fixed to \(\{B_{3}\}\)) and accounts for *a portion* of the interactions between road and vehicle. In our model, as in a real vehicle, the totality of the external forces that act on the car (except for the aerodynamic ones) are developed through the contact between tires and road. However, since we are considering the body \(\{B_{3}\}\) as the handle of an articulated body going up to \(\{B_{6}\}\), it is more convenient to encode the *in-plane* components of the force in the external wrench \(W_{3_{E}}^3\) and the *out-of-plane* ones in the internal wrench \(W_{3_{J}}^3\), as shown in Fig. 3. The total wrench \(W_3^3\), collecting all forces and torques generated at the four contact patches between road and tires, is thus partitioned as

More in detail, we define

Considering that the first three joints are passive, \(W_{3_{J}}^3\) represents a *structural* wrench: its non-zero components \(f_{3_z}^{3}\), \(m_{3_x}^{3}\) and \(m_{3_y}^{3}\) are the forces and torques that can be thought, in line with the ABA perspective, as those structurally absorbed by the first three virtual joints of the kinematic chain. These components restrain \(\{B_{3}\}\) to stay on the track. Instead, the components \(f_{3_x}^{3}\), \(f_{3_y}^{3}\) and \(m_{3_z}^{3}\), lying on the plane locally tangent to the road surface, are treated as external forces accounting for the tire adherence and traction and are embedded in \(W^3_{3_E}\). These will be linked, in the next subsection, to the control inputs of our model.

#### 3.1.3 Forward propagation of acceleration

In this step, again starting from the first body, we compute and forward propagate the joint accelerations \(\ddot{q}_k\) to obtain the rigid-body accelerations \(\dot{V_{k}}^{k}\). This procedure is presented in the pseudo-code below.

As in **Step 1**, the first joint is treated separately, due to its non-standard nature; thus we let \(J_{1,q_1}^1 = \text {d}J_1^1/\text {d}q_1\). Furthermore, in order to model the presence of gravity, we introduce a fictitious acceleration on \(\{B_{0}\}\) (which is automatically propagated through the kinematic chain) by setting

where \(a_g = 9.81\) m/s\(^2\) is the gravity acceleration.

After **Step 3**, having computed \(\dot{V}_3^3\), we can calculate the structural wrench \(W_{3_J}^{3}\) through (16) as follows

Considering that \(W_{3_J}^{3}\) has only three non-zero components, (24) provides three scalar equations linking \(f_{3_z}^{3}\), \(m_{3_x}^{3}\) and \(m_{3_y}^{3}\) to the inertial, bias and acceleration terms obtained through the ABA algorithm. More in detail, since the \(\tau _k\)’s only depend on *q* and \(\dot{q}\), and \(\hat{b}_3^3\) only depends on \(W_{3_E}^3\), we can express \(W_3^3\) as

### 3.2 Reconciliation of ABA wrenches with tire forces and load transfers

The paramount aspect that characterizes vehicle dynamics is the interaction between road and tires. As explained in the previous subsection, in our model this interaction is encoded in the wrenches \(W_{3_J}^{3}\) and \(W_{3_E}^{3}\). In order to model the dynamics of an actual vehicle with tires, it is therefore necessary to link them to the actual forces developed at the four contact patches.

The generic wrench exerted on the *ij*-th wheel (where *ij* refers, as usual, to the considered axle and side of the vehicle) is assumed to have only three non-zero components \(f_{ij_x},\, f_{ij_y},\, f_{ij_z}\), which are expressed in the corresponding frame^{Footnote 2}\(\{B_{ij}\}\). Assuming a front-wheel steering vehicle and a parallel steering law, we set \(\delta _{21} = \delta _{22} = 0\) and \(\delta _{11} = \delta _{12} = \delta\).

We start by analyzing the vertical force \(f_{ij_z}\). Inspired by [4] we write

where \(f_{z_{i0}}\) is the static load, \(f_{z_{ia}}\) is the aerodynamic force, and \(\Delta f_z\), \(\Delta f_{z_i}\) are the longitudinal and lateral load transfers, respectively. Equation (26) (one for each wheel) represent implicit equations in the \(f_{ij_z}\) terms. To make this more explicit, the four terms of (26) are analyzed, and their dependencies on \(f_{ij_z}\) and on the non-zero components of \(W_{3_J}^3\) highlighted.

The first term \(f_{z_{i0}}\) is computed, by definition, from its dynamic counterpart \(f_{3_z}^3\) filtering out the aerodynamic force as follows

where \(l = a_1 + a_2\) is the wheelbase of the vehicle. After reintroducing the downforce via

the longitudinal load transfer can be obtained as

where we are subtracting the aerodynamic moment since it already results from how we defined the \(f_{z_{ia}}\) on each wheel. Finally, according to [4, p. 152], and assuming the tires to be perfectly rigid in the vertical direction, we can compute the lateral load transfers as follows

Here, \(Y_i = Y_i(f_{i1_z}, f_{i2_z})\) is the lateral force acting on *i*-th axle, expressed in \(\{B_{3}\}\), \(k_\phi =k_{\phi _1}+k_{\phi _2}\) is the roll stiffness of the *i*-th axle and \(h_{q_i}\) is the distance of the *no-roll center* of the *i*-th suspension from the road [4, p.119].

The explicit expressions of \(Y_1\) and \(Y_2\) are given by

In (31) we highlight the dependencies of the lateral force \(f_{ij_y}\) on the vertical load on each wheel, according to the tire model detailed below.

To describe the tire behavior in the lateral direction we use the Pacejka’s Magic Formula [7], which reads

It is worth noting here the explicit dependence of four factors \(D_y(f_{ij_z})\), \(C_y(f_{ij_z})\), \(B_y(f_{ij_z})\) and \(E_y(f_{ij_z})\) on the vertical load \(f_{ij_z}\) on the tire. The \(\alpha _{ij}\)’s are the tire slip angles, which we may assume to be equal for wheels of the same axle, as frequently done in [4]. Their expressions are given by

Finally, considering a rear-wheel drive vehicle equipped with an open differential (which makes \(f_{21_x} = f_{22_x}\)), we compute the longitudinal forces as

where \(k_b\) is the braking ratio, and \(f_{xb},\, f_{xa}\) respectively represent the total *braking* and *traction* force on the vehicle.

At this point it is important to underline how to combine the above equations in order to characterize the implicit Eq. given by (26).

Substituting (32) in (31) and inserting the result in (30), we obtain the explicit expression that links each \(\Delta f_{z_i}\) to all four vertical loads \(f_{{ij}_z}\).

Then, Eqs. (30), (29), (28) and (27) can be substituted in (26). Here, note that (30), (29), (28) and (27), beside \(v^3_{3x}\), also contain the components \(m^3_{3_x}\), \(m^3_{3_y}\) and \(f^3_{3_z}\) of \(W_{3_J}^{3}\); nevertheless, according to (25) and the relations resulting from the ABA steps, these can be eliminated in favor of a direct dependence on *q*, \(\dot{q}\) and \(W_{3_E}^{3}\).

On the other hand, since (30) contains \(Y_i\), which depends through (31), (33) and (34) on *q*, \(\dot{q}\), \(f_{xa}\), \(f_{xb}\) and \(\delta\), Eq. (26) can be written in the form of the following four implicit equations

It is worth noting that the system of vertical forces thus obtained is equivalent to \(W_{3_{J}}^{3}\).

A final consistency condition is required to ensure that the external wrench \(W_{3_{E}}^{3}\), defined in (22b) and appearing in (35), is the resultant of the in-plane tire forces. Thus we write

where, for brevity, we let \(X_1(f_{11_z}, f_{12_z}) = (f_{11_x} + f_{12_x})\cos (\delta ) - (f_{11_y} + f_{12_y})\sin (\delta )\) and \(X_2 = f_{21_x} + f_{22_x}\). By expanding the whole dependencies in (36), we can also write

and substituting (37) in (35) we finally obtain following the four expressions

(one for each wheel).

The dependency of \(f_{ij_z}\) on \(\ddot{q}\), leads to an implicit dynamic equation (see line 7 of **Step 3**), due to the dependency of \(W_{3_E}^3\) on \(f_{ij_z}\). To cut open the resulting algebraic loop and restore the explicit form for the dynamic equations, in our implementation we introduce 7 algebraic variables as placeholders. These include the three non-zero component of \(W_{3_E}^3\), and the four components \(f_{ij_z}\). Accordingly, we implement (36) as three and (35) as four algebraic equations. Along with the six ODEs coming from line 7 of **Step 3**, they form a Differential Algebraic Equations (DAE) system which can be approached, within the MLTP formulation, by introducing algebraic equations as path equality constraints of the optimization problem (see Sect. 4).

## 4 Application to trajectory optimization

To showcase the validity of the proposed approach we set up a minimum-lap-time scenario implementing our dynamic model. The aim of the problem is to find the optimal trajectories for the inputs—and the resulting motion of the vehicle—that minimize the lap-time achieved on a given track.

In general, MLTP problems can be formulated on a time or spatial domain (see [22] and [23], respectively). The first approach parameterizes the position of the vehicle with respect to the ground-fixed reference frame, with time as the independent variable of the equations of motion. Instead, in the second approach, the vehicle position is described in terms of road coordinates, and the curvilinear parameter of the track centerline (here \(q_1\)) is employed as the independent variable. Since in our model the vehicle position and orientation are parameterized through the track coordinates (\(q_1\), \(q_2\) and \(q_3\)), the natural choice for us is to use the second approach. For this sake, the model equations obtained through the ABA algorithm have to be translated into the spatial domain.

Our dynamic model is characterized by the states \(x = [q_1,\, q_2,\, q_3,\, q_4,\, q_5,\, q_6,\, \dot{q}_1,\, \dot{q}_2,\, \dot{q}_3,\, \dot{q}_4,\, \dot{q}_5,\, \dot{q}_6]\), the control inputs \(u = [f_{xa},\, f_{xb},\, \delta ]\) and the algebraic variables \(z = [f_{11_z},\, f_{12_z},\, f_{21_z},\, f_{22_z},\, f_{3_x}^3,\, f_{3_y}^3,\, m_{3_z}^3]\). To obtain the spatial formulation for the model, we compute \(x_{,q_1} = \text {d}x/\text {d}q_{1}\), where \(q_1\) is the track curvilinear parameter defined in Sect. 2. Then, we can evaluate \(x_{,q_1}\) as follows

where \(F(\cdot )\) is the dynamic vector field, computing the \(\ddot{q}_{i}\) components through the Articulated-Body Algorithm, and the system evolution is expressed as a function of \(q_1\) instead of *t*.

### 4.1 Formulation via direct collocation

Among the many techniques that can be employed to solve Optimal Control Problems (OCPs) [24], for this work we choose the *direct collocation* method. The peculiarity of this method is the discretization of the original OCP as a large (but sparse) Nonlinear Program (NLP). The generic form of the NLP resulting from this approach is

Here, we can distinguish the controls \(u(q_1)\), the states \(x(q_1)\) and the algebraic variables \(z(q_1)\). These variables are discretized on a fixed space grid \(q_{1_i} = \Delta _q i\), (\(i = 0,\dots , N\)), with \(\Delta _q = q_{1_N}/N\), where \(q_{1_N}\) is the final value of the spline parameter and *N* is the number of mesh intervals. In agreement with the dimension of controls, states and algebraic vectors, we therefore have in our problem a number of \(u(q_{1_i}) = u_i \in \mathbb {R}^{3}\), \(x(q_{1_i}) = x_i \in \mathbb {R}^{12}\) and \(z(q_{1_i}) = z_i \in \mathbb {R}^{7}\) decision variables. With \(v_i\) we indicate the *collocation states* [25] located within the generic *i*-th interval.

The equality constraints \(g_i(\cdot )\) include the dynamic Eq. (39), and the path algebraic Eqs. (35) and (36).

The inequality constraints \(h_i(\cdot )\) comprise all path constraints limiting states, controls, and algebraic parameters. Power limits, adherence constraints and bounds on the lateral displacement \(q_2\) (necessary to remain within the track bounds), are also included in this term.

The terminal constraint \(r(\cdot )\) is optional and can be included, for continuity purposes, to enforce a closed lap optimization.

Finally, the cost function is approximated in each interval by a quadrature formula. A typical stage cost \(l_i\) can be of the form

where the first term penalizes lap-time, and the last two penalizes abrupt variations of the steer angle and the input force. Instead, the last term is introduced, with its weight \(K_f\), as a relaxation for the *complementary constraint* \(f_{xa}f_{xb} = 0\). To prevent simultaneous traction and braking action, we introduce the complementary condition \(f_{xa}f_{xb} = 0\) as an additional path constraint.

The optimal control problem is coded in a scripting environment using the MATLAB interface to the open-source CasADi framework [26], which provides building blocks to efficiently formulate and solve large-scale optimization problems.

### 4.2 Numerical results

Numerical results of the MLTP are obtained and discussed for a Formula SAE vehicle (whose data are reported in Table 1) on the Nürburgring Nordschleife circuit. We consider two cases: first, we run a simulation on a short segment of the track (\(\approx\) 2 km) to assess the validity of the proposed model against a more complex and reliable multi-body model; then, we compute the optimal trajectory on a full lap of the circuit (\(\approx\) 21 km) to demonstrate the efficiency of the proposed approach.

#### 4.2.1 Model validation

To substantiate our results, we provide a comparison between the optimal solutions obtained using the proposed reduced-order model and a full multi-body model [15] that describes the dynamics of the vehicle’s bodies with greater accuracy. Both simulations are run under the same conditions and using the same Formula SAE vehicle as a reference. As test bench we choose a sector of the Nürburgring circuit that is sufficiently rich of corners and slopes to excite the relevant dynamics of the system.

An overview of the solutions is provided in Fig. 4. In Fig. 5, 6 and 7 we show and discuss the optimal trajectories of the controls, the velocities and the attitudes of the two models, depicting with thick and thin line the multi-body and the proposed reduced-order model solution, repsectively. The similarity between the two solutions is evident, and there is large agreement on almost every segment of the track. The optimal lap-times are also comparable, with the reduced-order model scoring a \(t_{\textrm{opt}} = 53.9\) s versus the \(t_{\textrm{opt}} = 54.3\) s achieved by the multi-body one.

The only noticeable difference in the behavior of the two models concerns the trajectory of their attitude. As it can be observed in Fig. 7, the pitch of the reduced-order model is more steady and less prone to variations. This behavior can be ascribed to the simplified model of suspensions we are employing in this model; in particular, the proposed approach fails to capture the different stiffness opposed by the front and rear axle to the roll motion, and the consequent variation of pitch angle that arises during cornering.

This slight inaccuracy, however, is greatly compensated in terms of computational complexity and efficiency. With the same number of discretization intervals \(N=400\), the NLP resulting from the full multi-body approach features a total number of \(N_{\textrm{opt}}=36000\) decision variables and is solved in \(t_{\textrm{calc}}=116.3\) s after 64 iterations; the proposed approach, on the other hand, leads to a NLP with \(N_{\textrm{opt}}=18000\) variables which we have been able to solve in \(t_{\textrm{calc}}=29.3\) s and 62 iterations.^{Footnote 3} Remarkably, the computation time required to find a solution is reduced by about a factor of four.

#### 4.2.2 Full lap

We conclude our work with presenting an optimal solution computed on a full lap of the Nordschleife circuit. The full length of the track is 21.7 km and has been sampled in \(N=2000\) equispaced points. The resulting NLP features \(N_{\textrm{opt}}=90000\) variables; with our reduced-order approach, we managed to find a solution in \(t_{\textrm{calc}}=100.0\) s and 70 iterations, achieving an optimal lap-time of \(t_{\textrm{opt}}=531.7\) s. This is quite a remarkable result, especially if considering the huge extension of the track and the variety of effects included in our model.

The optimal trajectories of the controls and the speed profiles are reported in Figs. 8 and 9.

## 5 Conclusions

In this paper a reduced-order race car model is presented. The mathematical model is formulated using Lie group formalism and is devised as a serial kinematic chain, linked to a 3D track via a series of joints suitably defined for this purpose.

It is clearly shown how our framework gracefully merges with the Articulated-Body Algorithm and enables a fresh and systematic formulation of vehicle dynamics. A noteworthy contribution is the rigorous reconciliation of the ABA steps with the salient features of vehicle dynamics, such as the road-tire interaction, the nonlinear tire characteristics, the aerodynamic forces, and the longitudinal and lateral load transfers. The discussion highlights the need to introduce algebraic variables to encode the dynamics as a system of DAE.

To foster the validity of the proposed approach, we set up a Minimum-Lap-Time Planning problem based on our reduced-order model, where the algebraic equations are nicely embedded as path equality constraints. The problem is formulated via a direct collocation method and solved using the open-source CasADi suite.

To prove the accuracy of our modeling efforts, we provide a comparison with a more detailed vehicle model. Then we show the achieved advantage in terms of computational complexity by reporting a minimum-lap-time solution in a real-world scenario of a Formula SAE car on the Nürburgring Nordschleife circuit.

As a last remark, it is noteworthy to highlight that our framework facilitates the direct utilization of efficient and open-source rigid-body dynamics libraries, like [16], also in the domain of vehicle dynamics. Ultimately, we hope that this undertaking will inspire the development of computationally more efficient yet realistic models for use in the design and optimization of next-generation vehicles.

## Notes

The subscript 0 is omitted when referring to the motion w.r.t. the ground.

Each \(\{B_{ij}\}\) has its origin in the center of the contact patch of the

*ij*-th wheel and it is rotated about the z-axis of \(\{B_3\}\) by an angle \(\delta _{ij}\) (the wheel steering angle).All simulations are carried out on a commodity laptop with Intel (R) Core (TM) i9-12900 H CPU and 64 GB RAM.

## References

Massaro M, Limebeer DJN (2021) Minimum-lap-time optimisation and simulation. Veh Syst Dyn 59(7):1069–1113

Perantoni G, Limebeer DJN (2015) Optimal control of a formula one car on a three-dimensional track part 1: track modeling and identification. J Dyn Syst Measurement Control 137(5):051019

Lovato S, Massaro M, Limebeer, (2021) Curved-ribbon-based track modelling for minimum lap-time optimisation. Meccanica 56:2139

Guiggiani M (2018) The science of vehicle dynamics: handling, braking, and ride of road and race cars, 3rd edn. Springer, Cham

Rucco A, Notarstefano G, Hauser J (2012) Computing minimum lap-time trajectories for a single-track car with load transfer. In: 51st IEEE conference on decision and control (CDC), pp. 6321–6326

Christ F, Wischnewski A, Heilmeier A, Lohmann B (2021) Time-optimal trajectory planning for a race car considering variable tyre-road friction coefficients. Veh Syst Dyn 59(4):588–612

Pacejka H (2002) Tire and vehicle dynamics, 2nd edn. Butterworth–Heinemann, London

de Buck P, Martins JRRA (2022) Minimum lap time trajectory optimisation of performance vehicles with four-wheel drive and active aerodynamic control. Veh Syst Dyn 61(8):2103–2119

van Koutrik S (2015) Optimal control for race car minimum time maneuvering. Master thesis, Delft University of Technology, Faculty of Mechanical, Maritime and Materials Engineering (3mE)

Limebeer DJN, Perantoni G (2015) Optimal control of a formula one car on a three-dimensional track part 2: Optimal control. J Dyn Syst Measurement Control 137(5):051019

Ambrósio J, Marques L (2019) Optimal lap time for a race car: a planar multibody dynamics approach. Interdisciplinary Applications of Kinematics

Bianco ND, Lot R, Gadola M (2018) Minimum time optimal control simulation of a GP2 race car. J Automob Eng 232:1180–1195

Mueller A, Maisser P (2003) A Lie-Group formulation of kinematics and dynamics of constrained mbs and its application to analytical mechanics. Multibody Sys Dyn 9(4):311–352

Featherstone R (2007) Rigid body dynamics algorithms. Springer, Heidelberg

Domenighini M, Bartali L, Gabiccini M, Grabovic E (2023) Minimum-lap-time planning of multibody vehicle models via the articulated-body algorithm. Designs 7(365):1–18

Felis ML (2023) RBDL: Rigid body dynamics library. https://github.com/rbdl/rbdl

Felis ML (2016) Rbdl: an efficient rigid-body dynamics library using recursive algorithms. Autonomous Robot. https://doi.org/10.1007/s10514-016-9574-0

Müller A (2014) Higher derivatives of the kinematic mapping and some applications. Mech Mach Theory 76:70–85

Murray RM, Li Z, Sastry SS (1994) A mathematical introduction to robotic manipulation. CRC Press, Boca Raton

Park J, Chung W-K (2005) Geometric integration on Euclidean group with application to articulated multibody systems 21(5):850–863

Piegl L, Tiller W (1995) The NURBS book. Springer, Berlin

Lot R, Bianco ND (2015) The significance of high-order dynamics in lap time simulations. In: IAVSD 2015: 24th International symposium on dynamics of vehicles on roads and tracks (16/08/15 - 20/08/15)

Lot R, Biral F (2014) A curvilinear abscissa approach for the lap time optimization of racing vehicles. IFAC Proc Volumes 47(3):7559–7565

Betts JT (2010) Practical methods for optimal control and estimation using nonlinear programming, second edition, 3rd edn. SIAM - Society for Industrial and Applied Mathematics, Philadelphia

Gabiccini M, Bartali L, Guiggiani M (2021) Analysis of driving styles of a GP2 car via minimum lap-time direct trajectory optimization. Multibody SysDyn 53:85–113

Andersson JAE, Gillis J, Horn G, Rawlings JB, Diehl M (2019) CasADi - a software framework for nonlinear optimization and optimal control. Math Program Comput 11(1):1–36. https://doi.org/10.1007/s12532-018-0139-4

## Funding

Open access funding provided by Università di Pisa within the CRUI-CARE Agreement. No funding was received for conducting this study.

## Author information

### Authors and Affiliations

### Corresponding author

## Ethics declarations

### Conflicts of interest

The authors declare that they have no conflict of interest.

## Additional information

### Publisher's Note

Springer Nature remains neutral with regard to jurisdictional claims in published maps and institutional affiliations.

## Rights and permissions

**Open Access** This article is licensed under a Creative Commons Attribution 4.0 International License, which permits use, sharing, adaptation, distribution and reproduction in any medium or format, as long as you give appropriate credit to the original author(s) and the source, provide a link to the Creative Commons licence, and indicate if changes were made. The images or other third party material in this article are included in the article's Creative Commons licence, unless indicated otherwise in a credit line to the material. If material is not included in the article's Creative Commons licence and your intended use is not permitted by statutory regulation or exceeds the permitted use, you will need to obtain permission directly from the copyright holder. To view a copy of this licence, visit http://creativecommons.org/licenses/by/4.0/.

## About this article

### Cite this article

Bartali, L., Gabiccini, M., Grabovic, E. *et al.* A reduced-order lie group-based race car model for systematic trajectory optimization on 3D tracks.
*Meccanica* **58**, 1869–1883 (2023). https://doi.org/10.1007/s11012-023-01708-8

Received:

Accepted:

Published:

Issue Date:

DOI: https://doi.org/10.1007/s11012-023-01708-8