1. Introduction
Minimum lap-time planning problems (MLTPs) are well established in the race car industry, both to synthesize fast trajectories and to calibrate setup parameters optimally. In the technical literature, different methods have been proposed to solve MLTPs. A rich overview on their development is given in [
1].
In general, two are the main approaches to tackle MLTPs. These are the quasi-steady-state technique and the method relying on the solution of an optimal control problem (OCP). Methods in the first class start from a predetermined path on the racetrack and build an acceleration profile on top of it. On the other hand, the second class is grounded on OC theory and defines all state trajectories as the solution of a purposely designed optimal control problem. Everything is discovered from scratch: the vehicle motion, the racing line and the controls that generate them.
Optimal control problems, in turn, can be solved either via an 
indirect method or a 
direct one. Both have been employed to solve MLTPs such as the one we will consider. A detailed description of these approaches can be found in [
2], while an assessment of their pros and cons can be found in [
3]. The indirect approach uses Pontryagin’s minimum principle to derive first-order optimality conditions. These lead to a two-point boundary value problem that has to be integrated. We find this approach employed for MLTP in [
4,
5]. The direct approach, on the other hand, aims to recast (
transcript) the original OCP into a nonlinear program (NLP), to be solved numerically. In [
6,
7,
8], this approach is employed to solve MLTPs. In most cases, as in the case of the present contribution, direct collocation is used as the transcription method.
To effectively formulate the OCP, the dynamical equations of the system must be at hand. They must be explicitly known and directly manipulable. Many of the works mentioned above rely on simple 
single-track or 
double-track vehicle models, as they appear in vehicle dynamics textbooks [
1,
9,
10]. When a 
multibody approach is employed, e.g., in [
4,
7,
11], the final equations are almost always simplified and greatly approximated.
In this paper, we propose a comprehensive and systematic multibody approach. The basic structure of our model is built around Featherstone’s articulated-body algorithm (ABA) [
12]. The ABA is a powerful direct dynamics computational method, appearing in many different variants within the robotics literature [
13,
14,
15]. To model the other, more specialized components of the system (such as tires and aerodynamics), we relied on conventional vehicle dynamics results [
9,
16,
17,
18].
The proposed approach opens up the possibility of thorough vehicle dynamics analysis similar to that offered by conventional simulation softwares such as CarSim or MBS Adams, which, on the downside, give limited access to their equations and cannot be easily embedded into the loop of an MLTP optimization problem.
As far as the track model is concerned, in most of the aforementioned works the track is either planar or is immersed into the system dynamics through Frenet–Serret equations involving torsion and curvature [
5]. In the present work, as in [
8,
19], we embed the track features directly into the fixed structure of our nonlinear program, so that a fully 3D track can be considered, and all issues related to the Frenet–Serret formulation are avoided.
  2. Vehicle Model
This section presents the topology of our multibody vehicle model and provides a characterization of its components. In 
Section 2.1 we introduce the bodies composing the model and explain their interconnection. Then, we focus on the modeling of suspension systems in 
Section 2.2 and we describe the tire model in 
Section 2.3. Finally, in 
Section 2.4, we detail the contributions of the external forces acting on the vehicle.
  2.1. Topology of the Kinematic Tree and Its Parametrization
We model the vehicle as an articulated system of rigid bodies. In particular, our model includes the chassis, knuckles and wheels. The chassis represents the ensemble of all sprung masses of the vehicle, including the vehicle’s bearing framework, the motor, the driver and any other load carried onboard the car. These parts are assumed to have a fixed position with respect to one another. The wheels are the ensemble of the hubs, rims, tires and all other parts that rotate with them. In order to decouple the rotational motion of the wheel (about its axle) from its vertical motion (due to suspension travel), we also need to introduce the hub carriers, or knuckles. All unsprung masses that do not actually rotate, such as the brake calipers, are considered as part of the knuckle body; we will assume these components to have negligible mass.
To keep track of the relative pose between bodies, we conveniently attach a reference frame to each of them. We define front-left-up (FLU) barycentral reference frames 
, 
, and 
 to be attached to the chassis, to the knuckle, and the rim of the generic wheel, respectively, as illustrated in 
