**Simulation system to aid in vehicle simulator design**

**T Kader ^{I}; R Stopforth^{II}; G Bright^{III}**

^{I}Discipline of Mechanical Engineering, Mechatronics and Robotics Research Group (MR2G), University of KwaZulu Natal, South Africa, taahirkader@gmail.com

^{II}Discipline of Mechanical Engineering, Mechatronics and Robotics Research Group (MR2G), University of KwaZulu Natal, South Africa, stopforth.research@gmail.com

^{III}Discipline of Mechanical Engineering, Mechatronics and Robotics Research Group (MR2G), University of KwaZulu Natal, South Africa, brightg@ukzn.ac.za

**ABSTRACT**

**Additional keywords: **Parallel manipulator, Inverse kinematics, Motion cueing, Vehicle simulator

**1 Introduction**

A vehicle simulator makes use of a parallel manipulator to provide motion cues to the user. Parallel manipulators consist of a fixed base and a number of kinematic chains connected to a moving platform [1]. These manipulators have a large load carrying capacity which makes them ideal for usage in a vehicle simulator. Gough developed the first parallel manipulator used as universal tyre test machine [2]. Stewart developed a six-degree of freedom parallel manipulator to be used as a flight simulator [3]. Parallel manipulators have fairly straightforward inverse kinematics but have complex forward kinematics. Due to complex forward kinematics and difficulty to manufacture spherical joints at low cost [4], the development of lower degree-of-freedom parallel manipulators has been researched extensively. Lee and Shah [5] presented closed form solutions for the forward and inverse kinematics of a 3-DOF parallel manipulator.

Vehicle simulators first originated from the development of flight simulators. In the early 1980's Daimler-Benz created a high fidelity vehicle simulator [6]. Subsequent simulators have been created by General Motors [7], University of IOWA [8], and Toyota [9]. Vehicle driving was a task thought to be mainly dominated by visual information. In recent times it was shown that other sensory information, such as the vestibular system contribute to motion perception [10]. The vestibular system consists of the semi-circular canal and otolith. The otolith senses linear acceleration, via specific force, and head tilt relative to gravity. The semi-circular canal senses angular velocity. Vehicle simulators aim to replicate the motion sensations experienced in an actual vehicle. The problem is that the motion platform workspace is limited; this makes it difficult to recreate the motion sensations. Various motion cueing algorithms have been developed to try and replicate the sensations felt in a real vehicle [11]; these include the classical washout algorithm [12], adaptive washout algorithm [13], optimal washout algorithm [14] and model predictive control [15].

Commercial usage of vehicle simulators has increased due to lower costs and improved fidelity. A vehicle simulator was used in commercial truck driver training, to teach improved driving techniques which increased fuel efficiency [16]. The Arizona Department of Transportation (ADOT) used a vehicle simulator to train snowplough operators to react to potential hazards and improve fuel efficiency with improved driving techniques [17]. Mining simulators are now also used extensively to train operators in a safe and realistic environment and many mining companies now see the value in purchasing such systems.

SimMechanics is a toolbox that provides a multibody simulation environment which allows the modelling and simulation of mechanical systems using their geometric layout and structural properties [18]. Yu et al. [19] developed a simulation system in Matlab/Simulink, using the SimMechanics toolbox, to verify the inverse kinematic equations for a 3-DOF motion platform. Motion simulators operate with position control systems that have limited performance. In the current vehicle simulator, illustrated in figure 1, the motion platform is a 3-DOF platform that is driven by three linear pneumatic actuators. These actuators have motion constraints that are imposed on them. It is important to adhere to these constraints to prevent mechanical damage of the vehicle simulator and to ensure safety of the driver. Many formatting features of this journal have developed over decades of mostly the printed version and present policy is to honour this tradition by minimizing deviations from this formatting. The word processing program of choice remains Microsoft Windows. The editorial/copy editing process is integrated, so that as the final MS-Word version emerges, it merely needs to be converted to .pdf file format for publishing on the internet.

]]>

