试图使用MadgwickAHRS python脚本,但无法检索新的计算数据

时间:2016-11-04 13:13:40

标签: python

我正在开展一个项目,我想使用madgwick的AHRS过滤器。我正在尝试使用已翻译的Python代码(JonasBoër,2015),但我无法让它正常工作。该脚本可在此处找到https://github.com/morgil/madgwick_py

我无法理解课程的使用。下面是一个脚本,我首先导入了madgwickahrs.py中声明的类。其次,我为陀螺仪,加速度计和磁力计定义了1帧随机数据。 在此之后,我初始化类并调用类中的不同函数。 (注意:对于正常的数据数组,我应该将它放在循环中以计算每帧的新四元数列表)

import numpy as np
from madgwickahrs import MadgwickAHRS

gyr = np.array( [1.6, 0.6, 1.5])
acc = np.array( [1.2, 1.9, 1.3])
mag = np.array( [2.1, 1.3, 2.1])
gyr_rad = gyr * (np.pi/180)

new_data = MadgwickAHRS() 
# No parameters filled in means it will use the parameters stated 
in the script (sampleperiod = 1/256, quaternion = [1 0 0 0], beta = 1)

new_data.update(gyr_rad,acc,mag)
new_data.update_imu(gyr_rad,acc)

问题在于我不知道如何检索计算出的新四元数,最好将其设置为新变量,以便我可以将其用于脚本的其余部分。

希望我清楚自己,有人可以帮助我!

谢谢!

2 个答案:

答案 0 :(得分:1)

对我来说,以下方法有效:

heading = MadgwickAHRS()
        while True:
            ninedofxyz = self._ninedof.read()
            heading.update(ninedofxyz[0], ninedofxyz[2], ninedofxyz[1])
            ahrs = heading.quaternion.to_euler_angles()
            roll = ahrs[0]
            pitch = ahrs[1]
            yaw = ahrs[2]

此处提供了更多信息:https://github.com/morgil/madgwick_py/issues/2

答案 1 :(得分:0)

MadgwickAHRS还有Quaternion类实现,其中包含用于检索新四元数值的get_q()

new_data.quaternion.get_q()