px4调试bug--添加mavlink_log_info信息
发布日期:2021-05-08 12:54:49 浏览次数:8 分类:精选文章

本文共 726 字,大约阅读时间需要 2 分钟。

PX4代码调试确实是一个需要耐心和细致的过程,最近在项目和研究中又一次接触这段代码,遇到了不少新问题,也积累了一些解决方案,这次就记录下来。

在调试PX4代码时,官方建议尽量避免随意修改代码,尤其是用于导航的部分。然而,调试过程中还是遇到了一些需要解决的问题。

问题一:启动时提示"wp index out of bounds"错误

在上电并连接地面站QGC时,出现"wp index out of bounds"的关键错误提示。通过mavlink_log_info的方式查看地面站输出,发现这条警告信息与mavlink_mission.cpp中与序列号相关的代码有关。具体来说,序列号seq在上电后被初始化为一个较大的固定值,超过了实际航点索引的最大值,导致索引越界。

解决方法是通过屏蔽该警告信息,或者在启动时检查seq是否超过某个阈值,若超过则重置seq为0。最终通过更换SD卡解决了这个问题。

问题二:遥控器无法解锁及电调异常

在使用固件版本1.10.1时,遥控器无法解锁,电调声音异常。多次尝试电调校准后问题依旧存在。经过进一步排查,使用示波器检查发现飞控的PWM输出频率异常,约为70多Hz。

解决方法是通过QGC软件调整PWM对应的参数,确保输出频率符合正常范围。

问题三:Gazebo仿真中的预飞行失败

在Gazebo仿真中,出现"preflight failed:compass #0 uncalibrated"的错误提示。解决方法是先对固件进行make clean,然后清除~/.ros/eeprom/parameters文件夹。

其他问题

目前尚未解决一个问题:在某些场景中,飞行器无法正常连接WPA热点,需要进一步调试网络配置。

上一篇:APM,PX4之开源协议
下一篇:Shell编程知识点汇总(一)

发表评论

最新留言

路过,博主的博客真漂亮。。
[***.116.15.85]2025年03月26日 16时03分24秒