Inkscape SVG 编辑器 导入 Gazebo

news2024/9/22 23:20:37

概述

本教程描述了拉伸 SVG 文件的过程,这些文件是 2D 的 图像,用于在 Gazebo 中为您的模型创建 3D 网格。有时是 更容易在 Inkscape 或 Illustrator 等程序中设计模型的一部分。

在开始之前,请确保您熟悉模型编辑器。

本教程将向您展示如何在 Inkscape 中将自定义轮子制作为 .svg, 并将其导入 Gazebo,以便可以将其连接到机器人上。

使用 Inkscape SVG 编辑器

有许多SVG编辑器。在本教程中,我们将使用开源 Inkscape 程序(请参阅安装说明)。

这是本教程中使用的轮式 SVG 文件。

文件准备

启动 Inkscape。这将创建一个空白文档。首先,让我们更改 文档大小以更好地适应我们的轮子:在 下,选择选项卡并将文档大小更改为 自定义尺寸为 100.0 x 100.0 mm。File->Document properties menuPage

然后,在同一对话框中,选择选项卡,按按钮创建自定义网格。然后,检查 、 和 选项。改变并成为 10 岁。GridsNewEnabledVisibleSnap to visible grid lines onlySpacing XSpacing Y

你最终应该得到一个看起来像这样的文档:

您可以使用不同的工具(钢笔、文本、星星和形状等)来创建 您的几何图形。在此示例中,轮子由圆圈组成(按 Shift 键您可以从中心开始您的圆圈,并使用 CTRL 键 允许您保持形状的圆度)。可以组合 一起成型,确保路径是闭合的,并且零件具有 适当的厚度。

注意:一个简笔画或两个相互接触的圆圈不会 生成有效的 Gazebo 模型。SVG 路径必须创建一个闭合轮廓 孔,孔不能接触轮廓或其他孔。内部孔 孔被视为实心零件(它们也可以有孔)。

Gazebo 仅导入 ,但使用 Inkscape 可以轻松转换任何形状 到路径。从菜单中选择。然后选择菜单项。这会将每个对象转换为 单独的路径和子路径。这种转变是不可逆的,所以如果你 将文本转换为路径,您将无法更改文本。pathsSelect AllEditPath -> Object to Path

gazebo不支持分组。使用菜单中的 单独的路径组。UngroupObject

保存绘图

将您的绘图保存到 SVG 文件中,稍后可以在 Gazebo 中使用。使用菜单中的选项。SaveFile

创建Gazebo模型

SDFormat 不直接支持 SVG;它支持2D 多边形线。Gazebo 模型编辑器具有一种导入机制,可提取 SVG 文件中的多边形线,并将它们另存为 SDF 模型文件。

启动 Gazebo 并从菜单中选择以进入 Gazebo 模型编辑器模式(与仿真模式相反)。Model EditorEdit

然后按下选项卡部分中的按钮。AddCustom ShapesInsert

这将打开对话框,您可以从中选择 SVG 文件 通过按下按钮。Import LinkBrowse

选择文件后,按按钮打开对话框。ImportExtrude Link

该对话框允许您设置拉伸的参数:

  • 厚度:链接的厚度。这对应于挤出 轴上的高度。对于右侧所示的 SVG 路径,轴 挤出物从筛网向外。z

  • 分辨率:SVG 中有多少像素对应于一米。这 默认值 (3543.3 px/m) 对应于 90 dpi(每英寸点数),即 多个编辑器(包括 Inkscape)的默认分辨率。如果您的型号 当您将单位显示为米时,会在 Inkscape 中显示您想要的大小, 不应更改分辨率值。

  • 每个区段的样本数:这表示要将每个区段划分为多少个区段 SVG 中的曲线路径。区段越多,链接就越复杂 会的。它不会改变笔直路径的任何内容。

在右侧,您可以看到从 SVG 中提取的路径。红点是 拉伸 3D 模型的三角测量的顶点。

将车轮的厚度设置为 0.025 m,然后按 。您的新链接应该 出现在 3D 视图中。OK

将创建一个新链接,该链接带有一个默认的碰撞形状,即 生成的 3D 网格的副本。

