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

news2024/11/28 22:46:59

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

  • 1. 源由
  • 2. 问题汇总
    • 2.1 问题1:飞控选择
    • 2.2 问题2:飞控安装位置和固定
    • 2.3 问题3:各种插头、插座配套
    • 2.4 问题4:分电板缺陷
    • 2.5 问题5:电机+编码器接线及正反向问题
    • 2.6 问题6:Ardupilot是否支持编码器?
  • 3. 基础知识
    • 3.1 电机工作电压
    • 3.2 编码器工作原理
    • 3.3 舵机规格
  • 4. 参考资料

1. 源由

纪念下今天折腾了一天,为此,特地撰文一篇。

将Ardupilot Rover折腾上路的艰辛历程记录下来,感兴趣的小伙盘也来指点下江山,帮我出出主意。

2. 问题汇总

2.1 问题1:飞控选择

做计划的时候,选择了手边的两块板子,当时考虑Kakute F7是因为有2.54的排针方便。

  • Aocoda-RC H743Dual
  • KAKUTE F7 AIO

而实际情况是KAKUTE F7 AIO只有6个PWM,无法满足阿克曼车的控制,很多人会好奇了吧。

一个接收机就能玩的无人车,飞控竟然说还折腾不了。确实啊,这APM高大上呀,呵呵!

阿克曼无人车实际上是机器人底盘,所以人家有超精密的定位系统,这可有编码器啊。

在这里插入图片描述
好了,我们算下PWM IO:

  • 电机PWM控制 1个IO
  • 编码器 2个IO
  • 伺服转向系统 1个IO

所有的加起来:(1 + 2) x 2 + 1 = 7个

2.2 问题2:飞控安装位置和固定

虽然四轴大量的焊接,但是要知道四轴飞机基本上结构上固定都是固定的,这个阿克曼的车,飞控固定在哪里?这个结构件哪里来,之前都没有考虑到?

好吧,从VTOL上面正好找到一个当时存在一些问题的结构,凑合着用;同时也注定了必须将飞控安装于Rover的最上层,以便更好的获取GPS信号。

在这里插入图片描述

2.3 问题3:各种插头、插座配套

为什么说插接头的重要性?

  1. 原有设计规格

购买的是阿克曼机器人底盘,其原来配套的是OpenCTR的那套主控,所以带来了一下底盘接口没有配套插座的问题:

  • LED灯带 3线插座 //这个是不兼容的
  • 转向Servo经典插座 //这个是兼容的
  • 电机+编码器插座 //6pin插座不兼容
  1. 飞控安装与顶层

飞控安装的结构件有GPS,要求放在最开阔的位置,以便更好的GPS信号。
阿克曼车是分层的,电机,转向Servo、LED等都在底层。
如果像飞控那样焊死,到时候加装或者拆卸都涉及焊接问题。
因此最好的问题就是底层和控制两层进行插头/插座的分离。

最终决策:6pin 电机+编码器规格的插头插座 三套来解决电机、编码器、LED灯带、转向伺服的连接问题。

2.4 问题4:分电板缺陷

配套Aocoda-RC PDB 3060分电板,看上去至少感觉还是蛮不错的。但是依然存在几个问题:

  1. Servo经典插接3pin焊接焊盘太小,上锡非常不易; //焊盘太小
  2. S1/S2 没有Servo经典插接3pin;//有servo经典插接的只有6个PWM
  3. S3/S4/S5 S6/S7/S8排的很密,插线比较困难;

注:其实之前在VTOL上也遇到一些IO不够用问题,比如:四旋翼的VTOL。若能增加一个连接件,上层飞控能够引出4pin PWM扩展Servo经典接口(S/VX/GND)那就非常好了。
在这里插入图片描述

2.5 问题5:电机+编码器接线及正反向问题

在这里插入图片描述

在这里插入图片描述

这里有一个最终的问题就是:线序解法一致的情况下,同样PWM时,电机转向按照塔克官方设计,是能保证车子往前开,而不是原地转圈嘛???? — 有待验证,官方技术支持未回复,从资料上看,用户应该按照正常线序连接。

