## 1. Introduction

With the increasing demand for advanced driver assistance systems and automated driving vehicles, driving simulators hold the potential to transform the research and development of intelligent vehicles. They can reduce the cost and time incurred in the vehicle development process and help in designing robust and intelligent solutions. Furthermore, these simulators are increasingly being used for other purposes [

1,

2], such as human–machine interface studies, understanding driver behavior, and training of drivers in a safe controllable environment.

The effectiveness of such driving simulators is measured by their ability to generate realistic motion cues i.e., the driver or the passenger, sitting inside the simulator should perceived similar motion cues that s/he would perceived while sitting in a real vehicle performing the same maneuver. However due to its limited workspace, the driving simulator cannot be directly subjected to the vehicle motion as then the platform would quickly reach its physical limits and no motion cues could be provided to the driver any further. To overcome this limitation, motion-cueing algorithms have been developed. A Motion-Cueing Algorithm (MCA) is the strategy that governs the process of producing motion cues while keeping the motion platform within its physical limits. Thus, the main objectives of an MCA are the following:

The classical approach of designing an MCA is done by using the classical washout filters. The algorithm is a combination of multiple linear filters (as shown in

Figure 1). The translational accelerations are first high-pass filtered to extract fast dynamics, e.g., the change of acceleration during transitions. The resulting signal is double-integrated to determine the translational displacements of the platform. The slow dynamics, e.g., sustained accelerations, are extracted by filtering the translational accelerations using a low-pass filter in parallel to the high-pass filter. The resulting signals are reproduced by tilting the platform to exploit the gravitational acceleration (Tilt Coordination). The angular velocities are high-pass filtered and integrated to calculate the angular displacements. The purpose is to mainly generate motion cues during the transitions. Sustained yaw motion is eliminated from the signal as the motion platform has limited range of motion on this specific degree of freedom. The signals from the tilt channel and rotational channel are added to calculate the total angular displacements of the motion platform.

As per Nahon et al. [

3], the major advantage of using such algorithm is that its design is simple and computationally efficient. However, these algorithms have the following shortcomings as well:

Since the parameters of the filters are fixed, they must be designed for the worst-case maneuver. As a result, the algorithm does not use the available workspace for gentle maneuvers resulting in minimum motion.

Tuning the filters is a complex task because the filter coefficients should be modified based on subjective participant feedback without taking into account meaningful physical quantities.

Since there is no provision for incorporating the physical limits of the motion platform within the algorithm, the filters have to be tuned for each maneuver/participant to ensure that the motion platform remains within its physical limit.

To overcome these limitations, adaptive washout filter-based MCA is proposed. It tends to produce more realistic cues when the simulator is near the neutral position and only reduces the fidelity when the simulator is near its physical limits. The algorithm is based on minimizing a cost function comprising of penalties on the tracking error and the platform states. Generally, the optimization is performed by using the steepest descent method. The control scheme of a typical adaptive washout filter is shown in

Figure 2. Furthermore, similar to the adaptive washout filter, another scheme named the optimal washout filter is often used for motion-cueing applications [

4]. The difference between this approach is that instead of using a gradient descent to minimize a cost, it uses the solution of the algebraic Riccati equation to derive the optimal gain. Although the adaptive and the optimal washout-based filters provide a better solution than the classical washout filters [

3], the optimization problem is still solved without imposing any constraints on the physical states of the simulator, resulting in sub-optimal workspace use.

To address this issue, Model Predictive Control (MPC) technique has been recently applied to design an MCA. Its ability to handle constraints on system states and usage of the prediction model to regulate the current state makes it a well-suited alternative for this application. It has been shown that besides producing realistic motion cues, undesired effects like the occurrence of motion sickness are also lowered when using MPC-based MCA compared to the conventional filter-based approaches [

5,

6]. Recently, various approaches to MPC-based MCA have been explored and the superiority of this method compared to the conventional approach has been established for offline simulation and passive driving [

7,

8]. The scheme of a typical MPC-based MCA is shown in

