一起来从Solidworks中导出URDF模型

这个博客是用来记录关于【从Solidworks中导出URDF模型】的学习历程:

相关课程链接见:如何从Solidworks导出URDF模型 • 古月 (guyuehome.com)

 下面让我们一起开始吧!!!

1. sw_urdf_exporter插件介绍

插件下载链接:sw_urdf_exporter - ROS Wiki

sw_urdf_exporter插件是一个用于SolidWorks CAD软件的工具,允许用户将SolidWorks模型导出为URDF(统一机器人描述格式)文件。URDF文件是一种XML格式的文件,被广泛用于描述机器人的物理结构和关节,以便于在机器人操作系统(ROS)等平台上进行仿真和控制。

 插件安装完成后,打开SW软件进行查看,任意打开一个装配体模型:

点击:工具 ——> Tools ——> Export as UREDF

发现左边多出来了一个URDF Exporter,说明插件安装成功

2. 如何导出移动机器人URDF模型

        机器人中的每个link之间的关系是通过joint来描述的,首先,先来配置好机器人的核心坐标系以及旋转轴

        先来确定各个link的坐标系,整个移动机器人的底盘有个base_link坐标系,4个轮子有4个轮子的坐标系,控制板和雷达也有2个坐标系。加起来一个有7个坐标系。下面开始创建坐标系:

        点击:参考几何体 ——> 点

首先来确定base_link,点击底板的底面:

在中间会出现一个圆球,这个是默认的中心点位置。确定该位置后,再点击左边的 “ √ ”:

底盘的中心点创建完毕,该点是作为base_link坐标系的原点。

继续使用同样的方式来确定4个轮子坐标系的原点:

下面开始创建雷达和控制板的坐标原点,选择2条线的交点作为控制板的坐标原点:

最后创建雷达的坐标原点,选择圆弧的中心点作为雷达的坐标原点:

接下来我们在这7个点上面来创建7个坐标系,这7个坐标系分别代表7个link的坐标系所在的位置。

下面选择点1后,再点击参考几何体命令,选择坐标系:

我们发现在点1上出现了一个坐标系,在ROS中,坐标系是以“右手”坐标系来定义的。

小车往前走,是以x轴正方向运动相对应。所以需要将坐标系的方向进行修改,车的正前方以雷达的端部为准,设置x的坐标轴方向:

 这个截图的坐标系方向与ROS中的方向是匹配的,点击确认。

 可以发现,坐标系1创建完毕。

接下来进行坐标系2的创建,依然确保坐标系的x轴是指向正前方的:

 同理,车轮的坐标系创建依次进行上述同样的操作步骤:

最后,控制板和雷达的坐标系创建也遵循上述要求:

有了手动创建的这7个坐标系之后,接下来在后面的自动导出过程中,就可以选择每一个link它所相对应的坐标系。

坐标系建立完成之后,继续创建旋转轴:

下面继续,在参考几何体的命令中点击基准轴,找到旋转轴的位置:

小车一共有4个轮子,其实只要确定好2个基准轴就OK了,前后的2轮可同轴(公共轴):

坐标系和旋转轴都定义好了之后,下面才能开始利用SW_URDF插件:

--------------------------------------------------------------------------------------------
接下来点击:工具 ——> Tools ——> Export as UREDF

        首先来定义模型的base_link, 选择好零件后,不要忘了坐标系的确定,以及child_links的数量确定:

其中4个轮子都是跟底盘来做连接的,所以小车的底盘有4个child_links,下面来配置4个轮子:

Link_name和Joint_name可以自定义,确定参考坐标系和参考轴,轮子的关节类型选择continuous,最后选择link元件所包含的内容。

下面安装同样的方式来配置其余的3个轮子,直接点击模型树中即可:

 轮子的配置结束后,再配置控制板和雷达,它们都是固定在base_link上的,继续点击base_link:

扩展出2个 child_links,总数变为6个child_links:

设置Link_name和Joint_name,确定参考坐标系和参考轴(None),轮子的关节类型选择fixed,最后选择link元件所包含的内容:

同理,进行雷达的设置:

好了,插件的配置选择到此结束!

检查一遍上面的设置是否正确,确认无误后,点击:Preview and Export...

 插件生成完成后,会弹出下面的界面,用来进一步检查,确认无误后,点击右下角的Next:

 弹出第二个窗口,是用来确定link的配置:

会发现每一个link会自动产生它的质量以及惯性矩阵,真是太妙了!

最后确认无误后,点击右下角的:Export URDF and Meshes

自定义文件名后再点击保存,确定保持到对应的文件夹中即可:

完成了保存之后,返回SW的操作界面,会发现最后多出来了一个URDF Export:

 保存SW文件:Ctrl + S

下次打开依然点击:工具 ——> Tools ——> Export as UREDF

注意:可以发现先前创建的URDF设置还在,但是坐标系的设置改变了,后续需要修改模型的配置那就只能重新配置坐标系。

 -----------------------------------------------------------------------------------------

下面我们来找到之前生成的ares_description功能包:

        这些自动产生的文件与ROS是一致的,整个文件夹本身就是一个功能包,后面是可以直接来运行的。以上的这些文件不用做太多的修改,就可以结合ROS来做进一步的开发与仿真。