在这里插入图片描述

2.6 问题6:Ardupilot是否支持编码器?

  1. 一看到全新研发,我就害怕,这能和国际接轨不?????
  2. 例子:13个脉冲一圈,减速比1:30,为什么输出轴转一圈是 13 x 30 x 4 = 1560??? 这里的4是什么?Magic Number?

在这里插入图片描述

3. 基础知识

3.1 电机工作电压

貌似只能上3S,如果4S ~ 6S还得买降压模块,万幸!

在这里插入图片描述

3.2 编码器工作原理

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

3.3 舵机规格

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

4. 参考资料

【1】Ardupilot开源代码之Rover上路计划

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

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

相关文章

docker-compose集成elk(基于logstash+filebeat)采集java和nginx日志

1.准备compose.yml编排式文件 services: #日志信息同步logstash:container_name: logstashimage: docker.elastic.co/logstash/logstash:7.17.14 #logstash:command: logstash -f /usr/share/logstash/pipeline/logstash.confdepends_on:- elasticsearchrestart: on-failurepo…

车机HMI:驾驶员小命握在UI设计师手,九大法则必须遵循。

本文给大家列举了九大法则,欢迎评论点赞交流。 在车机HMI设计中,为了降低驾驶员的反应时间并增加驾驶安全性,可以遵循以下UI设计法则: 易读性和可识别性 确保界面上的文本和图标清晰易读,避免使用过小、过于复杂或模…

Crossplane 实战:构建统一的云原生控制平面

1 什么是 Crossplane Crossplane 是一个开源的 Kubernetes 扩展,其核心目标是将 Kubernetes 转化为一个通用的控制平面,使其能够管理和编排分布于 Kubernetes 集群内外的各种资源。通过扩展 Kubernetes 的功能,Crossplane 对 Kubernetes 集群…

GoF之代理模式(静态代理+动态代理(JDK动态代理+CGLIB动态代理带有一步一步详细步骤))

1. GoF之代理模式(静态代理动态代理(JDK动态代理CGLIB动态代理带有一步一步详细步骤)) 文章目录 1. GoF之代理模式(静态代理动态代理(JDK动态代理CGLIB动态代理带有一步一步详细步骤))每博一文案2. 代理模式的理解3. 静态代理4. 动…

[AIGC] 跳跃表是如何实现的?原理?

文章目录 什么是跳跃表查找流程:为什么使用跳跃表?跳跃表是怎么实现的? PS:跳跃表是比较常问的一种结构。 什么是跳跃表 Skip Lists: A Probabilistic Alternative to Balanced Trees 跳跃表是一种可以用来代替平衡树的数据结构。跳跃表使用概率平衡…

类和对象一(从封装开始讲述)

目录: 一.封装 二.封装扩展之包,自定义包 三.访问限定符 四.static成员 一.封装:封装:将数据和操作数据的方法进行有机结合,隐藏对象的属性和实现细节,仅对外公开接口来和对象进行 交互。面向对象…

插件:Best HTTP

一、简介 WebSocket WebSocket使得客户端和服务器之间的数据交换变得更加简单,允许服务端主动向客户端推送数据。在WebSocket API中,浏览器和服务器只需要完成一次握手,两者之间就直接可以创建持久性的连接,并进行双向数据传输。…

MATLAB 多项式

MATLAB 多项式 MATLAB将多项式表示为行向量,其中包含按幂次降序排列的系数。例如,方程P(x) X 4 7 3 - 5 9可以表示为 p [1 7 0 -5 9]; 求值多项式 polyval函数用于求一个特定值的多项式。例如,在 x 4 时,计算我们之前的多项式…

图论专题训练