Figure 1. (We will often make use of the generic symbols 
 and 
 to denote the frames attached to the knuckle and rim of the particular wheel under consideration. If the need arises to make a distinction between different wheels, we will explicitly write 
 and 
, where 
 when referring to the front-left (FL), front-right (FR), rear-left (RL) or rear-right (RR) wheel, respectively).
We also define an inertial reference frame 
, fixed to ground, and an auxiliary frame 
, following the vehicle on the track. More precisely, the track surface is modeled as a 3D ribbon [
2] and the position of the vehicle on it is individuated by a point on its centerline curve. We set the origin 
 of 
 to coincide with this point, and the axis 
 to be tangent to the centerline curve, pointing forward. The axis 
 lies on the ribbon, pointing left, so that the axis 
 points in the upward normal direction. As the vehicle travels along the track, the position of 
 moves along the track centerline, and its orientation changes accordingly. At any moment, we assume that the vehicle is interacting with the 
-plane of 
, tangent to the road surface.
The relative position and orientation between each pair of frames are, respectively, described by three Cartesian coordinates 
 and a rotation matrix 
, which we parameterize with three Euler angles 
. To describe the relative pose between frames, we use a homogeneous transformation matrix 
. To keep the equations more compact, we often gather the six coordinates 
d and 
 into a single 
configuration vector 
. A synoptic overview of the main transformations and their coordinates is provided in 
Figure 2.
Within the articulated system, bodies are connected together by joints. As schematized by the graph in 
Figure 3, joints in our model are the hub bearings, connecting the rims 
 to the knuckles 
, and the suspension linkages, connecting the knuckles 
 to the chassis 
. The relative motion allowed by each of these joints enjoys one DoF. On the other hand, we observe that the chassis is a 
free-floating body and its pose with respect to ground is not constrained in any way. This behavior is encoded by a connection with the ground through a virtual six-DoF joint. Therefore, overall, the configuration of the vehicle enjoys a number of 
 DoF.
Having defined the topology of our articulated system, we need to define a suitable set of variables to keep track of its configuration and motion. To this end, we associate every available degree of freedom with a position variable and a velocity variable.
To represent the configuration of the virtual six-DoF joint, we simply use the six coordinates , as defined above. To represent its instantaneous motion, we conveniently adopt the driver’s point of view and we use the components of the linear velocity  of the origin of  with respect to (w.r.t.)  and of the angular velocity  of  w.r.t. , both expressed in the chassis frame  components. We collect these components into a single vector , which we call the distal rigid-body velocity of  w.r.t.  expressed in . The adjective distal reflects that these are expressed in the moving frame  (as opposed to , which would define proximal components). (In general, the rigid-body velocity of the form  would represent the instantaneous motion of frame  w.r.t. frame  expressed in components of the (observer) frame . The generic  with  are defined hybrid components. We recover the distal and the proximal components whenever  and , respectively. For notational brevity, we also make the following positions: , , , , and . Here, the central role as observers of frames  and  is apparent.)
To each of the four DoF allowed by the suspension system we associate a corresponding configuration variable z and its time derivative . Variable z is the suspension travel, the knowledge of which allows for the determination of the value of the six coordinates . Similarly, given  (and z), one should be able to find the (distal) rigid-body velocity . Since the characterization of the suspension configuration in terms of a single variable is not trivial, its details are deferred to the next section. As far as the hub bearings are concerned, due to the assumed symmetrical properties of the wheel with respect to its axis, the (wheel) joint angle defining the orientation of  w.r.t.  is of no relevance for our analysis; what matters is only the joint velocity , which is reasonably defined as the wheel speed.
  2.2. Suspension Analysis
In this section we characterize the suspension system. The suspension connects the knuckles 
 to the chassis 
. The relative pose between 
 and 
 is encoded by the homogeneous transformation matrix 
, and parameterized by the six coordinates 
. To express 
 in terms of 
, we use the global 
product of exponentials (PoE) formula ([
20], Section 3.2.2).
        
        where, in our case, the offset 
 and 
