当前位置: 首页 > news >正文

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

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

相关文章:

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

1.URDF简介 URDF(统一机器人麦哦书格式)是ROS中的重要机器人模型描述格式&#xff0c;ROS提供了URDF文件的c解析器&#xff0c;可以解析URDF文件中使用XML格式的机器人模型。 urdf - ROS Wiki 自己查阅ros官方对URDF的介绍其实会强于大部分网上流传的文章。 1.URDF文件常用的…...

lua-resty-request库写入爬虫ip实现数据抓取

根据提供的引用内容&#xff0c;正确的库名称应该是lua-resty-http&#xff0c;而不是lua-resty-request。使用lua-resty-http库可以方便地进行爬虫&#xff0c;需要先安装OpenResty和lua-resty-http库&#xff0c;并将其引入到Lua脚本中。然后&#xff0c;可以使用lua-resty-h…...

gitlab Activating and deactivating users

原文&#xff1a;Redirecting... Deactivating a userActivating a user Activating and deactivating users GitLab 管理员可以停用和激活用户. Deactivating a user 在 GitLab 12.4 中引入 . 为了临时阻止没有最近活动的 GitLab 用户访问&#xff0c;管理员可以选择停用…...

linux入门到精通-第五章-动态库和静态库

目录 参考概述1、静态链接2 、动态链接3 、静态、动态编译对比 静态库和动态库简介传统编译 静态库制作和使用1、创建静态库的过程2、使用静态库 动态库制作和使用1、创建动态库的过程1&#xff09;、生成目标文件&#xff0c;此时要加编译选项&#xff1a;-fPIC &#xff08;f…...

markdown 如何更改字体以及颜色等功能

markdown 是IT人士写文档的常用方式&#xff0c;但是markdown默认又不支持颜色字体等特殊功能&#xff0c;所以呢想实现字体颜色高亮等特殊功能&#xff0c;实现的方法呢就是使用HTML&#xff0c;所以将部分文字改成HTML代码就行 颜色 <font color#0099ff>color #0099f…...

一次cs上线服务器的练习

环境&#xff1a;利用vm搭建的环境 仅主机为65段 测试是否能与win10ping通 配置转发 配置好iis Kali访问测试 现在就用burp抓取winser的包 开启代理 使用默认的8080抓取成功 上线...

STM32-高级定时器

以STM32F407为例。 高级定时器 高级定时器比通用定时器增加了可编程死区互补输出、重复计数器、带刹车&#xff08;断路&#xff09;功能&#xff0c;这些功能都是针对工业电机控制方面。 功能框图 16位向上、向下、向上/向下自动重装载计数器。 16位可编程预分频器&#xff0c…...

三季度业绩狂飙后,贝泰妮将开启集团化运营的“中场战事”?

双十一前夕&#xff0c;贝泰妮交出了一份亮眼的答卷。 得益于销售端和研发端的发展动能强劲&#xff0c;第三季度贝泰妮营收10.64亿元&#xff0c;同比增长25.77%&#xff1b;扣非净利润1.34亿元&#xff0c;同比增长39.88%。 如此亮眼的业绩&#xff0c;自然引得资本市场侧目…...

快速了解:什么是优化问题

1. 定义 数学优化问题是&#xff1a;在给定约束条件下&#xff0c;找到一个目标函数的最优解&#xff08;最大值或最小值&#xff09;。 2. 快速get理解 初学者对优化技术陌生的话&#xff0c;可以把 “求解优化问题” 理解为 “解一个不等式方程组”&#xff0c;解方程的。…...

Unity在Project右键点击物体之后获取到点击物体的名称

Unity在Project右键点击物体之后获取到点击物体的名称 描述&#xff1a; 在Unity的Project右键点击物体之后选择对应的菜单选项点击之后打印出物体的名称 注意事项 如果获取到文件或者预制体需要传递objcet类型&#xff0c;然后使用 GameObject.Instantiate((GameObject)se…...

【带头学C++】----- 三、指针章 ---- 3.7 数组指针

