ros slam 之移动机器人常用传感器

news/2024/7/5 17:37:43/文章来源:https://www.cnblogs.com/ai-ldj/p/18279254

本节我们对移动机器人底盘结构进行简单的介绍,并着重介绍FishBot基础版的组成结构。

对于一个移动底盘来说,所要提供的核心功能有两个-感知和执行能力,我们分别进行介绍。

一、感知-传感器
所谓感知即通过给类传感器获取环境信息的能力。在移动机器人中,我们常用的传感器有 

  • 距离传感器——雷达、超声波
  • 轮子速度传感器——编码器
  • 惯性测量单元——IMU传感器
  • 图像传感器——单目、双目、深度摄像头

除了上面几类之外,你也可以根据需求挂载其他你需要的传感器,比如温湿度测量传感器等。
对于FishBot基础版来说,搭载的传感器有雷达、超声波、编码器和IMU四种。

在上一篇中我们已经使用了超声波和IMU,所以本节我们对雷达和编码器这两种传感器进行简单介绍。

1.1 雷达
我们采用的激光雷达是单线旋转式三角测距激光雷达。

 1.1.1 雷达测距原理介绍
在雷达的头部分别有一个激光发射头和线性的CCD接收头。

 右边黑色的是发射头,左边是CCD接收头,发射头发射出的光属于波长大约在1000nm左右的红外光,肉眼是不可见的。
FishBot所采用的这种激光雷达的测距原理是三角测距法

 从上图可以看出,当我们已知L(机械安装值)和d1(CCS测量值)和f(机械安装值)的情况下,我们可以得到D1的值,即激光雷达到被测物体的距离

 

激光头通过不断旋转,这样就可以测量出360度的深度信息。

1.2 编码器
在移动机器人中我们需要实时的获取到机器人各个轮子的转速,通过转速根据机器人的运动学模型将轮子的速度转换成机器人的速度,通过对速度进行积分(速度*距离)得到机器人行走的距离。
我们如何对轮子速度的测量所使用的传感器就是编码器,在FishBot上,我们采用的是AB电磁编码器。

 电磁编码器是由1和2两个霍尔传感器和圆形磁铁3共同组成的,该磁铁的磁性是间隔分布的,磁铁固定在电机的转子上,当电机转动时,带动磁铁转动,此时用于检测磁性的霍尔传感器就会检测到磁性的变化,从而就可以测量出电机在某段时间内转了多少圈即电机的转速。

二、执行器
所谓执行器就是负责动的部件,在移动机器人上,最重要的一个执行器就是电机了,除此之外我们也可以把OLED这种显示设备看作一个可以操作的执行器。
电机有很多分类,大类可以按照有刷无刷、直流交流来分类,具体就不展开了,我们下面主要介绍FishBot所采用的电机。

2.1 电机
我们FishBot上采用的是一个额定电压12V的370减速电机,额定转速为130转/分、额定电流0.5A,转矩600克力厘米。

电机相信你很熟悉,那什么是减速电机呢?减速电机指的是带减速器的电机。
电机一般由定子和转子组成的,一般转速都比较快,但输出的力矩比较小,所以我们会给电机配备减速器,让转速降低,提高力矩。

三、其他配件
除了执行器和传感器外,还有一些必要配件
电池,提供电力支持
稳压模块,提供电压转换,FishBot以将其集成到主控板上
万向轮等必要支撑结构
四、总结
本节我们主要介绍FishBot的硬件组成,并对其中新出现的传感器和执行器原理进行介绍,下一节我们开始正式编写代码,先尝试让电机转起来。

 

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

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

相关文章

VMware ESXi 8.0U3 macOS Unlocker OEM BIOS HPE (慧与) 定制版

VMware ESXi 8.0U3 macOS Unlocker & OEM BIOS HPE (慧与) 定制版VMware ESXi 8.0U3 macOS Unlocker & OEM BIOS HPE (慧与) 定制版 ESXi 8.0U3 标准版,Dell (戴尔)、HPE (慧与)、Lenovo (联想)、Inspur (浪潮)、Cisco (思科)、Hitachi (日立)、Fujitsu (富士通)、NEC…

