机器人控制系列教程之URDF自动生成工具

URDF文件的编写较为复杂,ROS官方提供了URDF的SolidWorks插件,可方便地将 SW 零件和装配体导出为 URDF 文件。导出器将创建一个类似 ROS 的软件包,其中包含网格、纹理和机器人(URDF 文件)目录。对于单一的 SolidWorks 零件,零件导出器将提取材料属性并在 URDF 中创建一个链接。对于装配体,导出器将根据 SW 装配体层次结构建立链接并创建树形结构。导出器可自动确定适当的连接类型、连接变换和轴。可以通过SolidWorks直接生成可用的URDF描述文件。

工具下载及安装

solidworks_urdf_exporter插件适配了多个版本的SolidWorks软件,具体需要下载那个版本可通过这个链接:
https://github.com/ros/solidworks_urdf_exporter/releases,自行下载。需要注意的是Windows系统下面只需要下载.exe文件,双击运行安装即可。

安装完成后,打开SolidWorks软件在“工具->Tools”中即可看到该插件

机器人三维模型运动副定义

笔者本次使用的机器人为一个六自由度的串联机器人,该三维模型可通过如下链接进行下载。链接:https://pan.baidu.com/s/1ANM1Vhj2lCB0Knc0uukvnQ?pwd=tech,提取码:tech。下载的所有文件如下图所示:

你可在SW(SolidWorks)软件中新建一个装配体文件,一次导入Base.SLDPRT、Link_1.SLDPRT、Link_2.SLDPRT、Link_3.SLDPRT、Link_4.SLDPRT、Link_5.SLDPRT、Link_6.SLDPRT、Link_7.SLDPRT各部件,在每个部件的导入过程中定义各个部件的运动副,这个机器人中的运动副均为旋转幅。

URDF文件导出设置

在“工具->Tools->Export as URDF”中打开刚才安装的插件。或者直接在右上角搜索框输入urdf,比较方便。设置base_link(可自定义修改)。修改图中与base_link相连link个数时会在下方创建Empty_link,由于我已经设置成了Link_1,所以名称不一样。

其中,“Global Origin Coordinate System”建议选择“Automatically Generate”表示程序自动生成,鼠标点击“Automatically Generate”下方的矩形框,再点击机器人的Base部件,矩形框下方的数量设置为1,表示与该部件链接的部件有1个,即可将该部件设置完成。
同理,鼠标点击下方部件树中的Link_1部件,即可弹出Link_1部件的相关设置如下:

其中,最上方可自定义设置部件的名称和关节名称,“Reference Coordinate System”相关坐标系选择对应的“Origin_Joint_1”,“Reference Axis”相关坐标轴选择为“Automatically Generate”,当然也可以直接自行选择,“Joint Type”选择为“Automatically Detect”表示自动检测,但有时会检测错误,所以这里我们选择revolute,因为我们在前期搭建机器人装配体的时候已经设置了关节的类型。其余设置均与上述Base部件中的设置相同。
以此类推,将所有的部件设置完成,即可看到完整的部件树如下,需要注意的是这个机器人中末端的手部是由两个部件组成的,所以在设置Link_5的时候需要将所属的子部件选择为2,并且手部两个部件之间是平移副的形式,在“Joint Type”中应该选择“prismatic”

然后鼠标单击“Preview and Export”预览并导出,此时,SW软件将进入短暂的计算时间。

计算完成后,将弹出如下界面:


您可点选各个关节,设置他们的角度的范围、摩擦系数、阻尼系数以及对应控制器的软限位等等,注:角度的范围必须设置不然无法进行后续的控制器搭建,也无法导入Simulink中,设置完成之后,点击右下角的“Next”,即可进入下一步部件的属性设置,同理,您可点击各个部件来设置他们的位置、角度、转动惯量、显示效果等等。

设置完成之后,右下角可以看到有两个选择:只导出URDF文件和导出URDF文件和网格数据,这两个区别就在于是否导出实体的网格数据,建议选择导出URDF文件和网格数据。选择文件夹后即可导出。

导出文件解析

导出之后的文件夹如下图所示。

