ros2 基础学习 15- URDF:机器人建模方法

2024-01-09

URDF:机器人建模方法

ROS是机器人操作系统,当然要给机器人使用啦,不过在使用之前,还得让ROS认识下我们使用的机器人,如何把一个机器人介绍给ROS呢?

为此,ROS专门提供了一种机器人建模方法——URDF(Unified Robot Description Format,统一机器人描述格式),用来描述机器人外观、性能等各方面属性。

机器人的组成

建模描述机器人的过程中,我们自己需要先熟悉机器人的组成和参数,比如机器人一般是由硬件结构、驱动系统、传感器系统、控制系统四大部分组成,市面上一些常见的机器人,无论是移动机器人还是机械臂,我们都可以按照这四大组成部分进行分解。

在这里插入图片描述

  • 硬件结构 就是底盘、外壳、电机等实打实可以看到的设备;

  • 驱动系统 就是可以驱使这些设备正常使用的装置,比如电机的驱动器,电源管理系统等;

  • 传感系统 包括电机上的编码器、板载的IMU、安装的摄像头、雷达等等,便于机器人感知自己的状态和外部的环境;

  • 控制系统 就是我们开发过程的主要载体了,一般是树莓派、电脑等计算平台,以及里边的操作系统和应用软件。

机器人建模的过程,其实就是按照类似的思路,通过建模语言,把机器人每一个部分都描述清楚,再组合起来的过程。

URDF

在这里插入图片描述
ROS中的建模方法叫做URDF,全称是统一机器人描述格式,不仅可以清晰描述机器人自身的模型,还可以描述机器人的外部环境,比如这里的桌子,也可以算作一个模型。

在这里插入图片描述

URDF模型文件使用的是XML格式,右侧就是一个机器人的URDF描述,乍看上去,有点像网页开发的源代码,都是由一系列尖括号包围的标签和其中的属性组合而成。

如何使用这样一个文件描述机器人呢?比如这个机械臂,大家可以看下自己的手臂,我们的手臂是由大臂和小臂组成,他们独自是无法运动的,必须通过一个手肘关节连接之后,才能通过肌肉驱动,产生相对运动。

在建模中,大臂和小臂就类似机器人的这些独立的刚体部分,称为连杆Link,手肘就类似于机器人电机驱动部分,称为关节joint。

所以在URDF建模过程中,关键任务就是通过这里的和,理清楚每一个连杆和关节的描述信息。

连杆Link的描述

标签用来描述机器人某个刚体部分的外观和物理属性,外观包括尺寸、颜色、形状,物理属性包括质量、惯性矩阵、碰撞参数等。

在这里插入图片描述
以这个机械臂连杆为例,它的link描述如下:

在这里插入图片描述
link标签中的name表示该连杆的名称,我们可以自定义,未来joint连接link的时候,会使用到这个名称。

link里边的部分用来描述机器人的外观 ,比如:

表示几何形状,里边使用调用了一个在三维软件中提前设计好的蓝色外观,就是这个stl文件,看上去和真实机器人是一致的

表示坐标系相对初始位置的偏移,分别是x、y、z方向上的平移,和roll、pitch、raw旋转,不需要偏移的话,就全为0。

第二个部分,描述碰撞参数,里边的内容似乎和一样,也有和,看似相同,其实区别还是比较大的。

部分重在描述机器人看上去的状态,也就是视觉效果;

部分则是描述机器人运动过程中的状态,比如机器人与外界如何接触算作碰撞。在这个机器人模型中,蓝色部分是通过来描述的。

在实际控制过程中,这样复杂的外观在计算碰撞检测时,要求的算力较高,为了简化计算,我们将碰撞检测用的模型简化为了绿色框的圆柱体,也就是里边描述的形状。

坐标系偏移也是类似,可以描述刚体质心的偏移。

在这里插入图片描述
如果是移动机器人的话,link也可以用来描述小车的车体、轮子等部分。

关节Joint描述

机器人模型中的刚体最终要通过关节joint连接之后,才能产生相对运动。

URDF中的关节有六种运动类型。

在这里插入图片描述
continuous,描述旋转运动,可以围绕某一个轴无限旋转,比如小车的轮子,就属于这种类型。