接下来,从菜单中选择。凉亭会提示您 将新模型保存到磁盘。按下退出上的按钮 对话框,对话框将出现。Exit Model EditorFileSave and ExitSave Model

将新型号的名称设置为“HollowWheel”,并在 该部分。按下按钮。Advanced OptionsSave

您的新 Gazebo 模型现在已准备就绪 ;-)

参考链接: Gazebo : 教程 : 拉伸 SVG 文件 (gazebosim.org)

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

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

相关文章

Backend - Django 项目创建 运行

目录 一、配置环境 二、创建 Django 项目 (一)新建文件夹 (二)打开文件夹 (三)打开运行终端 (四)创建基础项目 (五)创建app 1. 安装Django &#xf…

app上架-您的应用在运行时,未同步告知权限申请的使用目的,向用户索取(相机)等权限,不符合华为应用市场审核标准。

上架提示 您的应用在运行时,未同步告知权限申请的使用目的,向用户索取(相机)等权限,不符合华为应用市场审核标准。 测试步骤:管理-添加-点击二维码,申请相机权限 修改建议:APP在调…

Gazebo GUI模型编辑器

模型编辑器 现在我们将构建我们的简单机器人。我们将制作一个轮式车辆,并添加一个传感器,使我们能够让机器人跟随一个斑点(人)。 模型编辑器允许我们直接在图形用户界面 (GUI) 中构建简单的模型。对于更复…

MyBatis ORM映射

MyBatis只能自动维护库表”列名“与”属性名“相同时的对应关系&#xff0c;二者不同时无法自动ORM 因此需要使用到ORM映射。 共有两种解决办法&#xff1a;1.列的别名 2.结果映射 1.列的别名 在SQL中使用 as 为查询字段添加列别名&#xff0c;以匹配属性名 public List<…

VCG 获取某个顶点的邻接顶点

文章目录 一、简介二、实现代码三、实现效果参考资料一、简介 与之前的思路相同,这里我们利用VCG为我们提供的拓扑结构,获取某个顶点的邻接顶点,这在我们处理网格数据时往往很有用。 二、实现代码 //VCG #include <vcg/complex/algorithms/create/platonic.h> #inclu…

Java_集合进阶(Collection和List系列)

一、集合概述和分类 1.1 集合的分类 已经学习过了ArrayList集合&#xff0c;但是除了ArrayList集合&#xff0c;Java还提供了很多种其他的集合&#xff0c;如下图所示&#xff1a; 我想你的第一感觉是这些集合好多呀&#xff01;但是&#xff0c;我们学习时会对这些集合进行…

idea 如何使用 JaCoCo 跑覆盖率

背景介绍 什么代码覆盖&#xff1f; 代码覆盖(Code coverage)是软件测试中的一种度量&#xff0c;描述程序中源代码被测试的比例和程度&#xff0c;所得比例称为代码覆盖率。简单来理解&#xff0c;就是单元测试中代码执行量与代码总量之间的比率。 Java常用的单元测试覆盖率…

麒麟V10 ARM 离线生成RabbitMQ docker镜像并上传Harbor私有仓库

第一步在外网主机执行&#xff1a; docker pull arm64v8/rabbitmq:3.8.9-management 将下载的镜像打包给离线主机集群使用 在指定目录下执行打包命令&#xff1a; 执行&#xff1a; docker save -o rabbitmq_arm3.8.9.tar arm64v8/rabbitmq:3.8.9-management 如果懒得打包…

Java开发框架和中间件面试题(1)

1.什么是Spring框架&#xff1f; Spring是一种轻量级框架&#xff0c;旨在提高开发人员的开发效率以及系统的可维护性。 我们一般说的Spring框架就是Spring Framework,它是很多模块的集合&#xff0c;使用这些模块可以很方便的协助我们进行开发。这些模块是核心容器、数据访…

comfyUI + animateDiff video2video AI视频生成工作流介绍及实例

原文&#xff1a;comfyUI animateDiff video2video AI视频生成工作流介绍及实例 - 知乎 目录 收起 前言 准备工作环境 comfyUI相关及介绍 comfyUI安装 生成第一个视频 进一步生成更多视频 注意事项 保存为不同的格式 视频宽高设置 种子值设置 提示词与负向提示词…

