URDF文件

URDF(Universal Robot Description Format):通用机器人描述格式,包含的内容有:连杆、关节,运动学和动力学参数、可视化模型、碰撞检测模型等。

父子关系树:连杆link1 --> 关节joint1 --> 连杆link2 --> 关节joint2 ·····

下一个连杆/关节的位置是相对上一个连杆/关节描述的,形成一个位姿关系链,比如改动关节joint1的位姿,则关节joint1后面的所有连杆和关节的位姿都随之改变。

一、连杆:描述具有惯性、视觉特征和碰撞特性的刚体。

连杆属性:名称

name (必选参数):连杆的名称

连杆元素:

1、<inertial> (可选:默认为零质量和零惯性):连杆的质量、重心位置及其相对于质心的惯性张量。

   <origin> (可选:默认为identity):这个参数(平移、旋转)描述了连杆的质心坐标系C相对于连杆坐标系L的位置xyz和方向rpy。

    xyz (可选:默认为零向量):表示从Lo(连杆坐标系原点)到Co(连杆的质心)的位置向量x=L̂x + y L̂y + z L̂z,其中L̂x, L̂y, L̂z是连杆坐标系L的正交单位向量。

    rpy (可选:默认为标识):表示C的单位向量Ĉx, Ĉy, Ĉz相对于连杆坐标系L的方向,表示为以弧度为单位的欧拉旋转序列(rpy)。Ĉx, Ĉy, Ĉz不需要与连杆的主轴惯性对齐。

    <mass>:连杆的质量kg

    <inertia>:惯性张量(在连杆质心坐标系下表达)。

2、<visual>(可选参数):连杆的视觉特征。指定对象(长方体、圆柱体等)的形状以便可视化。对于同一个连杆,可以存在多个<visual>标记的实例,他们定义的几何图形的并集作为连杆的视觉表示。

3、<collision> (可选):连杆的碰撞特性。与连杆的视觉特征不一定是相同的,通常使用更简单的碰撞模型来减少计算时间。同一连杆可以存在多个<collision>标签实例,它们定义的几何图形的并集作为连杆的碰撞表示。

二、关节:joint,描述了关节的运动学和动力学,还指定了关节的安全极限。

关节属性:名称和类型

name (required):指定关节的唯一名称

type (required):指定运动类型,可以是以下类型之一:

  • revolute-沿轴旋转的铰链关节,即转动关节,具有由上限和下限指定的有限范围。
  • continuous-绕轴旋转的连续铰链关节,即转动关节,没有上限和下限。
  • prismatic-沿轴滑动的滑动关节,即平动关节,具有由上限和下限指定的有限范围。
  • fixed-这不是真正的关节,因为它不能移动。即固定关节,所有自由度都被锁定。这种类型的关节不需要<axis>、<calibration>、<dynamics>、<limits>或<safety_controller>参数。
  • floating-浮动关节,此关节允许所有6个自由度的运动。
  • planar-平面关节,该关节允许在垂直于轴线的平面内运动。

三、导出URDF文件:

1、添加基准轴

菜单栏:插入 --> 参考几何体 --> 基准轴

① 选择某个零件的边线/轴作为基准轴
② 选择两个相交平面的相交线作为基准轴
③ 选择两个点构成的直线作为基准轴
④ 选择圆柱/圆锥的中轴线作为基准轴
⑤ 选择点垂直于面的线作为基准轴
注:基准轴就是关节旋转/移动的参考轴线,建立的基准轴/坐标系等最好重新命名成全英文的名称

2、添加点

3、添加坐标系

提前在放置坐标系的地方添加一个点 --> 装配体 --> 参考几何体 --> 坐标系 --> 调整坐标轴的方向。

4、插件安装

下载插件:solidworks_urdf_exporter

Releases · ros/solidworks_urdf_exporter · GitHub

下载对应solidworks版本的exe文件,直接安装就可以了。

四、生成Link和Joint

1、打开插件

工具 --> Tools --> Export as URDF,或直接在右上角搜索框输入urdf。

2、设置连杆父子关系

