Blender一步一步用灰度图生成3D模型用于Gazebo/gzweb

2023-10-26

我们经常能在SDF格式文件中见到.dae/.stl模型文件。比如如下代码:

<geometry>
     <mesh>
           <uri>model://pxdx/meshes/pxdx.dae</uri>
           <scale>1 1 1</scale>
     </mesh>
</geometry>

具体参见sdf格式定义:http://sdformat.org/spec?ver=1.6&elem=geometry

Blender作为一款功能强大的软件,实现的功能非常丰富,今天只是简单入门。

首先在edit, preference中插件Add-ons中搜索image,安装

然后我们就可以导入图片作为平面了。点击 文件 插入 图片,选择图片,并输入scale,可以看到实际尺寸Dimensions

点击窗口左上角切换到Edit Mode编辑模式

右键单击选择Subdivide,若干次后,直到密集分布后满足要求。选择所有,Add Modifier中选择Displace,选择一张灰度图

根据需求选择参数,如果是同样大小按1比1的话要用UV

注意到这里的时候还不是mesh,还只是将点进行偏移形成vertices!需要形成mesh才能导出使用。其实也很简单,切换到object Mode后,选择图片后点击菜单Object,convert to meshes

然后再Add modifier中的Triangulate,进行三角化处理,默认参数即可。

如果是导出visual中,操作到此结束(根本不需要实体化solidify)。随后再导出export成dae文件或者stl文件。

如果需要进行碰撞模拟的话,则需要添加collision及Rigid Body,如果作为平面或者固定物体那么刚体设置中Passive模式,否则默认Active。

保存blend文件后再导出成stl文件。经过测试,visual用mesh最好导出成dae文件,collision用最好用stl文件。目前原因未知,尤其用于gzweb时,走了很多弯路才发现。model://默认指向的是gazebo_model_path,一般是~/.gazebo/models,除非重新定义。

sdf简单代码如下:

<?xml version="1.0" ?>
<sdf version="1.5">
  <world name="default">
    <light name='sun' type='directional'>
      <cast_shadows>1</cast_shadows>
      <pose>-11.82075 -19.38429 17.2198 0 -0 0</pose>
      <diffuse>0.7 0.7 0.7 1</diffuse>
      <specular>0.2 0.2 0.2 1</specular>
      <attenuation>
        <range>1000</range>
        <constant>0.9</constant>
        <linear>0.01</linear>
        <quadratic>0.001</quadratic>
      </attenuation>
      <direction>0.3698 0.4 -0.5</direction>
    </light>
    <model name="ground">
      <static>true</static>
      <link name="link">
        <visual name="visual">
          <cast_shadows>false</cast_shadows>
          <pose>0 0 0 0 -0 0</pose>
          <geometry>
           <mesh>
              <uri>model://pxdx/meshes/pxdx_visual.dae</uri>
               <scale>1 1 1</scale>
            </mesh>
          </geometry>
        </visual>
        <collision name="collision">
          <pose>0 0 0 0 0 0</pose>
          <geometry>
            <mesh>
              <uri>model://pxdx/meshes/pxdx_collision.stl</uri>
               <scale>1 1 1</scale>
            </mesh>
          </geometry>
        </collision>
      </link>
    </model>
    <scene>
      <ambient>0.4 0.4 0.4 1</ambient>
      <background>0.7 0.7 0.7 1</background>
      <shadows>1</shadows>
    </scene>
  </world>
</sdf>

创作不易,请多支持!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Blender一步一步用灰度图生成3D模型用于Gazebo/gzweb 的相关文章

  • 高通 AR Unity 虚拟按钮

    1 虚拟按钮是图像上的目标 用户可以在现实世界中触摸 以触发一个动作的 热点 现有的图像目标的一个实例的VirtualButton预制拖动到场景中添加虚拟按键 平移和缩放按钮 以匹配所需的位置 并给它一个名字 虚拟的按钮添加这样写入到con

