【PX4 二次开发 初级】 03 飞控调试以及地面站使用

本文介绍了PX4飞控系统的调试方法及注意事项,重点讲解了IMU传感器的特点及其对飞行稳定性的影响,包括陀螺仪、加速度计和磁力计的工作原理及校准方法。

  • 标题 : PX4二次开发教程:
  • 起源: 根据阿木实验室讲解课程整理的学习笔记,推荐大家学习无人机的去学习这个课程,俗话说的好:问渠那得清如许,唯有源头活水来 -
    在这里插入图片描述
  • PX4智能无人机开发课程:https://bbs.amovlab.com/plugin.php?id=zhanmishu_video:video&mod=video&cid=39
  • 在这里插入图片描述

前言

在调试飞机之前,先学习一些基本传感器特点等概念,针对这些传感器的特性去调试飞机就会事半功倍。
对于

  • PIXHWAK 校准时候为什么要旋转?
  • 为什么要水平放置?

认识一些理论认识,才能调试出较好的效果

IMU

起飞前的安装校准,大部分就是校准IMU的各个传感器误差偏移

  • 飞机核心设备IMU (惯性测量单元)

IMU 用来根据当前姿态做出调整,来保证飞机的飞行稳定

  • 飞行中突然的姿态不稳定,或者失控,多半是因为IMU 硬件受到干扰,或者软件的BUG

三轴稳定性

  • 俯仰
    在这里插入图片描述
  • 横滚

在这里插入图片描述

  • 偏航

在这里插入图片描述

内部构成

IMU 一般包含陀螺仪 ,磁力技 ,加速度 三个部分
其中最重要的是陀螺仪,理论上陀螺仪就可以测量出飞机的姿态,很遗憾,陀螺仪会有积分漂移
导致积分偏差很大,这时候就需要加上加速度计,磁力计来校准,但是这三个传感器,都是各自的特性。
如果不做校准,那么飞机就不能准确的检测出姿态,导致飞机的飞行姿态不稳,同理飞机飞行过程中,
如果这桑格传感器受到干扰,也会导致姿态不稳,乃至飞机坠毁

陀螺仪

陀螺仪

  • 存在积分偏移,时间一长陀螺仪就不准了

  • 对IMU半导体 温度高敏感 受到温度影响较大

      					一般商业飞控会给陀螺仪和加速度计做恒温
    

加速度计

加速度计

  • 对于震动敏感 ,飞机要有减震措施

磁力计

磁力计

  • 磁力计 :磁力计是检测地球微弱磁场,对于电磁干扰的地方敏感

      					实测中 大铁块靠近磁力计,磁力计就会报错	
      					飞机靠近铁塔 飞机就会有可能失控
    

(理论基础请参照陀螺仪的数据处理)

误差

当飞机静止不动水平时候

  • 加速度计为(0,0,g )
  • 磁力计指向一个固定方向
  • 陀螺仪检测不到角速度

由于目前元器件制造工艺和安装方式,都会有误差,通过校准来尽可能消除误差,来确保检测出准确的姿态信息

加速度&陀螺仪

这是从MP地面站上查看的飞控静止情况下加速度计和陀螺仪的原始数据,或多或少都会有传感器噪声和零点漂移

在这里插入图片描述

磁力计干扰测试

在这里插入图片描述
未受干扰前:
在这里插入图片描述
干扰后:
在这里插入图片描述

### PX4飞控二次开发打印功能实现教程 在PX4飞控二次开发中,打印功能的实现是一个常见的需求,主要用于调试和验证代码逻辑。以下是关于如何实现打印功能的相关内容: #### 1. 使用 `PX4_INFO` 和其他日志宏 PX4 提供了一系列的日志宏用于打印信息,这些宏包括但不限于 `PX4_INFO`, `PX4_WARN`, 和 `PX4_ERR`。这些宏可以用来输出不同级别的信息、警告或错误消息。例如,在代码中使用以下方式打印信息[^1]: ```cpp PX4_INFO("This is a test message"); ``` 上述代码会在控制台输出一条带有时间戳的信息,格式类似于: ``` INFO [your_module] This is a test message ``` #### 2. 在 SITL 模拟器中测试打印功能 为了测试打印功能,可以使用 PX4 的 Software-In-The-Loop (SITL) 模拟器。启动 SITL 模拟器时,可以通过终端直接查看打印输出。例如,运行以下命令启动模拟器并加载默认模型: ```bash make px4_sitl jmavsim ``` 在模拟器运行过程中,任何通过 `PX4_INFO` 或其他日志宏输出的消息都会显示在终端中[^1]。 #### 3. 自定义模块中的打印功能 如果需要在自定义模块中实现打印功能,可以参考 PX4 源码中已有的模块结构。假设你已经创建了一个新的模块,可以在模块的主循环中加入打印语句。例如: ```cpp #include <px4_platform_common/log.h> void my_custom_module() { while (true) { PX4_INFO("Custom module running..."); usleep(500000); // 等待 500ms } } ``` 上述代码会在模块运行时每隔 500ms 输出一次信息。 #### 4. 配置 CMake 文件以支持新模块 当添加新的模块或功能时,需要修改对应的 CMake 文件以确保编译系统能够正确识别和编译新代码。例如,编辑 `default.cmake` 文件并添加你的模块名称[^1]: ```cmake set(config_extra_builtin_cmds ... px4_01 ... ) ``` 完成配置后,重新编译项目以使更改生效: ```bash make px4_sitl jmavsim ``` #### 5. 使用 MAVLink 发送自定义消息 除了本地打印功能外,还可以通过 MAVLink 协议将信息发送到地面站进行显示。这需要定义一个新的 MAVLink 消息类型,并将其集成到 PX4 源码中。具体步骤包括: - 编辑或创建一个 `.xml` 文件定义新的 MAVLink 消息。 - 将生成的文件复制到 `Firmware/mavlink/include/mavlink/v2.0/common/` 目录下[^3]。 - 修改代码以发送自定义消息。 例如,在地面站上接收自定义消息时,可以通过 QGroundControl 查看相关信息。 --- ###
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值