注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

FY

Johnson 's Blog

 
 
 

日志

 
 

how the accelerometer compensation works  

2016-04-20 17:06:20|  分类: 飞控 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
http://diydrones.com/forum/topics/robust-estimator-of-the?id=705844%3ATopic%3A61100&page=13#comments

First off, I assume that you have read the document that we wrote on the subject, but if not, here is a 
link to it. It explains in more detail the process for using the accelerometers and GPS to compensate for gyro drift. I will summarize how the accelerometer compensation works.

1. First, compensate the accelerometer measurements for centrifugal acceleration.

2. Next, take the cross product of the compensated accelerometer vector with the bottom row of the matrix.

Remember, the bottom row of the matrix represents the projection of the earth Z axis into the coordinate system of the plane. So, step number two gives us the amount of rotation we need to align the two different estimates of where "down" is.

I think this step might be the one that is puzzling you, because it involves only the bottom row of the matrix. But that is correct, and it ties in with something that others have discovered: when you do the update rotation, only the bottom row is involved in the update for the bottom row. That is because, what the update is doing is rotating the vector represented by the bottom row into the new position of that vector.

Keep in mind that the vector produced in step two represents drift errors in ALL THREE GYROS.

3. The next step is to feed the rotation correction vector produced in step 2, plus the one produced for yaw using GPS, into a proportional plus integral negative feedback controller, to adjust for drift.

4. The next step is to add the output of the feedback controller to the gyro signals. Keep in mind that the output of the feedback controller is a vector with 3 components.

As you can see, the output of step 4 will affect all 6 of the off-diagonal elements of the rotational update matrix. Therefore, it affects ALL COMPONENTS OF THE DIRECTION COSINE MATRIX, not just the bottom row.

I hope this helps you. If you are still puzzled, please reread the DCM documentation. If you are still puzzled after that, please ask me more questions.


Possibly there is one other effect that might be confusing you: the accelerometers alone cannot completely cancel the gyro drift. That is because you need two vectors to establish an orientation, one alone will not work.

Stated another way, complete knowledge of which direction down is, does not help you determine which way is north.

When you take a close look at the relationship between the direction cosines, and the Euler angles, it becomes clear.

Take a look at equation 2 on page 10. You will see that the bottom row of the matrix depends on the roll and pitch Euler angles, but it does not depend on the yaw angle at all. That is consistent with the geometry of the situation. From the point of view of the plane, the Z axis of the earth appears exactly the same, no matter what the yaw angle of the plane is.

This means that we cannot detect yaw drift from the accelerometers.

Also note that the first two rows of the matrix in equation 2 on page 10 depend on all three Euler angles.


A. The output of the PI controller is a 3 dimensional vector, representing the errors in the three gyros.

B. The 3 dimensional output of the PI controller is added to the three gyro signals, to produce the three drift-compensated gyro signal, which is a 3 dimensional vector.

C. The drift-compensated gyro vector is multiplied by the time step to produce the 3 dimensional rotational update vector.

D. The rotational update vector is converted into a rotational matrix. This is the update matrix on the right hand side of equation 17 on page 15. You can see that the 3 components of the rotational vector get copied into 6 places in the matrix.

E. The direction cosine matrix is updated by doing the full matrix muliply shown in equation 17 on page 15.




The implementation of DCM that we are using in the code uses a different coordinate system than the standard "aviation" coordinate system. So, if you prefer, I could give you the answer in one of the following coordinate systems:

1. The standard aviation coordinate system. (X toward the nose, Y toward the right wing, Z down)

2. The coordinate system used in our code. (X toward the left wing, Y toward the nose, Z down)

3. The coordinate system that you are using. ( X? , Y?, Z?)
  评论这张
 
阅读(4)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017