Figure 3.

To keep the problem linear, the algorithms designed in the past [

9,

10] apply the constraints on the position and velocity of the driver’s eyepoint. In order to find the available workspace for the eyepoint displacement, the forward kinematic relations have to be used which is concerned with determining the displacement of the platform given the position of all the actuators. However for a six DOF motion platform, there are many solutions to the forward kinematic problem [

11] and only one of them corresponds to the actual pose of the platform. Generally, Newton-Raphson method is used to iteratively solve the forward kinematics problem. To reduce the computational effort, a conservatively chosen constant space is often used as the workspace for driver’s eyepoint. However, this tends to produce sub-optimal results. An efficient alternative to manage the workspace is to use actuator-based constraints instead of the eyepoint displacements. Garret et al. [

12] derived an MPC-based MCA which uses actuator-based constraints. However, linear approximations were applied to the constraints on the actuator lengths. This simplification also affected constraint handling as the inverse kinematics of the motion platform is nonlinear in nature. Degdelen et al. [

13], implemented the MPC-based MCA in the Renault ULTIMATE Simulator. The study was done for a single DOF cueing problem (surge acceleration) and tilt coordination was demonstrated as an extension to the basic algorithm. Taking it further, in [

14], an explicit MPC-based concept for the Renault ULTIMATE Simulator was proposed. The control problem was decoupled into four separate cases (pitch-surge, roll-sway, heave, and yaw) and a stability condition was determined. The algorithm operates in real time; however, fast degradation in the computational effort was observed as the problem extended to higher dimensions. Katliar et al. [

15,

16] implemented an MPC-based MCA which included the motion platform actuation for a Cable-Robot-based motion simulator. Their main finding was that with proper software and numerical methods, it is possible to run an MPC-based MCA with a complex model in real time.

In this paper, a new MPC-based MCA has been designed that incorporates the nonlinear kinematics of the Stewart platform. Inverse kinematics relations are used to calculate the length and the velocity of the actuators, which are included as states within the MPC framework. Moreover, the human vestibular system model is included within the MPC formulation to increase the fidelity of the produced motion cues. To manage the workspace efficiently, constraints are imposed on the actuator displacements and state-dependent adaptive weights are used to tune the MPC algorithm. The formulated nonlinear optimization problem is solved using the Real-Time Iteration (RTI) scheme [

17] to increase the computational efficiency of the algorithm. Thus, the main contribution and a distinctive feature of the proposed approach is an efficient algorithm producing high-fidelity motion-cueing by using a nonlinear MPC-based controller with actuator-based constraints and state-dependent adaptive weights.

The rest of this paper is structured as follows.

Section 2 describes the basics of Steward motion platform and the frames of references associated with it. The system model used within the MPC controller is derived in

Section 3.

Section 4 presents the details of the MPC formulation, including the objective function, constraints, reference generation, tuning and the optimization problem. In

Section 5, several performance indicators are described. The investigated scenario, simulation setup, results and discussion are presented in

Section 6. Finally, the conclusions and the recommendations for future work are presented in

Section 7.

## 2. Motion Platform

The motion platform generally used in driving simulators is a Stewart platform, which is a parallel manipulator controlled by six linear actuators [

18,

19]. These actuators are attached in pairs at three positions to the triangular shaped top plate called the moving base and at three positions to the fixed base plate at the bottom. In the case of the driving simulator, the vehicle cockpit is attached on top of the moving base. Since the motion platform can have a motion in three translational directions (surge, sway and heave) and three rotational directions (roll, pitch and yaw), it can imitate the motion of a freely suspended body [

20]. In this paper, the following three frames of reference with respect to the motion platform are used (shown in

Figure 4).

