在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

陀螺儀LSM6DSV16X與AI集成(11)----融合磁力計(jì)進(jìn)行姿態(tài)解算

嵌入式單片機(jī)MCU開發(fā) ? 來源:嵌入式單片機(jī)MCU開發(fā) ? 作者:嵌入式單片機(jī)MCU開 ? 2024-09-06 16:57 ? 次閱讀

概述

MotionFX庫包含用于校準(zhǔn)陀螺儀、加速度計(jì)和磁力計(jì)傳感器的例程。 將磁力計(jì)的數(shù)據(jù)與加速度計(jì)和陀螺儀的數(shù)據(jù)融合,可以大幅提高姿態(tài)估計(jì)的精度。三軸加速度計(jì)提供設(shè)備的傾斜信息,陀螺儀提供角速度信息,而磁力計(jì)提供方位信息,三者結(jié)合可以提供更加準(zhǔn)確和穩(wěn)定的三維方向和姿態(tài)信息。

需要樣片的可以加群申請:615061293 。

視頻教學(xué)

[https://www.bilibili.com/video/BV1oTsJeTErb/]

樣品申請

[https://www.wjx.top/vm/OhcKxJk.aspx#]

源碼下載

[https://download.csdn.net/download/qq_24312945/89682989]

硬件準(zhǔn)備

首先需要準(zhǔn)備一個(gè)開發(fā)板,這里我準(zhǔn)備的是自己繪制的開發(fā)板,需要的可以進(jìn)行申請。

主控為STM32H503CB,陀螺儀為LSM6DSOW,磁力計(jì)為LIS2MDL。

DataLogFusion

這里參考ST提供的DataLogFusion程序,DataLogFusion示例應(yīng)用展示了如何使用STMicroelectronics開發(fā)的MotionFX中間件庫進(jìn)行實(shí)時(shí)運(yùn)動(dòng)傳感器數(shù)據(jù)融合。

DataLogFusion的主要執(zhí)行流程包括初始化硬件和傳感器、中間件庫(MotionFX)的配置與初始化、傳感器數(shù)據(jù)的采集、實(shí)時(shí)數(shù)據(jù)融合以及結(jié)果的輸出。

磁力計(jì)校準(zhǔn)過程

MotionFX庫的磁力計(jì)校準(zhǔn)庫用于補(bǔ)償硬鐵失真。磁力計(jì)校準(zhǔn)可以以比傳感器融合輸出數(shù)據(jù)速率更慢的頻率進(jìn)行(例如25 Hz)。
● 初始化磁力計(jì)校準(zhǔn)庫:
● 調(diào)用 MotionFX_MagCal_init 或 MotionFX_CM0P_MagCal_init 函數(shù)。
● 定期調(diào)用校準(zhǔn)函數(shù):
● 調(diào)用 MotionFX_MagCal_run 或 MotionFX_CM0P_MagCal_run 函數(shù),直到校準(zhǔn)成功完成。
● 檢查校準(zhǔn)是否成功:
● 調(diào)用 MotionFX_MagCal_getParams 或 MotionFX_CM0P_MagCal_getParams 函數(shù)。如果函數(shù)返回 mag_data_out.cal_quality = MFX_MAGCALGOOD 或 MFX_CM0P_CALQSTATUSBEST,則校準(zhǔn)成功。

初始化磁力計(jì)

調(diào)用 MotionFX_MagCal_init 或 MotionFX_CM0P_MagCal_init 函數(shù)。這里通過調(diào)用 MotionFX_MagCal_init,確保磁力計(jì)校準(zhǔn)模塊處于準(zhǔn)備就緒狀態(tài),能夠正確處理和校準(zhǔn)磁力計(jì)數(shù)據(jù)。
通過初始化磁力計(jì)校準(zhǔn)庫,并定期調(diào)用校準(zhǔn)函數(shù),可以確保磁力計(jì)數(shù)據(jù)的準(zhǔn)確性,從而提高姿態(tài)估計(jì)的精度。

頻率定義。

#define ALGO_FREQ  100U /* Algorithm frequency 100Hz */
#define ALGO_PERIOD  (1000U / ALGO_FREQ) /* Algorithm period [ms] */

添加到初始化中進(jìn)行調(diào)用。

文檔中提到的磁力計(jì)數(shù)據(jù)要除以50,這是因?yàn)镸otionFX庫使用的單位是微特斯拉(μT)/50。

在lsm6ds3tr-c_app.h中添加定義。

#define FROM_MGAUSS_TO_UT50     (0.1f/50.0f)

MFX_Arithmetic_Init

MFX_Arithmetic_Init 的作用是初始化 MotionFX 算法庫,并進(jìn)行相關(guān)參數(shù)設(shè)置和配置。

由于現(xiàn)在是9軸解析,需要新定義用于保存 MotionFX 算法狀態(tài)的數(shù)組。

static uint8_t mfxstate_9x[FX_STATE_SIZE];

函數(shù)功能:
● 初始化 MotionFX 算法庫。
● 配置傳感器的偏置值和方向。
● 設(shè)置輸出參考模式。
● 啟用或禁用 6 軸和 9 軸 MotionFX 引擎。

void MFX_Arithmetic_Init(void)
{
    MFX_knobs_t iKnobs;
    MFX_knobs_t *ipKnobs = &iKnobs;


    /* 初始化 MotionFX 算法庫,參考自 AlgoBuilded 生成代碼 */
    /* 初始化 MotionFX 引擎 */
    MotionFX_initialize((MFXState_t *)mfxstate_9x);

    /* 獲取當(dāng)前的內(nèi)部結(jié)構(gòu)參數(shù) */
    MotionFX_getKnobs(mfxstate_9x, ipKnobs);

    /* 設(shè)置傳感器 */
    ipKnobs- >gbias_acc_th_sc = GBIAS_ACC_TH_SC_9X;
    ipKnobs- >gbias_gyro_th_sc = GBIAS_GYRO_TH_SC_9X;
    ipKnobs- >gbias_mag_th_sc = GBIAS_MAG_TH_SC_9X;

    /* 未知作用操作,數(shù)據(jù)定向? */
    ipKnobs- >acc_orientation[0] = ACC_ORIENTATION_X;
    ipKnobs- >acc_orientation[1] = ACC_ORIENTATION_Y;
    ipKnobs- >acc_orientation[2] = ACC_ORIENTATION_Z;

    ipKnobs- >gyro_orientation[0] = GYR_ORIENTATION_X;
    ipKnobs- >gyro_orientation[1] = GYR_ORIENTATION_Y;
    ipKnobs- >gyro_orientation[2] = GYR_ORIENTATION_Z;

    ipKnobs- >mag_orientation[0] = MAG_ORIENTATION_X;
    ipKnobs- >mag_orientation[1] = MAG_ORIENTATION_Y;
    ipKnobs- >mag_orientation[2] = MAG_ORIENTATION_Z;  

    /* 設(shè)置輸出參考模式,數(shù)據(jù)參考系 */
    ipKnobs- >output_type = MFX_ENGINE_OUTPUT_ENU;
    ipKnobs- >LMode = 1;
    /* modx 代表 MotionFX_update 函數(shù)調(diào)用頻率,
     *    modx = 1,每調(diào)用 MotionFX_propagate 函數(shù)一次,可調(diào)用 MotionFX_update 函數(shù)一次,適用于STM32F4系列處理器,
     *    modx = 2,每調(diào)用 MotionFX_propagate 函數(shù)兩次,可調(diào)用 MotionFX_update 函數(shù)一次,適用于STM32F1系列處理器。
     */
    ipKnobs- >modx = 1;

    /* 設(shè)置內(nèi)部結(jié)構(gòu)參數(shù) */
    MotionFX_setKnobs(mfxstate_9x, ipKnobs);

    /* 使能6軸 MotionFX 引擎*/
    MotionFX_enable_6X(mfxstate_9x, MFX_ENGINE_DISABLE);
    /* 關(guān)閉9軸 MotionFX 引擎*/
    MotionFX_enable_9X(mfxstate_9x, MFX_ENGINE_ENABLE);
}

卡爾曼濾波算法

運(yùn)行卡爾曼濾波傳播算法MotionFX_propagate。

根據(jù)需要更新卡爾曼濾波器MotionFX_update。

需要注意的是這2各算法非常吃資源,需要注意MCU算力分配。

函數(shù)結(jié)構(gòu)如下所示。

演示

和指南針一個(gè)方向。

偏移90度。

偏移180度。

偏移270度。

審核編輯 黃宇

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • 陀螺儀
    +關(guān)注

    關(guān)注

    44

    文章

    784

    瀏覽量

    98709
  • AI
    AI
    +關(guān)注

    關(guān)注

    87

    文章

    30887

    瀏覽量

    269065
  • 磁力計(jì)
    +關(guān)注

    關(guān)注

    1

    文章

    71

    瀏覽量

    20857
收藏 人收藏

    評論

    相關(guān)推薦

    陀螺儀LSM6DSV16XAI集成(1)----輪詢獲取陀螺儀數(shù)據(jù)

    本文將介紹如何使用 LSM6DSV16X 傳感器來讀取數(shù)據(jù)。主要步驟包括初始化傳感器接口、驗(yàn)證設(shè)備ID、配置傳感器的數(shù)據(jù)輸出率和濾波器,以及通過輪詢方式持續(xù)讀取加速度、角速率和溫度數(shù)據(jù)。讀取到的數(shù)據(jù)
    的頭像 發(fā)表于 12-18 10:49 ?1724次閱讀
    <b class='flag-5'>陀螺儀</b><b class='flag-5'>LSM6DSV16X</b>與<b class='flag-5'>AI</b><b class='flag-5'>集成</b>(1)----輪詢獲取<b class='flag-5'>陀螺儀</b>數(shù)據(jù)

    陀螺儀LSM6DSV16XAI集成(2)----姿態(tài)

    LSM6DSV16X包含三軸陀螺儀與三軸加速度計(jì)
    的頭像 發(fā)表于 12-18 10:51 ?2238次閱讀
    <b class='flag-5'>陀螺儀</b><b class='flag-5'>LSM6DSV16X</b>與<b class='flag-5'>AI</b><b class='flag-5'>集成</b>(2)----<b class='flag-5'>姿態(tài)</b><b class='flag-5'>解</b><b class='flag-5'>算</b>

    陀螺儀LSM6DSV16XAI集成(3)----讀取融合算法輸出的四元數(shù)

    LSM6DSV16X 特性涉及到的是一種低功耗的傳感器融合算法(Sensor Fusion Low Power, SFLP). 低功耗傳感器融合(SFLP)算法:
    的頭像 發(fā)表于 12-18 10:53 ?1218次閱讀
    <b class='flag-5'>陀螺儀</b><b class='flag-5'>LSM6DSV16X</b>與<b class='flag-5'>AI</b><b class='flag-5'>集成</b>(3)----讀取<b class='flag-5'>融合</b>算法輸出的四元數(shù)

    陀螺儀LSM6DSV16XAI集成(7)----FIFO數(shù)據(jù)讀取與配置

    LSM6DSV16X是一款高性能、低功耗的6軸IMU傳感器,集成了3軸加速度計(jì)和3軸陀螺儀。本文將詳細(xì)介紹如何配置和讀取
    的頭像 發(fā)表于 07-18 10:40 ?1540次閱讀
    <b class='flag-5'>陀螺儀</b><b class='flag-5'>LSM6DSV16X</b>與<b class='flag-5'>AI</b><b class='flag-5'>集成</b>(7)----FIFO數(shù)據(jù)讀取與配置

    陀螺儀LSM6DSV16XAI集成(8)----MotionFX庫解析空間坐標(biāo)

    本文將探討如何使用MotionFX庫解析空間坐標(biāo)。MotionFX庫是一種用于傳感器融合的強(qiáng)大工具,可以將加速度計(jì)陀螺儀磁力計(jì)的數(shù)據(jù)融合
    的頭像 發(fā)表于 07-18 10:43 ?1183次閱讀
    <b class='flag-5'>陀螺儀</b><b class='flag-5'>LSM6DSV16X</b>與<b class='flag-5'>AI</b><b class='flag-5'>集成</b>(8)----MotionFX庫解析空間坐標(biāo)

    驅(qū)動(dòng)LSM6DS3TR-C實(shí)現(xiàn)高效運(yùn)動(dòng)檢測與數(shù)據(jù)采集(10)----融合磁力計(jì)進(jìn)行姿態(tài)

    MotionFX庫包含用于校準(zhǔn)陀螺儀、加速度計(jì)磁力計(jì)傳感器的例程。 將磁力計(jì)的數(shù)據(jù)與加速度計(jì)陀螺儀
    的頭像 發(fā)表于 08-02 15:50 ?2228次閱讀
    驅(qū)動(dòng)<b class='flag-5'>LSM6</b>DS3TR-C實(shí)現(xiàn)高效運(yùn)動(dòng)檢測與數(shù)據(jù)采集(10)----<b class='flag-5'>融合</b><b class='flag-5'>磁力計(jì)</b><b class='flag-5'>進(jìn)行</b><b class='flag-5'>姿態(tài)</b><b class='flag-5'>解</b><b class='flag-5'>算</b>

    陀螺儀LSM6DSV16XAI集成(13)----中斷獲取SFLP四元數(shù)

    本文將介紹如何通過中斷機(jī)制獲取 LSM6DSV16X 傳感器的 SFLP(Sensor Fusion Low Power)四元數(shù)數(shù)據(jù)。LSM6DSV16X 是一款高性能的 6 軸慣性傳感器,支持
    的頭像 發(fā)表于 11-25 11:44 ?578次閱讀
    <b class='flag-5'>陀螺儀</b><b class='flag-5'>LSM6DSV16X</b>與<b class='flag-5'>AI</b><b class='flag-5'>集成</b>(13)----中斷獲取SFLP四元數(shù)

    陀螺儀LSM6DSV16XAI集成(14)----上報(bào)匿名上位機(jī)

    本文介紹了如何將 LSM6DSV16X 傳感器的姿態(tài)數(shù)據(jù)通過匿名通信協(xié)議上報(bào)到上位機(jī)。通過獲取傳感器的四元數(shù)數(shù)據(jù),并將其轉(zhuǎn)換為歐拉角(Roll、Pitch、Yaw),然后按照協(xié)議格式化數(shù)據(jù)幀并通過
    的頭像 發(fā)表于 11-25 11:53 ?648次閱讀
    <b class='flag-5'>陀螺儀</b><b class='flag-5'>LSM6DSV16X</b>與<b class='flag-5'>AI</b><b class='flag-5'>集成</b>(14)----上報(bào)匿名上位機(jī)

    陀螺儀傳感器原理及姿態(tài)

    陀螺儀傳感器原理及姿態(tài)
    發(fā)表于 06-20 17:06

    【CANNON申請】姿態(tài)

    申請理由:這款開發(fā)板的硬件非常適合我現(xiàn)在在做姿態(tài)設(shè)計(jì),再加上自有的mpu6050 gps,可以用來測試姿態(tài)
    發(fā)表于 01-26 13:58

    【uFun試用體驗(yàn)】使用陀螺儀姿態(tài)

    1.設(shè)置好陀螺儀后可以獲取陀螺儀的三軸加速度數(shù)據(jù) ,設(shè)置好量程 ,坐標(biāo)軸既可以進(jìn)行姿態(tài)。[c
    發(fā)表于 06-13 10:38

    MicroStrain 3DM-GX5-25陀螺儀

    3DM-GX5-25陀螺儀產(chǎn)品亮點(diǎn)集成有三軸加速度計(jì)陀螺儀磁力計(jì)和溫度傳感器,實(shí)現(xiàn)慣性導(dǎo)航最優(yōu)
    發(fā)表于 12-09 16:20

    求助,是否有在LSM6DSV16X中使用傳感器融合低功耗算法的示例

    你好我想知道是否有在 LSM6DSV16X 中使用傳感器融合低功耗算法的示例。我想檢索當(dāng)前的 Heading、Pitch 和 Roll 信息。或者我也很高興有一個(gè)例子解釋如何從 SFLP 中獲取四元
    發(fā)表于 02-03 09:12

    ST LSM6DSV16X iNEMO慣性模塊相關(guān)的使用信息和應(yīng)用提示

    AN5763,LSM6DSV16X是一款ST的3 軸加速度計(jì)和 3 軸陀螺儀LSM6DSV16X 是系統(tǒng)級封裝的 3 軸數(shù)字加速度計(jì)
    發(fā)表于 08-31 11:12 ?0次下載

    LSM6DSV16X基于MLC智能筆動(dòng)作識別(1)----輪詢獲取陀螺儀數(shù)據(jù)

    本文將介紹如何使用 LSM6DSV16X 傳感器來讀取數(shù)據(jù)。主要步驟包括初始化傳感器接口、驗(yàn)證設(shè)備ID、配置傳感器的數(shù)據(jù)輸出率和濾波器,以及通過輪詢方式持續(xù)讀取加速度、角速率和溫度數(shù)據(jù)。讀取到的數(shù)據(jù)
    的頭像 發(fā)表于 10-16 10:38 ?381次閱讀
    <b class='flag-5'>LSM6DSV16X</b>基于MLC智能筆動(dòng)作識別(1)----輪詢獲取<b class='flag-5'>陀螺儀</b>數(shù)據(jù)
    主站蜘蛛池模板: 噜噜色网| 最好看的2019中文字幕1| 国产一区在线mmai| 日韩美女拍拍免费视频网站| 给个网站可以在线观看你懂的| 天天摸天天做天天爽| 色欧美在线视频| www懂爱| 欧美黑人性色黄在线视频| 国产精品japanese人妖| 99久久精品国产自免费| 久久亚洲免费视频| 国产精品va在线观看不| 国产小视频网站| 亚洲精品视频区| 国产精品久久久久久久久| free性日韩| 床上激情四射| 日韩高清性爽一级毛片免费| 97玖玖| 日本在线视频二区| 美女毛片免费| 国产精品久久久久久影院| 亚洲αv久久久噜噜噜噜噜| 六月丁香婷婷激情| 精品视频在线观看视频免费视频| 天天操夜夜添| 美女扒开尿口给男人看的让| 四虎4hu影库永久地址| 黄a一级| 欧美性幼| 欧美一区二区三区高清视频| 97影院理论片在线观看| 777黄色片| 你懂的网址在线| 天天摸天天看天天做天天爽| 免费大片黄在线观看| 国产免费一级高清淫日本片| 国产免费好大好硬视频| 免费播放黄色| 日处女穴|