leecode 547 并查集 class Solution { public:int findCircleNum(vector<vector<int>>& isConnected) {ini();int len isConnected.size();for(int i0;i<len;i){for(int j0;j<len;j)if(isConnected[i][j]){unio(i,j);}}int ans 0;for(int i0;i<len;…

【一键录音,轻松转换:用Python打造个性化音频记录工具】

在数字化时代,音频记录已成为日常学习、工作和娱乐不可或缺的一部分。想象一下,只需简单按下几个键,即可随时随地捕捉灵感,记录会议要点,或是珍藏孩子的童言稚语。本文将引领您步入Python编程的奇妙世界,展示如何借助几个强大的库,构建一个既简单又实用的音频录制及转换…

58. 【Android教程】音频录制:MediaRecord

在第 57 节我们使用 MediaPlayer 实现了一个 mp3 播放器&#xff0c;除了播放 Android 还提供了 MediaRecorder 用于录音。Android 设备基本都会有一个麦克风&#xff0c;通过 MediaRecorder 可以打开麦克风进行语音采集&#xff0c;这一节我们就来学习如何在 Android 系统上实…

Python3 笔记:二进制的转换

十进制是逢十进一&#xff0c;二进制就是逢二进一。 十进制里最大的数字是9&#xff0c;二进制里最大的数字是1。 11010010001000010000010000001000000010^0110^11010^210010^3100010^41000010^510000010^6100000010^7100000002^012^122^242^382^4162^5322^6642^7128 1、十进…

Linux中创建共享文件夹

前言 从0开始记录我的学习历程&#xff0c;我会尽我所能&#xff0c;写出最最大白话的文章&#xff0c;希望能够帮到你&#xff0c;谢谢。 提示&#xff1a;文章作者为初学者&#xff0c;有问题请评论指正&#xff0c;感谢。 当我们再用虚拟机的Linux的时候经常会遇到Windows…

增强客户黏性:服装实体店扫码连锁收银软件提供多样的会员营销策略

随着消费者对购物体验的需求不断提升&#xff0c;服装实体店面临着更大的挑战和机遇。为了增强客户黏性&#xff0c;提升销售业绩&#xff0c;越来越多的服装实体店开始引入扫码连锁收银软件&#xff0c;并提供多样化的会员营销策略。这一举措不仅为店铺提供了更加智能化的经营…

python选修课期末考试复习

目录 记住输出小数的格式文件条件判断随想循环小星星计算金额猜数字折纸 函数找最大值 基础知识总结 记住输出小数的格式 输出a&#xff0c;保留两位小数 %.2f%a打开文件有点儿难&#xff0c;多记几遍格式吧 文件的格式后面有冒号&#xff0c;谨慎一点&#xff0c;都用双引号…

springfox.documentation.spi.DocumentationType没有OAS_30(从swagger2转到swagger3出现的问题)

直接开讲&#xff1a; 查看源码根本没有OAS_30的类型选择 右键package的springfox找到maven下载的包&#xff0c;打开到资源管理器 可以看到项目优先使用2版本的jar包&#xff0c;但是OAS_30只在3版本中才有&#xff0c;意思就是让项目优先使用以下图片中的3.0.0jar包 解决办法…

免费PDF批量加密工具

最近在找PDF批量加密的软件来着&#xff0c;发现很多都是需要收费的&#xff0c;当然如果平时工作需要用的比较多&#xff0c;支持一下还是ok的&#xff0c;但是多数人还是偶尔用一下所以没有必要买。 工作用的话&#xff0c;一般企业文件、个人隐私资料、重要合同...所有重要文…

本地项目上传到gitee

1. 新建仓库&#xff0c;不要勾选 2. git init git add . git commit -m "test" git remote add origin 【url】 git push --set-upstream origin master

js原型链与继承笔记

前置阅读&#xff1a;https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Inheritance_and_the_prototype_chain js中的“类”是一个函数。function test() {}中&#xff0c;test是由Function生成的。prototype与__proto__的区别&#xff1a; 前者是js函数&#xff08;C…

Express框架下搭建GraphQL API

需要先下载apollo-server-express&#xff0c;apollo-server-express是Express框架下&#xff0c;用于构建GraphQL服务的中间件&#xff0c;属于Apollo Server的一部分&#xff1a; npm install apollo-server-express 随后在index.js添加 apollo-server-express包&#xff1…