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

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.mzph.cn/bicheng/10933.shtml

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

相关文章

【C++】stack和queue 适配器

🔥个人主页:北辰水墨 🔥专栏:C学习仓 本节内容我们来讲解栈和队列的模拟实现,文末会赋上模拟实现的代码 一、stack的使用和模拟实现 stack适配器的介绍: 1. stack是一种容器适配器,专门用在具…

基于openEuler22.03 LTS环境的容器项目实训——分布式微服务项目部署

一、说明 本文配置环境为VMware虚拟机(4核CPU,4 GB内存,40GB磁盘),OS为openEuler 22.03 LTS ,虚拟机要求能联网。 二、安装docker环境 2.1 安装docker相关软件包 [rootnode01 ~]# dnf -y install docker…

Windows环境下VSCode加MinGw-W64搭建C/C++开发环境

前言: 本文记录了自己在配置 Windows环境下 VSCode,并安装MinGW-W64来搭建windows操作系统下下的C/C开发环境。本文重点参考了如下链接中知乎上的文章里介绍的方法,在windows上安装 MinGW-W64。 vscode c/c环境配置(MinGW&…

深度学习中的一些概念

训练术语 欠拟合 欠拟合是指模型没有很好地捕获到数据特性,不能完整地表示数据的全部信息,也就是模型的复杂度低于应有的水平。例如,假设一个数据集实际上服从二阶多项式分布,但我们使用一阶线性模型去拟合它,这样的…

开发时如何快速分析代码和生成测试方法(Baidu Comate插件帮我一键分析)

目录 前言 Baidu Comate智能编码助手简介 安装教程 使用RabbitMQ一个绑定队列方法进行演示 进行测试现有功能 使用感觉 测试结果 前言 因为在开发代码的时候,发现有很多都是废话也不是很想写注释 的,毕竟程序员最讨厌的两件事情,一…

AI 重塑产品设计

作者:明明如月学长, CSDN 博客专家,大厂高级 Java 工程师,《性能优化方法论》作者、《解锁大厂思维:剖析《阿里巴巴Java开发手册》》、《再学经典:《Effective Java》独家解析》专栏作者。 热门文章推荐&am…

Chrome的常用操作总结

Chrome的常用操作总结 最近的自己真的好忙啊,好久真好久没有写博客了,今天我就趁着周末的这段时间总结一下最近自己的用的Chrome浏览器常用的命令 不得不说: 就是特么的丝滑!吊打一切浏览器(不接受反驳哈哈哈)因为反驳我也不听嘻嘻 用好快捷键,就是事半功倍!!!重要的事儿说一遍…

【定制化】在Android平台实现自定义的程序启动页

特别说明:以下仅适用于Android平台。 实现原理 创建安卓端自定义的Activity禁用UnityPlayerActivity的启动Logo改用自定义Activity 示例效果 参考简单步骤或详细步骤都可实现。 自定义的启动动画,效果如下: 简单步骤 三步操作实现启动动画…

Vue3项目Easy云盘(二):文件列表+新建目录+文件重命名+文件上传

一、文件列表 1.封装全局组件Table.vue 因为Main.vue等都会用到文件列表table&#xff0c;所以直接封装成组件。 src/components/Table.vue <template><!-- 表格 --><div><el-tableref"dataTable":data"dataSource.list || []":h…

用迭代加深解决加成序列问题

可以看到这个最坏的结果是100层搜索&#xff0c;但是其实1 2 4 8 16 32 64 128&#xff0c;到128的话也只要8&#xff0c;所以大概只需要10几层搜索就可以解决了&#xff0c;这个时候就可以用迭代加深的方法&#xff0c;深度一点点的加&#xff0c;如果大于概深度就舍去。有人说…

用户登录后端:登录密码解密后用PasswordEncoder验证密码是否正确

前置知识: 前端登录加密看用户登录 PasswordEncoder加密看PasswordEncoder详解 项目中因为要判断用户登录密码是否正确&#xff0c;通过输入错误次数锁住用户 1.后端配置rsa私钥 #密码加密传输&#xff0c;前端公钥加密&#xff0c;后端私钥解密 rsa:private_key: xxxx2. 读…

基于C++基础知识的指针

一、变量与指针 在C中&#xff0c;变量是用来存储数据的一个标识符&#xff0c;而指针是一个变量&#xff0c;该变量存储的是另一个变量的地址。 变量可以是不同的数据类型&#xff0c;包括整数&#xff08;int&#xff09;、浮点数&#xff08;float&#xff09;、字符&#…

智慧粮库/粮仓视频监管系统:AI视频智能监测保障储粮安全

智慧粮库视频监管系统是一种基于物联网、AI技术和视频监控技术的先进管理系统&#xff0c;主要用于对粮食储存环境进行实时监测、数据分析和预警。TSINGSEE青犀智慧粮库/粮仓视频智能管理系统方案通过部署多区域温、湿度、空气成分等多类传感器以及视频监控等设施&#xff0c;对…

IDEA及Maven配置代理及Maven中央仓库配置详解

一、配置代理 首先&#xff0c;需要本地开启代理入口&#xff0c;如图。 这个跟你使用代理软件有关。像我使用的是qv2ray。 其次&#xff0c;idea配置代理&#xff0c;如图。 1.1 idea配置代理 打开Settings&#xff0c;如图 1.2 maven配置代理 maven配置代理&#xff0c;修…

虚拟机CentOS密码重置

1&#xff0c;reboot重启 在出现下面的界面1按e 如果有选项就选择“CentOS Linux &#xff08;3.10.0-327.e17.x86_64&#xff09;7 &#xff08;Core&#xff09;”【我的电脑没有直接显示界面2】 界面1 界面2 2&#xff0c;在上述界面2中继续按e进入编辑模式 找到“ro cr…

partially initialized module ‘replicate‘ has no attribute ‘run‘

partially initialized module replicate has no attribute run(most likely due to a circular import) 在包名上停留查看impot 包的地址。 报错原因&#xff1a; 文件重名了&#xff0c;导入了 当前文件 。 修改文件名 即可。

Vue3路由及登录注销功能、设置导航守护功能模块

路由 在vue中&#xff0c;页面和组件都是.vue文件&#xff0c;可以说是一样的&#xff0c;结构、内容和生产方法都是一样&#xff0c;但是组件可以被反复使用&#xff0c;但页面一般只被使用一次。 路由的作用就是网页地址发生变化时&#xff0c;在App.vue页面的指定位置可以加…

17 M-LAG 配置思路

16 华三数据中心最流行的技术 M-LAG-CSDN博客 M-LAG 配置思路 什么是M-LAG&#xff1f;为什么需要M-LAG&#xff1f; - 华为 (huawei.com) 1 配置 M-LAG 的固定的MAC地址 [SW-MLAG]m-lag system-mac 2-2-2 2 配置M-LAG 的系统标识符系统范围1到2 [SW-MLAG]m-lag system-nu…

MongoDB安装及接入springboot

环境&#xff1a;windows、jdk8、springboot2 1.MongoDB概述 MongoDB是一个开源、高性能、无模式&#xff08;模式自由&#xff09;的文档&#xff08;Bson&#xff09;型数据库&#xff1b;其特点如下&#xff1a; 模式自由 ---- 不需要提前创建表 直接放数据就可以 支持高并…

STM32窗口看门狗的操作

STM32的窗口看门狗的主要功能是&#xff0c;程序过早的喂狗还有太晚喂狗&#xff0c;都会触发单片机重启&#xff0c;就是有一个时间段&#xff0c;在这个时间段内喂狗才不会触发单片机重启。 下面我就总结一下窗口看门狗的设置过程&#xff1a; 第一步&#xff1a;开启窗口看…