專案概述
穩格科技基於 nRF52840 與 BNO086 開發了一套九軸姿態感測器與手機 BLE 即時資料系統。系統在嵌入式終端完成 IMU 資料接入、姿態融合結果處理、相對零位計算、四元數與尤拉角輸出、靜止與運動識別,並透過 Bluetooth Low Energy 向手機提供結構化姿態資料。
該方案面向需要把空間姿態、角速度和線性加速度傳輸到手機端的企業,可用於智慧穿戴、運動分析、康復裝置、互動控制器、機器人附件、空間互動終端和行動式測量裝置。
企業需求
- 在緊湊型低功耗硬體上接入九軸 IMU,並持續獲得穩定的姿態資料。
- 建立清晰的產品座標系,使板卡方向、姿態演算法和手機端三維顯示保持一致。
- 支援以任意靜止姿態設定零位,輸出相對於零位的四元數和尤拉角。
- 識別裝置靜止與運動狀態,為互動控制、動作觸發和資料篩選提供依據。
- 兼顧無磁環境下的短期姿態連續性與九軸航向參考能力。
- 透過 BLE 向手機輸出可校驗、可去重、可配置頻率的二進位制資料,並提供清晰的 APP 接入規範。
系統方案
系統採用“九軸感測器—嵌入式姿態層—BLE 協議層—手機應用層”的分層架構。BNO086 提供 Game Rotation Vector、九軸 Rotation Vector、陀螺儀和線性加速度資料;nRF52840 透過 SPI 獲取感測器資料,完成座標定義、相對姿態運算、狀態判定和協議封裝,再透過 Nordic UART Service 向手機發送 Notification。
| 系統層級 | 核心組成 | 主要能力 |
|---|---|---|
| 感知層 | BNO086 九軸 IMU | 輸出旋轉向量、角速度與去重力線性加速度 |
| 嵌入式層 | nRF52840 韌體 | SPI 資料接入、姿態處理、運動狀態識別與裝置管理 |
| 演算法層 | 相對姿態與姿態源策略 | 零位設定、四元數連續化、ZYX 尤拉角和多源平滑切換 |
| 通訊層 | BLE Nordic UART Service | 固定幀、CRC16、全域性序號、頻率配置和狀態應答 |
| 應用接入層 | 協議文件與解析參考 | 支援手機端裝置發現、資料解析、三維姿態顯示和控制命令 |
九軸姿態演算法能力
產品座標系定義
系統將產品座標固定為右手系:產品前方為 +Y,產品右方為 +X,PCB 元件面向上為 +Z。統一的座標定義貫穿感測器資料、韌體輸出和手機端介面,減少不同平臺之間的軸向歧義。
相對四元數與零位設定
裝置儲存使用者設定零位時的姿態四元數,並按照 q_rel = inverse(q_zero) × q_current 計算相對姿態。四元數固定採用 x、y、z、w 順序與右手系表達,適合直接驅動手機端三維模型。韌體同時執行歸一化與符號連續處理,避免等價四元數 q 與 -q 造成畫面跳變。
尤拉角輸出
尤拉角由同一相對四元數按 ZYX 順序計算,分別輸出繞 X、Y、Z 軸的 roll、pitch 和 yaw。四元數用於三維姿態顯示,尤拉角用於角度讀數、閾值判斷和業務規則,兩類資料保持相同的零位與座標語義。
靜止與運動識別
韌體綜合陀螺儀與去重力線性加速度,經過低通和遲滯判定輸出靜止、運動或未知狀態。遲滯機制可降低臨界閾值附近的頻繁切換,為零位設定、動作觸發和低功耗互動提供穩定狀態依據。
Game RV 與九軸 RV 自動切換
AUTO 模式優先保持無磁 Game Rotation Vector 的動態連續性;當九軸姿態精度穩定後切換到帶航向參考的九軸 Rotation Vector,在九軸資料不可用或精度下降時返回 Game RV。切換過程中透過姿態偏移對齊保持輸出連續,也支援企業應用直接指定 GAME 或 9AXIS 模式。
手機 BLE 資料介面
裝置以 Motion9D-086 作為廣播名稱,並在 Manufacturer Data 中加入 nRF52840 的 64 位唯一裝置編號。手機應用可使用該編號識別同名裝置,形成穩定的裝置主鍵。
- 標準服務:採用 Nordic UART Service,手機向 RX 寫入命令,裝置透過 TX Notification 輸出姿態資料。
- 固定資料幀:四元數、運動資料、尤拉角和狀態應答統一使用 20 位元組二進位制幀。
- 完整性校驗:幀頭、全域性傳送序號和 CRC-16/CCITT-FALSE 支援手機端識別幀邊界與資料完整性。
- 輸出配置:支援 START、STOP、RATE、STREAM、ZERO、SOURCE 和 PING 等文字命令,也支援二進位制控制命令。
- 頻率與資料選擇:手機可按介面需要選擇四元數、運動或尤拉角資料,並配置 1 至 50 Hz 輸出頻率。
核心功能
- 九軸 IMU 接入:完成 BNO086 與 nRF52840 的 SPI 資料鏈路和感測器資料管理。
- 相對姿態輸出:支援任意靜止姿態設為零位,並持續輸出相對四元數。
- 多種資料表達:同步提供四元數、roll/pitch/yaw、角速度和線性加速度。
- 姿態源管理:支援 AUTO、GAME 和 9AXIS 三種模式以及連續化切換。
- 運動狀態識別:輸出靜止與運動狀態,服務於互動邏輯和動作分析。
- 多裝置識別:廣播攜帶晶片唯一編號,手機可對同名裝置進行穩定識別與去重。
- 協議可靠性:固定長度、序號和 CRC 校驗便於移動端解析、監控和異常恢復。
專案交付成果
- nRF52840 嵌入式韌體原始碼及可執行韌體檔案。
- BNO086 SPI 接入、感測器資料讀取與姿態資料管理模組。
- 相對四元數、零位設定、尤拉角、運動識別和姿態源切換演算法模組。
- Motion9D 手機 BLE 姿態協議,包括 UUID、幀格式、單位、狀態位、命令和 CRC 定義。
- Python 協議編碼與解碼參考、Swift 資料解析參考以及固定協議樣例資料。
- 面向手機應用的裝置發現、Notification 訂閱、資料解析和三維姿態接入說明。
專案為企業客戶帶來的價值
- 縮短移動姿態產品開發鏈路:將感測器接入、姿態處理和無線協議整合到統一嵌入式平臺。
- 降低跨端座標適配成本:以凍結的產品座標、四元數順序和尤拉角定義建立一致資料語義。
- 提升手機端資料可用性:手機可直接獲得帶狀態、序號與校驗的結構化姿態資料。
- 支援多類業務介面:四元數適合三維動畫,尤拉角適合數字顯示,運動幀適合動作分析與規則觸發。
- 形成可複用的技術資產:韌體模組、BLE 協議和多語言解析參考可用於同類智慧終端與感測裝置。
適用企業與應用場景
該方案適合智慧穿戴、運動訓練、康復醫療裝置、姿態遙控器、機器人末端附件、手持測量儀、空間互動裝置、智慧玩具和物聯網感測終端等企業專案。相關技術能力可參考穩格科技的IMU慣性測量單元開發、姿態估計開發、藍牙通訊模組開發和MCU韌體開發服務。
企業常見問題
九軸姿態感測器系統可以向手機提供哪些資料?
系統可以提供相對四元數、roll/pitch/yaw 尤拉角、角速度、去重力線性加速度、姿態精度、當前姿態源、零位狀態以及靜止或運動狀態。
手機三維模型應該使用四元數還是尤拉角?
三維模型建議使用歸一化四元數,以獲得連續姿態並避免尤拉角萬向鎖;尤拉角更適合數字顯示、閾值判斷和業務邏輯。
Game Rotation Vector 與九軸 Rotation Vector 有什麼區別?
Game Rotation Vector 不依賴磁場,動態連續性較好,但航向會隨時間緩慢漂移;九軸 Rotation Vector 引入磁場航向參考,適合需要長期方向基準的應用。系統支援自動切換或固定選擇。
多個 Motion9D-086 裝置名稱相同,手機如何區分?
每臺裝置的廣播資料包含 nRF52840 晶片的 64 位唯一編號。手機應用使用該編號作為裝置主鍵,即可穩定識別並去重同名裝置。
穩格科技可以承擔哪些九軸姿態專案開發內容?
穩格科技可提供 IMU 選型與接入、嵌入式韌體、姿態演算法、座標系定義、BLE 資料協議、手機端解析參考、裝置控制命令及軟硬體介面整合。
線上諮詢
電話諮詢
微信諮詢
回到頂部