, 
, 
, 
, 
 and 
 are the six normalized screw vectors associated with the Cartesian coordinates and Euler ZXY angles in 
. In this case, our exponentials are elementary transformation matrices, and the corresponding screw vectors have a very simple form. They can be interpreted as a parametrization of a 
virtual kinematic chain of three 
prismatic and three 
revolute joints connecting 
 to 
.
Obviously, the components of 
 are not independent variables. Rather, they are constrained by the particular suspension geometry and they are functions of the suspension travel 
z defined in 
Section 2.1, which can be chosen as the independent coordinate. Hereafter, we show how 
 is related to 
z. Along with 
z, the steering wheel angle 
 may appear as an additional independent variable. (This is the general case of a wheel that can steer. For a front-steering vehicle, the dependence of 
 is not present at the rear wheels, and the relative contributions can be omitted.) In general, the kinematic constraints can be expressed implicitly as a set of six scalar equations 
 in the six dependent variables 
 and the two independent variables 
. The expression of the constraint function 
F depends on the particular suspension geometry of the vehicle under consideration; in 
Figure 1 a 
double-wishbone suspension is featured, but the analysis of any design is possible with the same approach. It is worth noting that, besides the five implicit equations associated to the double-wishbone constraints, an additional constraint must be included since no connection is initially assumed between 
 and 
. In this development, we choose to define the suspension travel as the vertical displacement of the wheel center, and we used 
.
Under the hypotheses of the implicit function theorem [
21], to establish an 
explicit functional relationship between 
 and 
, we proceed as follows. First, we sample pairs 
, with 
 and 
 on a 
 grid of points in the combined working range of 
z and 
 variables. For each point in the grid 
, we solve the implicit equations for the dependent variables 
, thus obtaining 
, such that 
. As a last step, for each coordinate 
, we fit (in the least-squares sense) the corresponding grid of points 
 with a 2D regression polynomial 
 in the two variables 
. For our purposes, the following polynomial (complete of order three) turned out to be sufficiently accurate:
       In 
Figure 4, the procedure is illustrated for the variable 
 (wheel steer angle). Assembling Equation (
2) with (
1), we obtain 
 as a function of 
z and 
, i.e., 
.
Now we need to relate the rigid-body velocity 
 to the derivatives 
 and 
. In the first instance, we write
        
        where 
 is the 
geometric Jacobian of the suspension joint relative to 
, assumed with independent components. Each column of 
 can be computed based on the PoE Formula (
1), as shown in ([
20], Section 3.4). For the 
i-th column, we have 
, with 
 and 
, 
. According to ([
20], Section 2.4.2), we define the 
adjoint operator as the 
 matrix satisfying 
 whenever 
, so that, if 
, then 
.
Since 
 is a function of 
, the velocities of the dependent variables 
 can be expanded using the chain rule
        
        where the (geometric) partial derivatives 
 and 
 are obtained by differentiating Equation (
2). Then, by defining the Jacobians with respect to the true independent variables 
z and 
 as follows
        
        it possible to obtain the rigid-body velocity 
 of the constrained motion from Equation (
3), in terms of 
 and 
, as follows:
In 
Section 3, we will also need the time derivative 
 of the rigid-body velocity 
. For this, we need to differentiate Equations (
3)–(
6). Starting, as before, under the assumptions of independent components 
, by differentiation of (
3) we obtain
        
In (
7), following [
22], the derivatives 
 can computed using the formula
        
        that efficiently exploits Lie derivatives between the columns of 
. (In the matrix case, we compute the Lie derivative of the vector field 
 with respect to vector field 
 by using the commutator 
; in the vector case, we use the 
 matrix 
, defined such that 
. If 
v and 
 are the translational and rotational component of 
V, then 
.)
In (
7), the accelerations 
 are obtained by differentiating the velocities in Equation (
4):
        where the (geometric) partial derivatives are obtained by differentiating the polynomials in (
2). At this point, we have explicit expressions for the derivatives of the Jacobians in (
5) which are
        
       By substituting Equations (
8) and (
9) in (
7), and casting some intermediate results as (
10) and (
11), we have explicit expressions for computing the constrained rigid-body acceleration 
 in the following form:
The last step in our analysis is aimed at characterizing the generalized force 
 of the suspension associated with the independent configuration variable 
. We assume that 
 is entirely due to the force developed by a shock absorber consisting of a spring and damper aligned along the same axis. The intensity 
F of this force is a function of the length 
l of the spring and its derivative 
 as follows:
        (a linear behavior for both the spring and the damper is assumed). Independently of the complexity of the kinematics leading to the shock absorber, the length 
l of the spring ultimately depends on the suspension configuration. To find 
l as a function of 
z (and possibly 
), we solve the linkage kinematics for 
l at a number of predetermined configurations, and then fit the samples with a regression polynomial similar to (
2).
        Then, by employing the principle of virtual work, 
 can be computed as
        
        In (
14), 
F is evaluated using 
l and 
, which are computed using the regression polynomial and its derivative. In this way, we have 
 expressed as a function of 
z and 
, i.e., 
. We will need this in 
Section 3.
  2.3. Tire Model
The tire model is responsible for all forces exchanged with the ground and, as such, is a fundamental component of the vehicle. To conveniently define the tire forces we introduce, for each wheel, an auxiliary reference frame 
. The construction of the frame 
 is illustrated in 
Figure 5. Note that frame 
 is completely specified given the pose of the knuckle frame 
 and that of the current track frame 
.
The tire force is decomposed into three orthogonal components, 
, aligned, respectively, with the axes of 
, as shown in 
Figure 5 (left panel). To compute the vertical force 
, we use a unilateral 
penalty-based compliant tire model, where the tire is modeled as a radial spring, with uniform radial stiffness 
. The normal force arises whenever the pose of 
 is such that the lowermost point of the undeformed tire (in fact, of its longitudinal section; see 
Figure 5 (right panel)) is displaced below the road surface. We denote the amount of this displacement by 
d, and let 
 be proportional to 
d as follows:
        When the tire is completely detached from ground, the vertical force 
 is set to zero. In this way, we are able to correctly deal with tires losing contact with ground, e.g., during a jump.
To compute the value of the tangential forces 
 and 
, we rely on Pacejka’s 
Magic Formula ([
16], Section 4.3.2):
        The Magic Formula, mf, computes the longitudinal and lateral forces 
 as a function of the 
tire slips ([
16], Section 1.2.1). The formula is also sensitive to variations of vertical load 
 and camber angle 
.
  2.4. External Wrenches
In this section we detail the contributions of all forces exchanged by the environment and the vehicle. For each body, we compute the resultant external wrench and express it in the local reference frame.
The resultant external wrench 
 applied to the generic rim expressed in the knuckle frame 
 is
        
        and is made of four contributions. The first is due to the tire forces 
 with components in 
 defined in 
Section 2.3. Their expression in 
 can easily be computed through the coadjoint operator 
. The second and third contributions 
 and 
, respectively, are due to the relative driving 
 and braking torque 
, and are applied to the wheel around the hub axis 
. In frame 
, their explicit expressions are therefore 
 and 
. It should be noted, however, that although both 
 and 
 are applied about the same axis 
, the reaction of the former goes to the chassis (through the drive axle), whereas that of the latter goes to the knuckle (through the brakes). Therefore, we prefer to introduce these torques, together with their respective reactions, as ordinary external torques, and keep the joint torque of the hub bearing always set to zero. The magnitude of 
 and 
 is determined starting from a single input signal 
T, which is interpreted as a driving/braking command depending on its positive/negative sign. In this way, simultaneous acceleration and braking is disallowed. Denoting the positive and negative value of 
T by 
 and 
, we define
        
       The driving torque 
 is computed assuming a rear-wheel-drive vehicle with an open differential. The braking torque 
, on the other hand, is computed by partitioning the total braking torque 
 between front and rear axle according to the value of the 
brake balance coefficient , specified in the car set-up.
The last contribution 
 in (
17) is due to the weight force of each wheel (rim + tire), expressed in frame 
. Its general expression is of the form 
, with 
 in frame 
.
The external wrench 
 applied to the knuckles is simply given by the reaction of the braking torque 
