【轮式移动机器人课程笔记3】移动机器人运动学简介

news2024/11/25 0:31:35

文章目录

    • 写在前面
    • L3 移动机器人运动学简介
      • 3.1 运动学概述
      • 3.2 研究机器人运动学的意义
      • 3.3 机器人运动的描述
      • 3.4 机器人正微分运动学
      • 3.5 机器人逆微分运动学
      • 3.6 总结

写在前面

前两节课介绍了移动机器人、机械手、类型,本节课重点讲解移动机器人运动学相关知识:包括概念、意义、描述方式、正微分运动学和逆微分运动学。

L3 移动机器人运动学简介

3.1 运动学概述

运动学是研究什么的?

在这里插入图片描述

运动学所研究的内容实际上像是两个空间进行映射,映射的输入不是力,在某种意义上它的输入是控制参数和系统参数(我们称之为运动参数)(也可以说是运动),输出为系统在空间中的行为。这种映射关系我们称它为机器人运动学。

  • 运动学处理的是控制系统的几何关系;
  • 运动学处理控制参数与系统在状态空间中的行为之间的关系。

总体来说,运动学研究的是运动参数与系统在状态空间中行为间的映射关系


注:在Springer出版的Handbook of Robotics书中,对于运动学的定义为机器人运动学描述的是位姿、速度、加速度,以及构成机构的物体位姿的高阶导数。

  • 机器人机构:由关节连接的刚体所构成的系统
  • 位姿:刚体在空间的位置和姿态的统称。

3.2 研究机器人运动学的意义

在这里插入图片描述

我们为什么要研究机器人运动学?为什么需要运动学模型或者数学模型?

这里给出了三个目的:

  • 一是理解系统。为了更好的理解系统的运动,分析系统的行为,从而更好的设计系统(为实现某种运动而去设计特定的系统)。
  • 二是运动控制器设计。运动学模型处理的是运动参数与系统在空间中行为之间的关系,从这方面来说,研究运动学模型可以用来设计适当的运动控制器(甚至是导航系统设计与性能调整)。
  • 三是预测和估计系统参数。机器人运动系统中有些参数无法直接测量,可利用运动参数与系统在空间中行为之间的关系,根据输入的参数预测或估计系统参数。

3.3 机器人运动的描述

在这里插入图片描述

我们知道了研究机器人运动学的意义。那我们怎样去描述机器人运动?我们需要多少变量才能描述一个具体的运动?即描述一个运动所需最小的变量数量是多少?

  • 自由度

描述机器人运动中的这个变量的最小数目我们称之为自由度。比如一个轮式机器人(平面中的运动),它可以横向运动,也可以纵向运动,还可以围绕自己的垂直轴旋转。因此,它有三种运动方式,那么描述它的运动至少有3个参数,这就是我们所说的自由度。再比如说一个空间中的物体,它可以沿X、Y、Z三个方向运动,也可以绕X、Y、Z三个轴旋转,因此,描述该物体的运动至少需要6个参数,即6个自由度。

本课程所涉及的轮式机器人仅在平面上运动,因此它的自由度为3.

  • 坐标系

平面运动的描述可以两个平移、一个旋转共三个参数来描述,若对其进行量化,需要一个参照物。这个参照物,就是坐标系。常用的坐标系即笛卡尔坐标系
在这里插入图片描述

坐标系1——世界(全局)坐标系

一个物体的位姿总是相对于其它物体进行表达。比如有一个物体,为了明确其位置,通常都习惯的称该物体在“我”的什么位置,这里的“我”就是世界(全局)坐标系。所谓世界(全局)坐标系是平面上的任意一点(上图中的 I I I )为原点的坐标系,它是为了描述物体(或其它坐标系,下文中的局部坐标系)的位置。

坐标系2 ——局部坐标系(物体坐标系)

世界坐标系能够描述物体(刚体)的位置坐标,为了更好的描述机器人运动,引入局部坐标系。局部坐标系以机器人上的一点(一般是质点,如上图中的 B B B)为坐标原点进行构建。

  • 运动描述

在世界坐标系中,我们可以描述移动机器人(刚体)的位置信息 [ x y ψ ] \begin{bmatrix} x\\ y\\ \psi \end{bmatrix} xyψ ,该位置信息包含 { 直线位置 : x , y 角度位置 : ψ \left\{\begin{aligned}直线位置:&x,y\\角度位置:&\psi\end{aligned}\right. {直线位置:角度位置:x,yψ,其中, x 为移动机器人沿 I 坐标系 x 轴的位移; y 为移动机器人沿 I 坐标系 y 轴的位移; ψ 为移动机器人旋转的角度。 x为移动机器人沿I坐标系x轴的位移;\\y为移动机器人沿I坐标系y轴的位移;\\\psi为移动机器人旋转的角度。 x为移动机器人沿I坐标系x轴的位移;y为移动机器人沿I坐标系y轴的位移;ψ为移动机器人旋转的角度。

在局部坐标系中,我们可以描述移动机器人(刚体)的瞬时状态 [ u v r ] \left[ \begin{matrix} u\\ v\\ r \end{matrix} \right] uvr ,其中 u 为坐标系 B 中沿前进方向 ( 正向 ) 速度 ( 有时也称纵向速度 ) ; v 为坐标系 B 中沿垂直于 ( 正向 ) 移动方向的移动速度 ( 有时也称横向速度 ) ; r 为角速度 u为坐标系B中沿前进方向(正向)速度(有时也称纵向速度);\\v为坐标系B中沿垂直于(正向)移动方向的移动速度(有时也称横向速度);\\r为角速度 u为坐标系B中沿前进方向(正向)速度(有时也称纵向速度)v为坐标系B中沿垂直于(正向)移动方向的移动速度(有时也称横向速度)r为角速度。如上图所示。

=> 问题引入:

通过前面所述内容,移动机器人运动学所描述就是位姿、速度等信息。瞬时状态包含速度信息,位置信息即位姿信息,两者如何进行转换?即假设瞬时状态 [ u v r ] \left[ \begin{matrix} u\\ v\\ r \end{matrix} \right] uvr 已知,基于瞬时状态 [ u v r ] \left[ \begin{matrix} u\\ v\\ r \end{matrix} \right] uvr ,如何去推算位置信息 [ x y ψ ] \left[ \begin{matrix} x\\ y\\ \psi \end{matrix} \right] xyψ

我们可以将 [ u v r ] \left[ \begin{matrix} u\\ v\\ r \end{matrix} \right] uvr [ x y ψ ] \left[ \begin{matrix} x\\ y\\ \psi \end{matrix} \right] xyψ 分别看作是一组变量。 [ u v r ] \left[ \begin{matrix} u\\ v\\ r \end{matrix} \right] uvr 为线速度与角速度, [ x y ψ ] \left[ \begin{matrix} x\\ y\\ \psi \end{matrix} \right] xyψ 为线性位置与角位置,两者不能直接划等号。很明显,可通过瞬时状态积分方式推算位置信息。

=>建立联系:

我们对位置信息进行求导:
d [ x y ψ ] / d t = [ d x d t d y d t d ψ d t ] = [ x ˙ y ˙ ψ ˙ ] {d\left[ \begin{matrix} x\\ y\\ \psi \end{matrix} \right]}/{dt} =\left[ \begin{matrix} \frac{dx}{dt}\\ \frac{dy}{dt}\\ \frac{d\psi}{dt} \end{matrix} \right] =\left[ \begin{matrix} \dot{x}\\ \dot{y}\\ \dot{\psi} \end{matrix} \right] d xyψ /dt= dtdxdtdydtdψ = x˙y˙ψ˙
从某种意义上说,上式中 x ˙ \dot{x} x˙ I I I 坐标系下沿 x x x 轴移动机器人的“瞬时位置”, y ˙ 、 ψ ˙ \dot{y}、\dot{\psi} y˙ψ˙为沿 y 、 z y、z yz轴的“瞬时位置”。

“瞬时位置”无法获得,在某一时刻的“瞬时位置”可以用沿该方向瞬时速度的矢量和来表示。

如上图所示,我们利用余弦定理分别计算 u 、 v 、 r u、v、r uvr 沿 I I I 坐标系 x 、 y x、y xy 轴的瞬时速度。

  • 纵向速度u的沿 I I I 坐标系 x 、 y x、y xy 轴的瞬时速度

    • 沿 x x x 轴—— u u u 沿 x x x 轴分量与 v v v 沿 x x x 轴分量的矢量和

      { u 分量 : u ⋅ c o s ψ v 分量 : − v ⋅ s i n ψ \left\{\begin{aligned}u分量:&u\cdot cos\psi\\v分量:&-v\cdot sin\psi\end{aligned}\right. {u分量:v分量:ucosψvsinψ 即: x ˙ = u ⋅ c o s ψ − v ⋅ s i n ψ \dot x = u\cdot cos\psi - v\cdot sin\psi x˙=ucosψvsinψ , v v v 分量为负值是因其分量方向与正向相反。

    • 沿 y y y

      { u 分量 : u ⋅ s i n ψ v 分量 : v ⋅ c o s ψ \left\{\begin{aligned}u分量:&u\cdot sin\psi\\v分量:&v\cdot cos\psi\end{aligned}\right. {u分量:v分量:usinψvcosψ 即: y ˙ = u ⋅ s i n ψ + v ⋅ c o s ψ \dot y = u\cdot sin\psi + v\cdot cos\psi y˙=usinψ+vcosψ

    • 沿 z z z

      ψ ˙ = r \dot\psi = r ψ˙=r

因此:
d [ x y ψ ] / d t = [ d x d t d y d t d ψ d t ] = [ x ˙ y ˙ ψ ˙ ] = [ u ⋅ c o s ψ − v ⋅ s i n ψ u ⋅ s i n ψ + v ⋅ c o s ψ r ] {d\left[ \begin{matrix} x\\ y\\ \psi \end{matrix} \right]}/{dt} =\left[ \begin{matrix} \frac{dx}{dt}\\ \frac{dy}{dt}\\ \frac{d\psi}{dt} \end{matrix} \right] =\left[ \begin{matrix} \dot{x}\\ \dot{y}\\ \dot{\psi} \end{matrix} \right] =\left[ \begin{matrix} u\cdot cos\psi - v\cdot sin\psi\\ u\cdot sin\psi + v\cdot cos\psi\\ r \end{matrix} \right] d xyψ /dt= dtdxdtdydtdψ = x˙y˙ψ˙ = ucosψvsinψusinψ+vcosψr
在这里插入图片描述

我们将上式换一种形式:
[ x ˙ y ˙ ψ ˙ ] = [ u ⋅ c o s ψ − v ⋅ s i n ψ u ⋅ s i n ψ + v ⋅ c o s ψ r ] = [ c o s ψ − s i n ψ 0 s i n ψ c o s ψ 0 0 0 1 ] [ u v r ] \left[ \begin{matrix} \dot{x}\\ \dot{y}\\ \dot{\psi} \end{matrix} \right] =\left[ \begin{matrix} u\cdot cos\psi - v\cdot sin\psi\\ u\cdot sin\psi + v\cdot cos\psi\\ r \end{matrix} \right] = \left[ \begin{matrix} cos\psi & -sin\psi& 0\\ sin\psi & cos\psi& 0\\ 0 & 0 & 1 \end{matrix} \right]\left[ \begin{matrix} u\\ v\\ r \end{matrix} \right] x˙y˙ψ˙ = ucosψvsinψusinψ+vcosψr = cosψsinψ0sinψcosψ0001 uvr
我们将这个特定的矩阵 [ c o s ψ − s i n ψ 0 s i n ψ c o s ψ 0 0 0 1 ] \left[ \begin{matrix} cos\psi & -sin\psi& 0\\ sin\psi & cos\psi& 0\\ 0 & 0 & 1 \end{matrix} \right] cosψsinψ0sinψcosψ0001 称为映射矩阵(有人也称为运动学变化矩阵),也称雅可比矩阵,用 J ( ψ ) J(\psi) J(ψ) 表示。

η = [ x y ψ ] \eta = \left[ \begin{matrix} x\\ y\\ \psi \end{matrix} \right] η= xyψ ξ = [ u v r ] \xi =\left[ \begin{matrix} u\\ v\\ r \end{matrix} \right] ξ= uvr , 则上式变为:
η ˙ = J ( ψ ) ξ \dot\eta = J(\psi)\xi η˙=J(ψ)ξ
如上式所示,两个坐标系下位置信息与瞬时变量便建立起了联系。 [ u v r ] \left[ \begin{matrix} u\\ v\\ r \end{matrix} \right] uvr 映射到了 [ x ˙ y ˙ ψ ˙ ] \left[ \begin{matrix} \dot{x}\\ \dot{y}\\ \dot{\psi} \end{matrix} \right] x˙y˙ψ˙ ,这就是要讲的运动学关系。 [ u v r ] \left[ \begin{matrix} u\\ v\\ r \end{matrix} \right] uvr ξ \xi ξ 中的任意一个向量,它作为一个速度的输入,映射到了广义坐标导数 η ˙ \dot\eta η˙ , 这就是移动机器人运动学,这个公式就是机器人运动学方程。

在这里插入图片描述

3.4 机器人正微分运动学

在这里插入图片描述

由上文所述,位置信息与瞬时变量间可通过机器人运动学方程相互映射。当输入为瞬时变量(即输入为速度),想得到在该输入下机器人是如何运动的(广义坐标导数),我们称之为机器人正微分运动学

利用正微分运动学,我们可以以速度为输入量,看不同速度输入下机器人是如何运动的。

3.5 机器人逆微分运动学

在这里插入图片描述

所谓逆微分运动学即给定广义坐标的导数,去获取相应的速度输入。即对于给定的位置轨迹,去计算机器人输入的固定速度。

当我们希望机器人以某种方式运动时,我们可以利用逆微分运动学计算以该方式运动需要输入的速度是什么。

3.6 总结

所谓机器人运动学,实质是两个空间的相互映射:一个是输入速度(控制)命令,输出是导数(广义坐标的时间导数)。

根据映射的方向,我们将其分为正微分运动学与逆微分运动学。

在这里插入图片描述


喜欢我的分享可以订阅主题,持续关注。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

一个IP证书里可以包含多个ip地址吗

IP地址数字证书是一种由权威机构颁发的数字证书,是只拥有公网IP地址的网站用来保护数据传输安全,防止网站信息被窃取、篡改的安全传输协议。IP证书还可以消除浏览器的“不安全”提示,让网站更容易获得客户信任。同常一个IP证书只能同时保护一…

经典文献阅读之--EA-NDT(利用语义分割提高NDT地图压缩和描述能力的框架)

0. 简介 对于NDT而言,相信各位应该都有所了解了,但是作为高精地图来说性能还需要进一步提升,为此《Towards High-Definition Maps: a Framework Leveraging Semantic Segmentation to Improve NDT Map Compression and Descriptivity》一文提…

AIGC实战——条件生成对抗网络(Conditional Generative Adversarial Net, CGAN)

AIGC实战——条件生成对抗网络 0. 前言1. CGAN架构2. 模型训练3. CGAN 分析小结系列链接 0. 前言 我们已经学习了如何构建生成对抗网络 (Generative Adversarial Net, GAN) 以从给定的训练集中生成逼真图像。但是,我们无法控制想要生成的图像类型,例如控…

基于Java的音乐网站的设计与实现(带论文)

项目描述 临近学期结束,还是毕业设计,你还在做java程序网络编程,期末作业,老师的作业要求觉得大了吗?不知道毕业设计该怎么办?网页功能的数量是否太多?没有合适的类型或系统?等等。这里根据疫情当下,你想解决的问…

如何实现公网访问本地内网搭建的WBO白板远程协作办公【内网穿透】

最近,我发现了一个超级强大的人工智能学习网站。它以通俗易懂的方式呈现复杂的概念,而且内容风趣幽默。我觉得它对大家可能会有所帮助,所以我在此分享。点击这里跳转到网站。 文章目录 前言1. 部署WBO白板2. 本地访问WBO白板3. Linux 安装cp…

数据结构与算法python版本之列表和字典复杂度

前面我们了解了大O表示法以及对不同算法的预估 接下来我们讨论python两种内置数据类型(列表和字典)上各种操作的大O数量级 列表数据类型 list类型各种操作的实现方法很多,如何选择具体哪种实现方法。总的方案就是,让最常用的操作…

微服务实战系列之ZooKeeper(实践篇)

前言 关于ZooKeeper,博主已完整的通过庖丁解牛式的“解法”,完成了概述。我想掌握了这些基础原理和概念后,工作的问题自然迎刃而解,甚至offer也可能手到擒来,真实一举两得,美极了。 为了更有直观的体验&a…

Spark基础入门

spark基础入门 环境搭建 localstandlonespark ha spark code spark corespark sqlspark streaming 环境搭建 准备工作 创建安装目录 mkdir /opt/soft cd /opt/soft下载scala wget https://downloads.lightbend.com/scala/2.13.12/scala-2.13.12.tgz -P /opt/soft解压scala…

基于 Flink 构建实时数据湖的实践

本文整理自火山引擎云原生计算研发工程师王正和闵中元在本次 CommunityOverCode Asia 2023 数据湖专场中的《基于 Flink 构建实时数据湖的实践》主题演讲。 实时数据湖是现代数据架构的核心组成部分,随着数据湖技术的发展,用户对其也有了更高的需求&…

Mysql高可用|索引|事务 | 调优

前言 「作者主页」:雪碧有白泡泡 「个人网站」:雪碧的个人网站 文章目录 前言sql语句的执行顺序关键词连接名字解释sql语句 面试坑点存储引擎MYSQL存储引擎 SQL优化索引索引失效索引的数据结构面试坑点 锁事务四大特性事务的隔离级别MVCC 读写分离面试坑…

以低成本实现高转化:搭建年入百万的知识付费网站的技巧与方法

明理信息科技知识付费平台 一、引言 随着知识经济的崛起,越来越多的知识提供者希望搭建自己的知识付费平台。然而,对于新手来说,如何以低成本、高效率地实现这一目标,同时满足自身需求并提高客户转化率,是一大挑战。…

POST:http://XXX:XXXX/XXXX/XXXX(404 Not found)离谱

很离谱,同样的请求方式,不同的接口会有404的问题。看下边: 上边接口访问正常,下边接口出现404.且本地测试也可以,代码也推到公司git上了。真的很离谱。 我也不知道怎么回事,无语||||||| 哪位兄弟知道啊&a…

4.配置系统时钟思路及方法

前言: 比起之前用过的三星的猎户座4412芯片,STM32F4的系统时钟可以说是小巫见大巫,首先我们需要清晰时钟产生的原理:几乎大多数的芯片都是由晶振产生一个比较低频的频率,然后通过若干个PLL得到单片机能承受的频率&…

2023_Spark_实验二十八:Flume部署及配置

实验目的:熟悉掌握Flume部署及配置 实验方法:通过在集群中部署Flume,掌握Flume配置 实验步骤: 一、Flume简介 Flume是一种分布式的、可靠的和可用的服务,用于有效地收集、聚合和移动大量日志数据。它有一个简单灵活…

LibreNMS:从docker出发

引言 LibreNMS 是一个免费开源的网络监控和自动化工具,用于监视网络设备、服务器和应用程序的性能和状态。它提供了一个集中的管理平台,帮助管理员实时监控和管理整个网络基础设施。 以下是 LibreNMS 的一些主要特点和功能: 自动发现&#…

20、清华、杭州医学院等提出:DA-TransUNet,超越TranUNet,深度医学图像分割框架的[皇帝的新装]

前言: 本文由清华电子工程学院、杭州医学院、大阪大学免疫学前沿研究所、日本科学技术高等研究院信息科学学院、东京法政大学计算机与信息科学专业共同作者,于2023年11月14号发表于arXiv的《Electrical Engineering and Systems Science》期刊。 论文&…

【Python基础】生成器

文章目录 [toc]什么是生成器生成器示例生成器工作流程生成器表达式send()方法和close方法send()方法close()方法 什么是生成器 在Python中,使用生成器可以很方便地支持迭代器协议生成器通过生成器函数产生,通过def定义,但不是通过return返回…

酷雷曼再获“国家高新技术企业”认定

2023年12月8日,《对湖北省认定机构2023年认定报备的第五批高新技术企业拟进行备案的公示》正式发布,酷雷曼武汉同创蓝天科技有限公司成功获评“国家高新技术企业”认定。 屡获权威认定,见证硬核实力 被评定为高新技术企业是我国企业最高荣誉…

武汉小程序开发全攻略:从创意到上线,10个必备步骤详解

在当前数字化时代,小程序已经成为企业营销和服务的重要工具。特别是在武汉这样的创新型城市,小程序开发更是备受青睐。本文将为您详细解读武汉小程序开发的全攻略,从创意到上线的10个必备步骤。 步骤一:确定小程序类型和功能定位…

DSP捕获输入简单笔记

之前使用stm32的大概原理是: 输入引脚输入一个脉冲,捕获1开始极性捕获,捕获的是从启动捕获功能开始计数,捕获的是当前的计数值; 例如一个脉冲,捕获1捕获上升沿,捕获2捕获下降沿;而两…