机器人仿真-gazebo学习笔记(3)URDF和机器人模型

news2025/7/26 19:42:47

1.URDF简介

URDF(统一机器人麦哦书格式)是ROS中的重要机器人模型描述格式,ROS提供了URDF文件的c++解析器,可以解析URDF文件中使用XML格式的机器人模型。

 urdf - ROS Wiki

自己查阅ros官方对URDF的介绍其实会强于大部分网上流传的文章。

1.URDF文件常用的XML标签

1.<link>标签

·作用:描述机器人某个刚体部分的外观和物理属性,例如:

        1.尺寸(size)

        2.颜色(color)

        3.形状(shape)

        4.惯性矩阵(inertial matrix)

        5.碰撞参数(collision properties)等

·URDF模型中的link结构图:

·<link>标签的URDF基本语法:

<link name="<link name>">

<inertial> · · · · · · · · · ·</inertial>

        <visual> · · · · · · ·</visual>

        <collision> · · · · · </collision>

</link>

标签简介
<visual>描述机器人link部分的外观参数
<inertial>描述link的惯性参数
<collision>描述link的碰撞属性

碰撞检测区域(link区域)大于可见的区域,只要有物体和collision区域碰撞那就是和link发生了碰撞。

 2.<joint>标签

·作用:描述机器人关节的运动学和动力学属性,包括关节运动的位置和速度限制。

六种机器人关节运动形式(URDF模型的joint类型):

关节类型简介
continuous旋转关节,可以围绕单轴无线旋转
revolute旋转关节,类似continuous,但旋转角度有极限
prismatic滑动关节,沿某一轴线移动的关节,有位置极限
planar平面关节,允许在平面正交方向平移或旋转
floating浮动关节,允许进行平移、旋转运动
fixed固定关节,不允许运动的特殊关节

机器人关节(joint)的作用是连接两个刚体(link),被连接的连个刚体分别被称为parent link和child link ,对应了父级和子级的关系。

·URDF模型的joint结构图:

·<joint>标签的URDF基本语法:

 <joint name="<name of the joint>">

        <parent link="parent_link"/>

        <child link="child_link"/>

        <calibration .... />

        <dynamics damping .... />

        <limit effort .... />

        ....

</joint>

标签简介
<parent link>父级刚体
<child link>子级刚体
<calibration>关节参考位置,用来校准关节的绝对位置
<dynamics>描述关节物理属性,包括阻尼值、物理静摩擦力等
<linit>描述运动的一些极限值,包括关节运动的上下限位置、速度限制等
<mimic>描述该关节与已有关节的关系
<safety_controller>描述安全控制器参数
3.<robot>标签

·作用:机器人模型的最顶层标签,<link>标签和<jont>标签必须包含在<robot>标签内。

·URDF模型的robot结构图:

 ·<robot>标签的URDF基本语法:

<robot name="<name of the robot>">

        <link> ........ </link>

        <link> ........ </link>

        <joint> ........ </joint>

        <joint> ........ </joint>

</robot>

4.<gazebo>标签

·作用:描述机器人模型在gazebo仿真需要的参数,包括机器人材料属性、gazebo插件等。只有在gazebo仿真才需要

·<gazebo>标签的URDF基本语法:

<gazebo reference="link_1">

        <materisal>Gazebo/Black</materisal>

</gazebo>​​

 2.创建URDF模型

ros中,机器人模型一般会放在RobotName_description功能包下。

1.创建机器人描述功能包

catkin_create_pkg myrobot urdf xacro

myrobot功能包当中会包含urdf、meshes、launch、config四个文件夹。

·urdf:存放机器人模型的urdf文件和xacro文件

·meshes:放置URDF中引用的模型渲染文件

·launch:保存相关启动文件

·config:保存rviz配置文件

3.URDF命令行工具

·作用:检查、梳理模型文件。

1.安装liburdfdom-tools

sudo apt install liburdfdom-tools

如果安装出现问题,先看一下自己是否换源了。

2.check_urdf命令

·作用:解析URDF文件,并显示解析过程中发现的问题

check_urdf mybot.urdf 

3.urdf_to_graphiz命令

·作用:查看URDF模型的整体结构。

打开生存的pdf文件就能看见URDF的模型结构

4.URDF模型解析

为了让大家更好的了解URDF模型,我会简单解析一下URDF模型

1.第一行声明文件是使用XML描述,第二行是使用<robot>标签定义一个机器人模型,机器人名字为"mybot"