, thus
        
Finally, we define the resultant external wrench 
 applied to the chassis expressed in 
 frame as follows:
       In (
20) we recognize three contributions. The first one is the aerodynamic wrench 
 which, following ([
9], Section 3.7.2), is decomposed into drag and lift components so that 
. Here, 
 is the air density, 
S the frontal area of the vehicle, 
 the forward velocity, 
 the nominal height of the CoM from ground, and 
 the distances of the CoM from the front and rear axle. The drag and lift coefficients 
 and 
 are dimensionless parameters that depend on the shape of the vehicle’s body. 
 can be further partitioned into 
 and 
 according to the 
aerodynamic balance coefficient, which is a parameter of the vehicle set-up. The second contribution in (
20) is the reaction of the driving torque 
, conveniently transformed into frame 
.
The last contribution  is the own weight of the chassis in . Its general expression is of the form , with  in frame .
  3. Vehicle Dynamics
In this section we derive the equations of motion governing our articulated system. Ultimately, we will be able to express the system dynamics in the classical state-space form as follows:
     In this way, the dynamical equations are ready to be embedded into our MLTP formulation.
As state variables, we take the velocity and position variables defined in 
Section 2.1. More explicitly, our state vector is 
. Here, 
 collects the Cartesian coordinates and Euler ZYX angles of the chassis with respect to the inertial frame 
, 
 is its distal rigid-body velocity, 
 collects the four suspension travels, 
 their derivatives, and 
 the speeds of the four wheels. As control input, we take 
, where we cast the driving/braking torque 
T and the steering wheel angle 
 (for optimization purposes, we shall omit the contributions of 
 and 
).
To compute the derivative of the state vector 
, we start by noting that, given 
, the derivatives 
 are readily obtained as
      
      where 
 is the geometric Jacobian of the virtual six-DoF joint connecting 
 to 
. The matrix 
 is systematically computed through a PoE parameterization of the transformation 
, in analogy to what has been carried out for 
 in Equation (
3). No further consideration is here necessary, since 
 have independent components.
We now need to find the derivatives of the velocity variables, 
. For this, the equations for the motion of the vehicle must be formulated. We rely, for this task, on a computational method inspired by the 
articulated-body algorithm (ABA) by Featherstone ([
12], Section 7.2). The key concept of the approach is that of an articulated body: its inertia is that of the original 
parent rigid body, plus the portion of the sub-tree (of the 
children bodies) which can be 
structurally transmitted backward to the 
parent through the joints. This allows us to build the equations of motion recursively and in such a way that, in the end, one can obtain explicitly (non matrix inversion is required) the acceleration of each body decoupled from the others. Besides being compact and systematic, the process also presents clear computational advantages.
To adapt the ABA to the case of our vehicle, some observations about the basic features of the system are in order. First and foremost is that the chassis 
 (root of the kinematic tree), is a free-floating body in the inertial reference frame 
: its rigid-body acceleration 
 is not available as external and independent information, but is the result of the motion of the other bodies of the system, ultimately depending on the wrenches 
, 
, and 
 exchanged with the external environment by it and its 
children bodies. Another complication is that, as detailed in 
Section 2, the one-DoF suspension joints connecting 
 to 
 are not merely revolute or prismatic, but are complex joints whose motion subspaces depend on their current configuration, ultimately encoded in 
z. Moreover, at the front wheels, the suspension joints are not only configuration-dependent with respect to 
z, but also time-varying joints (through the control input 
 and its derivatives). A way to tackle all these issues is shown following the steps of the ABA in the remainder of this section.
In Algorithm 1, rigid-body velocities are propagated forward across the nodes of the kinematic tree in 
Figure 3 from the root node to the leaves. (In the pseudo-code Algorithms 1 and 2, the articulated inertia and bias, 
 and 
, are expressed in the same reference frame as the respective rigid-body velocity 
, for 
.) Starting with the rigid-body velocity 
 of the chassis 
, which is directly available from the state vector 
x, the computation of the rigid-body velocity is propagated first to the knuckles 
 and then to the rims 