3.7 数组指针 1.数组指针的概述 数组指针是一个指向数组的指针变量&#xff0c;是用来保存数组元素的地址。在C/C中&#xff0c;数组名代表了数组的首地址&#xff0c;可以被解释为一个指向数组第一个元素的指针。因此&#xff0c;一个指向数组的指针可以通过数组名来获…...

Ubuntu20.04安装CUDA、cuDNN、tensorflow2可行流程(症状:tensorflow2在RTX3090上运行卡住)

最近发现我之前在2080ti上运行好好的代码&#xff0c;结果在3090上运行会卡住很久&#xff0c;而且模型预测结果完全乱掉&#xff0c;于是被迫研究了一天怎么在Ubuntu20.04安装CUDA、cuDNN、tensorflow2。 1.安装CUDA&#xff08;包括CUDA驱动和CUDA toolkit&#xff0c;注意此…...

untiy打开关闭浏览器

最简单的打开方法&#xff0c;只能打开不能关闭&#xff0c;自动打开默认浏览器 Application.OpenURL("https://www.bilibili.com/");打开关闭谷歌浏览器 using System.Diagnostics;private static Process web;if (web null)//打开 {web Process.Start("Chr…...

独立站优缺点解析,如何用黑科技进行缺点优化

随着跨境电商第三方平台平台红利越来越少&#xff0c;经营风险的不断增加&#xff0c;大部分人知道前年发生的亚马逊封店潮&#xff0c;涉及约1000家企业&#xff0c;5万多个账号&#xff0c;预估损失超过千亿元。 正因如此&#xff0c;更多的国内品牌和卖家不再仅依赖于第三方…...

道本科技||紧跟数字化转型趋势,企业如何提高合同管理能效?

随着数字化转型的快速发展&#xff0c;合同管理对于企业的运营效率和风险控制起着至关重要的作用。那么&#xff0c;如何紧跟数字化转型趋势&#xff0c;利用现代技术和工具提高合同管理的能效&#xff0c;以实现企业更高效、更安全的合同管理就成了企业管理中的核心问题。 在…...

框架安全-CVE 复现Apache ShiroApache Solr漏洞复现

文章目录 服务攻防-框架安全&CVE 复现&Apache Shiro&Apache Solr漏洞复现中间件列表常见开发框架Apache Shiro-组件框架安全暴露的安全问题漏洞复现Apache Shiro认证绕过漏洞&#xff08;CVE-2020-1957&#xff09;CVE-2020-11989验证绕过漏洞CVE_2016_4437 Shiro-…...

【OpenCV实现图像梯度,Canny边缘检测】

文章目录 概要图像梯度Canny边缘检测小结 概要 OpenCV中&#xff0c;可以使用各种函数实现图像梯度和Canny边缘检测&#xff0c;这些操作对于图像处理和分析非常重要。 图像梯度通常用于寻找图像中的边缘和轮廓。在OpenCV中&#xff0c;可以使用cv2.Sobel()函数计算图像的梯度…...

Spring Boot 解决跨域问题的 5种方案

跨域问题本质是浏览器的一种保护机制&#xff0c;它的初衷是为了保证用户的安全&#xff0c;防止恶意网站窃取数据。 一、跨域三种情况 在请求时&#xff0c;如果出现了以下情况中的任意一种&#xff0c;那么它就是跨域请求&#xff1a; 协议不同&#xff0c;如 http 和 https…...

linux 3.13版本nvme驱动阅读记录一

内核版本较低的nvme驱动代码不多&#xff0c;而且使用的是单队列的架构&#xff0c;阅读起来会轻松一点。 这个版本涉及到的nvme驱动源码文件一共就4个&#xff0c;两个nvme.h文件&#xff0c;分别在include/linux ,include/uapi/linux目录下&#xff0c;nvme-core.c是主要源码…...

掌握RESTful API:规范与设计详解

前言 RAML (RESTful API Modeling Language) 和 OAS (OpenAPI Specification) 都是用于描述和定义 RESTful API 的规范。它们分别提供了不同的功能和优势。 RAML&#xff08;RESTful API Modeling Language&#xff09;&#xff1a; RAML简介 RAML&#xff08;RESTful API M…...

飞秒激光微纳加工:原理、系统选型与典型应用实践