Inertial Frame (IF)—is fixed to the ground and does not move with the motion platform. The origin coincides with the centroid of the fixed base of the platform (Point

O in

Figure 4). The positive

x-axis points forward, in the direction of drive. The positive

y-axis points to the right, while the positive

z-axis points vertically downwards.

Platform Frame (PF)—is fixed to the motion platform and moves with it. The origin coincides with the centroid of the moving plate (Point

${P}_{0}$ in

Figure 4). Similar to the IF, the positive

x-axis points forward, the positive

y-axis points to the right, while the positive

z-axis points in the downwards direction. Since the PF is body-fixed, its axes are only aligned with that of the IF when the platform has a zero roll, pitch and yaw angle.

Driver Frame (DF)—is fixed to the driver’s head and moves with it. The origin coincides with the eyepoint of the driver (Point

${D}_{0}$ in

Figure 4). The positive

x-axis points forward, the positive

y-axis points to the right, while the positive

z-axis points in the downwards direction. Since DF is fixed to the driver’s eyepoint, its axes are only aligned with the IF when the platform has a zero roll, pitch and yaw angle.

It should be noted that throughout this paper, all the physical quantities are mentioned in IF unless specified by a superscript. Moreover, the translational acceleration vector is represented by the symbol a and consists of components in all the three canonical directions, i.e., ${\left[{a}_{x}\phantom{\rule{4pt}{0ex}}{a}_{y}\phantom{\rule{4pt}{0ex}}{a}_{z}\right]}^{T}$. Similarly, the translational velocity vector is represented by the symbol v and the translational displacement is represented by the symbol r. Furthermore, the angular acceleration vector is divided into rotational and tilt components. This is done to impose constraints on the tilt component without affecting the rotational component. The total angular acceleration is the sum of both the components and is represented by the symbol $\alpha $. The vector consists of angular accelerations in three canonical directions, i.e., ${\left[{\alpha}_{\varphi}\phantom{\rule{4pt}{0ex}}{\alpha}_{\theta}\phantom{\rule{4pt}{0ex}}{\alpha}_{\psi}\right]}^{T}$ (where $\varphi $, $\theta $ and $\psi $ are the angles in pitch, roll and yaw directions respectively). Similarly, the angular velocity vector is represented by the symbol $\omega $ and the angular displacement is represented by the symbol $\beta $.

## 4. MPC Formulation

The MPC controller uses the system model and the current state of the system to predict the evolution of the future state over a finite prediction horizon $\left({N}_{p}\right)$. Using this, the optimal control action is derived over a control horizon $\left({N}_{c}\right)$. Then, only the first control input is applied to the real system and the same process is repeated for the next time step. Therefore, the MPC input can be regarded as a nonlinear state feedback control input, obtained online by repeatedly solving the optimization problem—minimizing an objective function while adhering to the system dynamics and fulfilling the given constraints at every time step.

#### 4.1. Objective Function

The standard objective function for MPC consists of quadratic functions of both the tracking error and the control action along the prediction horizon. In this paper, the objective function is divided into two parts, namely the stage cost

$(\ell \left({x}_{c}\left(k\right),{u}_{c}\left(k\right)\right))$ and the terminal cost

$\left(V\left({x}_{c}\left({N}_{p}\right)\right)\right)$. The total objective function is given as:

The expression for stage cost is shown below:

where

Q and

R are the positive semi-definite weight matrices for a penalty on tracking error and control input, respectively. The stage cost function is defined such that it satisfies the following conditions:

The expression for the terminal cost is shown below:

where

P is the positive semi-definite weight matrix for a penalty on the tracking error at the terminal stage of the prediction horizon.

For finite prediction horizon problems, stability can be guaranteed by choosing a suitable terminal cost

$\left(V\right)$ and terminal attractive region

$\Omega $ [

30,

31]. Even though the conditions for asymptotic stability are clearly defined, choosing

V and

$\Omega $ is still an open problem [

32]. It is shown in [

33] that stability can be guaranteed by the tuning the matrices

Q,

R, and

P. Furthermore, a longer prediction horizon (

${N}_{p}$) would help the algorithm to achieve convergence at the cost of a more computational demanding problem.

#### 4.2. Constraints

For motion-cueing, the following constraints are generally applied:

The constraint on the tilt rate is to ensure that the tilt coordination effects are not perceived by the human-being. Therefore, the tilt rate should be limited to the threshold values for rotation. The tilt rate constraints were imposed based on the values derived in the research of Reid et. al. [

34] and listed in

Table 1.

Furthermore, the constraints on the actuator positions are to ensure that the platform remains within its physical limits. This is expressed as the maximum extension (

${l}_{max}$) and retraction (

${l}_{min}$) of the actuator allowed.

The set of states

$x\left(k\right)$ satisfying the aforementioned constraints is denoted by

$\mathbb{X}$. Therefore, the combined constraint equations are represented as:

#### 4.3. Reference Generation

The reference vector contains the following variables:

To ensure that the platform returns to neutral position, the reference for ${\omega}_{rot}$, ${\beta}_{rot}$, ${\omega}_{tilt}$, ${\beta}_{tilt}$, ${v}_{p}$, ${r}_{p}$, ${l}_{i}$ are set to zero for the entire prediction horizon. Furthermore, the reference for ${x}_{v}$ contains the reference for ${\widehat{a}}_{{D}_{0}}^{DF}$ and ${\widehat{\omega}}_{{D}_{0}}^{DF}$. These are computed by translating the translational acceleration and angular velocities obtained from the vehicle model to the driver’s eyepoint in DF and then passing them through the vestibular system model. Since the future reference is not available in advance, the current value of ${x}_{v}$ is kept constant throughout the prediction horizon.

#### 4.4. Adaptive Weight-Based Tuning

The weight matrices used in the above formulation are as follows:

In the conventional MPC scheme, the weights of these tuning matrices are fixed in advance. This approach works well if the individual states are not dependent on each other or if the properties of the system do not change during the course of the simulation. However, since the motion-cueing algorithm needs to adapt to the changing workspace, an adaptive weight-based tuning approach has been implemented in this paper. The fundamental idea of this approach is to increase the weight on the position error (${\mathit{W}}_{{\mathit{r}}_{\mathit{p}}}$) and velocity error (${\mathit{W}}_{{\mathit{v}}_{\mathit{p}}}$) non-linearly as the motion platform reaches near the actuator limit.

The adaptive weights-based tuning results in two main advantages. First, for a constrained MPC problem with a short prediction horizon, the resulting output trajectories are often not smooth when the system states reach the limits of the workspace. This is because the penalty on the system states is constant irrespective of the available workspace. By varying the tuning weights based on the available workspace, a damping action is provided resulting in smooth movement of the platform near the physical limit.

Secondly, the motion-cueing algorithms tend to produce false or missing cues due to constant tendency to perform washout. By keeping the weights on

${v}_{p}$ and

${r}_{p}$ low and only increasing it when the platform is near its limits, the adaptive weights-based tuning would also help to reduce the production of false or missing cues. The following weight function is proposed in this study:

where

$a,b,c$ and

d are fixed parameters. The effect of the aforementioned adaptive weight function can be seen in

Figure 5. Parameters

a and

c determine the value of the function at point

m in

Figure 5, while parameters

b and

d determine the value of the function at point

${n}_{1}$ and

${n}_{2}$ in

Figure 5.

It should be noted that the other tuning weights (except

${\mathit{W}}_{{\mathit{r}}_{\mathit{p}}}$ and

${\mathit{W}}_{{\mathit{v}}_{\mathit{p}}}$) in Equation (44) are kept constant and are shown in