base_link是整个机器人的根连杆,整个机器人的运动参考坐标系就建立在base_link上。输入与base_link相连的link的个数,下方会创建Empty_link,单击Empty_link对Empty_link进行设置,右键可以移除Empty_link或创建Child Link。根据机器人各连杆的运动关系建立连杆的父子关系树,并依次对每个link进行设置。

注意:

在点击Preview and Export之前,所有操作都不会保存。Link / Joint的名称可以由字母、下划线、数字组成,但是开头需要是英文字母

关节类型Joint Type说明:

  • continuous:旋转关节,可以绕轴无限旋转,无位置限制;
  • revolute:旋转关节,可设定转动范围;
  • prismatic:滑动关节,可以沿某一轴线移动,有位置限制;
  • fixed:固定关节,不可运动;
  • planar:平面关节,允许在垂直于轴的平面内运动(3自由度:平移+旋转),想在哪个平面内运动就将垂直于该平面的轴设置为1。
  • floating:六自由度关节,可以沿着三轴平移、旋转。

3、设置连杆和关节参数

单击 Preview and Export --> 进入参数配置界面,配置好后 --> Next

注意:

弹出Exporter对话框前不要做任何操作,等待转化完成。如果转化终止,重新打开urdf插件,并单击Preview and Export。

(1)关节参数设置

在关节参数配置对话框可以重新设置之前的一些参数,确定关节类型和关节轴是否正确(包括方向,右手定则)。

Limit参数:lower和upper是以模型的初始姿态作度量的,且在continuous模式下设置Limit参数是无效的。
lower:关节运动范围的下限
upper:关节运动范围的上限
effort:最大关节力/力矩
velocity:最大速度
转动关节单位为:rad、N/m、rad/s
移动关节单位为:m、N、m/s
Axis参数:插件会把某些轴定义成-1,如果自定义的坐标系没有问题的话,需要改成1,否则转动或移动的方向会与你定义的方向相反。

(2)连杆参数设置

Next --> 设置好连杆参数后 --> Export URDF and Meshes... --> 保存

注意:

1、保存时不要修改名称,采用默认的,不然会因为找不到文件保错。
2、urdf文件配置好后会随模型文件一起保存着,可以随时修改导出。
3、RGBA 即红色、绿色、蓝色、透明度(英语:Red, Green, Blue、Alpha)。
红色(R):取值0 到 1 之间,代表颜色中的红色成分。
绿色(G):取值0 到 1 之间,代表颜色中的绿色成分。
蓝色(B):取值0 到 1 之间,代表颜色中的蓝色成分。
透明度(A):取值 0~1 之间, 代表透明度。

4、验证URDF文件

Ubuntu18.04:在终端

直接在存放.urdf文件的文件夹右键打开终端或cd到存放.urdf文件的文件夹:cd /mnt/hgfs/虚拟机/PaddleRobotics-main/QuadrupedalRobots/ETGRL/MMF/BigCat/urdf

在终端输入命令:

安装插件:
sudo apt-get install liburdfdom-tools
sudo apt install graphviz
语法检查:
check_urdf BigCat.urdf
结构查看、图形化显示URDF模型:
urdf_to_graphiz BigCat.urdf  # 会生成.gv和.pdf文件,打开pdf文件

5、MATLAB可视化

robot=importrobot("RM65-B-3.urdf")
show(robot);

6、RVIZ可视化

安装roslaunch:sudo apt install python-roslaunch

在 launch 文件中集成 URDF 与 Rviz

用ubuntu默认的编辑器gedit创建一个launch文件:gedit panda5.launch

启动launch文件:roslaunch jubot_demo display_jubot_base_urdf.launch

roslaunch panda5 panda5.launch

启动rviz:rviz

一个urdf可视化网站:https://mymodelrobot.appspot.com/5629499534213120

?xml 这里是申明文件类型,这申明的是XML文件;version="1.0"定义XML文件类型的版本,encoding="UTF-8" 定义XML文件的语言编码。