revolute,也是旋转关节,和continuous类型的区别在于不能无限旋转,而是带有角度限制,比如机械臂的两个连杆,就属于这种运动。

prismatic,是滑动关节,可以沿某一个轴平移,也带有位置的极限,一般直线电机就是这种运动方式。

fixed,固定关节,是唯一一种不允许运动的关节,不过使用还是比较频繁的,比如相机这个连杆,安装在机器人上,相对位置是不会变化的,此时使用的连接方式就是Fixed。

Floating是浮动关节,第六种planar是平面关节,这两种使用相对较少。

在这里插入图片描述
在URDF模型中,每一个link都使用这样一段xml内容描述,比如关节的名字叫什么,运动类型是哪一种。

在这里插入图片描述
parent 标签:描述父连杆;

child 标签:描述子连杆,子连杆会相对父连杆发生运动;

origin :表示两个连杆坐标系之间的关系,也就是图中红色的向量,可以理解为这两个连杆该如何安装到一起;

axis 表示关节运动轴的单位向量,比如z等于1,就表示这个旋转运动是围绕z轴的正方向进行的;

limit 就表示运动的一些限制了,比如最小位置,最大位置,和最大速度等。

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

ros2 基础学习 15- URDF:机器人建模方法 的相关文章

随机推荐

  • 龙芯+RT-Thread+LVGL实战笔记(28)——电子琴准备工作

    写在前面 临近期末 笔者工作繁忙 因此本系列教程的更新频率有所放缓 还望订阅本专栏的朋友理解 请勿催更 笔者在此也简要声明几点 有些硬件模块笔者并没有 如LED点阵 压力传感模块 RFID模块等 因此这些模块的相关任务暂时无法给出经过验证的
  • 平衡合规与发展天平, 激发数据要素价值

    数字经济大潮汹涌 为了应对复杂的外部环境 培育企业内生竞争力 企业需要摆脱贪大求快的增长模式 转向依靠合规与发展的双轮驱动 数字经济的核心在于数据 重视数据作为生产要素的战略意义 积极建设数据要素流通交易制度是近年来数字经济发展的重要议题之
  • 分辨公网IP和内网IP的方法

    公网IP一般就是对外的访问地址 内网IP就是对内的访问地址 两者的使用范围是不一样的 那如果区分客户网络的IP地址是公网IP地址还是内网IP地址呢 公网IP的地址范围是很广泛的 我们可以先了解下内网IP 因为内网IP的地址段相对是局限的 一
  • Hive操作命令上手手册

    内容来自于 大数据Hive离线计算开发实战 Hive原理 Hive是一个基于Hadoop的数据仓库和分析系统 用于管理和查询大型数据集 以下是Hive的原理 数据仓库 Hive将结构化的数据文件映射成一张表 并提供类SQL查询功能 用户可以
  • InfluxDB学习笔记

    本博客是我在学习InfluxDB的时候 记录的笔记 大家可以看看参考学些 简介 简述 InfluxDB是一个由InfluxData开发的开源时序型数据 它由Go写成 着力于高性能查询与存储时序型数据 InfluxDB被广泛应用于存储系统的监
  • 高翔博士Faster-LIO论文和算法解析

    说明 题目 Faster LIO 快速激光IMU里程计 参考链接 Faster LIO 快速激光IMU里程计 iVox Faster Lio 智行者高博团队开源的增量式稀疏体素结构 Faster Lio是高翔博士在Fast系列的新作 对标基
  • 在JavaScript面向对象编程中使用继承

    面向对象编程是一种重要的编程范式 它通过将数据和操作封装在对象中 实现了代码的模块化和复用 在JavaScript中 我们可以使用继承来实现对象之间的关系 从而使代码更加灵活和可扩展 那么 让我们深入探讨在JavaScript中如何使用继承
  • 安达发APS|PDM产品数据管理可以帮助企业实现的价值

    在实际运用中 APS系统的PDM产品数据管理功能可以帮助企业实现以下价值 1 提高产品设计和制造的效率 通过对产品结构和文档的统一管理 可以实现对产品信息的快速查询和检索 提高产品设计和制造的效率 2 保证产品数据的准确性和一致性 通过对版
  • excel 按照姓名日期年份分组求和

    excel 需要按照 姓名 日期中年份分组求和 目前想到 sumifs函数 大概需求如下 表格数据大概如下 A B C 姓名 日期 金额 a 2022 2 1 542 a 2023 4 5 154 b
  • 基于多目标粒子群算法的三个目标的支配解求解,基于多目标粒子群的帕累托前沿求解,基于多目标粒子群的三目标求解

    目录 摘要 测试函数shubert 粒子群算法的原理 粒子群算法的主要参数 粒子群算法原理 基于多目标粒子群算法的支配解求解 基于多目标粒子群的帕累托前沿求解 基于多目标粒子群的三目标求解 代码 结果分析 展望 代码下载 基于多目标粒子群算
  • 线上企业展厅:企业发展新利器,轻松实现线上企业展示

    引言 在当今数字化时代 线上企业展厅已经成为企业展示品牌形象 推广产品的重要手段 它不仅可以帮助企业拓宽市场 提升品牌知名度 还能为企业带来更多的商业机会 那么线上企业展厅有什么优势 如何搭建成功的线上企业展厅 一 线上企业展厅的优势 1
  • 题解 | #链表中的节点每k个一组翻转#C++暴力遍历解法

    求大家投下我们腾讯吧 发的一堆sp被鸽了 大数据面试题 Hive 华为14A还是保研华中科技大学 求大家投下我们腾讯吧 发的一堆sp被鸽了 终极 2024校招八股文 MySQL索引 第一篇 招芯片验证实习生 碰到渣导悲哀3年 给秋招画个句号
  • Sage运行pwntools库脚本异常解决:OSError: Int or String expected

    需要和Oracle交互的密码学脚本一般都需要借助pwn库的帮助 今天切换了python版本后 出现了一个异常 OSError Int or String expected 详细异常见文章 查阅一下源码后简单的解决了这个问题 在此分享一下 文
  • 解锁数据之门Roxlabs全球住宅IP赋能海外爬虫与学术研究

    11 20云账房测试一面凉经 华为开奖啦 关于邮储的一些情况 维信金科一面 二面 hr面 我的导师太好了 上海维信金科 技术面试一 Java后端开发岗记录贴 维信金科正式批面经 软件技术领域就业大纲 1 公司分类 你裁掉这个应届生用了多长时
  • TypeScript 和 jsdom 库创建爬虫程序示例

    TypeScript 简介 TypeScript 是一种由微软开发的自由和开源的编程语言 它是 JavaScript 的一个超集 可以编译生成纯 JavaScript 代码 TypeScript 增加了可选的静态类型和针对对象的编程功能 使
  • 在职状态下继续学习的心得体会

    本来平时记录的都是一些技术点的学习和使用 今天打算记录一下学习方法 当然不一定适合所有人 因人而异 仅供参考 学习这件事 对于IT行业来说 真的是活到老学到老 技术的更新迭代速度非常快 而且总是有那么一些公司特别的卷 没办法 改变不了外因
  • 模型训练 -- 数据集的获取(如何筛选想要数据)

    目录 一 前言 二 数据平台 三 数据处理 1 MaixHub平台使用 2 ZIP格式整理与上传平台 3 数据处理 使用平台删除标注 四 参考 一 前言 对于图像数据集的获取 一直是一个麻烦点 自己不想去标注数据 太繁琐了 所以 我分享出一
  • 在线智能抠图软件有哪些?证件照背景颜色更换不求人

    2024年上半年全国计算机等级考试 NCRE 报名开始啦 不出意外 这次报名仍然是需要提交证件照 具体要求如下 本人近期正面免冠 白色背景 彩色证件照 不得使用生活照 美颜照 最小像素高宽为192x144 最小成像区高宽为48mmx33mm
  • 大模型笔记【2】 LLM in Flash

    Apple最近发表了一篇文章 可以在iphone MAC 上运行大模型 LLM in a flash Efficient Large Language Model Inference with Limited Memory 主要解决的问题是
  • ros2 基础学习 15- URDF:机器人建模方法

    URDF 机器人建模方法 ROS是机器人操作系统 当然要给机器人使用啦 不过在使用之前 还得让ROS认识下我们使用的机器人 如何把一个机器人介绍给ROS呢 为此 ROS专门提供了一种机器人建模方法 URDF Unified Robot De