麦克纳姆轮运动学分析

2023-05-16

麦克纳姆轮运动学分析

 

是最常见的安装方式

 


 

 

麦轮底盘的正逆运动学模型

以O-长方形的安装方式为例,四个轮子的着地点形成一个矩形。正运动学模型(forward kinematic model)将得到一系列公式,让我们可以通过四个轮子的速度,计算出底盘的运动状态;而逆运动学模型(inverse kinematic model)得到的公式则是可以根据底盘的运动状态解算出四个轮子的速度。需要注意的是,底盘的运动可以用三个独立变量来描述:X轴平动、Y轴平动、yaw 轴自转;而四个麦轮的速度也是由四个独立的电机提供的。所以四个麦轮的合理速度是存在某种约束关系的,逆运动学可以得到唯一解,而正运动学中不符合这个约束关系的方程将无解。

先试图构建逆运动学模型,由于麦轮底盘的数学模型比较复杂,我们在此分四步进行:

①将底盘的运动分解为三个独立变量来描述;

②根据第一步的结果,计算出每个轮子轴心位置的速度;

③根据第二步的结果,计算出每个轮子与地面接触的辊子的速度;

④根据第三部的结果,计算出轮子的真实转速。

 

 

一、底盘运动的分解

我们知道,刚体在平面内的运动可以分解为三个独立分量:X轴平动、Y轴平动、yaw 轴自转。如下图所示,底盘的运动也可以分解为三个量:

v_{t_x} 表示 X 轴运动的速度,即左右方向,定义向右为正;

v_{t_y} 表示 Y 轴运动的速度,即前后方向,定义向前为正;

\vec{\omega} 表示 yaw 轴自转的角速度,定义逆时针为正。

以上三个量一般都视为四个轮子的几何中心(矩形的对角线交点)的速度。

 

以上三个量一般都视为四个轮子的几何中心(矩形的对角线交点)的速度。

 

 

二、计算出轮子轴心位置的速度

定义:

\vec{r} 为从几何中心指向轮子轴心的矢量;

\vec{v} 为轮子轴心的运动速度矢量;

\vec{v_r} 为轮子轴心沿垂直于 \vec{r} 的方向(即切线方向)的速度分量;

 

那么可以计算出:

\vec{v}=\vec{v_t}+\vec{\omega} \times \vec{r}

分别计算 X、Y 轴的分量为:

\begin{equation} \begin{cases} v_x=v_{t_x}-\omega \cdot r_y \\ v_y=v_{t_y}+\omega \cdot r_x \\ \end{cases} \end{equation}

 

同理可以算出其他三个轮子轴心的速度。

 

三、计算辊子的速度

根据轮子轴心的速度,可以分解出沿辊子方向的速度 \vec{v_\|} 和垂直于辊子方向的速度 \vec{v_\perp} 。其中 \vec{v_\perp} 是可以无视的(因为垂直方向速度对轮子转速没有贡献),而

\vec{v_\|}=\vec{v} \cdot \hat{u}=(v_x\hat{i}+v_y\hat{j})\cdot(-\frac{1}{\sqrt{2}}\hat{i}+\frac{1}{\sqrt{2}}\hat{j})=-\frac{1}{\sqrt{2}}v_x+\frac{1}{\sqrt{2}}v_y

其中 \hat{u} 是沿辊子方向的单位矢量。

四、计算轮子的速度

从辊子速度到轮子转速的计算比较简单:

v_w=\frac{v_\|}{cos 45^\circ}=\sqrt{2}(-\frac{1}{\sqrt{2}}v_x+\frac{1}{\sqrt{2}}v_y)=-v_x+v_y

 

根据上图所示的 a 和 b 的定义,有

 

\begin{equation} \begin{cases} v_x=v_{t_x}+\omega b \\ v_y=v_{t_y}-\omega a \\ \end{cases} \end{equation}

结合以上四个步骤,可以根据底盘运动状态解算出四个轮子的转速:

\begin{equation} \begin{cases} v_{w_1}=v_{t_y}-v_{t_x}+\omega(a+b) \\ v_{w_2}=v_{t_y}+v_{t_x}-\omega(a+b) \\ v_{w_3}=v_{t_y}-v_{t_x}-\omega(a+b) \\ v_{w_4}=v_{t_y}+v_{t_x}+\omega(a+b) \\ \end{cases} \end{equation}

以上方程组就是O-长方形麦轮底盘的逆运动学模型,而正运动学模型可以直接根据逆运动学模型中的三个方程解出来,此处不再赘述。

另一种计算方式