<?xml version="1.0" encoding="utf-8"?>
<!-- This URDF was automatically created by SolidWorks to URDF Exporter! Originally created by Stephen Brawner (brawner@gmail.com)Commit Version: 1.6.0-4-g7f85cfe  Build Version: 1.6.7995.38578For more information, please see http://wiki.ros.org/sw_urdf_exporter -->

在最顶层“robot”元素中、“link”对象之外指定材质元素,然后在连杆中按名称引用材质。

<robotname="RM65-B-3"><linkname="base_link"><inertial><originxyz="-3.32860491769144E-05 0.0605056293060711 -0.000429298636761367"rpy="0 0 0" /><massvalue="0.847617283552053" /><inertiaixx="0.00174804822368135"ixy="1.68361305215697E-06"ixz="2.50097399709207E-06"iyy="0.000909998560984007"iyz="-3.68773281686804E-05"izz="0.00176435875694909" /></inertial><visual><originxyz="0 0 0"rpy="0 0 0" /><geometry><meshfilename="package://RM65-B-3/meshes/base_link.STL" /></geometry><materialname=""><colorrgba="1 1 1 1" /></material></visual><collision><originxyz="0 0 0"rpy="0 0 0" /><geometry><meshfilename="package://RM65-B-3/meshes/base_link.STL" /></geometry></collision></link><linkname="shoulder_3_1_link"><inertial><originxyz="-0.021048 0.06982 0.0015711"rpy="0 0 0" /><massvalue="0.59292" /><inertiaixx="0.0011733"ixy="0.00020649"ixz="6.0734E-06"iyy="0.00056101"iyz="-1.5445E-05"izz="0.0012567" /></inertial><visual><originxyz="0 0 0"rpy="0 0 0" /><geometry><meshfilename="package://RM65-B-3/meshes/shoulder_3_1_link.STL" /></geometry><materialname=""><colorrgba="1 1 1 1" /></material></visual><collision><originxyz="0 0 0"rpy="0 0 0" /><geometry><meshfilename="package://RM65-B-3/meshes/shoulder_3_1_link.STL" /></geometry></collision></link><jointname="shoulder_3_1_joint"type="revolute"><originxyz="0 0.1455 0"rpy="0 0 0" /><parentlink="base_link" /><childlink="shoulder_3_1_link" /><axisxyz="0 -1 0" /><limitlower="-3.14"upper="3.14"effort="0"velocity="0" /></joint><linkname="shoulder_3_2_link"><inertial><originxyz="0.0021142 0.073057 -0.010762"rpy="0 0 0" /><massvalue="0.45055" /><inertiaixx="0.0013248"ixy="0.00030275"ixz="-4.0729E-05"iyy="0.00034715"iyz="0.00012469"izz="0.0013513" /></inertial><visual><originxyz="0 0 0"rpy="0 0 0" /><geometry><meshfilename="package://RM65-B-3/meshes/shoulder_3_2_link.STL" /></geometry><materialname=""><colorrgba="1 1 1 1" /></material></visual><collision><originxyz="0 0 0"rpy="0 0 0" /><geometry><meshfilename="package://RM65-B-3/meshes/shoulder_3_2_link.STL" /></geometry></collision></link><jointname="shoulder_3_2_joint"type="revolute"><originxyz="0.0082134 0.094696 -0.00060499"rpy="0 0 0" /><parentlink="shoulder_3_1_link" /><childlink="shoulder_3_2_link" /><axisxyz="0.99725 0 -0.074088" /><limitlower="-2.26"upper="2.26"effort="0"velocity="0" /></joint><linkname="elbow_3_1_link"><inertial><originxyz="0.021592 0.067858 -0.010316"rpy="0 0 0" /><massvalue="0.44998" /><inertiaixx="0.00080054"ixy="-0.00014403"ixz="2.2628E-05"iyy="0.0003489"iyz="7.9099E-05"izz="0.00085949" /></inertial><visual><originxyz="0 0 0"rpy="0 0 0" /><geometry><meshfilename="package://RM65-B-3/meshes/elbow_3_1_link.STL" /></geometry><materialname=""><colorrgba="1 1 1 1" /></material></visual><collision><originxyz="0 0 0"rpy="0 0 0" /><geometry><meshfilename="package://RM65-B-3/meshes/elbow_3_1_link.STL" /></geometry></collision></link><jointname="elbow_3_1_joint"type="revolute"><originxyz="-0.010208 0.15737 -0.021997"rpy="0 0 0" /><parentlink="shoulder_3_2_link" /><childlink="elbow_3_1_link" /><axisxyz="-0.010885 0.98976 -0.14229" /><limitlower="-2.35"upper="2.35"effort="0"velocity="0" /></joint><linkname="elbow_3_2_link"><inertial><originxyz="-0.0040394 0.058762 0.0093249"rpy="0 0 0" /><massvalue="0.27546" /><inertiaixx="0.00055693"ixy="-0.00013414"ixz="-2.0423E-05"iyy="0.00015836"iyz="-6.2401E-05"izz="0.00057079" /></inertial><visual><originxyz="0 0 0"rpy="0 0 0" /><geometry><meshfilename="package://RM65-B-3/meshes/elbow_3_2_link.STL" /></geometry><materialname=""><colorrgba="1 1 1 1" /></material></visual><collision><originxyz="0 0 0"rpy="0 0 0" /><geometry><meshfilename="package://RM65-B-3/meshes/elbow_3_2_link.STL" /></geometry></collision></link><jointname="elbow_3_2_joint"type="revolute"><originxyz="-0.0075547 0.09573 -0.013549"rpy="0 0 0" /><parentlink="elbow_3_1_link" /><childlink="elbow_3_2_link" /><axisxyz="0.99959 0.0070053 -0.027737" /><limitlower="-3.14"upper="3.14"effort="0"velocity="0" /></joint><linkname="wrist_3_1_link"><inertial><originxyz="-0.01883 0.054906 0.0075269"rpy="0 0 0" /><massvalue="0.23223" /><inertiaixx="0.00024711"ixy="4.2585E-05"ixz="5.4744E-06"iyy="0.00011652"iyz="-2.1292E-05"izz="0.00026486" /></inertial><visual><originxyz="0 0 0"rpy="0 0 0" /><geometry><meshfilename="package://RM65-B-3/meshes/wrist_3_1_link.STL" /></geometry><materialname=""><colorrgba="1 1 1 1" /></material></visual><collision><originxyz="0 0 0"rpy="0 0 0" /><geometry><meshfilename="package://RM65-B-3/meshes/wrist_3_1_link.STL" /></geometry></collision></link><jointname="wrist_3_1_joint"type="revolute"><originxyz="0.0064042 0.13143 0.020439"rpy="0 0 0" /><parentlink="elbow_3_2_link" /><childlink="wrist_3_1_link" /><axisxyz="-0.0026287 0.9879 0.15508" /><limitlower="-2.23"upper="2.23"effort="0"velocity="0" /></joint><linkname="wrist_3_2_link"><inertial><originxyz="-0.0010975 0.056649 0.019782"rpy="0 0 0" /><massvalue="0.20572" /><inertiaixx="0.00028608"ixy="7.0133E-05"ixz="2.3408E-05"iyy="0.00012022"iyz="-6.0294E-05"izz="0.00028501" /></inertial><visual><originxyz="0 0 0"rpy="0 0 0" /><geometry><meshfilename="package://RM65-B-3/meshes/wrist_3_2_link.STL" /></geometry><materialname=""><colorrgba="1 1 1 1" /></material></visual><collision><originxyz="0 0 0"rpy="0 0 0" /><geometry><meshfilename="package://RM65-B-3/meshes/wrist_3_2_link.STL" /></geometry></collision></link><jointname="wrist_3_2_joint"type="revolute"><originxyz="0.006887 0.075529 0.012271"rpy="0 0 0" /><parentlink="wrist_3_1_link" /><childlink="wrist_3_2_link" /><axisxyz="-0.99833 0.0063528 -0.057393" /><limitlower="-6.28"upper="6.28"effort="0"velocity="0" /></joint>
</robot>

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【TEC100TAI-KIT】青翼科技基于复微青龙JFMQL100TAI的全国产化智能异构计算平台