Table 2. Since the magnitude of the perceived angular velocity is much smaller than that of the perceived translational acceleration, a high weight for it is chosen (i.e.,

${W}_{{x}_{v},\widehat{a}}$ <<

${W}_{{x}_{v},\widehat{\omega}}$). This scaling of weights is important so that the errors on both quantities are given equal weightage and the MPC algorithm seeks to track both quantities equally. Moreover, since the actuator displacements are already constrained and within the available workspace, free movement of the actuators is desired, a small weight is selected for the actuator displacement (

${W}_{{l}_{i}}$). Similarly, since the tilt rate is already constrained and free rotatory movement of the hexapod is desired, a low weight on the hexapod inclination angle (

${W}_{{\beta}_{rot}}$ and

${W}_{{\beta}_{tilt}}$) and inclination velocity (

${W}_{{\omega}_{rot}}$ and

${W}_{{\omega}_{tilt}}$) is chosen.

#### 4.5. Optimization Problem

The optimal control input is defined by solving the following optimization problem:

To solve the aforementioned optimization problem, ACADO toolkit [

35] is used including a real-time iteration scheme to solve the nonlinear MPC problem. Multiple shooting technique is used to discretize the nonlinear continuous-time system. The objective function, which is arranged in the least-squares form, is solved using Sequential Quadratic Programming (SQP) technique. The RTI scheme uses the warm-start technique with shifting procedure to linearize the system, i.e., the solution of the optimization problem at the previous time step is shifted and used as the new linearization point. To reduce the number of optimization variables in the QP problem, a condensing procedure is used [

28]. The resulting condensed QP problem is then passed to the qpOASES solver [

36] using the active set method to evaluate the solution. In order to reduce the computational time and solve the optimization problem, the RTI method divides the optimization problem into two parts:

Preparation step: The objective function is evaluated in the form of unknown state feedback ${x}_{0}$. The original QP problem is formulated and condensed into a smaller and denser QP.

Feedback step: The state feedback ${x}_{0}$ is substituted and the QP is solved to obtain the control input.

The preparation step is performed at the previous time step. As soon as the state feedback ${x}_{0}$ is obtained, it is substituted in the QP and the solution is obtained. In this paper, a sampling time of $0.01$ s was used with a prediction horizon ${N}_{P}=50$ and the control horizon ${N}_{C}$ equal to ${N}_{P}$.

## 7. Conclusions

This paper aimed to propose a new nonlinear MPC-based motion-cueing algorithm incorporating the dynamic response of the vestibular system and the nonlinear kinematic model of the Stewart platform. The tilt coordination scheme is captured within the vestibular system model. To incorporate constraints on the rate of g-tilting without affecting the production of roll, pitch or yaw cues, the rotational velocity states are decoupled into separate rotational states (for actual rotational motion) and tilt states (for tilt coordination). Constraints are imposed on the tilt states. In the motion platform model, the actuator positions and velocities are calculated by using the nonlinear inverse kinematics of the Stewart platform and included as states within the MPC framework. Furthermore, the actuator displacements are constrained. Lastly, to manage the actuator workspace efficiently and attain smoother movement of the platform, an adaptive weight-based tuning methodology has been proposed changing the tuning weights on the platform displacement and velocities as per the available actuator motion space.

The proposed algorithm is evaluated in full-track simulations and its performance is compared to the classical washout filter and linear MPC-based MCA. Based on the literature, several performance indicators are defined to objectively evaluate and compare the reference tracking and workspace use performance of different MCAs.

The results showed superior performance of the proposed algorithm in terms of reference tracking over the linear MPC and CWF-based algorithms. The proposed algorithm produced less false or missing cues compared to the classical washout filter and linear MPC-based MCA which might reduce simulator sickness. Lastly, the proposed algorithm showed better workspace use compared to the linear MPC and CWF-based algorithms.

The further work is focused on hard real-time testing using a physical hexapod to validate the findings of this paper. Other extensions include a subjective evaluation of the MCA in active and passive driving conditions.