# Measuring vehicle's forward and lateral acceleration using a smartphone [closed]

I want to measure the acceleration (forward and lateral separately) using an android smartphone device in order to be able to analyse the driving behavior.

My approach would be as follows:

## 1. Aligning coordinate systems

Calibration (no motion / first motion): While the car is stationary, I would calculate the magnitude of gravity using Sensor.TYPE_GRAVITY and rotate it straight to the z-axis (pointing downwards assuming a flat surface). That way, the pitch and roll angles should be near zero and equal to the angles of the car relativ to the world.

After this, I would start moving straight forward with the car to get a first motion indication using Sensor.TYPE_ACCELEROMETER and rotate this magnitude straight to the x-axis (pointing forward). This way, the yaw angle should be equal to the vehicle's heading relativ to the world.

Update Orientation (while driving): To be able to keep the coordinate systems aligned while driving I am going to use Sensor.TYPE_GRAVITY to maintain the roll and pitch of the system via

where A_x,y,z is the acceleration of gravity.

Usually, the yaw angle would be maintained via Sensor.ROTATION_VECTOR or Sensor.MAGNETIC_FIELD. However, the reason behind not using them is because I am going to use the application also in electrical vehicles. The high amounts of volts and ampere produced by the engine would presumably make the accuracy of those sensor values suffer. Hence, the best alternative that I know (although not optimal) is using the GPS course to maintain the yaw angle.

## 2. Getting measurements

By applying all aforementioned rotations it should be possible to maintain an alignment between the smartphone's and vehicle's coordinate systems and, hence, giving me the pure forward and lateral acceleration values on the x-axis and y-axis.

## Questions:

• Is this approach applicable or did I miss something crucial?
• Is there an easier/alternative approach to this?
• Is there a real-time requirement? Are you using many test subjects? – JSycamore Jun 16 '16 at 14:10
• Welcome to Robotics, RDoe. This type of question would be great for Robotics Chat, but for Q&A it's generally regarded as not constructive: "As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or specific expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. There is a relevant discussion on this topic at our meta site – Chuck Jun 16 '16 at 17:23
• Generally speaking I would comment that the EM fields from the vehicle should only affect the magnetometer. That is, you should still be able to use the yaw gyro. Check out the Madgwick filter for more info on gyro and accelerometer sensor fusion. (The algorithms are available for download in Matlab and C/C# at the bottom of the page) – Chuck Jun 16 '16 at 17:27