2.机器人底盘link,<inertial>标签描述底盘的惯性参数,重量,惯性矩阵;<visual>标签描述底盘的外观参数,在rviz和gazebo中会按照描述显示出来,底盘几何图形是一个长宽高分别为0.25m、0.16m、0.05m的长方体,旋转姿态,起点xyz坐标,颜色为蓝色;<collision>标签描述物体的碰撞属性。(后面的link都差不多)

3.左轮link

4.左轮joint,用于将左轮与底盘连接,为旋转关节,连接坐标为0,0,-1,父级link和子级link,旋转姿态和起点坐标。(后续的joint都差不多)

5.万向轮link,万向轮为一个球体

6.万向轮joint

5.在rviz中显示机器人模型

roslaunch bingda_tutorials display_robot.launch 

6.在gazebo中显示机器人模型

roslaunch bingda_tutorials gazebo_robot.launch

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

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

相关文章

电脑硬件坏了,如何维修?

在电子设备日益普及的今天&#xff0c;电脑已成为很多人生活和工作中不可或缺的工具&#xff0c;然而在使用过程中很容易遇见电脑故障之类的问题&#xff0c;这些问题十有八九来自硬件&#xff0c;那么针对电脑硬件问题&#xff0c;该如何维修&#xff1f; 一般来说&#xff0c…

深入探究Vue.js生命周期及其应用场景

当谈到Vue.js的生命周期时&#xff0c;我们指的是组件在创建、更新和销毁过程中发生的一系列事件。了解Vue的生命周期对于开发人员来说是至关重要的&#xff0c;因为它们提供了一个机会来执行特定任务&#xff0c;并在不同的阶段处理组件。 Vue的生命周期可以分为八个不同的阶…

项目管理-挣值管理例题-使用SV进度偏差和CV成本偏差来判断进度和成本是否合适

基础概念介绍 CV和SV的计算公式 在财务分析中&#xff0c;常常会用到CV和SV这两个指标。CV是成本偏差&#xff0c;SV是进度偏差。它们的计算公式如下&#xff1a; CV EV - AC SV EV - PV 其中&#xff0c;EV是挣值&#xff0c;AC是实际成本&#xff0c;PV是计划价值。 …

Android Studio中配置Git

安装Git 在安装Android Studio之前&#xff0c;需要先安装Git。可以从Git官网下载并安装Git&#xff1a;https://git-scm.com/downloads 在Android Studio中配置Git 在Android Studio中&#xff0c;依次点击“File” -> “Settings”&#xff0c;在弹出的窗口中选择“Ver…

软件产品如何进行跨浏览器测试?

跨浏览器测试是确保Web应用程序的功能在不同浏览器、浏览器版本和操作系统之间保持一致的过程&#xff0c;从而为其用户提供轻松的用户体验。跨浏览器测试涉及浏览器和操作系统的组合&#xff0c;以测试应用程序的响应能力和兼容性。 一、跨浏览器测试的作用   1、发现兼容性…

Postman测试金蝶云星空Webapi【协同开发云】

文章目录 Postman测试金蝶云星空Webapi【协同开发云】环境说明业务背景大致流程具体操作请求登录接口请求标准接口查看保存提交审核反审核撤销 请求自定义接口参数是字符串参数是实体类单个实体类实体类是集合 其他 Postman测试金蝶云星空Webapi【协同开发云】 环境说明 金蝶…

面向对象【this关键字】

文章目录 this关键字基本作用调用变量调用方法调用构造器this 关键字的限制 this关键字 它在方法&#xff08;实例方法或非 static 的方法&#xff09;内部使用&#xff0c;表示调用该方法的对象它在构造器内部使用&#xff0c;表示该构造器正在初始化的对象。 基本作用 引用…

如何将 ruby 打包类似于jdk在另一台相同架构的机器上面开箱即用

需求 目前工作中使用到了ruby作为java 项目的中转语言&#xff0c;但是部署ruby的时候由于环境的不同会出现安装依赖包失败的问题&#xff0c;如何找到一种开箱即用的方式类似于java 中的jdk内置jvm这种方式 解决 TruffleRuby 完美解决问题&#xff0c;TruffleRuby 是使用 T…

5.13.Post方法进行线程切换

在上节课中呢&#xff0c;我向你介绍接口调用过程中啊&#xff0c;曾经看到过post方法。当时我已经向你解释过pose方法呢&#xff0c;就是从一个线程切换到另外一个线程&#xff0c;那整个的过程呢&#xff0c;非常简单&#xff0c;就是从发送线程创建一个消息。塞到接收线程的…

指纹识别之dns

https://ephen.me/2017/dns-tcp/ https://c.biancheng.net/view/6457.html https://www.jianshu.com/p/b483300378af https://www.cnblogs.com/549294286/p/5172448.html wireshark数据包分析 Packet Details Pane(数据包详细信息), 在数据包列表中选择指定数据包&#xff0c;…

nodejs+vue智慧补助系统的设计与实现-计算机毕业设计

随着网络技术的不断发展&#xff0c;多媒体技术应用渐渐的出现在教育领域中&#xff0c;智慧补助系统已经成为教育发展的一个热门话题。 在众多网络开发技术中&#xff0c;nodejs是当前很热门的一种软件&#xff0c;因为它可以进行数据库操作及方便用户控制管理。 在各学校的教…

广播域与冲突域详解

广播域与冲突域详解 一般普遍认为一个HUB&#xff08;集线器&#xff09;就是一个冲突域&#xff0c;而使用交换机就可以隔离冲突域。但是无论是HUB 还是交换机它们都具有广播域。HUB 和交换机的区别&#xff1a;同一个 HUB 的所有端口都在同一个广播域和同一个冲突域内的。而…

NIFI1.23.2_最新版_性能优化通用_技巧积累_随时更新---大数据之Nifi工作笔记0063

nifi好用,但是对机器的性能要求也高,如果性能达不到,就会导致,问题发生,比如,队列里显示有内容,但是实际上队列是空的,清也清不掉,只能重启,很麻烦. 关于优化:1.配置前端页面刷新的间隔时间默认30秒,我们可以自己需要看的时候手动刷新我们改成300sec 2.修改CPU阻塞时间,提高CPU…

C++-实现一个简单的菜单程序

C-实现一个简单的菜单程序 1&#xff0c;if-else语句实现1.1&#xff0c;代码实现1.2&#xff0c;功能检测 2&#xff0c;switch语句实现2.1&#xff0c;代码实现2.2&#xff0c;功能检测 1&#xff0c;if-else语句实现 实现一个简单的菜单程序&#xff0c;运行时显示"Men…

节日活动软文怎么写?媒介盒子为您解答

不管是春节、除夕这类传统节日&#xff0c;还是万圣节、情人节这类舶来节日&#xff0c;又或者是双十一、618这类电商节。品牌方只要在节日中举办活动&#xff0c;都能够提升品牌曝光率&#xff0c;还能有效减少运营时间成本提高效率&#xff0c;节日活动软文能够帮助商家宣传活…

Java实验四

要求&#xff1a;设计一个文字字体设置窗体&#xff0c;在该窗体中可以设置要显示文字的字体内容&#xff0c;包括字体名称、字体大小、粗体和斜体等字体风格。并模拟在不同操作系统下的显示效果。添加事件处理机制&#xff0c;要求实现如下功能&#xff1a; 当在文本框中输入…

C++学习初探---‘C++面向对象‘-继承函数重载与运算符重载

文章目录 前言继承继承是什么&#xff1f;三种访问权限的继承&#xff1a; 函数重载与运算符重载函数重载运算符重载可重载运算符&不可重载运算符 前言 第三次学习记录&#xff0c;依旧是C面向对象的内容。 继承 继承是什么&#xff1f; C中的继承是一种面向对象编程&am…

Spring5学习笔记汇总

✅作者简介&#xff1a;大家好&#xff0c;我是Leo&#xff0c;热爱Java后端开发者&#xff0c;一个想要与大家共同进步的男人&#x1f609;&#x1f609; &#x1f34e;个人主页&#xff1a;Leo的博客 &#x1f49e;当前专栏&#xff1a; Spring专栏 ✨特色专栏&#xff1a; M…

[AUTOSAR][诊断管理][ECU][$2F] 通过ID控制IO

文章目录 一、简介服务功能功能描述应用场景服务请求请求格式控制参数(IOCP)请求实例服务响应响应格式正响应实例负响应NRC支持二、 示例代码2f_io_ctl_by_id.c一、简介 2F诊断服务主要在车身域比较常见,比如车窗控制,传感器开关、执行器控制等。 UDS诊断服务协议都以ISO标准…

VM Ware在桥接模式下无法联网

目录 一&#xff0c;说明二&#xff0c;桥接模式下选择对应网卡三&#xff0c;物理机设置静态IP四&#xff0c;虚拟机设置静态IP四&#xff0c;测试 一&#xff0c;说明 VM Ware是一款常用的虚拟软件&#xff0c;我们可以在Windows系统上安装该软件&#xff0c;加载相应的镜像…