欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

openmv集成应用_使用OpenMV引导无人机飞行

发布时间:2024/9/19 编程问答 69 豆豆
生活随笔 收集整理的这篇文章主要介绍了 openmv集成应用_使用OpenMV引导无人机飞行 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

无人机调试,飞控硬件定制、固件修改,日志分析,请QQ联系:3500985284

一、添加测试程序

由于这里添加了新的硬件外设,无法直接进行软件仿真,所以我们需要先编写一些代码,模拟出OpenMV发送数据到飞控,然后才能进行软件仿真。当我们通过软件仿真把OpenMV引导数据引导无人机飞行的顶层逻辑跑通之后,再进行实际飞行测试,这样能尽量较少在外场Debug的工作量。

二、在引导模式下飞行

添加顶层逻辑代码,在Guided模式下,如果OpenMV有引导数据过来,就将目标航点设置为识别点,从而飞机将自动飞向目标点。

三、进行模拟飞行

编译——模拟——Debug——编译——模拟——……测试通过。

四、删除测试程序,进行实物飞行

如下图所示,在“ardupilot/ArduCopter/ArduCopter.cpp”文件中,删除红框里的代码(注意有两个红框),就删掉了测试程序,下一步可以进行实物飞行测试。

在实物测试中如果遇到问题,请按照本文下方“第六部分 疑难解答”里的步骤检查问题所在。

五、应用展望

通过测试发现,OpenMV的性能基本满足大学生电子设计竞赛级别的应用需求,但是对于对于更加复杂的应用来讲,OpenMV的性能就略显不足了,后期我们的课程将会添加使用“NVIDIA Xavier NX”来实现更加复杂的AI技术来引导无人机飞行的例程,敬请期待!

但是,“技术实现”不同于单纯的“科学研究”,它是一个不断权衡利弊、不断折中的过程。OpenMV在易用性、低功耗、体积、重量、成本方面,比“NVIDIA Xavier NX”要强很多,因此将OpenMV集成到无人机上,并不代表者“低端”,一切都需要从实际需求角度出发来进行选择。

六、疑难解答

本节的例程虽然代码量不大,但是由于牵涉到两个硬件设备的联调,因此请大家不要指望能非常顺利地一遍走通所有步骤,遇到问题的时候,请按照如下步骤进行检测:

1、将OpenMV通过USB接电脑,在线运行,不用解锁飞机,手拿着飞机对准被识别物体,确保它的确是识别到了目标物体;

这一步解决图像识别数据源头的问题,存在如下可能:

没摘掉镜头盖?

OpenMV镜头视场角太小,实际飞行中目标物体一直没有进入视野?

室外环境,逆光情况下太阳严重干扰图像识别效果?

OpenMV程序没有写对?运行一段时间死机了?

2、使用USB转串口模块接OpenMV的串口TX引脚,在电脑上的“串口调试助手”上查看原始的帧是否正确发送了出来,波特率是否正确;

注意,这一步看似麻烦,实际上这一步是发现问题的最关键一步,存在如下可能:

OpenMV的串口TX、RX弄反了?

OpenMV的引脚号搞错了,接的根本就不是OpenMV的串口TX引脚?

OpenMV串口的波特率弄错了?虽然通过串口调试助手可以看到一堆十六进制数据在不断输出,但是仔细观察发现数据的帧头、帧结构不对;

OpenMV端的线虚接?或者虚焊?甚至线缆本身是虚的?这个概率不小!

3、检查连线是否正确,注意OpenMV的串口TX接的是飞控的串口RX;

注意这是串口连线时最常见的错误!

4、检查飞控的全部参数列表中对应串口的参数是否设置正确(以视频教程里的讲解为准);

我猜测有30%的人会在这里出问题。

5、如果以上各个步骤检查无误,并且如果你是按照教程里的讲解自己手写的代码,请直接使用教程中的代码试试,如果教程中的代码可以正常运行,而你的代码不行,请使用Github Desktop这个软件一行行对比你写的代码哪里有问题。

学习本节课的内容遇到问题后,在我们的微信群里提问之前,请严格按照上述步骤进行错误排查,如果上述所有步骤检查后依然有问题,再到群里提问,看看大家有没有好的建议。

无人机调试,飞控硬件定制,固件修改,log日志分析,飞控驱动添加

请QQ联系:3500985284

微信公众号:“怒飞垂云”,扫描下图添加

阅读次数:

1,231

总结

以上是生活随笔为你收集整理的openmv集成应用_使用OpenMV引导无人机飞行的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。