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

文章目录

    • 写在前面
    • 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 总结

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

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

在这里插入图片描述


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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

hive的分区表和分桶表详解

分区表 Hive中的分区就是把一张大表的数据按照业务需要分散的存储到多个目录,每个目录就称为该表的一个分区。在查询时通过where子句中的表达式选择查询所需要的分区,这样的查询效率会提高很多。 静态分区表基本语法 创建分区表 create table dept_p…

数据安全无阻,轻松远程工作!迅软DSE出差加密指南,让你出差更放心!

文件加密软件是确保内网文件安全使用的重要工具,但在终端脱离内部网络、面对外出或居家办公等情境时,文件加密的挑战也相应增加。为解决这一问题,迅软DSE文件加密软件提供了离线授权功能,确保在终端脱离公司网络后的设定时间内&am…

使用Docker运行Nacos并安装cpolar内网穿透工具实现远程访问

文章目录 1. Docker 运行Nacos2. 本地访问Nacos3. Linux安装Cpolar4. 配置Nacos UI界面公网地址5. 远程访问 Nacos UI界面6. 固定Nacos UI界面公网地址7. 固定地址访问Plik Nacos是阿里开放的一款中间件,也是一款服务注册中心,它主要提供三种功能:持久化…

openwrt 搭建web

折腾 软路由 有几年了,最近试了下 移动的 IPV6, 既然可以拿到 公网的 IPV6, 所以想折腾下, 经过不懈努力 实现了:通过 ipv4/ipv6 地址访问我的 web站点 (白飘不花钱的方式) 1 动态DNS 折腾 DDNS 无非是想 白飘 公网IP,但是 仅仅…

一个企业为什么要数字化转型?答案在这里!

一个企业为什么要数字化转型? 先简单说说原因。 因为很多行业现在存在大量的产能过剩、产品过剩、服务过剩,经营维度低、行业竞争激烈......企业生存困难,必须改变经营维度才能活下来,才能变现。 单方面举个例子,可…

windows如何环境搭建属于自己的Zblog博客并发布上线公网访问?

文章目录 1. 前言2. Z-blog网站搭建2.1 XAMPP环境设置2.2 Z-blog安装2.3 Z-blog网页测试2.4 Cpolar安装和注册 3. 本地网页发布3.1. Cpolar云端设置3.2 Cpolar本地设置 4. 公网访问测试5. 结语 1. 前言 想要成为一个合格的技术宅或程序员,自己搭建网站制作网页是绕…

LibreNMS:从docker出发

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

JavaSE 排序

目录 1 概念1.1 排序1.2 稳定性 2 常见基于比较排序算法总览3 插入排序3.1 直接插入排序3.1.1 思想3.1.2 实现3.1.3 性能分析 3.2 折半插入排序3.2.1 思想3.2.2 实现3.2.3 性能分析 3.3 希尔排序3.3.1 思想3.3.2 实现3.3.3 性能分析 4 选择排序4.1 选择排序4.1.1 思想4.1.2 实现…

实验4.1 静态路由的配置

实验4.1 静态路由的配置 一、任务描述二、任务分析三、具体要求四、实验拓扑五、任务实施1.设置交换机和路由器的基本配置。2.使用display ip interface brief命令查看接口配置信息。3.配置静态路由,实现全网互通。 六、任务验收七、任务小结 一、任务描述 某公司刚…

整合SSH(Spring+Struts+Hibernate)

0.前言, 由于工作需要故来学习SSH的整合,structs其实相当于(把view和controller结合起来,没有像现在的前后端分离,请求会发送给Action处理,在structs.xml映射地址和类) Hibernate(就是处理数据库的,几乎自动化,也可以写sql语句) Struts:Struts 是一个基于 MVC&#…

大数据服务与低代码开发:赋能创新与效率的双剑合璧

在科技飞速发展的当下,数据已经渗透到了企业的方方面面,成为了企业决策和业务发展的重要依据。海量数据的处理和分析,对于企业来说既是机遇,也是挑战。传统的数据处理方式往往无法满足快速变化的市场需求,而繁琐的开发…

AI摄影绘画与PS优化:重塑数字艺术的未来

文章目录 《AI摄影绘画与PS优化从入门到精通》内容简介作者简介楚天 目录前言/序言 在科技日新月异的今天,人工智能(AI)已经渗透到我们生活的各个领域,包括艺术创作。AI摄影绘画和Photoshop(PS)优化是这个领…

Numpy、Pandas常用函数

目录 Numpy 核心功能 常用函数 运算实例 Pandas 核心功能 常用函数 统计汇总函数 数据清洗函数 数据筛选 绘图与元素级函数 时间序列函数 其他函数 Numpy 官方文档:NumPy: the absolute basics for beginners — NumPy v1.26 Manual NumPy&#xff0…

vue3 +TS + vite + SVG

如何在如题的项目中使用svg? 我当时首先想到的是 搬运vue2 中svg的使用方式,安装svg-sprite-loader 和做相应的封装。(vue2 svg)你会发现 行不通,因为本项目使用的是vite 构建的无法使用Webpack所以如下代码不执行的 // 自动化加载 // webp…

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

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

大师学SwiftUI第12章 - 手势 Part 1

手势识别器 手势是用户在屏幕上执行的动作,如点击、滑动或捏合。这些手势很难识别,因为屏幕上只能返回手指的位置。为此,Apple提供了手势识别器。手势识别器完成所有识别手势所需的计算。所以我们不用处理众多的事件和值,只需在等…

公共字段自动填充——后端

场景:当处理一些请求时,会重复的对数据库的某些字段进行赋值(如:在插入和更新某个物品时,需要更新该物品的更新时间和更新者的信息),这样会导致代码冗余。 如: 思路: 自…

避免付费搜索广告系列与有机搜索广告系列之间出现关键词蚕食现象

自然搜索(搜索引擎优化)和付费搜索(或按点击付费)具有足够的技术复杂性和战略方面。 关键词蚕食是一个可能使它们变得更加困难的问题——如果你的搜索引擎优化 (SEO) 和按点击付费 (PPC&#x…

【Python】获取B站粉丝列表保存至数据库中

分析网络请求,获取到有粉丝接口的数据url 可以在响应信息处看到粉丝的信息 通过浏览器也可以直接请求到具体的JSON信息 通过独立的标签我们可以看到接口数据,但是要注意如果不是查看自己登录账户的接口那么就无法查询到所有粉丝的数据,默认只…

Python通过函数名调用函数的几种场景

前言 大家早好、午好、晚好吖 ❤ ~欢迎光临本文章 如果有什么疑惑/资料需要的可以点击文章末尾名片领取源码 除了执行系统命令外,我们有时还需要动态地执行一些python代码,有经验的朋友就会知道可以使用内置函数eval实现这一需求,如eval(“…