1. 飞秒激光加工&#xff1a;微纳世界的“手术刀”在精密制造领域&#xff0c;尤其是半导体、生物医疗和光子芯片这些前沿行业&#xff0c;对加工精度的要求已经到了纳米甚至亚纳米级别。传统的机械加工、长脉冲激光加工&#xff0c;在面对这种“微雕”任务时&#xff0c;往往显…...

基于遗传算法的VRPTW问题求解:从元胞数组编码到多约束优化

1. 遗传算法与VRPTW问题初探 第一次接触带时间窗的车辆路径问题&#xff08;VRPTW&#xff09;时&#xff0c;我被它复杂的约束条件弄得头晕眼花。想象一下你是一家物流公司的调度员&#xff0c;手上有7辆载重不同的货车&#xff0c;需要给16个客户送货。每个客户都有特定的需求…...

为Claude Code配置Taotoken备用通道防止服务中断

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 为Claude Code配置Taotoken备用通道防止服务中断 对于依赖Claude Code进行日常编程辅助的开发者而言&#xff0c;服务稳定性直接影…...

嵌入式开发避坑:S19/SREC文件地址重映射时,如何避免覆盖有效数据?

嵌入式开发实战&#xff1a;S19文件地址重映射的安全操作指南 在嵌入式系统开发中&#xff0c;固件升级和内存布局调整是工程师经常面临的挑战。当需要将校准参数、配置表等关键数据移动到新的内存区域时&#xff0c;如何确保操作的安全性成为关键问题。许多开发者都曾遇到过这…...

新手如何通过Taotoken控制台申请API Key并查看初始用量

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 新手如何通过Taotoken控制台申请API Key并查看初始用量 对于初次接触大模型API的开发者而言&#xff0c;第一步往往是如何获取一个…...

告别卡顿!用ZLMRTCClient.js和Vue3打造超低延迟WebRTC监控播放器(附完整代码)

超低延迟WebRTC监控播放器&#xff1a;基于ZLMRTCClient.js与Vue3的工程实践 在安防监控、智慧园区等对实时性要求极高的场景中&#xff0c;传统流媒体方案如HLS或FLV往往面临3-5秒甚至更高的延迟。这种延迟在关键场景下可能导致严重后果——当监控画面显示"一切正常"…...

告别熬夜做答辩 PPT!用 paperxie 一键把毕业论文转成专业演示稿

paperxie-免费查重复率aigc检测/开题报告/毕业论文/智能排版/文献综述/AI PPThttps://www.paperxie.cn/ppt/createhttps://www.paperxie.cn/ppt/create 谁写毕业论文没被答辩 PPT 搞崩过心态&#xff1f;对着万字论文抠重点、调排版、找模板&#xff0c;半天时间耗在「做 PPT」…...

从无人机云台到机械臂关节:聊聊FOC力矩控制在机器人里的那些实战坑

从无人机云台到机械臂关节&#xff1a;FOC力矩控制在机器人中的实战精要 当无人机云台在强风中依然保持画面稳定&#xff0c;当机械臂关节能够感知鸡蛋壳的脆弱并精准施力——这些看似简单的动作背后&#xff0c;都离不开一项关键技术&#xff1a;磁场定向控制&#xff08;FOC&…...

从继电器到MOS管:电源控制电路选型实战与仿真验证

1. 继电器与MOS管&#xff1a;电源控制的双面选择 第一次接触电源控制电路时&#xff0c;我像大多数新手一样纠结&#xff1a;到底该用继电器还是MOS管&#xff1f;这个问题困扰了我整整两周&#xff0c;直到在某个深夜调试电路时&#xff0c;继电器"咔嗒"的机械声突…...

从芯片手册到PCB:SPL06与MPU9250的I2C实战布线要点与防护设计

从芯片手册到PCB&#xff1a;SPL06与MPU9250的I2C实战布线要点与防护设计 在无人机飞控板的设计中&#xff0c;气压传感器SPL06和九轴传感器MPU9250的稳定工作直接关系到飞行姿态控制的精确性。本文将深入探讨这两个关键传感器在PCB布局中的I2C总线设计要点&#xff0c;以及如何…...