其中:

  1. config:该文件夹包含一个 "joint names_YourPackageName.yml "文件,包含在生成的 URDF 文件中可用的关节点名称。
  2. launch:该文件夹包含两个文件。"display.launch "用于在 Rviz 中打开机器人。gazebo.launch "用于在 GAZEBO 中启动机器人。
  3. meshhes:此文件夹包含机器人所有链接的".stl "文件。若在上一步中选择只导出URDF文,则此文件为空。
  4. textures:此文件夹为空。
  5. URDF:此文件夹包含机器人的 URDF 文件(见本文附录)。对机器人的描述,包含链接、关节、关节位置和运动范围、质量属性、惯性属性等信息。此外,该文件夹还包含一个 S_RobotAsm.csv 文件。
  6. CMakeLists.txt:该文件是 CMake 编译系统的输入文件,用于构建软件包。描述了如何构建代码以及在何处安装。或更改此文件中的代码顺序。
  7. export:包含在 SOLIDWORKS 中创建软件包时生成的日志。
  8. package.xml:该文件定义了有关软件包的属性,例如软件包名称、版本号、作者、维护者以及与其他 catkin 软件包的依赖关系。

导入MATLAB软件

到开MATLAB软件进入到导出的这个文件夹路径下,在命令行窗口输入show(importrobot('urdf/S_Robot_urdf.urdf')),即可显示出该机器人模型如下图所示。

另外,若需要导入到Simulink中可在命令行中输入smimport('urdf/S_Robot_urdf.urdf'),MATLAB将自动打开Simulink以Simscape模块的形式生成模型文件,如下图所示。

在Simulink中点击“运行”,即可在MATLAB中看到机器人模型。


若出现如下报错,是因为导入的urdf文件找不到网格数据文件了,将mesh文件夹复制到urdf文件夹中即可

往期推荐

在这里插入图片描述

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

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

相关文章

CVE-2024-37032漏洞预警:尽快升级Ollama

实时了解业内动态,论文是最好的桥梁,专栏精选论文重点解读热点论文,围绕着行业实践和工程量产。若在某个环节出现卡点,可以回到大模型必备腔调或者LLM背后的基础模型重新阅读。而最新科技(Mamba,xLSTM,KAN)…

Mac电脑安装HomeBrew工具(100%成功)

1.Homebrew是什么? homebrew是一款Mac OS平台下的软件包管理工具,拥有安装、卸载、更新、查看、搜索等功能。通过简单的指令可以实现包管理,而不用关心各种依赖和文件路径情况。 2.homebrew常用命令 检测是否安装HomeBrew: brew -v卸载Hom…

AI提示词投喂新手教程(一):基础概念和工具

对于很多已经熟悉提示词工程(prompt engineering)的朋友来说,以下内容可能已经是老生常谈了。然而,仔细搜索和翻阅了星球上关于提示词的新手教程,发现对新手并不是很友好,内容零散且缺乏系统性。为此&#…

面试突击:Java 集合知识体系梳理

本文已收录于:https://github.com/danmuking/all-in-one(持续更新) 前言 哈喽,大家好,我是 DanMu。在 Java 开发中,集合类对象绝对是被使用最频繁的对象之一。因此,深入了解集合类对象的底层数…

面试突击:ArrayList源码详解

本文已收录于:https://github.com/danmuking/all-in-one(持续更新) 前言 哈喽,大家好,我是 DanMu。ArrayList 是我们日常开发中不可避免要使用到的一个类,并且在面试过程中也是一个非常高频的知识点&#…

NSIS 打包发布 exe 安装包之 配置文件参数说明

一、打包exe教程 详见上期博客:visual studio打包QT工程发布exe安装包 二、参数说明 1、程序图标显示无效问题 在nsi配置文件中找到以下行,分别在尾部追加 “” “$INSTDIR\logo-ico.ico” , logo-ico.ico为程序图标名称,Setup…

62.指针和二维数组(2)

一.指针和二维数组 1.如a是一个二维数组,则数组中的第i行可以看作是一个一维数组,这个一维数组的数组名是a[i]。 2.a[i]代表二维数组中第i行的首个元素的地址,即a[i][0]的地址。 二.进一步思考 二维数组可以看作是数组的数组,本…

电子电器及家电制造行业MES系统解决方案介绍

电子电器及家电制造行业是一个技术高度密集、生产工艺复杂且市场需求变化迅速的行业。为了提升生产效率、保证产品质量并快速响应市场变化,越来越多的电子电器及家电制造企业引入了MES系统。本文将详细介绍MES系统在电子电器及家电制造行业的应用方法及其价值。 一…

