How to Measure Dynamic Tilt with an IMU
Автор: ACEINNA
Загружено: 2018-12-13
Просмотров: 9536
How to measure dynamic Tilt and orientation with an IMU; more info at https://www.aceinna.com/inertial-syst...
Welcome to Aceinna's Developer Channel. I am Mike Horton, CTO of Aceinna and your host. In today's video, we will talk about how to measure dynamic tilt angle on a moving vehicle with an IMU or Inertial Measurement Unit. Dynamic tilt can also sometimes be called dynamic orientation, attitude or inclination. I will use these terms interchangeable in this video.
Why would you want to know the dynamic tilt angle on a vehicle? Well let's start with a classic example of a plane in the clouds, in this case a pilot can not see the ground, nor can he or she trust their instincts because they will feel a false gravity when the aircraft is turning. So this means they need a dynamic tilt sensor which as an aircraft instrument is called a vertical gyro or the artificial horizon.
With cars getting smarter and smarter, and then move to autonomous navigation techniques in vehicles there is a real need for accurate dynamic orientation data of the car. Orientation is just another way of saying dynamic tilt and heading. How to build your own dynamic tilt sensor using the OpenIMU platform from Aceinna.
We can measure tilt angle with the three-axis accelerometer in the IMU and we are done.
In fact, we have the math here and a nice open source application than runs on Aceinna's OpenIMU hardware called the 'Static Leveler' algorithm that implements this math, and like all OpenIMU algorithm applications you can compile and download this code into an OpenIMU using Aceinna's free visual studio code extension found in the Microsoft extension marketplace.
Okay so I have done just that with this OpenIMU and we can see the tilt response of Barbie's car live using OpenIMU. You can see the car respond in pitch angle as I pitch the car. Now we can also do this same experiment with a simple glass of milk. Why is this milk blue btw? Anyway using the glass of milk, you can see clearly here the the big problem, the accelerometer responds to not only the TILT but also the linear acceleration, and we simply can't tell them apart with an accelerometer alone.
Let's see it live on barbie's car, and you can see the massive response on the red line - the supposed pitch angle. This pitch angle should be zero - the car is not pitching it is actually driving on a flat surface! So what do we do about this problem? We need to use the IMU's other three sensors, the angular rate sensors which are also commonly called gyros.
A angular rate gyro responds to a rotational rate, and that rotation rate can be integrated to an angle. And you cans see that in the simulate gyro signal in the red curve above, if I integrated the red curve I get a 90 degree change to the left and then a second 90 degree turn to the right. And the big bonus here is that a gyro does NOT respond to linear acceleration as well, it only responds to angular change. ‘
But, it is not easy as just using a gyro because a gyro has two big problems for measuring dynamic tilt. Those problems are (1) it is a relative measurement and has not absolute reference like a tilt or inclination sensor does and (2) integrating angular rate to angle will slowly drift off causing the attitude error to grow. So we really need a solution that combines both acceleration and gyro measurement, and that is why a full 6-axis IMU is typically at the core of dynamic tilt or attitude measurement.
Here is a block diagram of what a typical IMU based solution looks like hardware wise and this is how Aceinna's OpenIMU is also configured. As compared to the static leveler algorithm, we need do upgrade the math to blend both the gyro-based solution and accelerometer-based solution into one clean output. This is best done with an Extended Kalman Filter and the two equations here summarize the key math needed by the Kalman Filter to measure dynamic tilt. It is a little more complex but the good news, is the OpenIMU platform also provides a turn-key open-source algorithm application that implements this function. This is the VG_ARHS app, found here.
This app can also be compiled and loaded onto your OpenIMU. And I have done just that already. Now if barbie and ken go out for a drive, we can see that while the OpenIMU still responds to tilt change, the unit does not response to acceleration. Nor does the solution drift off or become inaccurate over time. In esscence, we have implemented an accurate dynamic tilt measurement.
So in summary:
1. An IMU is Required for Dynamic Tilt and Orientation Measurement
2. Algorithm MUST combine Both Acceleration and Angular Rate Measurement
3. Extended Kalman Filter is a good way to use Acceleration to smoothly correct drift of Angular Rate Measurement and also provide an absolute reference
4. More Details on OpenIMU are available including more details on the math implementation https://www.aceinna.com/openimu
Доступные форматы для скачивания:
Скачать видео mp4
-
Информация по загрузке: