这段时间买了块数梅派,做了一个I2C驱动mpu9250的测试,成功输出了yaw,pitch,roll三个姿态角。但是鉴于不懂这数据是如何描述的,想来先看看用python坐下3D图试试。
pitch是围绕X轴旋转,也叫做俯仰角。当X轴的正半轴位于过坐标原点的水平面之上(抬头)时,俯仰角为正,否则为负。
yaw是围绕Y轴旋转,也叫偏航角。即机头右偏航为正,反之为负。
roll是围绕Z轴旋转,也叫翻滚角。机体向右滚为正,反之为负。
首先,我已经获取到了一组数据,大概380条。是用sqlite3记录的,为了在树梅派使用sqlite3还费了些功夫。先用pandas打开数据库。
cx = sqlite3.connect("mpu9250.db")
df = pd.read_sql_query("select * from mpu9250 ;", cx)
yaw = pd.DataFrame(df, columns = ['yaw'])
pitch = pd.DataFrame(df, columns = ['pitch'])
roll = pd.DataFrame(df, columns = ['roll'])
获取姿态角数据之后,就可以作图了,下面是作图的代码
fig = plt.figure()
ax = Axes3D(fig)
ax.scatter(yaw, pitch, roll)
ax.set_xlabel('pitch')
ax.set_ylabel('yaw')
ax.set_zlabel('roll')
ax.view_init(elev = 10, azim=235)
plt.show()
看来数据量太少,无法看出信息,本来是想验证下获取的数据是否正确的,看来只有先仔细看过代码之后,熟悉姿态角用法之后再重新做验证了。