【公开数据集获取】

Open Images Dataset https://www.youtube.com/watch?vdLSFX6Jq-F0

【海思Hi3403V100】多目拼接相机套板硬件规划方案

海思Hi3403V100 是专业超高清智能网络摄像头 SoC。该芯片最高支持四路 sensor 输入,支持最高 4K60fps 的 ISP 图像处理能力,支持 3F 、WDR、多级降噪、六轴防抖、硬件拼接、多光谱融合等多种传统图像增强和处理算法,支持通过AI 算法对输入图像…

【Linux进阶】UNIX体系结构分解——操作系统,内核,shell

1.什么是操作系统? 从严格意义上说,可将操作系统定义为一种软件,它控制计算机硬件资源,提供程序运行环境。我们通常将这种软件称为内核(kerel),因为它相对较小,而且位于环境的核心。 从广义上…

【win11】Mouse without Borders安装问题以管理员权限安装msi文件

【win11】Mouse without Borders安装问题&以管理员权限安装msi文件 Mouse without Borders安装问题解决&以管理员权限安装msi文件启动Windows Installer服务以管理员权限安装msi文件 参考文献 Mouse without Borders安装问题 在win11下我双击MouseWithoutBorders2.2.1…

【FFmpeg】avio_open2函数

【FFmpeg】avio_open2函数 1.avio_open21.1 创建URLContext(ffurl_open_whitelist)1.1.1 创建URLContext(ffurl_alloc)1.1.1.1 查找合适的protocol(url_find_protocol)1.1.1.2 为查找到的URLProtocol创建UR…

【工程实践】MQ中rebalance机制

问题起因,有些分区积压严重,有些分区又是空闲。之前了解过rebalance机制,想知道在这种情况下rebalance机制为什么不触发,从而将积压的数据匀给空闲的分区。 问了gpt,“mq的rebalance功能能否保证每个分区在同一时间段…

AL8807是一款降压型DC/DC转换器,旨在以恒定电流驱动LED,可串联驱动多达9个LED,从6V至36V的电压源

一般描述 AL8807是一款降压型DC/DC转换器,旨在以恒定电流驱动LED。根据LED的正向电压,该设备可串联驱动多达9个LED,从6V至36V的电压源。LED的串联连接提供相同的LED电流,从而实现均匀的亮度,并消除了对镇流电阻…

国产CPU兆芯发展分析

国产信创CPU-兆芯CPU CPU:信创根基,国之重器 国产CPU已形成自主架构、x86、ARM三大阵营。自主架构以龙芯、申威的LoongArch、SW-64为代表;ARM阵营由鲲鹏、飞腾领军,依托ARM授权开发处理器;x86阵营则以海光、兆芯等品牌…

3d合并模型一直加载有哪些原因---模大狮模型网

当在3D软件中合并3d模型时,可能会遇到加载时间过长或持续加载的情况。这可能是由以下原因之一引起的: 一:模型复杂度 合并的模型可能非常复杂,包含大量的面片、顶点或纹理等。这会增加加载和处理的时间。解决方法是优化模型&…

数据结构与算法笔记:高级篇 - 最短路径:地图软件是如何计算出最优出行路径的?

概述 基础篇的时候,我们学习了图的两种搜索算法,深度优先搜索和广度优先搜索。这两种算法主要是针对无权图的搜索算法。针对有权图,也就是图中的每一条变都有一个权重,我们该如何计算两点之间的最短路径(经过的边的权…

微软发布Phi-3系列语言模型:手机端的强大AI助手

大模型(LLMs)在处理复杂任务时展现出的巨大潜力,但却需要庞大的计算资源和存储空间,限制了它们在移动设备等资源受限环境中的应用。微软公司最新发布的Phi-3系列语言模型,以其卓越的性能和小巧的体积,打破了…

使用 privacyIDEA 实现 Windows RDP 多因素认证 (MFA)

前言 在等保 2.0 标准中有要求: d)应采用口令、密码技术、生物技术等两种或两种以上组合的鉴别技术对用户进行身份鉴别,且其中一种鉴别技术至少应使用密码技术来实现。 可以借助开源的 privacyIDEA 配合 AD 域环境实现 RDP MFA 认证登录以满足上面的要…