The research contributions of this paper include:

• Developing a simulation system, in Matlab/Sim-ulink, that incorporates the vehicle input data scaling and classical washout algorithm implementation into the inverse kinematic analysis simulation system developed in previous work [19,20].

• Using the developed simulation system to take in the vehicle data directly and analyse the output from the structural model of the motion platform to determine if the motion platform adheres to the motion constraints imposed. By incorporating the vehicle input data scaling and classical washout algorithm into the simulation system, the parameters of these systems are adjusted easily in the simulation environment until the actuator motion constraints are adhered to. Once reasonable and safe performance is achieved the system can be implemented on the actual 3-DOF motion platform.

• Additionally the developed simulation system is used to evaluate the classical washout algorithm and to verify the derived inverse kinematic equations. The developed simulation system is applicable to all commercial vehicle simulators that make use of parallel manipulators.

**2 Kinematic Analysis**

**A**(x, y, z) is attached to the centroid,

**O,**of the base of the motion platform and coordinate frame

**B**(u, v, w) is attached to the centroid,

**P,**of the moving platform.

The x-y plane contains revolute joints *A _{t}*,

*i = 1*to 3, and the u-v plane contains universal joints

*B*,

_{t}*i = 1*to 3. The linear actuators used in the system are themselves kinematic constraints, these actuators consist of cylindrical joints designed to provide linear motion in the actuator axis direction and rotational motion about this axis. The motion of a point on the moving platform can be fully expressed in the fixed base coordinate system

**A,**by a translational component and a rotational component. To describe this motion some parts of the motion has to be transformed from one coordinate system to another coordinate system. Unit vectors

**u, v, w,**are defined along the u, v, w axes of the moving coordinate system

**B.**The rotation matrix from coordinate frame

**B**to coordinate frame

**A**is defined as:

The vectoris the position of the revolute joint *A _{t}* with respect to the frame

**A**and vector is the position of the universal joint

*B*

*i*with respect to the frame

**B.**

The three revolute joints, in the base coordinate frame **A, **are located at the following coordinates in metres * ^{A}A_{1} = *[0.6 0

*0]*[-0.6 0.25 0]

^{T},^{A}A_{2}=^{r}and

*[-0.6 -0.25 0]*

^{A}A_{3}=^{T}.

The three universal joints, in the moving platform coordinate frame **B, **are located at the following coordinates in metres * ^{B}B_{1}*= [0.5 0 0]

^{r},

*= [-0.5 0.15 0]*

^{B}B_{2}^{r }and

*= [-0.5 -0.15 0]*

^{B}B_{3}^{T}.

**P,**the centroid of the moving platform, with respect to fixed base frame

**A**is represented by

*=*

^{A}P*[P*

*x*

*P*

*y*

*P*

*z ]*.

^{T}The position vector *q _{t}*of

*B*with respect to coordinate frame

_{t}**A**is given by the following transformation:

The motion of each limb is constrained by the revolute joints, which attaches the limb to the fixed base. The motion is constrained in one of the following three planes:

Expanding the above motion constraint results by using the position vector *q _{t}*of

*B*with respect to coordinate frame

_{t}**A**for

*i*= 1 to 3 gives the following:

On the platform a rotation about the x-axis (roll) is represented by 𝛼, a rotation about the y-axis (pitch) is represented by 𝛽 and a rotation about the z-axis (yaw) is represented by 𝛾. The following short form representations are used throughout the rest of this paper, sin∎=s∎, cos∎=c∎, tan∎=t∎and sec∎=𝓈∎.The rotation matrix for the platform is subsequently given by:

Adding Eq. (4) and Eq. (5) and substituting with values from Eq. (6) the motion constraint for the y-axis translational motion is given by:

]]>Subtracting Eq. (5) from Eq. (4) and substituting with values from Eq. (6) the motion constraint for the x-axis translational motion is given by:

Substituting *u _{y}*=

*sycp,*which follows from Eq. (1) and Eq. (6), into Eq. (3) results in the following motion constraint for rotational motion about the z-axis:

From figure 2 the leg vector *S**i *= *[s _{ix} s_{iy} s_{iz}]^{T}*with respect to frame

**A,**is given by:

The magnitude of each leg vector gives the leg length of each leg. Taking the magnitude of each leg vector *s _{t}*gives the following leg length equations for

*i*= 1 to 3:

The leg length equations determine the actuator stroke lengths for a particular trajectory of the end-effector.

]]>**3 Motion Cueing**

The classical washout algorithm is designed to replicate the motion sensations felt in a vehicle without breaching the platform workspace constraints. Implementation is divided into two channels, the first channel is used for translational motion and the second is used for rotational motion. Inputs to the motion cueing strategy are the specific force vector and angular velocity vector experienced in the vehicle. The algorithm aims to replicate these signals, within the motion simulator at the centroid of the moving platform coordinate system **B, **as closely as possible.

Figure 3 illustrates the translation channel for the classical washout algorithm. The translational channel is used to replicate the transient component of the vehicle specific force vector

is first scaled to help constrain platform motion. The scaled vector is used to generate the acceleration vector for the centroid of the moving platform **B. **Reid and Nahon^{21} showed that the gravitational vector signal *g _{i }*is given by:

**A,**this is done by multiplying by the rotation matrix

*. Filtering is then performed on to filter out sustained accelerations and perform washout. The washout process is used to return the motion platform back to the neutral (centre) position. This helps in preventing steady state motion errors on the actuator legs. The output acceleration vector is then integrated twice to produce the platform position vector*

^{A}R_{B }

^{A}P = [P*x*

*P*

*y*

*P*

*z]*in the inertial coordinate frame

^{T},**A.**

Figure 4 illustrates the rotational channel for the classical washout algorithm. The rotational channel is composed of two parts, which together produce the rotation (roll-pitch-yaw) angles for the motion platform.

The first part is called tilt coordination. Tilt coordination is used to replicate the sustained component of the vehicle specific force vector via tilt of the motion platform. It aims to use a component of the gravity vector to simulate a sustained specific force. This is interpreted by the otolith as a sustained linear acceleration. The process starts with the signal which is scaled and passed through a low-pass filter, this extracts the low frequency vector *. *In the absence of rotational motion from the vehicle angular velocity vector *, *the roll-pitch-yaw angles can be represented by:

For a simulator with small rotation angles the following approximations, from Reid and Nahon^{21}, are used *, sin** * and *cos * The roll-pitch-yaw angles based on the sustained specific force vector *f _{L}*are subsequently approximated by:

With * ^{A}T_{B}*a transformation commonly used to transform from angular velocity in coordinate frame

**B**to roll-pitch-yaw angle rates in coordinate frame

**A,**this transformation was shown previously

^{21}, and is given by:

The signal is high-pass filtered to remove the sustained component of the roll-pitch-yaw angle rate and perform washout as in the translational channel case. The signal is integrated to give the high frequency signal for roll-pitch-yaw angles The roll-pitch-yaw angle components for the sustained specific force vector and the vehicle angular velocity vector are combined to give the roll-pitch-yaw angle values used:

Higher order filters are used due to more demanding accelerations experienced in a vehicle as compared to a flight simulator^{22}. A 3^{rd} order filter is used for HP Filter in the translational channel, 2^{nd} order filter for LP Filter in the rotational channel and a 2^{nd} order filter for HP Filter in the rotational channel.

**4 Simulation System**

Figure 5 illustrates the Matlab/Simulink simulation system containing all the components involved in the vehicle simulator data processing setup. This system includes input vehicle data scaling, classical washout algorithm and inverse kinematic implementations. The body sensor block below connects to the structural model and takes in the platforms position and orientation and presents it in a suitable form in the scope outputs. The simulation system designed was used to test the most important aspects in the vehicle simulator. These include testing:

]]>• The inverse kinematics in replication of the trajectory of the input data.

