一起来从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.mzph.cn/news/788222.shtml

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

相关文章

2009-2023年上市公司华证ESG评级数据

2009-2023年上市公司华证ESG评级数据 1、时间:2009-2023年 2、指标:代码、名称 、华证ESG评级 3、来源:整理自wind 4、范围:上市公司 5、指标解释: 华证ESG评级是一种评估企业环境、社会和治理绩效的评级体系。…

搜维尔科技:SenseGlove Nova 允许以最简单的方式操作机器人并与物体交互

扩展 Robotics 和 QuarkXR 人机界面 XR 应用 Extend Robotics 利用扩展现实技术,让没有机器人专业知识的个人能够远程控制机器人。他们的 AMAS 解决方案使操作员能够不受地理限制地轻松控制机器人。 需要解决的挑战【搜维尔科技】 目前,操作机器人是一…

初学者必看!bashplotlib库让你轻松在Bash脚本中实现数据可视化

1. 是什么 bashplotlib 是一个 Python 库,用于在 Bash 脚本中生成数据可视化。它允许用户使用 Python 代码创建各种类型的图表,并将它们嵌入到 Bash 脚本中。bashplotlib 支持多种图表类型,包括条形图、折线图、饼图等。 2. 核心功能 bashplo…

Cookie 和 Session

1. 回顾 Cookie是浏览器在本地持久化存储结构的一种机制. 1.1 Cookie的数据从哪里来? 服务器返回给浏览器的. 1.2 Cookie的数据是什么样的? Cookie的数据是键值对结构. 并且这里的键值对都是程序员自定义的. 1.3 Cookie的作用是什么? Cookie可以在浏览器这边存储一些…

mysql 数据库基本操作

mysql 数据库基本操作 1、创建五张表 – user 表:后台用户表 – product 表:产品表 – account 表:客户账户表 – product_account 表 : 客户购买表 – customer 表 : 客户表 2、创建表 SQL 语句: 注意&#xff1a…

Figma使用问题(更新自己遇到的问题)

文章目录 前言一、如何安装插件?方法1:Figma Community / Figma中文社区方法2:菜单栏 二、图片倾斜插件使用1.Angle Mockups前提:执行过程: 三.中文字体插件(宋体等)Chinese Font Picker前提&am…

续-开发组件更新-提效工具分享

前言 小一个月没更新了,有各种各样的事啦,这一篇有点水吧。围绕两方面,开发组件更新以及IDEA插件的分享,题目和我一样水,有点像是日本轻小说取名了,整这么长。本篇的触动来源于,我今天偶然发现…

【保姆级讲解下Docker容器】

🌈个人主页:程序员不想敲代码啊 🏆CSDN优质创作者,CSDN实力新星,CSDN博客专家 👍点赞⭐评论⭐收藏 🤝希望本文对您有所裨益,如有不足之处,欢迎在评论区提出指正,让我们共…

openldap(一):简介和安装

目录 1 OpenLDAP简介1.1 LDAP介绍1、什么LDAP2、为什么要使用LDAP3、LDAP 的特点4、LDAP常用关键字5、LDAP的objectClass6、LADP使用场景 1.2 OpenLDAP介绍1、什么OpenLDAP2、OpenLDAP特点3、OpenLDAP的组件 2 OpenLDAP安装3 简单使用3.1 创建用户1、创建ou2、创建Group 3、创建…

NoSQL(非关系型数据库)之Redis的简介与安装

一、简介 1.1 关系型数据库与非关系型数据库 1.1.1 概念 1.1.2 区别 1.2 非关系型数据库产生背景 1.3 redis 简介 1.4 redis 优点 1.5 redis 快的原因 二、安装 2.1 关闭核心防护 2.2 安装相关依赖 2.3 解压软件包并进行编译安装 2.4 设置 Redis 服务所需相关配置文…

网络编程详解(select poll epoll reactor)

1. 客户端服务器建立连接过程 1.1 编写一个server的步骤是怎么样的? int main(){int listenfd, connfd;pid_t childpid;socklen_t clilen;struct sockaddr_in cliaddr, servaddr;listenfd socket(AF_INET, SOCK_STREAM, 0);bzero(&servaddr, sizeof(servaddr…

Java基础核心Map

在Java中,Map是一种用于存储键值对(key-value pairs)的集合类型。它提供了一种将键映射到值的方式,其中每个键在Map中都是唯一的。Map接口是java.util包中的一部分。 常用实现类: HashMap: 基于哈希表实现的Map&#…

JavaScript发票查验接口如何集成?返回错误的信息原因是什么呢?

发票查验的过程中,很可能出现各种各样的问题,那么返回错误信息的原因一般可能是因为以下几种原因:第一种是接口没有调通,第二种是本身发票就是一张错票、假票,第三种可能是税局系统或网络问题等等,如果在使…

6、Cocos Creator 2D 渲染组件:​Sprite 组件​

Sprite 组件 Sprite(精灵)是 2D/3D 游戏最常见的显示图像的方式,在节点上添加 Sprite 组件,就可以在场景中显示项目资源中的图片。 属性功能说明Type渲染模式,包括普通(Simple)、九宫格&#x…

网易云首页单页面html+css

网页设计与网站建设作业htmlcss 预览 源码查看https://hpc.baicaitang.cn/2083.html

Java | Leetcode Java题解之第4题寻找两个正序数组的中位数

题目&#xff1a; 题解&#xff1a; class Solution {public double findMedianSortedArrays(int[] A, int[] B) {int m A.length;int n B.length;if (m > n) { return findMedianSortedArrays(B,A); // 保证 m < n}int iMin 0, iMax m;while (iMin < iMax) {int…

linux shell命令(进程管理、用户管理)

一、进程的概念 主要有两点&#xff1a; 1.进程是一个实体。每一个进程都有它自己的地址空间&#xff0c;一般情况下&#xff0c;包括文本区域&#xff08;text region&#xff09;、数据区域&#xff08;data region&#xff09;和堆栈&#xff08;stack region&#xff09;…

Visual Studio 2022报错c1083,win11解决办法

如果头文件报错&#xff0c;并且编译器报错是c1083&#xff0c;无法处理的时候&#xff0c;包括卸载重装也是无济于事的时候 此时可以采取一下办法进行修改 出现这个的主要原因是安装 Windows SDK 时版本出错&#xff0c;需要根据自己的 windows 版本选择安装对应版本的 Wind…

SpringBoot+ECharts+Html 地图案例详解

1. 技术点 SpringBoot、MyBatis、thymeleaf、MySQL、ECharts 等 此案例使用的地图是在ECharts社区中查找的&#xff1a;makeapie echarts社区图表可视化案例 2. 准备条件 在mysql中创建数据库echartsdb&#xff0c;数据库中创建表t_location_count表&#xff0c;表中设置两个…

Redis底层数据库之SDS

高速的存储介质&#xff1a;内存优秀的底层数据结构高效的IO模型高效的线程模型 1. 动态字符串SDS Redis中保存的Key是字符串&#xff0c;value往往是字符串或者字符串的集合。可见字符串是redis中最常用的一种数据结构。 C语言种字符串存在的一些问题&#xff1a; 获取字符…