Ardupilot开源代码之Rover上路 - 后续3

news2024/11/18 4:50:49

Ardupilot开源代码之Rover上路 - 后续3

  • 1. 源由
  • 2. 深度配置
    • 2.1 编码器
    • 2.2 WS2812B LED灯带
    • 2.3 4GLTE超视距
      • 2.3.1 摄像头
      • 2.3.2 QGC OSD虚拟遥控
      • 2.3.3 QGC外接JoyStick遥控
    • 2.4 伴机电脑供电
  • 3. 实测效果
  • 4. 遗留&后续
    • 4.1 设置倒车按钮
    • 4.2 MP无法连接ESP8266
    • 4.3 高精度编码器问题
    • 4.4 OV5647 720P@30FPS 马赛克问题
      • 4.4.1 现象1 -Copter
      • 4.4.2 现象2 - Rover
      • 4.4.3 噪点马赛克现象
        • 光线不足
        • 感光元件质量
        • 数字处理算法
        • 镜头质量
        • 环境因素
        • 解决方法
  • 5. 参考资料

1. 源由

开源项目最主要的问题就是所有配置是开放式的,程序是迭代式开发的。
尤其随着技术的层出不穷,应用领域和范围的不断拓展,深度配置随着情况不同会遇到各种阻碍。

好了,接下来我们就总结下关于几个比较繁琐的配置问题。

2. 深度配置

2.1 编码器

当前APM不支持高精度编码器,由于时序问题会导致APM程序Crash。

注:建议购买此AKM Rover的选用13PPR的编码器。

为此,这里做了一些Work Around:

  1. 将中断允许的额度扩大6倍

Internal Errors 0x2000000 with WheelEncoder – ArduRover 4.5.2

diff --git a/libraries/AP_HAL_ChibiOS/GPIO.cpp b/libraries/AP_HAL_ChibiOS/GPIO.cpp
index f62bd73c27..55c7dd7c55 100644
--- a/libraries/AP_HAL_ChibiOS/GPIO.cpp
+++ b/libraries/AP_HAL_ChibiOS/GPIO.cpp
@@ -601,7 +601,7 @@ void GPIO::timer_tick()
     // allow 100k interrupts/second max for GPIO interrupt sources, which is
     // 10k per 100ms call to timer_tick()
 #if HAVE_GPIO_PINS
