什么是轮式里程计

2023-11-07 23:30
文章标签 里程计 轮式

本文主要是介绍什么是轮式里程计,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

里程计的基石 - 码盘

image.png

这是一个非常丑的码盘,它可以分为8个刻度,红色区域是吸光区,白色区域为透光区。这个码盘粘在电机上,当电机转动时,带动码盘转动。电机本身又通过减速箱与轮子相接最终大概构图为:

ba8f3f7fe439cbf3329730b1fe21d970.jpg

码盘可以得到什么?

真实线速度

经过光电管后,每次码盘转动都会产生一次脉冲,mcu可以通过中断记录两次脉冲之间的时间 △t ,已知这个时间,已知两个码盘间的距离,就可以算出来这段时间的真实速度(线速度 精度为 mm/s)。

里程

我们扫地机的码盘采用的是磁码盘,码盘转一次走过8个刻度,轮子通过减速箱与码盘产生联系,大概关系为:

image.png

比如我们的扫地机左右轮,周长 267mm , 轮子转一圈,经过了335个脉冲(刻度),那么每个脉冲对应的行走距离就是 :

odom = 267 / 335 = 0.797 (mm / 刻度)

那么如果我们左轮走了10000个刻度,就相当于走了 7970 mm

以上就是如何通过码盘获取每个轮子的里程。

扫地机速度闭环

上面讲了我们可以通过码盘获取左右轮真实速度,我们还可以通过PWM + 电机驱动芯片控制轮子的实际速度

image.png上面是一个精简的PID控制器,所有与轮子相关操作的均在一个线程内:

image.png

从linux下发一次线速度角速度,到底层控制电机转动,经过了如下步骤
image.pngimage.png

也就是说,Linux下发的线速度角速度,mcu把它解释为左轮期望速度和右轮期望速度,经过软加速后,放到PID控制器里做闭环。

基于里程计航迹推算(定位建图)

编码器推算轨迹:(直接对距离做分解累积误差相对较小,最终精度1%以内,如果做修正,同时航向角较准确的情况下精度可以达到0.1%以内(已经实测))
编码器每一个脉冲对应实际轮子行走的直线距离系数为:
rate_encoder = 2𝛑r/sum_encoders
其中r为车轮半径, sum_encoders 为轮子走动一圈的编码器的脉冲总数。
单位时间∆t内编码的增量为:
inc_encoder = encoder_now – encoder_last (当前编码器值减去上次编码器值)
则单位时间机器人移动的距离为:
∆d = inc_encoder * rate_encoder

世界坐标系下x、y方向累计里程分别为:
Xw = Xw + ∆xw = Xw + ∆d * cos(θ)
Yw = Yw + ∆yw = Yw + ∆d * sin(θ)

其中航向角θ的获取分两种情况:

  • 底盘带具有稳定航向角的IMU,此方式可以使得最终解算的位置十分准确(电子罗盘受电机干扰交大不可用)
    θ直接等于IMU的航向角Yaw。(IMU的Yaw上电为0,刚好和车的航向角一致)
  • 依靠底盘两个轮子上精确的编码器推算航向角。
    两轮编码器单位时间内增量分别为 inc_encoder_r、inc_encoder_l
    单位时间内两轮扭动的距离差为 lenth_error = (inc_encoder_r- inc_encoder_l) * rate_encoder;
    由⑤得:由距离差得单位时间内角度差为 anlge_z_error = lenth_error / 2d;
    根据编码器累计的角度θ为 anlge_z += anlge_z_error。
    此方式非常依赖编码器精度,有累计误差,效果不如直接使用IMU的好。

这篇关于什么是轮式里程计的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/366760

相关文章

里程计运动模型及标定

最小二乘: https://blog.csdn.net/u012736279/article/details/41323247 https://blog.csdn.net/u012736279/article/details/46545971   特征提取: https://blog.csdn.net/renshengrumenglibing/article/details/860424

End-to-End视觉里程计新突破:从运动模糊图像中精确估计相机姿态

更多优质内容,请关注公众号:智驾机器人技术前线 1.论文信息 论文标题:MBRVO: A Blur Robust Visual Odometry Based on Motion Blurred Artifact Prior 作者:Jialu Zhang, Jituo Li*, Jiaqi Li, Yue Sun, Xinqi Liu, Zhi Zheng, and Guodong Lu

《概率机器人》里程计运动模型gmapping中代码解析

里程计运动模型(odometery motion model)用距离测量代替控制。实际经验表明虽然里程计虽然仍存在误差,但通常比速度运动模型更加的精确。相比于速度运动模型运动信息 ut u_t由 (x¯t−1x¯t) \begin{pmatrix}\bar{x}_{t-1} \\ \bar{x}_t \end{pmatrix} 为了提取相对的距离, ut u_t被转变为三

LIO-SAM: 紧耦合的激光与惯导里程计方案

点云PCL免费知识星球,点云论文速读。 标题:LIO-SAM: Tightly-coupled Lidar Inertial Odometry via Smoothing and Mapping 作者:Tixiao Shan, Brendan Englot, Drew Meyers, Wei Wang, Carlo Ratti, and Daniela Rus 来源:分享者 欢迎各位加入免费知识

半直接法视觉里程计(SVO)实践

本文主要分两部分,编译安装SVO后对官方数据集的测试以及实验室摄像头的测试。 一.SVO安装及测试 在官方github首页上有比较详细的安装说明,不过部分步骤略有问题,此处给出成功安装的步骤。操作系统为ubuntu16.04并且安装ROS系统。 共创建两个工作空间,一个存放各种库,包括fast、g2o以及Sophus,另一个存放SVO代码。 1.安装Sophus库 按照步骤即可 cd

轮式里程计(Wheel Odometry)和惯性测量单元(IMU)的融合

轮式里程计(Wheel Odometry)和惯性测量单元(IMU)的融合通常采用某种形式的滤波技术,最常见的是卡尔曼滤波器(Kalman Filter)或其变体,如扩展卡尔曼滤波器(Extended Kalman Filter, EKF)、无迹卡尔曼滤波器(Unscented Kalman Filter, UKF)或粒子滤波器(Particle Filter)。这些滤波器能够综合两种传感器的优势,

机器人里程计(Odometry)

机器人里程计(Odometry)是机器人定位和导航中的一个关键概念,它涉及到利用传感器数据来估计机器人在环境中的位置和姿态。里程计的基本原理是根据机器人自身动作的反馈来计算其相对于初始位置的位移。这通常包括机器人从一个已知位置开始,然后使用各种类型的传感器来测量其自身的运动。 以下是一些常见的里程计类型: 1. **轮式里程计(Wheel Odometry)**:    - 使用安装在机器人轮

实现ROS中两个里程计数据的转换到同一坐标系下

在多传感器融合的场景中,不同传感器可能会提供不同的位置信息。这段代码的目标是将来自两个不同来源的里程计数据转换到同一个参考坐标系(在这里,选择 odom0 的坐标系作为参考)下进行对齐,以便于后续的融合和处理。 核心步骤解析 读取和订阅里程计数据: 代码首先从ROS参数服务器读取里程计数据的订阅话题名称。然后,订阅来自两个不同来源的里程计数据,并通过回调函数来更新全局变量 o

Point-LIO:鲁棒高带宽激光惯性里程计

1. 动机 现有系统都是基于帧的,类似于VSLAM系统,频率固定(例如10Hz),但是实际上LiDAR是在不同时刻进行顺序采样,然后积累到一帧上,这不可避免地会引入运动畸变,从而影响建图和里程计精度。此外,这种低帧率会增加延时,限制系统带宽(里程计带宽的定义类似动态系统的带宽,即系统增益降至0.707以下的频率,表示里程计在能够满意地估计时可以运动多快)。 2. 主要贡献 1) 提出了一种逐

计算机视觉与深度学习 | 视觉里程计VO及惯性系统

视觉里程计VO及惯性系统 时间:2017.9.14  8:50 作者:Michael Beechan 前端视觉里程计:根据相邻图像信息估计粗略的相机运动,给后端提供初始值。 VO的实现方法(是否提取特征):特征点法和直接法。 VO的主要问题是如何根据图像来估计相机运动。 角点检测方法:SIFT,SURF,ORB等。 特征点性质:1.可重复性 2.可区别性 3.高效性 4.本地性 h