「传统」的推导过程虽然严谨,但还是比较繁琐的。这里介绍一种简单的逆运动学计算方式。

我们知道,全向移动底盘是一个纯线性系统,而刚体运动又可以线性分解为三个分量。那么只需要计算出麦轮底盘在「沿X轴平移」、「沿Y轴平移」、「绕几何中心自转」时,四个轮子的速度,就可以通过简单的加法,计算出这三种简单运动所合成的「平动+旋转」运动时所需要的四个轮子的转速。而这三种简单运动时,四个轮子的速度可以通过简单的测试,或是推动底盘观察现象得出。

当底盘沿着 X 轴平移时:

\begin{equation} \begin{cases} v_{w_1}=-v_{t_x} \\ v_{w_2}=+v_{t_x} \\ v_{w_3}=-v_{t_x} \\ v_{w_4}=+v_{t_x} \\ \end{cases} \end{equation}

当底盘沿着 Y 轴平移时:

\begin{equation} \begin{cases} v_{w_1}=v_{t_y} \\ v_{w_2}=v_{t_y} \\ v_{w_3}=v_{t_y} \\ v_{w_4}=v_{t_y} \\ \end{cases} \end{equation}

当底盘绕几何中心自转时:

\begin{equation} \begin{cases} v_{w_1}=+\omega(a+b) \\ v_{w_2}=-\omega(a+b) \\ v_{w_3}=-\omega(a+b) \\ v_{w_4}=+\omega(a+b) \\ \end{cases} \end{equation}

将以上三个方程组相加,得到的恰好是根据「传统」方法计算出的结果。这种计算方式不仅适用于O-长方形的麦轮底盘,也适用于任何一种全向移动的机器人底盘。

 

 

参考 https://zhuanlan.zhihu.com/p/20282234?utm_source=qq&utm_medium=social

转载于:https://www.cnblogs.com/FangLai-you/p/10867791.html

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

麦克纳姆轮运动学分析 的相关文章

  • 434个H5游戏源码

    各种类型HTML5游戏 xff0c 界面和JS均可供项目参考 下面是下载地址 转载于 https blog 51cto com 12130120 2374590
  • iOS 左右滑动 手势 响应方法

    1 64 property nonatomic strong UISwipeGestureRecognizer leftSwipeGestureRecognizer 64 property nonatomic strong UISwipeG
  • 一道c语言编程题

    一道c语言编程题 将一个5 5的矩阵中最大的元素放在中心 xff0c 四个角分别放四个最小的元素 xff08 顺序从左到右 xff0c 从上到下顺序依次从小到大存放 xff09 xff0c 写一函数实现之 xff0c 用main函数调用 i
  • print(1,2,3,sep=':')的输出结果是?

    print 1 2 3 sep 61 39 39 1 2 3 第一个参数 要打印的值 第二个参数sep表示要打印多个值时 各值的分割方式 默认空格 第三个参数end表示结尾的方式 默认 n 转载于 https www cnblogs com
  • S3. Android 消息推送

    概要 消息推送 转载于 https www cnblogs com zlxyt p 11133181 html
  • Android camera2 回调imagereader 从Image拿到YUV数据转化成RGB,生成bitmap并保存

    ImageUtil java import android graphics ImageFormat import android media Image import android os Build import android sup
  • C语言中字符串结束符'\0'

    本质 39 0 39 就是8位的00000000 xff0c 因为字符类型中并没有对应的这个字符 xff0c 所以这么写 39 0 39 就是 字符串结束标志 39 0 39 是转义字符 xff0c 意思是告诉编译器 xff0c 这不是字符
  • SLAM中双目三角化

    双目三角化 形式1 xff1a 在等式左边同时乘 x 1 x 1 x 1 和
  • 用手机对电脑进行远程关机

    PS 本人一月份写的文章 xff0c 贴在这里 昨天真是奔波的一天 xff0c 中午烤肉逛街下午寿司看电影 xff08 陪老婆 xff09 今天中午又是麻辣诱惑 额 xff0c 不争气的肠胃果然导致我拉肚子了 不过 xff0c 话说昨天下午
  • 程序员到底是一个什么职业?

    2019独角兽企业重金招聘Python工程师标准 gt gt gt 程序员首先是雇员 然后是工程师 xff1b 比起创造力 xff0c 工程能力对这个职位更为重要 为什么有人在技术造神 大家应该已经感受到 xff0c 技术圈这两年已经和娱乐
  • android 清理内存杀死service,关于Service常驻内存不被清理的解决方法.

    众所周知 Service是跑后台的 但是有些Rom厂商把一键清理做的真是太好用了 以至于一键清理变成了一种习惯 Service已经变的不再是Service了 那为什么像诸如360 微信 QQ 却可以傍山傍水 哦 用错词了 大家懂的 言归正传
  • 自主做一个类似于微博的项目(计划篇)

    项目名称 xff1a archou微博 项目架构 xff1a B S架构 项目开发语言 xff1a java jquery html hql 开发框架 xff1a spring mvc hibernate 开发平台 xff1a window
  • [工作记录] 点云线特征提取

    概述 目前的点云线特征提取方法可以分为 xff1a 1 基于面片patch的线特征提取 xff0c 主要可以提取交线 xff0c 边缘线 这类方法首先都是要提取面 xff0c 然后对每个面对象提取 又可以分为 xff1a 基于图像的提取 x
  • Javascript闭包:从理论到实现,[[Scopes]]的每一根毛都看得清清楚楚

    昨天我写到 所有Javascript函数都是闭包 xff0c 有些同学表示还是接受不能 我好好的一个函数 xff0c 怎么就成闭包了 xff1f 那么 xff0c 让我们来探究一下 xff0c Chrome xff08 V8 xff09 到
  • mysql5.7安装审计插件libaudit_plugin.so

    1 下载插件 https bintray com mcafee mysql audit plugin release 1 1 7 805 files 2 解压插件复制到mysql lib库插件目录下 xff1a unzip audit pl
  • 通过jdbc连接hive报java.sql.SQLException: Method not supported问题

    今天尝试通过jdbc连接hive xff0c JDBC直接连接是正常成功的 xff0c 实例 xff1a import java sql Connection import java sql DriverManager import jav
  • DHCP介绍及H3C配置DHCP

    1 DHCP引入 1 简介 DHCP xff08 动态主机设置协议 xff09 是一个局域网的网络协议 xff0c 使用UDP协议工作 xff0c 主要作用是集中的管理 分配IP地址 xff0c 使网络环境中的主机动态的获得IP地址 Gat
  • centos7-内核版本降级

    环境介绍 线上环境运行centos 内核版本规定为 xff1a CentOS Linux release 7 3 1611 Core 查看内核版本参考命令 xff1a root 64 localhost cat etc redhat rel
  • SLAM中多目三角化

    多目三角化 1 闭式求解1 1 DLT 最小二乘方法求解1 2 最小化3D距离 2 构建优化方法求解3 构建高斯深度滤波器 LSD SLAM4 构建Beta分布滤波器 SVO5 EKF SLAM参考资料 在能实现双目计算特征点的深度基础上