• The classical washout algorithm in effectively performing platform washout.

• The effectiveness of the input data scaling and filter parameter selection, in the classical washout algorithm, in ensuring the motion platform constraints are not violated, this ensures safe operation on the actual 3-DOF motion platform.

The position control system, selected for the actuators, is a pneumatic system. It employs three pneumatically driven linear actuators and performs position control on each of these actuators. The system itself is limited to the following actuator position, velocity and acceleration values shown in table 1. Based on these constraints the vehicle input data scaling and classical washout filter parameters was varied. The objective was to get the actuator motion to be within the position, velocity and acceleration limits imposed.

]]>

**5 Results and Discussion**

The scaled input values selected in the classical washout algorithm for the simulation system in figure 5 are illustrated below in figures 6 and 7. The scaled specific force uses a scale factor of 0.5 to scale the input vehicle data. The scaled angular velocity uses a scale factor of 0.5 to scale the input vehicle data. These scale factors help ensure platform workspace limits are respected without significantly degrading the input vehicle data.

]]>

The first part of the simulation verified the derived leg length equations. 11, 12 and 13, for the inverse kinematics, are correct and the washout process is effective in returning the platform to neutral (centre) position. The structural model block was built with SimMechanics and designed based on the geometrical structure of the vehicle simulator platform. The inverse kinematics block takes in the three independent motion parameters of roll, pitch and heave. These values are output from the classical washout algorithm. The inverse kinematics block outputs the actuator stroke lengths, which is based on the derived leg length equations 11, 12 and 13. The structural model will take in the actuator stroke lengths and move the actuators accordingly. The body sensor block outputs the platform trajectory, (position and orientation) to the scopes, for this actuator motion.

Figures 8 to 10 does a trajectory comparison for the three independent platform parameters of heave, roll and pitch. The input trajectory in these figures show the desired motion required to replicate the motion in the vehicle. The structural model output trajectory in these figures matches the input trajectory. The maximum errors are 0.0019 m for the heave (z-axis), 0.3074 deg for the roll (x-axis) and 0.2497° for the pitch (y-axis). The mean errors are 0.00036 m for the heave motion (z-axis), 0.0219° for the roll (x-axis) and 0.0289° for the pitch (y-axis). These error values are acceptable to be used in a vehicle simulator system, since these systems do not require high precision movements. These results show that the derived leg length equations 11, 12 and 13 are acceptable for the 3-DOF motion platform used in the vehicle simulator, since the input and output trajectories correlate. It can also be seen that the washout process is effective since the independent parameters of roll, pitch and heave all return to zero when the applied motion cue is complete. For the selected values for the input data scaling and filter parameters the maximum heave motion (z-axis) achieved for the platform was 0.0339 m and the maximum angle for the roll (x-axis) was 5.3° and pitch (y-axis) was 6.5°. These results represent reasonable performance for a research simulator.

]]>

Figure 11 illustrates the 3-D model for the 3-DOF motion platform for two instances in the simulation; this system, using SimMechanics, provided a visualisation tool of expected platform motion. It was also used to verify platform motion is correct, for e.g. the platform tilts backward about the y-axis (pitch) to replicate a positive acceleration in the x-axis direction as in figure 11(a). In figure 11(b) the driver was going around a curve and turning left, therefore the driver was tilted to the right to replicate the motion sensations experienced in the vehicle.

]]> The second and final aspect of the testing evaluated the actuator motion limits from the structural model output and determined if the actuator motions adhere to the constraints imposed. Figure 12 illustrates the actuator stroke length output from the structural model for each of the actuators. The platform sits at a height of 0.74 m at rest position, this means that

