首页 > 其他分享 >ros - slam - microros - 两轮差速模型运动学介绍

ros - slam - microros - 两轮差速模型运动学介绍

时间:2024-07-02 21:42:29浏览次数:14  
标签:两轮 机器人 运动学 角度 slam microros 差速 ros 角速度

本节我们来了解下两轮差速运动学。

一、两轮差速运动学模型
两轮差速模型指机器人底盘由两个驱动轮和若干支撑轮构成的底盘模型,像turtlebot和开源机器人fishbot都是两轮差速模型。

 

两轮差速模型通过两个驱动轮可以通过不同转速和转向,使得机器人的达到某个特定的角速度和线速度。

 二、正逆解

了解了两轮差速模型,那正逆解又是怎么回事?
正运动学:已知两个轮子的速度,求整车的角速度(弧度/秒)和线速度(米/秒)

 逆运动学:已知目标角速度和线速度,求两个轮子的转速

 三、轮式里程计

 当我们知道了两个轮子之间的相对位置,同时知道了每一时刻机器人的角速度和线速度,那我们如何获取机器人的当前角度和位置呢?

3.1 角度
影响机器人当前角度的因素只有一个,就是角速度。
某一时刻机器人转动的角度 = 这一时刻机器人的角速度*这一时刻时长
假如我们认定初始时刻机器人的角度为0, 通过对机器人转动角度角度进行累加,即可获得机器人的当前角度。

上述过程其实就是对角速度进行积分得到角度。

3.2 位置
通过对角速度积分,我们得到了角度。
机器人某一时刻自身方向上的前进速度可以分解为里程计坐标系中x轴和y轴方向上的速度

 从图中可以看出:

 

得到了x和y方向上的速度,乘上该速度对应的某一时刻经过的时间,即可得到这一时刻在x轴和y轴方向上的位移,对位移进行累加即可得到里程计中的x和y。

 

标签:两轮,机器人,运动学,角度,slam,microros,差速,ros,角速度
From: https://www.cnblogs.com/ai-ldj/p/18280598

相关文章

  • crossover软件如何使用 crossover软件是干嘛的 crossover软件安装激活教程方法 兼容软
    很多苹果用户都想在MacOS系统下流畅地使用Win应用,现在只要安装这款系统兼容软件CrossOver便能实现了。CrossOver以其出色的跨平台兼容性,让用户在Mac设备上轻松运行各种Windows软件,无需复杂的设置或额外的配置,支持多种语言,满足不同国家和地区用户的需求。CrossOver软件是干......
  • ros -slam - microros- PID控制器实现
    上一节我们通过编码器完成了对机器人单个轮子的速度测量,完成了电机速度闭环控制的重要一步-反馈。 有了反馈,接着我们需要设计一个控制器来帮助我们实现这个需求,这个控制器的输入是当前的速度和目标速度,输出是应该给到电机的PWM占空比。一、PID控制器介绍PID控制器是一种广泛应......
  • ros2 - slam - 直流电机-编码器脉冲测量与校准
    这一节我们编写代码来尝试下是否能够读取到电机上编码器的脉冲数,并通过实验测试出小车的输出轴转速和编码器脉冲的比值。一、新建工程并导入开源库新建example25_encoder添加依赖[env:featheresp32];这是一个环境配置标签,指定了代码将运行的硬件平台和框架platform=esp......
  • ros2 - slam - 使用编码器测量轮子最大速度
    新建example26_max_speed_measurement 添加依赖[env:featheresp32];这是一个环境配置标签,指定了代码将运行的硬件平台和框架platform=espressif32;指定了使用的平台为Espressif32board=featheresp32;指定使用的硬件板为FeatherESP32framework=arduino;......
  • ros2 - slam - 编码器测速原理
    上节做完小车,遥控时小车前进时你应该会发现,小车很难走一条直线,但明明我们给到两个电机的PWM占空比都是相同的,原因在于每一个电机的硬件参数并不能完全的保证一致,所以当我们采用开环控制时,即使我们给到每个电机相同的电压,也不能让两个电机保持相同的转速。要解决这个问题我们就要......
  • ros2 slam - 订阅ROS2 Twist
    本节我们结合上一节电机控制以及前面章节的MicroROS话题订阅部分知识点,来实现一个可以用键盘遥控的小车。新建工程example24_ros2_car 修改配置[env:featheresp32];这是一个环境配置标签,指定了代码将运行的硬件平台和框架platform=espressif32;指定了使用的平台为E......
  • ros - microros - 电机控制之使用开源库驱动多路电机
    前面了解了电机控制的原理并通过实验测试了对电机正反转以及转速的控制。本节我们采用开源库调用ESP32的外设MCPWM进行精细化的电机PWM控制。一、MCPWM简介MCPWM中文名是电机控制脉宽调制器(MotorControlPulseWidthModulator),是一款多功能PWM发生器,包含各种子模块,使其成为电......
  • ros - slam - 电机控制之速度控制实验
    前面说到通过控制对应的IO上的PWM占空比即可完成对电机速度的控制。关于PWM的介绍在ROS2硬件控制篇的舵机控制中已经介绍过了,所以我们知道通过改变PWM的占空比可以实现对输出电压的大小调节。占空比越大,输出电压越高;占空比越小,输出电压越低。接着我们通过一个实验来验证下一、新建......
  • ros microros 之 电机控制之正反转实验
    前面说到通过控制对应的IO电平变换即可完成对电机正反转的控制,本节我们尝试编写代码,进行实验。一、新建工程新建example21_motor_direction_control二、编写代码根据第前面硬件控制章节学到的内容可知,控制IO电平只需要使用pinMode和digitalWrite相关函数即可。/***@filem......
  • ros slam 之移动机器人常用传感器
    本节我们对移动机器人底盘结构进行简单的介绍,并着重介绍FishBot基础版的组成结构。对于一个移动底盘来说,所要提供的核心功能有两个-感知和执行能力,我们分别进行介绍。一、感知-传感器所谓感知即通过给类传感器获取环境信息的能力。在移动机器人中,我们常用的传感器有 距离传......