-    const uint16_t quota = 10000U;
+    const uint16_t quota = 60000U;
     for (uint8_t i=0; i<ARRAY_SIZE(_gpio_tab); i++) {
         if (_gpio_tab[i].isr_quota != 1) {
             // Reset quota for next tick
  1. 通过算术逻辑,设计欺骗策略

Are these motors compatible with ArduRover 4.5?

在这里插入图片描述

  1. 放弃2轮编码器,降低中断数量

Rover 4.5.2 encoder GPIO interrupt quota increase causing crash dump, any idea?

  1. 配置左轮编码器
S1 – ESC – left motor
S3 – left motor encoder B
S4 – left motor encoder A

S2 – ESC – right motor
S5 – right motor encoder B
S6 – right motor encoder A

S8 - ground steering servo

在这里插入图片描述在这里插入图片描述

2.2 WS2812B LED灯带

Ardupilot - NeoPixel style WS2812B,灯带参数配置如下:

SERVO13_FUNCTION = 120

NTF_LED_BRIGHT = 3
NTF_LED_LEN = 8
NTF_LED_OVERRIDE = 0
NTF_LED_TYPES = 256

在这里插入图片描述

2.3 4GLTE超视距

2.3.1 摄像头

将四轴上的模块整个搬过来:Ardupilot Rpanion 4GLTE 网络性能测试 - 国内中转

2.3.2 QGC OSD虚拟遥控

在这里插入图片描述

2.3.3 QGC外接JoyStick遥控

  • TX12连接手机
  • Rover连接QGC

此时,将会在设备页面增加一个Joystick的选项,进行手柄的设置(基本步骤大家自己根据4个tab页面一个一个过一下吧)。

在这里插入图片描述在这里插入图片描述
在这里插入图片描述

2.4 伴机电脑供电

之前是采用了一颗14500 850mAH的电池来对RaspberryPi3B+/4GLTE/OV5647供电,工作市场大约20分钟???反正不太够,本次切换到主电源上,由分电板供电。

在这里插入图片描述

3. 实测效果

手机QGC控制,操作有点不稳,大家将就着看看~~~

ArduRover 4.5.2 Rpanion 4G LTE 邻里漫步

ArduRover with Cat

4. 遗留&后续

4.1 设置倒车按钮

类似汽车的操作:

  1. 默认前进挡:深踩油门,加速前进
  2. 挂倒挡:深踩油门,加速后退
  • throttle up from the bottom, speed up and move forward

4.2 MP无法连接ESP8266

虽然EPS32已经是最新的1.2.3版本,但是与MP1.3.81版本仍然连不上。

注:这个问题暂时并不着急,因为已经有伴机电脑连上了,这个小模块就没什么用了。不过后续我们将会跟进下,据反馈可能是模块固件版本是否支持MAVLink2.0的问题。

  • 4.3 DEV can’t connect thru esp8266 wifi
  • ESP8266 WiFi connection
  • 64bit Windows 11 + MP 1.3.81 Can’t UDP connect 8266WiFi module (v1.2.3) #3356

4.3 高精度编码器问题

OpenCTR采用的是STM32 F407,当前采用的H743性能应该远高于407。所以是否有进一步提升的空间,这个可能需要结构代码架构,以及内部设计进行讨论。

但是,这个不影响我们出去浪了。。。。。

  • Internal Errors 0x2000000 with WheelEncoder – ArduRover 4.5.2

4.4 OV5647 720P@30FPS 马赛克问题

遇到一个非常奇怪,但是对于专业人士可能一看就知道问题。摄像头运动、暗场景马赛克现象,下面大家看下一个过程:

4.4.1 现象1 -Copter

  1. 起飞前,静止状态

在这里插入图片描述
2. 起飞移动状态,场景并不是很暗,前面有稍许障碍物,但是出现了马赛克

在这里插入图片描述
3. 继续运动,场景开阔,亮度有所提高,依旧马赛克

在这里插入图片描述
4. 持续一段时间,逐步就没有上述现象了

在这里插入图片描述

4.4.2 现象2 - Rover

  1. 起步前,静态状态,上方隐约有一些暗方块;动态视频持续有

在这里插入图片描述
2. 倒退移动过程中,马赛克方块增多

在这里插入图片描述
3. 移动过程中,右侧暗部较左侧亮部方块更加明显

在这里插入图片描述
4. 该环境持续有马赛克现象

在这里插入图片描述

4.4.3 噪点马赛克现象

摄像头产生噪点和马赛克现象的原因可能有多种,主要包括以下几点:

光线不足
  • 低光环境:在光线不足的环境中,摄像头的感光元件(如CMOS或CCD传感器)需要增加感光度(ISO)来捕捉足够的光线。这会导致图像中出现较多的噪点。
  • ISO过高:提高ISO虽然可以在低光环境中捕捉更多的细节,但也会带来更多的数字噪点,影响图像质量。
感光元件质量
  • 传感器尺寸:较小尺寸的传感器在相同的光线条件下比大尺寸的传感器更容易产生噪点。
  • 传感器技术:较老或低质量的传感器在处理光线时,容易产生更多的噪点。
数字处理算法
  • 噪点处理算法:摄像头内置的噪点处理算法如果不够先进或者设置不当,可能会无法有效地减少噪点,或者在处理噪点时导致图像出现马赛克现象。
  • 压缩算法:图像在压缩过程中,如果压缩率过高,容易出现马赛克现象,特别是在低光或高动态范围的场景中。
镜头质量
  • 镜头光圈:较小的光圈会减少进入传感器的光量,导致低光情况下的噪点增加。
  • 镜头清洁度:镜头表面如果有污渍或灰尘,会影响光线进入传感器的质量,从而导致图像质量下降,出现噪点。
环境因素
  • 温度:传感器在高温环境下工作时,更容易产生噪点。
  • 电磁干扰:周围环境中的电磁干扰也可能影响摄像头的正常工作,导致噪点增加。
解决方法
  • 增加光源:尽可能增加拍摄环境中的光源,减少感光度(ISO)的使用。
  • 选择高质量摄像头:使用传感器和镜头质量更高的摄像头。
  • 使用三脚架:在低光环境中使用三脚架,可以使用较低的ISO和较长的曝光时间,减少噪点。
  • 定期清洁镜头:保持镜头清洁,避免污渍和灰尘影响拍摄质量。
  • 检查摄像头设置:确保摄像头的噪点处理和压缩设置优化。

通过上述方法,可以有效减少摄像头拍摄时出现的噪点和马赛克现象,提升图像质量。

5. 参考资料

【1】Ardupilot开源代码之Rover上路计划
【2】Ardupilot开源代码之Rover上路 - 后续1
【3】Ardupilot开源代码之Rover上路 - 后续2

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1692629.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

水泥超低排平台哪家好?

随着环保政策的加强和绿色发展理念的深入人心&#xff0c;水泥行业的超低排放改造已成为行业发展的新趋势。选择一个合适的水泥超低排平台对于确保改造效果和实现企业的可持续发展至关重要。朗观视觉小编将从多个角度出发&#xff0c;为您提供一份综合评估与选择攻略&#xff0…

解释JAVA语言中关于方法的重载

在JAVA语言中&#xff0c;方法的重载指的是在同一个类中可以存在多个同名方法&#xff0c;但它们的参数列表不同。具体来说&#xff0c;重载的方法必须满足以下至少一条条件: 1. 参数个数不同。 2. 参数类型不同。 3. 参数顺序不同。 当调用一个重载方法时&#xff0c;编译器…

C——日常练习题(宏)

题目&#xff1a;写一个宏&#xff0c;可以将一个整数的二进制位的奇数位和偶数位交换。 1.如何交换奇偶位&#xff08;涉及基础知识位运算&#xff09; 举例&#xff1a;如1001 奇偶位互换之后是0110;&#xff08;先搞懂这个简单举例&#xff09; (1).将奇数位保留&#…

免费撸gpt-4o和各种大模型实用经验分享

项目 Github: https://github.com/MartialBE/one-api 先贴两张图&#xff1a; 说明 免费撸AI大模型,各位可以对照下面我给出的大模型记录表来填&#xff0c;key需要自己去拿&#xff0c;国内都需要手机号验证&#xff0c;如果你不介意。另外我在自己的博客放出免费API给大家…

各位数字和-第13届蓝桥杯选拔赛Python真题精选

[导读]&#xff1a;超平老师的Scratch蓝桥杯真题解读系列在推出之后&#xff0c;受到了广大老师和家长的好评&#xff0c;非常感谢各位的认可和厚爱。作为回馈&#xff0c;超平老师计划推出《Python蓝桥杯真题解析100讲》&#xff0c;这是解读系列的第72讲。 各位数字和&#…

使用 MPI 做 3D 带状矩阵的转置

目的&#xff1a;整个大矩阵从 [Nx, Ny, Nz] 转到 [Nz, Nx, Ny] 每个进程的输入&#xff1a;大矩阵的 [Nx / total_proc_num, Ny, Nz] 的部分 每个进程的输出&#xff1a;大矩阵的 [Nz / total_proc_num, Nx, Ny] 的部分 一开始我大概有一个想法&#xff0c;假设两个进程的话…

24款奔驰GLE350升级原厂环视全景360影像 抬头显示HUD

奔驰GLE350原厂360全景影像的清晰度通常取决于车辆的具体型号和年份&#xff0c;以及安装的摄像头和显示屏质量。一般来说&#xff0c;原厂360全景影像系统会提供高清的影像&#xff0c;让驾驶者能够清晰地看到车辆周围的环境&#xff0c;帮助进行停车和转弯等操作抬头显示&…

go学习笔记-从圣经中抄录的接口值的思考

接口值 接口值&#xff0c;由两个部分组成&#xff0c;一个具体的类型和那个类型的值 下面4个语句中&#xff0c;变量w得到了3个不同的值。&#xff08; 开始和最后的值是相同的&#xff09; var w io.Writer w os.Stdout w new(bytes.Buffer) w nil var w io.Writer var…

胶原蛋白流失大揭秘:你的肌肤还年轻吗?

&#x1f343;当我们谈及胶原蛋白&#xff0c;不少女生眼中都会闪过一丝光芒。为什么呢&#xff1f;因为胶原蛋白是维持我们肌肤弹性、水润的秘密武器啊&#xff01;但是&#xff0c;随着岁月的流逝&#xff0c;你是否发现自己的肌肤开始变得松弛、无弹性&#xff0c;甚至出现了…

夸夸生肖属鼠的女性朋友

属鼠人一生的命运受到许多因素的影响&#xff0c;包括性格、家庭、教育、环境等。属鼠人性格外向、求知欲强、善解人意、善于结交各种各样的朋友&#xff0c;有丰富的人脉&#xff0c;容易得到他人的帮助和支持。 属鼠的人聪明、机智&#xff0c;他们善于观察&#xff0c;富有…

手把手教学,一站式安装ubuntu及配置服务器

应用背景&#xff1a;实验室刚弄了一台4090的电脑&#xff0c;老师让我们搞成服务器 一、制作ubuntu启动盘 1.1 清华开源影像站下载ubuntu桌面版本Index of /ubuntu-releases/22.04/ | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror 1.2 下载UltralSO软件 https://…

案例分享|Alluxio在自动驾驶模型训练中的应用与部署

分享嘉宾&#xff1a; 杨林三-辉羲智能 关于辉羲智能&#xff1a; 辉羲智能致力打造创新车载智能计算平台&#xff0c;提供高阶智能驾驶芯片、易用开放工具链及全栈自动驾驶解决方案&#xff0c;运用独创性“数据闭环定义芯片”方法学&#xff0c;助力车企构建低成本、大规模和…

Java延时队列取消未支付的订单

一、定义延迟任务类 package com.activity.domain;import java.util.concurrent.Delayed; import java.util.concurrent.TimeUnit;/*** 延迟任务类*/ public class DelayedCancellation implements Delayed {private String order;private final long delayTime; // 延迟时间p…

Ansible自动化运维中的Setup收集模块应用详解

作者主页&#xff1a;点击&#xff01; Ansible专栏&#xff1a;点击&#xff01; 创作时间&#xff1a;2024年5月22日13点14分 &#x1f4af;趣站推荐&#x1f4af; 前些天发现了一个巨牛的&#x1f916;人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xf…

捕食者优化算法,原理详解,MATLAB代码免费获取

捕食者优化算法&#xff08;Hunter–prey optimization&#xff0c;HPO&#xff09;是一种受自然启发的群智能优化算法。该算法的灵感来自于捕食动物(如狮子、豹和狼)以及猎物(如雄鹿和瞪羚)的行为。动物狩猎行为有很多场景&#xff0c;其中一些场景已经转化为优化算法。本文使…

数据结构篇其三---链表分类和双向链表

​ 前言 数据结构篇其二实现了一个简单的单链表&#xff0c;链表的概念&#xff0c;单链表具体实现已经说明&#xff0c;如下&#xff1a; 单链表 事实上&#xff0c;前面的单链表本质上是无头单向不循环链表。此篇说明的双向链表可以说完全反过来了了。无论是之前的单链表还…

Arthas反编译与重新加载class

一、背景 因为其他研发部门同事给的产品jar包存在一个问题&#xff0c;就是http底层的超时时间默认为60s&#xff0c;但是最近调用外部接口同步数据&#xff0c;这个数据量太大导致超时超过60s&#xff0c;每次同步都不成功。但是客户目前对此情况特别不满意&#xff0c;需要紧…

将电脑D盘部分空间划分给C盘的方法

本文介绍在Windows电脑中&#xff0c;将D盘的部分空间分给C盘的方法。 最近&#xff0c;发现电脑中C盘的空间剩余不多了&#xff1b;而D盘由于当初分盘时划分的空间过多&#xff0c;导致其剩余空间很大且大概率以后都不会用上D盘中这些多余的空间了。因此&#xff0c;希望将D盘…

使用Word表格数据快速创建图表

实例需求&#xff1a;Word的表格如下所示&#xff0c;标题行有合并单元格。 现在需要根据上述表格数据&#xff0c;在Word中创建如下柱图。如果数据在Excel之中&#xff0c;那么创建这个图并不复杂&#xff0c;但是Word中就没用那么简单了&#xff0c;虽然Word中可以插入图表&a…

轻松拿捏C语言——【字符串函数】的使用及模拟实现

&#x1f970;欢迎关注 轻松拿捏C语言系列&#xff0c;来和 小哇 一起进步&#xff01;✊ &#x1f389;创作不易&#xff0c;请多多支持&#x1f389; &#x1f308;感谢大家的阅读、点赞、收藏和关注&#x1f495; &#x1f339;如有问题&#xff0c;欢迎指正 感谢 目录 一、…