补充:其中的textures文件夹是用来放模型的纹理;meshes文件夹是用来放置STL文件;config文件夹是用来放置joint名字的配置文件,方便后续的仿真。

-----------------------------------------------------------------------------------------

下面将上面自动生成的URDF文件移动至Ubuntu20.04系统中,做进一步的编译:

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

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

相关文章

HR岗位管理:岗位职级管理体系是什么?概念、知识及方法工具梳理

岗位是组织中最具体、最小的一个基本单位。组织一般都是因事设岗,因而岗位是组织要求个体完成一项或多项责任而赋予个体的权力的总和。岗位是与人相对应的,通常一个岗位只能由一个人担任。正是因为人与岗位相匹配,所以企业人力资源成本管控的…

前端学习<三>CSS进阶——0102-CSS布局样式

前言 css 进阶的主要内容如下。 1、css 非布局样式 html 元素的分类和特性 css 选择器 css 常见属性(非布局样式) 2、css 布局相关 css 布局属性和组合解析 常见布局方案 三栏布局案例 3、动画和效果 属于 css 中最出彩的内容。 多背景多投影特…

文献速递:基于SAM的医学图像分割---UN-SAM: 通用无需提示的广义细胞核图像分割

Title 题目 UN-SAM: Universal Prompt-Free Segmentation for Generalized Nuclei Images UN-SAM: 通用无需提示的广义细胞核图像分割 01 文献速递介绍 在数字病理学领域,对病理组织图像进行细胞核图像分割的任务是形态量化和肿瘤分级评估的基石。尽管这项任务…

如何在Ubuntu系统使用Nextcloud+Cpolar搭建可公网访问私人专属网盘

文章目录 1. 安装Docker2. 使用Docker拉取Nextcloud镜像3. 创建并启动Nextcloud容器4. 本地连接测试5. 公网远程访问本地Nextcloud容器5.1 内网穿透工具安装5.2 创建远程连接公网地址5.3 使用固定公网地址远程访问 正文开始前给大家推荐个网站,前些天发现了一个巨牛…

【CKA模拟题】一文教你用StorageClass轻松创建PV

题干 For this question, please set this context (In exam, diff cluster name) kubectl config use-context kubernetes-adminkubernetesYour task involves setting up storage components in a Kubernetes cluster. Follow these steps: Step 1: Create a Storage Class…

Flash选型确认

3.1 NOR Flash选型 容量:容量大小一般是我们首先要考虑的因素,Flash的大小一般用bit表示,容量范围涵盖512Kb~512Mb。例如型号GD25Q64C容量就为64Mb8MB。 供电电压:Nor Flash的供电电压一般分为四种:2.7V~3.6V&#x…

JAVAEE之JavaScript

1.JavaScript JavaScript (简称 JS) 是世界上最流行的编程语言之一 是一个脚本语言, 通过解释器运行 主要在客户端(浏览器)上运行, 现在也可以基于 node.js 在服务器端运行. 脚本是什么? 脚本(script)是使用一种特定的描述性语言&#x…

蚁剑流量分析

蚁剑流量分析 在靶机上面上传一个一句话木马&#xff0c;并使用蚁剑连接&#xff0c;进行抓包, 一句话木马内容 <?php eval($_POST[1]); defalut编码器 在使用蚁剑连接的时候使用default编码器 连接之后进行的操作行为是查看当前目录(/var/www/html)下的文件&#xff0…

用动态规划求解多段图的最短路径问题

题目描述 对如下图所示的一个5段图&#xff0c;图上的数字代表该段路径的成本。写出求最短路径的计算过程&#xff0c;给出最短路径和距离。 思路分析 创建一个边权数组edgeWeigth&#xff0c;存储顶点和边的信息&#xff0c;用来表示图创建一个cost数组&#xff0c;索引in…

视觉Transformer和Swin Transformer

视觉Transformer概述 ViT的基本结构&#xff1a; ①输入图片首先被切分为固定尺寸的切片&#xff1b; ②对展平的切片进行线性映射&#xff08;通过矩阵乘法对维度进行变换&#xff09;&#xff1b; ③为了保留切片的位置信息&#xff0c;在切片送入Transformer编码器之前&…

算法学习——LeetCode力扣图论篇1(797. 所有可能的路径、200. 岛屿数量、695. 岛屿的最大面积)

算法学习——LeetCode力扣图论篇1 797. 所有可能的路径 797. 所有可能的路径 - 力扣&#xff08;LeetCode&#xff09; 描述 给你一个有 n 个节点的 有向无环图&#xff08;DAG&#xff09;&#xff0c;请你找出所有从节点 0 到节点 n-1 的路径并输出&#xff08;不要求按特…

java中的string和stringbuff和stringBuilter

String类 String类是引用类型&#xff0c;而不是基础数据类型。 所有双引号括住的都是String类。 所有String类都是在方法区的字符常量池中存储数据&#xff0c;通过new String(“example”);创建的字符串在堆中有一个对象&#xff0c;其内容是一个指向字符常量池中一个指针。…