板卡概述 TEC100TAI-KIT是我司自主研制的一款基于上海复旦微电子复微青龙100TAI的全国产智能异构计算平台开发套件&#xff0c;该套件包含1个复微青龙100TAI核心板和1个PCIE规格的扩展底板。 该套件的核心板集成了100TAI的最小系统&#xff0c;包含一颗JFMQL100TAI900片上系统…

SpringCloud微服务:Nacos和Eureka的区别

目录 配置&#xff1a; 区别&#xff1a; ephemeral设置为true时 ephemeral设置为false时&#xff08;这里我使用的服务是order-service&#xff09; 1. Nacos与eureka的共同点 都支持服务注册和服务拉取 都支持服务提供者心跳方式做健康检测 2. Nacos与Eu…

阅读记录【arXiv2020】 Adaptive Personalized Federated Learning

Adaptive Personalized Federated Learning 论文地址&#xff1a; https://arxiv.org/abs/2003.13461 摘要 对联邦学习算法个性化程度的研究表明&#xff0c;只有最大化全局模型的性能才会限制局部模型的个性化能力。在本文中&#xff0c;我们提倡自适应个性化联合学习&…

纽扣电池/含纽扣电池产品上架亚马逊各国法规标准要求16 CFR 第 1700.15/20 ANSI C18.3M(瑞西法案认证)