随机推荐

  • 计算机视觉概述

    关注公众号 CV算法恩仇录 本文介绍了计算机视觉的主要任务及应用 全文大约 3500 字 阅读时间 10 分钟 人们或许没有意识到自己的视觉系统是如此的强大 婴儿在出生几个小时后能识别出母亲的容貌 在大雾的天气 学生看见朦胧的身体形态 能辨
  • v-viewer 插件图片点击放大预览的几种使用方法

    官网git地址 https github com mirari v viewer 最终效果如下 ps 按钮样式都是可以根据自己需求调整的 第一种使用方法 支持UMD用法 建议把v viewer相关的js和css文件下载到本地引用 可以到上面
  • set容器、map容器

    set multiset 容器 set基本概念 简介 所有元素都会在插入时自动被排序 本质 set multiset属于关联式容器 底层结构是用二叉树实现 set和multiset区别 set不允许容器中有重复的元素 multiset允许容
  • elk笔记23--定期清理索引

    elk笔记23 定期清理索引 1 介绍 2 方案 代码 2 1 方案介绍 2 2 代码 2 3 测试 3 注意事项 4 说明 1 介绍 在生产环境中 如果日志量过大 就会导致集群持续产生很多索引 占用很多存储空间 因此需要定期清理索引 确保
  • 套圈·分治

    套圈 题目信息 输入 测试样例 解答 想法 题目信息 Have you ever played quoit in a playground Quoit is a game in which flat rings are pitched at
  • 闭环步进与伺服电机差异

    当给步进电机配备编码器闭环控制后 从广义上来看 闭环步进电机和伺服电机两者是没有什么大的区别 但是 要详细区分闭环步进电机和伺服电机的不同之处 你需要先了解一下伺服电机和步进电机的差异 闭环步进电机是在步进电机上加装了高精度的编码器 用伺服
  • 理解扩散模型:Diffusion Models & DDPM

    引言 在前面的博客中 我们讨论了生成模型VAE和GAN 近年来 新的生成模型 扩散模型受到越来越多的关注 因此值得好好去研究一番 扩散模型 Diffusion Models 最早由 2 于2015年提出 但直到2020年论文 3 发表之后才
  • 不断发展中的自然语言处理技术,会在未来消灭“笔”和“键盘”吗?

    花满楼 发布于2014 07 20 23 11 00 目前 Siri 和 Google Now 的语音识别技术虽然还不完善 但在未来却很可能威胁到文字的地位 我们手写或者打字 在当下已经成为了无比繁重的劳动 不断的输入各种文字信息 在网页上
  • 快手20230807提前批一面

    Q and A 面试官 你是专硕还是学硕 能不能让实习 研究方向 面试官 项目基于什么背景做的 xxx 面试官 介绍一下框架 xxxx 面试官 里面中用了什么技术 首先的话 服务层使用了springboot 并且使用了mp 持久化使用了my
  • angular7主题样式在线切换

    参考ng alain和delon 思路就是动态加载css文件 代码实现 写两套less文件 分别为light less和dark less 用相关插件将less文件转为一个js对象 less vars to js 插件 function g
  • Road Construction 【POJ - 3352】【Tarjan边双连通】

    题目链接 题意 给一个无向连通图 至少添加几条边使得去掉图中任意一条边不改变图的连通性 即使得它变为边双连通图 思路 就是去求一个缩点之后求度为1的点的个数 然后用 ans 1 2就可以得到最后的答案了 include
  • 计算机图像显示原理与BMP图像文件格式

    本篇文章详细讲述图像文件 里面有一些阐述为个人理解 如有不对的地方欢迎指正 后续会修正补全 计算机图像显示原理与BMP图像的文件格式 一 计算机图像显示原理简述 1 计算机图像分类 2 显示 3 彩色图转灰白图原理 二 BMP图像 1 BM
  • LeetCode题目笔记——面试题 02.05. 链表求和

    文章目录 题目描述 题目难度 中等 方法一 模拟 代码 C 代码 Python 方法二 递归 代码 C 进阶 借用栈或者先反转原链表 总结 题目描述 给定两个用链表表示的整数 每个节点包含一个数位 这些数位是反向存放的 也就是个位排在链表首
  • C语言用一种比较特别的方法打印金字塔

    本方法的思想是 先打印最左边的空格部分 然后再打印金字塔 打印金字塔方法是 把 和空格都考虑进去 然后再逐行进行打印每行 每行中奇数位打印 偶数位打印空格 include
  • ubuntu18.04 littlevgl运行环境搭建

    1 下载代码 git clone https gitclone com github com littlevgl pc simulator git cd pc simulator git submodule update init 2 编译
  • Linux常用技巧

    1 cd命令 用于切换当前目录 它的参数是要切换到的目录的路径 可以是绝对路径 也可以是相对路径 cd user1 进入user1用户的主目录 cd 返回上次所在的目录 2 pwd命令 显示工作路径 3 ls命令 查看文件与目录的命令 li
  • ChatGLM搭建记录

    ChatGLM 一 基本流程 0 学习初衷 1 ChatGLM简介 github地址 https github com THUDM ChatGLM 6B ChatGLM 6B 是一个开源的 支持中英双语的对话语言模型 基于 General
  • Java 多线程练习7:模拟网络购票

    需求 1 package GouPiao 2 3 4 模拟网络延时线程不安全 5 6 public class Site implements Runnable 7 private int count 10 记录剩余票数 8 private
  • 使用动软.net代码生成器生成数据库文档

    首先 进入动软 net代码生成器主界面 选择服务器 右击 选择 连接服务器 按照弹出的界面 操作 就可以将需要生成数据库文档的相关服务器添加进来 然后 选中服务器 选择工具栏中的 生成数据库文档 按钮 在弹出的 生成数据库文档 窗口中 依次
  • Blender一步一步用灰度图生成3D模型用于Gazebo/gzweb

    我们经常能在SDF格式文件中见到 dae stl模型文件 比如如下代码