*p*= 0.74 m at rest. At rest position the length of Actuator 1 is 0.7411 m, Actuator 2 is 0.7843 m and Actuator 3 is 0.7843 m. Actuator 1 had a maximum motion change of 0.0512 m, actuator 2 had a maximum motion change of 0.0752 m and actuator 3 had a maximum motion change of 0.0729 m. From these results it is concluded that all three actuators adhere to the maximum possible actuator position limit of 0.1 m.

_{z}

Figure 13 illustrates the velocity output of each actuator from the structural model. Actuator 1 had a maximum velocity of 0.0937 m/s, actuator 2 had a maximum velocity of 0.1887 m/s and actuator 3 had a maximum velocity of 0.1897 m/s. The actuator velocity values all lie within the maximum permissible actuator velocity of 0.2 m/s.

]]> Figure 14 illustrates the acceleration output of each actuator from the structural model. Actuator 1 had a maximum acceleration of 0.8076 m/s

^{2}, actuator 2 had a maximum acceleration of 1.7322 m/s

^{2}and actuator 3 had a maximum acceleration of 1.7305 m/s

^{2}. The accelerations of all actuators lie within the maximum acceleration value of 2 m/s

^{2}.

The input data scaling and filter parameters selected ensured that none of the actuator motion constraints, in table 1, are violated. This result ensures safe operation for the driver in the vehicle simulator and safety of the mechanical structure for the vehicle simulator. It can be seen from the acceleration of the actuator legs that the actuators reach maximum acceleration for very short periods in time. This is due to the fixed filter parameters of the classical washout algorithm which is designed for the worst motion case. Therefore platform workspace usage is not optimised for the classical washout algorithm.

**6 Conclusions and Future Work**

This work presents a simulation system, developed in Matlab/Simulink, which allows for the vehicle data to be input directly into the system. Input data scaling, classical washout algorithm and inverse kinematics are performed in the system. The system facilitated for the appropriate input data scaling and filter parameters to be selected to ensure the actuator motion constraints are respected. The results show that the actuator motion constraints, in table 1, are respected. This ensures safe operation for the user and guarantees safety of the mechanical structure for the vehicle simulator. Inverse kinematic results obtained show that the derived inverse kinematics equations equations 11, 12 and 13 are correct and motion cueing results show effectiveness in performing washout.

The research contribution of this paper provides a simulation system to be used for a vehicle simulator. The simulation system assists in the design and development of the vehicle simulator, by ensuring the input data scaling and filter parameters are selected to ensure safety of the user and the vehicle simulator. Results from this work are applicable to all commercial vehicle simulators which make use of a parallel manipulator motion platform. In future work the addition of improved motion cueing techniques will be implemented. This will facilitate improved workspace utilisation and position control performance.

]]>**Acknowledgements**

This works is funded by the Council for Scientific and Industrial Research (CSIR) in South Africa.

**References**

1. *Patel YD and George PM, *Parallel Manipulators Applications - A Survey, *Modern Mechanical Engineering, *2012, 2 (3), 57-64. [ Links ]

2. *Gough VE and Whitehall SG, *Universal Tyre Test Machine, *Proceedings of 9th International Congress FISITA, *Institution of Mechanical Engineers, London, 1962, 117-135.

3. Stewart D, A Platform with Six Degrees of Freedom, *Proceedings of the Institution of Mechanical Engineers, *1965, 180 (1), 371-386. [ Links ]

*Tsai LW, Walsh GC and Stamper RE,*Kinematics of a Novel Three DOF Translational Platform,

*Proceedings of the 1996 IEEE International Conference on Robotics and Automation,*IEEE, Minneapolis, Minnesota, 1996, 3446-3451.

5. *Lee K and Shah DK, *Kinematic Analysis of a Three Degrees of Freedom In-Parallel Actuated Manipulator, *IEEE Journal of Robotics and Automation, *1988, 345-360. [ Links ]