. The relative rigid-body velocities 
 realized by the suspension are computed according to Equation (
6), using the joint velocities 
 and 
 together with the Jacobians 
 and 
 defined in Equation (
5). (Note that, for a front-wheel-steering vehicle, the contribution relative to 
 is null at the rear wheels.) To compute the relative rigid-body velocities 
 realized by the hub bearings, we use the wheel speeds 
 together with the (constant) Jacobian 
, that represents the screw coordinates of the hub axis.
      
| Algorithm 1 Forward Propagation of Velocity | 
- 1:
 for  do   - 2:
        - 3:
             ▹ Knuckle Rigid-Body Velocity   - 4:
        - 5:
                 ▹ Rim Rigid-Body Velocity   - 6:
 end for  
  | 
| Algorithm 2 Backward Propagation of Articulated Inertia and Bias | 
-  1:
 for  do   -  2:
                           ▹ Rim Articulated Inertia   -  3:
                    ▹ Rim Articulated Bias   -  4:
        -  5:
        -  6:
                          ▹ Knuckle Articulated Inertia   -  7:
                         ▹ Knuckle Articulated Bias -  8:
        -  9:
        - 10:
 end for  - 11:
             ▹ Chassis Articulated Inertia   - 12:
          ▹ Chassis Articulated Bias   
  | 
The chassis velocity 
 is transformed into 
 via the (inverse of the) adjoint operator
      
      where 
 is computed as a function of 
z (and 
), as shown in 
Section 2.2. Since for the rims we use the same reference frame as the knuckles, no adjoint transformation is needed between 
 and 
 quantities.
In Algorithm 2, we compute the articulated inertia 
 and bias force 
 of each body. According to [
12], the articulated inertia 
 is the inertia that a body appears to have when it is part of an articulated system of bodies. The articulated bias force 
 is defined instead as the value that the resultant wrench 
W applied by the parent node on the tree should take in order for the rigid-body acceleration 
 of a body to be null. Using the concepts of articulated inertia and bias, the Newton–Euler equation for the generic articulated body can be written in the form
      
      For a leaf node of the kinematic tree, the articulated inertia 
 is the generalized inertia matrix of the body 
M itself. Accordingly, the articulated bias 
 reduces to
      
      where 
 is the resultant external wrench applied to the body and 
 accounts for the generalized gyroscopic and centrifugal forces, which are bi-linear in 
V. According to ([
20], Section 4.3.3), we defined 
. (If 
v and 
 are the translational and rotational component of 
V, then 
.)
In the case of our vehicle, the leaf nodes are the rims 
 (see 
Figure 3). Once their inertia and bias are initialized as 
 and 
, the standard ABA equations are applied, as illustrated in [
12], to compute the articulated inertia and bias of the knuckles 
 (parent of each leaf) as 
 and 
. The process is then repeated to get the articulated inertia and bias of the chassis 
 (root of our kinematic tree) as 
 and 
.
To successfully back-propagate articulated inertias and bias forces, we must provide the algorithm with the necessary information about the external forces, the geometry of the joints, the mass distribution of the bodies, as well as their current state of motion. In this respect, we observe that the rigid-body velocities 
 are known from 
Step 1. Under our simplifying assumptions that 
, the chassis and the rims are the only bodies provided with non-null mass distribution; their inertia matrices 
 and 
 are given and constant and are expressed in the reference frames 
 and 
, respectively. As far as the external forces are concerned, the wrenches 
, 
 and 
 are computed according to Equation (
17), (
19), and (
20). Finally, to capture the geometry of the motion allowed by the joints, we use again the Jacobians 
 as well as 
, and 
 from Equation (
5) and their derivatives 
 and 
 from (
10). The generalized suspension forces 
, which account for the transmission of the actions from the knuckles to the chassis through the springs and dampers, are computed using Equation (
14).
In Algorithm 3, the algorithm outputs the derivatives of the velocity variables, 
, 
 and 
. To obtain 
, we solve the Newton–Euler equation (
24) for the acceleration of the chassis articulated body. The left-hand side is zero, since the chassis is free-floating with respect to the inertial reference frame, meaning no wrench is exerted by the virtual six-DoF joint. Knowing 
, we can then calculate the suspension travel accelerations 
 by projecting the Newton–Euler equation of the knuckle along the direction of 
 and solving for 
