Inkscape SVG 编辑器 导入 Gazebo

概述

本教程描述了拉伸 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)

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

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

相关文章

神经网络:池化层知识点

1.CNN中池化的作用 池化层的作用是对感受野内的特征进行选择,提取区域内最具代表性的特征,能够有效地减少输出特征数量,进而减少模型参数量。按操作类型通常分为最大池化(Max Pooling)、平均池化(Average Pooling)和求和池化(Sum Pooling)&a…

使用STM32微控制器读取和显示DHT11温湿度传感器数据

在本文中,我们将介绍如何使用STM32微控制器读取和显示DHT11温湿度传感器的数据。我们将使用C语言和STM32的库函数来实现这个功能。本文包含硬件连接和软件编程两个方面的内容。 硬件连接 首先,我们需要将DHT11温湿度传感器连接到STM32微控制器上。DHT11…

基于ASF-YOLO融合空间特征和尺度特征的新型注意力尺度序列融合模型开发构建涵洞隧道场景下墙壁建筑缺陷分割检测系统

在ASF-YOLO提出之初,我们就进行了相应的实践开发,感兴趣的话可以自行移步阅读: 《基于ASF-YOLO融合空间特征和尺度特征的新型注意力尺度序列融合模型开发构建医学场景下细胞分割检测识别系统,以【BCC、DSB2018数据集为基准】》 …

性能压力测试--确保企业数字化业务稳健运行

随着企业的数字化转型和依赖云计算的普及,软件系统的性能已经成为企业成功运营的关键因素之一。性能压力测试作为确保系统在各种条件下都能高效运行的关键步骤,对企业的重要性不可忽视。以下是性能压力测试对企业的几个重要方面的影响和作用:…

行为型设计模式(二)责任链模式 策略模式

责任链模式 Chain of Responsibility 1、什么是责任链模式 责任链模式为请求创建一个接收者对象的链,每个接收者都包含对另一个接收者的引用。如果一个对象不能处理请求,它会将请求传递给链中的下一个接收者,如此模式下,请求沿着…

机器视觉工程师,我存多少钱可以躺平

钱钱钱!还是钱!除了钱还能聊点别的吗?钱可以让你生活的更好,也可以让你​在生活中的选择很无奈。 如果想要知道拥有多少存款才能躺平不上班,那么首先要明确躺平的定义。所谓的躺平,其实并不代表不能工作&a…

ASP.NET Core面试题之Redis高频问题

🎈🎈在.NET后端开发岗位中,如今也少不了、微服务、分布式、高并发高可用相关的面试题🎈🎈 👍👍本文分享一些整理的Redis高频面试题🎉 👍👍机会都是给有准备…

WPF——样式和控件模板、数据绑定与校验转换

样式和控件模板 合并资源字典 Style简单样式的定义和使用 ControlTemplate控件模板的定义和使用 定义 使用 Trigger触发器 数据绑定与校验转换 数据绑定的设置 代码层实现绑定 数据模板DataTemplate xml文件的读取与显示 方法的返回值作为源绑定到控件中ObjectDataProvider L…

Axure之中继器的使用(交互动作reperter属性Item属性)

目录 一.中继器的基本使用 二.中继器的动作(增删改查) 2.1 新增 2.2 删除 2.3 更新行 2.4 效果展示 2.5 模糊查询 三.reperter属性 在Axure中,中继器(Repeater)是一种功能强大的组件,用于创建重复…

ES集群G1回收器,堆空间无法被回收问题

ES堆空间不足的问题,困扰了我有两年的时间。dump堆去分析,也未能分析出来,堆到底是被什么占用了。 我把堆空间给了31.9G,这是指针压缩生效的临界值,如果再大就指针压缩失效了。 痛苦的是,随着时间的增长。堆…

【HarmonyOS开发】ArkTs关系型和非关系型数据库的存储封装

前面使用了首选项的存储方式,因此将其他的两种存储方式(键值型数据库和关系型数据库)也学习一下,简单记录一下,并进行封装,方便后续使用。 1、效果预览 2、使用条件 2.1 键值型数据库 键值型数据库实现数据…

linux 应用开发笔记---【线程】

1.概念: 线程是参与系统调度的最小单位,它被包含在进程中,是进程的实际运行单位 一个进程可以创建多个线程,多个线程并发运行,每个线程执行不同的任务 2.如何创建线程 当一个程序启动的时候,一个进程被…

小鹅通基于 TSE 云原生 API 网关的落地实践

导语 2023腾讯全球数字生态大会已于9月7-8日完美落幕,40专场活动展示了腾讯最新的前沿技术、核心产品、解决方案。 微服务与消息队列专场,我们邀请到了小鹅通的基础架构组负责人黄徐震为我们带来了《小鹅通基于 TSE 云原生网关的落地实践》的精彩演讲。…

TCP 核心工作机制

TCP 的核心知识:如何保证传输可靠 如何提高传输效率 如何保证传输可靠:确认应答机制 超时重传机制 如何提高传输效率:滑动窗口机制、流量控制机制、延时应答机制、捎带确认机制、拥塞控制机制 可靠机制 TCP的可靠性主要是通过 确认应答 …

多门店自助点餐+外卖二合一小程序系统源码:自助点餐+外卖配送 带完整搭建教程

互联网的普及和移动支付的便捷,餐饮行业也在经历着数字化转型。小编来给大家介绍一款多门店自助点餐外卖二合一小程序,带完整的搭建教程。 以下是部分代码示例: 系统特色功能一览: 1.多门店管理:支持一个平台管理多个…

华为OS与麒麟OS:华为自研操作系统的对决

导言 在移动操作系统领域,华为OS和麒麟OS代表了华为在自主研发方面的努力。本文将深入探讨这两个操作系统的特点、竞争关系以及它们在用户体验、生态系统建设等方面的差异。 1. 背景与起源 华为OS的诞生: 华为OS是华为公司为应对外部环境而自主…

【音视频 | AAC】AAC音频编码详解

😁博客主页😁:🚀https://blog.csdn.net/wkd_007🚀 🤑博客内容🤑:🍭嵌入式开发、Linux、C语言、C、数据结构、音视频🍭 🤣本文内容🤣&a…

网络基础【网线的制作、OSI七层模型、集线器、交换机介绍、路由器的配置】

目录 一.网线的制作 1.1.网线的标准 1.2.水晶头的做法 二.OSI七层模型、集线器、交换机介绍 集线器(Hub): 交换机(Switch): 三.路由器的配置 3.1.使用 3.2.常用的功能介绍 1、如何管理路由器 2、家…

SVN搭建指导

环境 centos 7.9 SVN安装方式一:yum 1.1 http服务 至今还没有搞定网页版,网页版需要搭建apache http服务。遇到如下问题: centos - svn: Could not open the requested SVN filesystem - Stack Overflow 在试了加777权限,加a…

Hal深入实战/perfetto-systrace实战/SurfaceFlinger合集-安卓framework开发实战开发

背景 hi,粉丝朋友们: 大家好! 下面来介绍一下新的framework专题halperfettosurafceflinger,这个专题主要就是分为3大块,但是彼此直接又是相互关联的。 比如surfaceflingre模块深入分析需要用到hal相关的模块&#xff…