6. *Drosdol J and Panik F, *The Daimler-Benz Driving Simulator A Tool for Vehicle Development, *SAE Paper *850334, 1985, SAE.

7. *Bertollini GP, Johnston CM, Kuiper JW, Kukula JC, Kulczycka, MA and Thomas, WE, *The General Motors Driving Simulator, *SAE Technical Paper *940179, 1994, SAE.

8. *Freeman JS, Watson G, Papelis YE, Lin TC, Tayyab A, Romano RA and Kuhl JG, *The Iowa Driving Simulator: An Implementation and Application Overview, *SAE Technical Paper *950174, 1995, SAE.

9. TOYOTA MOTOR CORPORATION, Toyota Develops World-class Driving Simulator, http://www.toyota.co.jp/en/news/07/1126_1.html.

10. *Kemeny A and Panerai F, *Evaluating perception in driving simulator experiments, *Trends in Cognitive Sciences, *2003, 7 (1), 31-37. [ Links ]

11. *Capustiac A, Banabic D, Schramm D and Ossendoth U, *Motion Cueing: From Design until Implementation, *Proceedings of the Romanian Academy, *Series A, 2011, 12 (3), 249-256. [ Links ]

12. *Schmidt SF and Conrad B, *Motion Drive Signals for Piloted Flight Simulators, 1970, Contractor Report NASA CR-1601, NASA.

13. *Ariel D and Sivan R, *False Cue Reduction in Moving Flight Simulators, *IEEE Transactions on Systems, Man and Cybernetics, *1984, 14 (4), 665-671. [ Links ]

14. *Sivan R, Ish-shalom J and Huang J, *An Optimal Control Approach to the Design of Moving Flight Simulators, *IEEE Transactions on Systems, Man and Cybernetics, *1982, 12 (6), 818-827. [ Links ]

15. *Baseggio M, Beghi A, Bruschetta M, Maran F and Minen D, *An MPC Approach to the Design of Motion Cueing Algorithms for Driving Simulators, *Intelligent Transportation Systems (ITSC), *14^{th} International IEEE Conference on Intelligent Transportation Systems, Washington, D.C., 2011, 692-697.

16. *Strayer DL and Drews FA, *Simulator Training Improves Driver Efficiency: Transfer from the Simulator to the Real World, *Proceedings of the Second International Driving Symposium on Human Factors in Driver Assessment Training and Vehicle Design, *Park City, UT, 2005, 190-193.

17. *Kihl M and Wolf PJ, *Using Driving Simulators to Train Snowplow Operators: The Arizona Experience, *Proceedings of the 2007 Mid-Continent Transportation Research Symposium, *Ames, Iowa, 2007, 16-17.

18. Sim Mechanics User's Guide, The MathWorks, Inc., http://www.mathworks.com/help/pdfdoc/physmod/sm/sm ug.pdf.

]]> 19.*Yu L, Zhang L, Zhang N, Yang S and Wang D,*Kinematics Simulation and Analysis of a 3-RPS parallel robot on SimMechanics,

*Proceedings of the 2010 IEEE International Conference on Information and Automation,*Harbin, China, 2010, 2363-2367.

20. *Shiong CY, Jalil MK and Hussein M, *Motion Visualisation and Control of a Driving Simulator Motion Platform, *Proceeding of the 6th International Symposium on Mechatronics and its Applications (ISMA09), *Sharjah, UAE, 2009, 1-5.

21. *Reid LD and Nahon MA, *Flight Simulation Motion- Base Drive Algorithms: Part 1, Developing and Testing the Equations, UTIAS Report No. 296, University of Toronto Institute for Aerospace Studies, 1985.

22. Reid LD and Nahon MA, Flight Simulation Motion- Base Drive Algorithms: Part 2, Selecting the System Parameters, UTIAS Report No. 307, University of Toronto Institute for Aerospace Studies, 1986.

Received 4 February 2016

Revised form 23 August 2016

Accepted 18 October 2016