day33-Django3.2(二)

四、视图 django的视图主要有2种,分别是函数视图和类视图.现在刚开始学习django,我们先学习函数视图(FBV),后面再学习类视图[CBV]. 4.1、请求方式 web项目运行在http协议下,默认肯定也支持用户通过不同的http请求发送数据来。django支持让客户端只能通过指定的Http请求来访问到…

为什么单元测试不是持续交付的唯一答案

残酷的事实是,大多数企业在持续交付的道路上相当落后。为了让持续集成和持续交付(CI/CD)成为现实,企业必须审查其内部流程,并重新思考如何处理软件交付生命周期。过去的清单和评论根本不是前进的方向。残酷的事实是,大多数企业在持续交付的道路上相当落后。对软件交付过程…

蓝桥杯Java组常用知识点

备战蓝桥杯学习笔记基本数据类型 int的取值范围: -2^31 ~ 2^31-1 -2147483648 ~ 2147483647(约等于10的9次方) long long的取值范围: -2^63 ~ (2^63-1) -9223372036854775808 ~ 9223372036854775807(约等于10的18次方) 输入输出 使用文件流对输入输出的重要性:https://…

Linux内存不够了?看看如何开启虚拟内存增加内存使用量

1、为什么要使用虚拟内存 当我们没有多余的钱去购买大内存的云服务器时,但是当前服务器里面的软件和程序运行的比较多导致内存不够用了。这个时候可以通过增加虚拟内存来扩大内存容量。但是在启用虚拟内存时,需要仔细考虑系统的实际需求和硬件配置,以及权衡虚拟内存的优缺点…

camunda数据库表结构详细说明

本文基于Camunda7.19.0版本,介绍Camunda开源工作流引擎的数据库架构和ER模型,Camunda7.19.0共49张表,包括了BPMN流程引擎、DMN规则引擎、CMMN引擎、历史数据、用户身份等方面的表结构定义,以及表与表之间的关联关系。本文基于Camunda7.19.0版本,介绍Camunda开源工作流引擎…

camunda多租户技术架构介绍和测试验证

多租户考虑的是单个 Camunda 安装应该为多个租户提供服务的情况。对于每个租户,应做出一定的隔离保证。例如,一个租户的流程实例不应干扰另一租户的流程实例。 多租户可以通过两种不同的方式实现。一种方法是每个租户使用一个流程引擎。另一种方法是仅使用一个流程引擎并将数…

IEEE 8802-3 以太网标准解读

PHY: CarrierSense 载波侦听 ReceveDataValid 接受数据有效 CollisionDetect 碰撞检测 Transmitting 传输中 TransmitBit 传输比特 SFD 10101011 开始 ReceiveBit 接受比特 Wait 等待1、MA_DATA.request 定义了MAC客户端访问单独实体或者z在组地址的前提下访问多个实体 MA…

在C#中使用RabbitMQ做个简单的发送邮件小项目

在C#中使用RabbitMQ做个简单的发送邮件小项目 前言 好久没有做项目了,这次做一个发送邮件的小项目。发邮件是一个比较耗时的操作,之前在我的个人博客里面回复评论和友链申请是会通过发送邮件来通知对方的,不过当时只是简单的进行了异步操作。 那么这次来使用RabbitMQ去统一发…

【进阶篇】Java 项目中对使用递归的理解分享

笔者在最近的项目开发中,遇到了两个父子关系紧密相关的场景:评论树结构、部门树结构。具体的需求如:找出某条评论下的所有子评论id集合,找出某个部门下所有的子部门id集合。【进阶篇】Java 项目中对使用递归的理解分享 目录【进阶篇】Java 项目中对使用递归的理解分享前言一…