随机推荐

  • 微软操作系统 Windows Server 2012 R2 官方原版镜像

    微软操作系统 Windows Server 2012 R2 官方原版镜像 Windows Server 2012 R2 是由微软公司 xff08 Microsoft xff09 设计开发的新一代的服务器专属操作系统 xff0c 其核心版本号
  • 最近很忙,也很累,忙里偷闲,尝试了下apache solr的安装

    最近很忙 xff0c 也很累 xff0c 忙里偷闲 xff0c 尝试了下apache solr的安装 第一次接触java的 xff0c 就和初次安装NET一样 部署开发环境折腾来折腾去 几经波折总算成功了 分享下个人安装的过程 xff1a
  • "类工厂模式"改写SqlHelper

    看到标题您一定很疑惑 xff0c 23种经典设计模式什么时候多了一个 34 类工厂模式 34 稍等 xff0c 请听我慢慢道来 实践是检验真理的唯一途径 最近用了 34 类工厂模式 34 改写了我公司的SqlHelper类 xff0c 改写
  • C++中基于Crt的内存泄漏检测

    尽管这个概念已经让人说滥了 xff0c 还是想简单记录一下 xff0c 以备以后查询 ifdef DEBUG define DEBUG CLIENTBLOCK new CLIENT BLOCK FILE LINE else define D
  • revit卸载/完美解决安装失败/如何彻底卸载清除干净revit各种残留注册表和文件的方法...

    在卸载revit重装revit时发现安装失败 xff0c 提示是已安装revit或安装失败 这是因为上一次卸载revit没有清理干净 xff0c 系统会误认为已经安装revit了 有的同学是新装的系统也会出现revit安装失败的情况 xff
  • 内核必须懂(三): 重编Ubuntu18.04LTS内核4.15.0

    目录 前言编译前准备编译安装重启之后最后 前言 之前在写系统调用的时候也说过 但是当时理解有限 写的不好 这次再重新编译内核 分享经验 编译前准备 首先补包 sudo apt get install build essential kern
  • STL视频_01

    ZC xff1a 这里视频里面有一个调试小技巧 xff0c VS08 VS2010开始 xff0c 控制台程序会自动退出 xff08 不像VC6 xff09 xff0c 那么可以在 函数退出的最后一句语句上设置断点 xff0c 然后查看控制
  • 四轴自适应控制算法的一些尝试开源我的山猫飞控和梯度在线辨识自适应等算法—(转)...

    本文的最主要目的在于抛砖引玉 xff0c 阿莫论坛真的是非常好的一个论坛 xff0c 没有这个论坛 xff0c 没有那么多这个论坛上的前人无私的奉献和热烈的讨论 xff0c 我想我是怎么也无法入门四轴的控制的 只是论坛上已经很多年都没有看到
  • ubuntu VNC连接树莓派

    其实ubuntu vnc连接树莓派很简单 xff0c 首先给树莓派安装vnc服务 xff0c 然后打开vnc服务 xff0c 最后ubuntu用远程桌客户端测试连接就好了 不过要注意连接前一定要打开vnc服务 xff0c 树莓派连接要有控制
  • nuttx学习-0:模拟安装

    一 Nuttx 模拟运行环境的安装 xff1a 1 文件要求 xff0c 主要需要三个文件 xff1a nuttx 7 24 tar apps 7 24 tar nuttx tools tar 2 环境要求 xff1a sudo apt g
  • ORB-SLAM3 安装运行

    ORB SLAM3 安装运行 1 Pangolin 安装2 ORB SLAM3安装3 数据集测试3 1 EuRoC 双目 43 IMU测试3 2 TUM VI 双目鱼眼 43 IMU测试3 3 ROS接口3 3 1 启动EUROC 双目 4
  • ros:出现:error: ros/ros.h: No such file or directory

    出现这个问题是因为在cmakelist txt中没有声明对roscpp的依赖 在find package中添加roscpp 重新执行就ok了 转载于 https www cnblogs com fuhang p 9934092 html
  • IOS-如何优雅地拦截按钮事件(判断是否需要登录)

    关于这个标题 xff0c 起因是这样的 最近一次做项目需求时 xff0c 遇到这样一个需求 xff0c 就是本来我们App是必须注册或者第三方登录才可以使用 xff0c 现在希望不登录也可以浏览App里面的内容 xff0c 只是在需要的时候
  • postman安装使用教程---图文讲解

    一 安装postman 1 xff0c 安装包安装 官网下载地址 https www getpostman com 选择好对应的版本下载 下载完后直接安装 2 xff0c 插件包安装 可以在谷歌的应用商店里面找到 或者在网上下载 准备了一个
  • ArUco----一个微型现实增强库的介绍及视觉应用(一)

    ArUco 一个微型现实增强库的介绍及视觉应用 xff08 一 xff09 ArUco 一个微型现实增强库的介绍及视觉应用 xff08 一 xff09 一 ArUco简介 ArUco是一个开源的微型的现实增强库 xff0c 目前好像已经集成
  • matlab 图像基本矩阵,MATLAB基本的使用方法归纳(图像,矩阵及函数)

    读取图像 xff1a 用imread函数读取图像文件 xff0c 文件格式可以是TIFF JPEG GIF BMP PNG等 比如 gt gt f 61 imread 39 chestxray jpg 39 读进来的图像数据被保存在变量f中
  • VR直播云服务解决方案

    VR直播 通过VR xff08 虚拟现实 xff09 技术 xff0c 用户通过佩戴相关硬件设备 xff0c 通过平台提供的APP进行直播观看 主播需采用360 全景的拍摄设备 xff0c 捕捉多角度画面 xff0c 进行多画面传输后 xf
  • VirtualBox快照(Snapshot)功能使用及注意事项

    这几天在使用QT编写一个ARM的图形化应用程序 xff0c 需要在PC端使用linux下的QtCreator 搭建环境神马的还是挺麻烦的一个过程 依照我的风格 xff0c 这么麻烦的东西一定不要重复做第二遍 剧透下 xff0c 最后还是很悲
  • docker学习笔记11:Dockerfile 指令 CMD介绍

    我们知道 xff0c 通过docker run 创建并启动一个容器时 xff0c 命令的最后可以指定容器启动后在容器内立即要执行的指令 xff0c 如 xff1a docker run i t ubunu bin bash 表示容器启动时立
  • 麦克纳姆轮运动学分析

    麦克纳姆轮运动学分析 是最常见的安装方式 麦轮底盘的正逆运动学模型 以O 长方形的安装方式为例 xff0c 四个轮子的着地点形成一个矩形 正运动学模型 xff08 forward kinematic model xff09 将得到一系列公式