亚马逊纽扣电池认证标准有哪些&#xff1f; 一、美国站&#xff08;亚马逊纽扣电池/含纽扣电池商品&#xff09;安全测试标准要求&#xff1a; 16 CFR 第 1700.15 、16 CFR 第 1700.20 ANSI C18.3M、警示标签声明要求&#xff08;第 117-171 号公众法&#xff09; 二、澳大…

【EI会议征稿】第四届公共管理与智能社会国际学术会议(PMIS 2024)

第四届公共管理与智能社会国际学术会议&#xff08;PMIS 2024) 2024 4th International Conference on Public Management and Intelligent Society 第四届公共管理与智能社会国际学术会议将在2024年3月15-17日在长沙召开。PMIS 2024由中南大学社会计算研究中心、中南大学公共…

Open AI开发者大会:AI“科技春晚”

ChatGPT的亮相即将满一年之时&#xff0c;OpenAI举行了自己的首次开发者大会。OpenAI首席执行官Sam Altman宣布推出最新的大模型GPT-4 Turbo。正如“Turbo”一词的中文含义“涡轮增压器”一样&#xff0c;本次发布会上&#xff0c;OpenAI的这款最新大模型在长文本、知识库、多模…

安装2023最新版PyCharm来开发Python应用程序

安装2023最新版PyCharm来开发Python应用程序 Install the Latest JetBrains PyCharm Community to Develop Python Applications Python 3.12.0最新版已经由其官网python.org发布&#xff0c;这也是2023年底的最新的版本。 0. PyCharm与Python 自从1991年2月20日&#xff0…

Chrome添加扩展程序

Crx4Chrome 下载crx 打开扩展程序 如果拖动crx文件到扩展程序提示只能通过Chrome应用商店添加此项内容 修改crx文件后缀为zip并解压&#xff0c;再拖动到扩展程序 Vue.js devtools

源启容器平台KubeGien 打造云原生转型的破浪之舰

云原生是应用上云的标准路径&#xff0c;也是未来发展大的趋势。如何将业务平滑过渡到云上&#xff1f;怎样应对上云期间的各项挑战呢&#xff1f;中电金信基于金融级数字底座“源启”打造了一款非常稳定可靠、多云异构、安全可控、开放灵活的容器平台产品——源启容器平台Kube…

Java_异常详解

前言 异常是什么,异常如何抛出,如何抛出自定义异常,异常处理主要的五个关键字&#xff1a;throw,try,catch,finally,throws ,异常的处理流程 异常是什么 在Java中&#xff0c;将程序执行过程中发生的不正常行为称为异常。比如之前写代码时经常遇到的&#xff1a; 1. 算数异…

CAD文件转奥维 转shapefile

