首页 > 其他分享 >ros2 - slam - 编码器测速原理

ros2 - slam - 编码器测速原理

时间:2024-07-02 12:19:55浏览次数:20  
标签:编码器 高电平 电机 电平 slam ros2 轮子 摄像头

上节做完小车,遥控时小车前进时你应该会发现,小车很难走一条直线,但明明我们给到两个电机的PWM占空比都是相同的,原因在于每一个电机的硬件参数并不能完全的保证一致,所以当我们采用开环控制时,即使我们给到每个电机相同的电压,也不能让两个电机保持相同的转速。

要解决这个问题我们就要把开环控制改成闭环控制,我们要实现的是速度闭环,所以第一步我们要实现的是对电机速度的测量。

第一节中介绍过,我们采用的是AB磁编码器,编码器直接连接到了我们的单片机IO上,当电机转动时,IO上的电平高低就会产生变化,我们称这种电平从低到高再到低的过程称作一个脉冲。
因为有减速机的存在,当减速器的输出轴(轮胎)转动了一圈,我们会检测到多个脉冲。所以要想通过编码器得出轮子的速度,我们需要知道检测到一个脉冲时,轮子行走多远距离。
我们FishBot上的电机轮子直径为65mm,当轮子转一圈时产生N个脉冲,那么一个脉冲轮子前进的距离D可以这样计算,单位是mm。

 

 二、轮速测量原理
你可能会好奇,为什么我们的电机后面有两个霍尔传感器,用一个不就可以对电机进行测速了吗?原因是使用两个会更精准,同时可以测量方向。
我们把磁铁看作小汽车,AB两个传感器是一条路上前后两个摄像头,如果汽车是正着行驶的,你会发现总是A摄像头先看到汽车,然后再是B,但如果反过来行驶,则是B摄像头先看到设备。

 

            [A]          [B]
-------------------------------------------------------------
    [汽车-->]                                [<--汽车]
-------------------------------------------------------------

为了更加直观也分别用逻辑分析仪测量了两段轮子正转和反转时,AB编码器上电平的变化。

 放大正转时,当A(通道0)电平为高电平后(A摄像头先看到了汽车),过了一段时间B(通道1)才变为高电平(B摄像头看到了汽车)。

 放大反转部分,当A(通道0)电平为高电平后(A摄像头看到了汽车),在A之前B(通道1)已经为高电平了(B摄像头先看到了汽车)。

 所以在代码中我们可以检测到当A通道从低电平变成高电平时,B通道的电平值,如果为低则表示正转,为高则表示反转。

 

标签:编码器,高电平,电机,电平,slam,ros2,轮子,摄像头
From: https://www.cnblogs.com/ai-ldj/p/18279673

相关文章

  • ros2 slam - 订阅ROS2 Twist
    本节我们结合上一节电机控制以及前面章节的MicroROS话题订阅部分知识点,来实现一个可以用键盘遥控的小车。新建工程example24_ros2_car 修改配置[env:featheresp32];这是一个环境配置标签,指定了代码将运行的硬件平台和框架platform=espressif32;指定了使用的平台为E......
  • ros - slam - 电机控制之速度控制实验
    前面说到通过控制对应的IO上的PWM占空比即可完成对电机速度的控制。关于PWM的介绍在ROS2硬件控制篇的舵机控制中已经介绍过了,所以我们知道通过改变PWM的占空比可以实现对输出电压的大小调节。占空比越大,输出电压越高;占空比越小,输出电压越低。接着我们通过一个实验来验证下一、新建......
  • ros slam 之移动机器人常用传感器
    本节我们对移动机器人底盘结构进行简单的介绍,并着重介绍FishBot基础版的组成结构。对于一个移动底盘来说,所要提供的核心功能有两个-感知和执行能力,我们分别进行介绍。一、感知-传感器所谓感知即通过给类传感器获取环境信息的能力。在移动机器人中,我们常用的传感器有 距离传......
  • ros slam microros之H电桥电机驱动原理介绍
    一、电机驱动原理介绍正式编写代码前,我们先了解下电机驱动的原理,以便于我们了解我们如何才能通过代码控制电机的转速和正反转。1.1H桥电路让电机动起来只需要通电就行,比如我们用的额定电压为12V130RPM的电机,当给到12V的电压时可以达到额定转速130转/分,但如果我们给8V的电压,此时......
  • ros2 - microros - 雷达 -可视化点云
    上一节完成了指定角度距离的测量这一节我们将其合成ROS的laserscan消息,并将其通过microros发布到上位机,最终实现rviz2的可视化。 一、雷达消息介绍使用指令ros2interfaceshowsensor_msgs/msg/LaserScan,可以看到ROS2对雷达数据接口的定义。#Singlescanfromaplanarlas......
  • x264 编码器x264.h文件中结构体详细介绍
    x264_picture_t定义:在x264.h文件中定义typedefstructx264_picture_t{/*In:forcepicturetype(ifnotauto)*Ifx264encodingparametersareviolatedintheforcingofpicturetypes,*x264willcorrecttheinputpicture......
  • ROS2创建简单的C++功能包
    1.创建功能包终端下,进入ws00_helloworld/src目录,使用如下指令创建一个C++功能包:ros2pkgcreatepkg01_helloworld_cpp--build-typeament_cmake--dependenciesrclcpp--node-namehelloworld执行完毕,在src目录下将生成一个名为pkg01_helloworld_cpp的目录,且目录中已经......
  • ORB-SLAM3 源码分析
    一、ORB-SLAM3介绍ORB-SLAM3是一个先进的同时定位与地图构建(SimultaneousLocalizationandMapping,SLAM)系统,实现了基于视觉惯导紧耦合,同时能够对多地图进行复用;另外支持单目/双目/RGB-D作为输入,支持针孔以及鱼眼相机模型。是目前种类最齐全、工程化最好、精度和鲁棒性整体最佳的......
  • 机器翻译及实践 初级版:含注意力机制的编码器—解码器模型
    机器翻译及实践初级版:含注意力机制的编码器—解码器模型前言一、什么是机器翻译?二、所需要的前置知识(一).Seq2Seq1.什么是Seq2Seq2.机器翻译为什么要用Seq2Seq3.如何使用Seq2Seq3.1编码器的实现3.2解码器的实现3.3训练模型(二).注意力机制1.什么是注意力机制2.机器翻译为......
  • 使用 ROS2的多机器人探索
    原文链接:https://www.youtube.com/watch?v=J0RZP_xJ3XA ThisvideoshowsademonstrationoftheSOSproject,dedicatedtoforestfiredetectionusingafleetofrobots.Severalimportantissuesareaddressed.这段视频展示了SOS项目的演示,该项目致力于使用机器人......