码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • ArduPilot添加新的惯导方案


    环境:

            ArduRover4.2.2方案

            ChibIOS系统

            pixhawk1(PX4-V2)硬件环境

    更换方案:

            使用MPU6000+ICM20689组合惯导替代原有的MPU6000+LSM303D+L3GD20方案

    更换内容如下:

     一、hwdef.dat中添加icm20689芯片

    1. #(fmuv3)
    2. SPIDEV mpu6000 SPI1 DEVID4 MPU_CS MODE3 2*MHZ 8*MHZ
    3. SPIDEV icm20689 SPI1 DEVID1 GYRO_EXT_CS MODE3 4*MHZ 8*MHZ
    4. SPIDEV lsm9ds0_g SPI1 DEVID1 GYRO_EXT_CS MODE3 11*MHZ 11*MHZ
    5. SPIDEV lsm9ds0_am SPI1 DEVID2 ACCEL_EXT_CS MODE3 11*MHZ 11*MHZ
    6. #(pixhawk)
    7. IMU Invensense SPI:mpu6000 ROTATION_ROLL_180
    8. IMU LSM9DS0 SPI:lsm9ds0_g SPI:lsm9ds0_am ROTATION_ROLL_180 ROTATION_ROLL_180_YAW_270 ROTATION_PITCH_180
    9. IMU Invensense SPI:icm20689 ROTATION_NONE

    我的MPU6000在背面,ICM20689在正面,所以mpu6000反转180度

    LSM303D和L3GD20使用LSM9DS0驱动,保留原有方案

    二、libraries/AP_BoardConfig/board_drivers.cpp添加ICM20689支持

    1、添加芯片ID识别

    1. #define MPUREG_WHOAMI 0x75
    2. #define MPU_WHOAMI_MPU60X0  0x68
    3. #define MPU_WHOAMI_MPU9250  0x71
    4. #define MPU_WHOAMI_ICM20608 0xaf
    5. #define MPU_WHOAMI_ICM20602 0x12
    6. #define MPU_WHOAMI_ICM20689 0x98

    2、 硬件类型选择中添加芯片识别

    1. } else if ((spi_check_register("lsm9ds0_am", LSMREG_WHOAMI, LSM_WHOAMI_LSM303D) ||
    2. spi_check_register("icm20689", MPUREG_WHOAMI, MPU_WHOAMI_ICM20689)) &&
    3. (spi_check_register("mpu6000", MPUREG_WHOAMI, MPU_WHOAMI_MPU60X0) ||
    4. spi_check_register("icm20608", MPUREG_WHOAMI, MPU_WHOAMI_ICM20608) ||
    5. spi_check_register("icm20608", MPUREG_WHOAMI, MPU_WHOAMI_ICM20602) ||
    6. spi_check_register("mpu9250", MPUREG_WHOAMI, MPU_WHOAMI_MPU9250))) {
    7. // classic or upgraded Pixhawk1
    8. state.board_type.set(PX4_BOARD_PIXHAWK);
    9. hal.console->printf("Detected Pixhawk\n");

    添加完成

    注释:

            APM中支持ICM20689芯片驱动,因此不需要另外添加,只需要在二1中添加一次芯片ID即可

            这个版本APM通过惯导方案选择匹配硬件类型,因此需要在二2中添加新的惯导方案。

  • 相关阅读:
    朴素贝叶斯算法
    代理模式(Proxy模式)
    洛谷 P1802 5 倍经验日题解
    全网独家:编译CentOS6.10系统的openssl-1.1.1多版本并存的rpm安装包
    猴子也能学会的jQuery第三期——使用jQuery
    【前端版】分布式医疗云平台【Open-his 环境搭建、前台 vue-element-ui 搭建】(十六)
    在云计算环境中,如何利用 AI 改进云计算系统和数据库系统性能
    WPF里ItemsControl的分组实现
    【GO语言基础】控制流
    InfiniteScroll 无限滚动组件第一次进来就执行load方法怎么办
  • 原文地址:https://blog.csdn.net/qq_37016048/article/details/127412243
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号