C#/.NET/.NET Core编程技巧练习集(学习,实践干货)

DotNet Exercises介绍 DotNetGuide专栏C#/.NET/.NET Core编程常用语法、算法、技巧、中间件、类库练习集,配套详细的文章教程讲解,助你快速掌握C#/.NET/.NET Core各种编程常用语法、算法、技巧、中间件、类库等等。GitHub开源地址:https://github.com/YSGStudyHards/DotNetE…

2024年6月文章一览

2024年6月编程人总共更新了5篇文章: 1.2024年5月文章一览 2.《编译原理》阅读笔记:p18 3.《编译原理》阅读笔记:p19-p24 4.《编译原理》阅读笔记:p25-p32 5.《Programming from the Ground Up》阅读笔记:p1-p18 6月再挖一个坑,开始《Programming from the Ground Up》的学…

【论文阅读】自动驾驶光流任务 DeFlow: Decoder of Scene Flow Network in Autonomous Driving

再一次轮到讲自己的paper!耶,宣传一下自己的工作,顺便完成中文博客的解读 方便大家讨论。Title PictureReference and pictures paper: https://arxiv.org/abs/2401.16122 code: https://github.com/KTH-RPL/DeFlow b站视频: https://www.bilibili.com/video/BV1GH4y1w7LQ1.…

利用SonarCloud和Azure DevOps提升代码质量

利用SonarCloud和Azure DevOps提升代码质量 在软件开发过程中,代码质量是至关重要的。为了确保代码的清洁和安全性,我们可以使用SonarCloud——一个基于云的代码质量与安全服务。SonarCloud不仅对开源项目免费,还为私有项目提供了14天的免费试用。本文将指导您如何将SonarCl…

免费申请一张SSL证书-包含100个域名-挑战!!

挑战一下,申请一张包含100个域名的证书 首先,我们访问来此加密网站,进入登录页面,输入我的账号密码。登录后,咱们就可以开始申请证书,首先说一下,咱账号是SVIP哦,只有SVIP才可以申请包含100个域名的证书。为了方便验证,咱么先添加一下域名接口,这样可以自动配置验证信…

.net6+ 在单文件应用程序中获取程序集位置

一般来说,获取执行程序集的位置,您可以调用: var executableDirectory = System.Reflection.Assembly.GetExecutingAssembly().Location;如果发布为单个文件, 会提示如下警告 warning IL3000: System.Reflection.Assembly.Location always returns an empty string for assemb…

(set+拓扑排序) CF1572A Book

题意:思路: 每本书之间很明显存在拓扑关系,由此想到拓扑排序。使用set对图进行拓扑排序,将阅读次数小的放在前面,若阅读次数相同则按照阅读章节编号排序。假设第 x 章在第 y 章理解之后就能理解,若 x 大于 y 则本次阅读就可以理解 x 章,否则需要下一次才能理解第 x 章。 …

【github报错解决】Failed to connect to github.com port 443: Couldnt connect to server

今天使用github push时候报错的 解决办法: 1、查看本机代理 路径:设置->网络和Internet->代理->地址:端口 2、用git cmd修改配置,port就用刚刚代理端口值git config --global http.proxy http://127.0.0.1:[port] git config --global https.proxy http://127.0.0…

LVGL组件

LVGL组件的使用 目录LVGL组件的使用1 . 父和子对象2. 部件的基本属性及设置3. 图解:还有其他样式可以设置2. 组件分类 1 . 父和子对象2. 部件的基本属性及设置 /******** 设置打小 ********/ /******** 注意:设置部件位置时,坐标原点在父对象的左上角 ********/ lv_…

Maven 笔记

开发工具:Maven相关内容笔记# Maven简介 Maven的本质是一个项目管理工具,将项目开发和管理过程抽象成一个项目对象模型(POM)) 这玩意儿是使用Java开发的,所以采用的就是Java的思想:面向对象 POM (Project Object Model):项目对象模型Maven的作用:项目构建:提供标准的、…