【漏洞复现】奥威亚 教学视频应用服务平台任意文件上传漏洞

漏洞描述 AVA 教学视频应用服务平台是由广州市奥威亚电子科技有限公司基于当前教育视频资源建设的背景及用户需求的调研,开发出来能够适应时代发展和满足学校需求,具有实效性、多功能、特点鲜明的平台。 该平台存在任意文件上传漏洞,通过此漏洞攻击者可上传webshell木马,…

【Python-批量修改视频分辨率】

Python-批量修改视频分辨率 1 使用Python修改视频分辨率2 常见的视频编码格式2.1 等效的编码格式表示方式2.2 常见的编码格式 1 使用Python修改视频分辨率 首先拷贝视频文件并修改后缀&#xff0c;然后修改图片的分辨率&#xff0c;实现视频批量修改和转换。 import os impor…

npm安装依赖报错ERESOLVE unable to resolve dependency tree(我是在taro项目中)(node、npm 版本问题)

换了电脑之后新电脑安装包出错 &#x1f447;&#x1f447;&#x1f447; npm install 安装包报错 ERESOLVE unable to resolve dependency tree 百度后尝试使用 npm install --force 还是报错 参考 有人说是 node 版本和 npm 版本的问题 参考 新电脑 node版本&#xff1a;16.1…

在Windows系统平台下部署运行服务端Idea工程的jar服务

前言 目前云原生docker等技术&#xff0c;加上部署流水线大大的简化了各种流程&#xff0c;我们后端开发的人员只需要提交代码后&#xff0c;构建、部署、测试、发布等环节都无需人员接入&#xff0c;完全的自动化交付了。那么你肯定不禁想问&#xff0c;如题的需求不是点击一…

如何用 CleanMyMac 来保护 Mac 隐私

大家早上好&#xff0c;中午好&#xff0c;下午好&#xff0c;晚上好。 在我们使用MacBook上的自带浏览器-Safari&#xff08;或者一些其他浏览器&#xff09;进行网页浏览的时候&#xff0c;往往会留下一些痕迹。如果这些痕迹涉及一些敏感数据信息的话&#xff0c;那么我们肯…

Python 爬虫之下载视频(一)

爬取某平台视频 文章目录 爬取某平台视频前言一、大致内容二、基本思路三、代码编写1.引入库2.前期准备3.获取视频标题和地址3.下载保存视频 总结 前言 今天写个从好K视频平台爬取正在播放的视频&#xff0c;并下载保存到本地。 注意&#xff1a;建议大家先看看我之前的比较简…

【MySQL】mysql执行查询超过30秒之后报错

出现场景&#xff1a; 用workbench&#xff0c;查本地数据库&#xff0c;执行查询超过30秒之后&#xff0c;会报错断开连接&#xff0c;报错信息&#xff1a;Error Code: 2013. Lost connection to MySQL server during query 解决办法&#xff1a; 修改配置设置&#xff0c…

Kafka消费者组

消费者总体工作流程 Consumer Group&#xff08;CG&#xff09;&#xff1a;消费者组&#xff0c;由多个consumer组成。形成一个消费者组的条件&#xff0c;是所有消费者的groupid相同。 • 消费者组内每个消费者负责消费不同分区的数据&#xff0c;一个分区只能由一个组内消费…

RHCE8 资料整理(十一)

RHCE8 资料整理 第 32 章 控制语句32.1 判断语句 when32.1.1 when 判断中>、<、!和的使用32.1.2 when 判断中 in的用法32.1.3 when 判断中 is的用法 32.2 判断语句 block-rescue32.3 循环语句 第 32 章 控制语句 一个play中可以包含多个task&#xff0c;如果不想所有的t…

计算机网络-进阶

目录 易混淆物理层数据链路层网络层nat如何实现私有ip通信IP数据报 格式解析tcp 连接tcp流量控制滑动窗口拥塞控制 报文捕获 wireshark路由模拟器 enspcdn代理服务器 VS cdn VS web cache 计算机有了物理地址&#xff0c;为什么还要有ip地址&#xff1f;单播 多播 广播 传输层会…