. With 
, we can calculate the rigid-body acceleration 
 of the knuckle. The knowledge of 
 is necessary to compute the wheel angular accelerations 
, using a similar procedure as for 
.
      
| Algorithm 3 Forward Propagation of Acceleration | 
- 1:
                  ▹ Chassis Rigid-Body Acceleration   - 2:
 for  do   - 3:
        - 4:
        - 5:
             ▹ Knuckle Rigid-Body Acceleration   - 6:
        - 7:
 end for  
  | 
We have finished describing the three steps of the articulated-body algorithm, which, along with Equation (
22), are crucial components of our state transition function 
 in Equation (
21). It is important to note that 
 relies on numerous parameters, including both constant and time-varying data. The constant data include all the dimensions, coefficients, and parameters utilized in the model’s creation. On the other hand, the time-varying data pertain to the coordinates of the track frame 
S (specifically, the Cartesian coordinates 
 and the Euler ZYX angles 
), which are required to compute the external wrenches in Equations (
17), (
19) and, (
20). It is the presence of the latter that causes the state transition function to become a time-varying function.
  5. Validation and Results
In this section we report the solution of a MLTP problem with data from a real racetrack. The optimization is carried out on the Nürburgring Nordschleife circuit for a Formula SAE car. To help visualize the outcome of the experiment, we set up an animation and made it available online [
25].
To validate the results, the optimal solution found with the proposed model is compared with that obtained by running a 
double-track model on the same scenario. The double-track model is well established in the vehicle dynamics literature (see, e.g., [
9], Section 7.3). Being simple and efficient, it is a useful device to capture the gross motion of the vehicle. On the other hand, the proposed approach is useful for more in-depth analyses of the effects relative to higher-order dynamics offered by our full-fledged multibody model. Compared to the double-track model, the ABA model features: (i) exact rigid-body motion of the chassis, (ii) independent motion of the wheels, (iii) detailed kinematic model of the suspension, (iv) dynamic load transfers accounting also for chassis motion, and (v) dynamic effects induced by traveling along a 3D track with appreciable variations in slope and banking.
Of course, this greater level of detail comes at the expense of a higher computation time. The dimension of the NLP resulting from the ABA-based approach is double compared to that of the double-track. To instantiate the problem, we consider a sector of the circuit with approximately 2 km length. With the proposed ABA-based approach, the NLP comprises 156,000 decision variables and takes 15 min to be solved. With the double-track, we have 78,000 variables and a computation time of 3 min on the same hardware (Simulations were carried out using a 2.30 GHz Intel(R) Core(TM) i7-10875H CPU laptop with 32 GB RAM).
In 
Figure 7, we report the racing lines obtained by the classic double-track and the proposed ABA-based approach (light and dark red lines, respectively). The main differences can be ascribed to higher-order dynamics elicited in the ABA model by the 3D features of the track, which are not fully captured by the double-track model.
Figure 8 shows the trajectories of the most relevant components of the state vector. The 
forward velocity , the 
lateral velocity  and the 
yaw rate  are plotted for both the double-track and the proposed ABA model. The trajectories of the former, which appear smoother, are plotted with a shaded line in the background whereas those of the latter are plotted with a solid line in the foreground. Overall, we observe that our ABA model essentially follows the trend defined by the double track; on top of that, it features a richer dynamical presence, which becomes particularly evident in correspondence to sharp corners and highly sloped points of the track.
 The input trajectories in 
Figure 9 also follow the same trend. The only appreciable difference between the two models is recorded near corner ①, which the ABA model manages to travel at a higher speed. In fact, this different behavior is reasonable and denotes a peculiarity of our approach. As we point out in the description of 
Figure 10, the ABA-based planner takes full advantage of the 3D nature of the track to attain a smaller lap-time (57.1 s against the 58.4 s of the double-track). In the particular case of corner ①, the favorable banking and slope angles of the track allow higher vertical loads leading to a sharper negotiation of the corner.