之前写过一篇CAD转ArcGIS 其实万变不离其宗&#xff0c;都是经纬度知识的应用。 背景是当我们拿到一份带有坐标的CAD文件如何转换为矢量文件。 首先我们要明白XY坐标系的含义。 X—real X-500000 为近距离标准经线的距离。 y 为距离赤道的距离。 X 429174.3048 Y 32313…

【MATLAB基础绘图第17棒】绘制玫瑰图

MATLAB绘制玫瑰图 玫瑰图&#xff08;Nightingale Rose Chart&#xff09;风玫瑰图&#xff08;WindRose&#xff09;准备工作&#xff1a;WindRose工具包下载案例案例1&#xff1a;基础绘图 参考 玫瑰图&#xff08;Nightingale Rose Chart&#xff09; 玫瑰图&#xff08;Ni…

为什么云游戏被认为是行业的未来趋势?

5G 时代的到来&#xff0c;游戏行业也正在经历着一场革命性的变革。云游戏&#xff0c;这个看似神秘的新兴领域&#xff0c;正在逐渐成为行业的未来趋势。 一、云游戏的优势 摆脱硬件束缚 在传统游戏中&#xff0c;玩家需要购买昂贵的游戏主机或电脑&#xff0c;才能享受高质…

buildadmin+tp8表格操作(3)----表头上方按钮绑定事件处理,实现功能(选中或取消指定行)

在buildAdmin的表格中&#xff0c;通过按钮来选中和取消某一行 这种情况&#xff0c;只适合表格行的单选 在elementplus是这样说的 我们所使用的就是这个方法 看一下buildAdmin中的用法 highlight-current-row 是element-plus 中表格的属性 因为 buildadmin 中的table是对 el…

超聚变服务器关闭超线程CPU的步骤(完整版)

前言: 笨鸟先飞&#xff0c;好记性不如烂笔头。 我们项目都用不到超线程CPU&#xff0c;所以调测设备的时候都需要关掉&#xff0c;最近新设备换成了超聚变的服务器&#xff0c;这篇记录我关闭&#xff08;超聚变&#xff09;服务器超线程CPU的方法步骤。 关闭超线程CPU的步骤…

部署Kubernetes Dashboard

Dashboard简介 Dashboard 是基于网页的 Kubernetes 用户界面。 可以使用 Dashboard 将容器应用部署到 Kubernetes 集群中&#xff0c;也可以对容器应用排错&#xff0c;还能管理集群资源。 Dashboard创建 #创建pods kubectl apply -f https://raw.githubusercontent.com/kub…

西米支付”:在游戏SDK中,提供了哪些支付渠道?SDK的用处?

在游戏SDK中&#xff0c;提供了哪些支付渠道&#xff1f; 常见的支付方式包括支付宝、微信支付、银联支付等。游戏SDK的支付功能可以方便玩家选择不同的支付渠道&#xff0c;以满足他们个性化的支付需求。 流行的支付应用&#xff1a;该应用集成了流行的支付应用支付接口&#…

el-checkbox 对勾颜色调整

对勾默认是白色 改的时候一直在试着改color人&#xff0c;其实不对。我用的是element ui 的复选框 /* 对勾颜色调整 */ .el-checkbox__inner::after{/* 是改这里的颜色 */border: 2px solid #1F7DFD; border-left: 0;border-top: 0;}

向pycdc项目提的一个pr

向pycdc项目提的一个pr 前言 pycdc这个项目&#xff0c;我之前一直有在关注&#xff0c;之前使用他反编译python3.10项目&#xff0c;之前使用的 uncompyle6无法反编译pyhton3.10生成的pyc文件&#xff0c;但是pycdc可以&#xff0c;但是反编译效果感觉不如uncompyle6。但是版…

重磅解读 | 阿里云 云网络领域关键技术创新

云布道师 10 月 31 日&#xff0c;杭州云栖大会&#xff0c;阿里云技术主论坛带来了一场关于阿里云主力产品与技术创新的深度解读&#xff0c;阿里云网络产品线负责人祝顺民带来《云智创新&#xff0c;网络随行》的主题发言&#xff0c;针对阿里云飞天洛神云网络&#xff08;下…