gazebo 导入从blender导出的dae等文件
背景: gazebo 模型库里的模型在我需要完成的任务中不够用,还是得从 solidworks、3DMax, blender这种建模软件里面在手动画一些,或者去他们的库里面在挖一挖。
目录
1 blender
1-1 blender 相关links
1-2 install
2 gazebo导入模型
2-1 gazebo导入模型文件类型主要有三种
2-2 blender创建红色小方格后导出
2-2-1 blender创建红色小方格
2-2-2 导出三种模式
2-2-2-1 制作world文件
2-2-2-2 gazebo 导入.dae
2-2-2-3 gazebo 导入.obj :与.dae流程效果一模一样
2-2-2-4 gazebo 导入.stl
2-3 blender创建小方格贴图后导出
2-3-1 观察.gazebo/models/ 里的摆放
2-3-2 把自己的数据整理成标准的样式
2-4 blender导入网上模型资产库,再导出三种模式文件
1 blender
Blender是一款免费开源三维图形图像软件,提供从建模、动画、材质、渲染、到音频处理、视频剪辑等一系列动画短片制作解决方案。
1-1 blender 相关links
1. Blender3.5建模入门教程_超细节100集课程 :https://www.bilibili.com/video/BV1fb4y1e7PD/
2. Blender官方说明:
https://docs.blender.org/manual/zh-hans/2.91/getting_started/index.html
3. Blender3D建模模型素材下载网 :https://blenderco.cn/
1-2 install
sudo apt install blender
2 gazebo导入模型
2-1 gazebo导入模型文件类型主要有三种
1. .dae
- 能带形状和颜色。
- 翻越模型库,最多存在的,至少占半数以上。
2. .obj + .mtl
- 能带形状和颜色。
- 存在比较少。
3. .stl
- 只能带形状,需要各个部位保存成不同的stl文件,然后到gazebo里面model edit在二次编辑。
- 存在数量居中。
当然,blender 也能导出这三种的和其他种类的文件。
2-2 blender创建红色小方格后导出
在blender创建一个红色的小方格然后导出(.dae、.obj + .mtl、 .stl)三种类型的文件在gazebo里保存成sdf的模型文件。
2-2-1 blender创建红色小方格
- 打开blender
- 界面变成中文显示 : 编辑 -> 偏好设置 -> 界面(翻译(简体中文))
- 添加一个立方体 :位于上侧,依次点击: 添加 -> 网格 -> 立方体
- 染色红色 :位于右侧,依次点击: 材质 -> +号 -> 基础色设为红色

2-2-2 导出三种模式
mkdir cube_01 && cube_01 && touch cube_red.world && tree ./cube_01
../cube_01 ├── cube_red.dae ├── cube_red.mtl ├── cube_red.obj ├── cube_red.stl └── cube_red.world
2-2-2-1 制作world文件
- https://blog.csdn.net/qq_39433050/article/details/107099404?spm=1001.2014.3001.5506
<?xml version="1.0"?>
<sdf version="1.7">
<world name="default">
<include>
<uri>model://sun</uri>
</include>
<include>
<uri>model://ground_plane</uri>
</include>
<model name="cube_red">
<pose>0 0 0 0 0 0</pose>
<static>true</static>
<link name="basic">
<visual name="visual">
<geometry>
<mesh><uri>file:///xxx/cube_01/cube_red.dae</uri></mesh>
</geometry>
</visual>
</link>
</model>
</world>
</sdf>
2-2-2-2 gazebo 导入.dae
gazebo ./cube_01/cube_red.world

点击: file -> Save -> cube_red_dae
tree ./cube_01
./cube_01 ├── cube_red.dae ├── cube_red_dae │ ├── model.config │ └── model.sdf ├── cube_red.mtl ├── cube_red.obj ├── cube_red.stl └── cube_red.world
点击:Insert -> Add Path ->

2-2-2-3 gazebo 导入.obj :与.dae流程效果一模一样
2-2-2-4 gazebo 导入.stl
与.dae流程效果大致相同,只是在Edit Model 后在gazebo 添加颜色, stl 不带颜色信息。

2-3 blender创建小方格贴图后导出
打开blender
- 界面变成中文显示 : 编辑 -> 偏好设置 -> 界面(翻译(简体中文))
- 添加一个立方体 :位于上侧,依次点击: 添加 -> 网格 -> 立方体
- 添加材质 :位于右侧,依次点击: 材质 -> +号 -> 新建
- 左下方 -> 打开着色器编辑器 -> 拽图片到下方编辑区 -> 连接节点
- 导出

后续步骤和2-2-2 一模一样
2-3-1 观察.gazebo/models/ 里的摆放
/xxx/.gazebo/models/cafe ├── materials │ └── textures │ ├── __auto_10.jpg │ ├── __auto_21.jpg ├── meshes │ └── cafe.dae ├── model.config └── model.sdf
2-3-2 把自己的数据整理成标准的样式
.dae
./cube_02/cube_anime_dae ├── materials │ └── textures │ └── anime.jpeg ├── meshes │ └── cube_anime.dae ├── model.config └── model.sdf
./cube_02/cube_anime_dae/model.sdf
<?xml version='1.0'?> <sdf version='1.7'><model name='cube_anime'> ...<visual name='visual'><geometry><mesh> <uri>/home/wyc/ytj-temp/notebook/python/cube_02/cube_anime_dae/meshes/cube_anime.dae</uri> <--- 修改绝对路径</mesh></geometry>...</model> </sdf>
.obj
./cube_02/cube_anime_obj ├── materials │ └── textures │ └── anime.jpeg ├── meshes │ ├── cube_anime.mtl │ └── cube_anime.obj ├── model.config └── model.sdf
<?xml version='1.0'?> <sdf version='1.7'><model name='cube_anime_obj'>... <visual name='visual'> <geometry> <mesh> <uri>/home/wyc/ytj-temp/notebook/python/cube_02/cube_anime_dae/meshes/cube_anime.obj</uri> <--- 修改绝对路径 </mesh> </geometry> ...</model> </sdf>
2-4 blender导入网上模型资产库,再导出三种模式文件
- 打开blender
- 界面变成中文显示 : 编辑 -> 偏好设置 -> 界面(翻译(简体中文))
- 网上下载想要的模型 -> 放到指定位置解压
- 编辑 -> 偏好设置 -> 文件路径 -> 资产库 -> +号 -> 选择路径
- 左下方 -> 资产浏览器 -> 选择模型拽到试图区
- 导出
后续步骤和2-2-2 一模一样

相关文章:
gazebo 导入从blender导出的dae等文件
背景: gazebo 模型库里的模型在我需要完成的任务中不够用,还是得从 solidworks、3DMax, blender这种建模软件里面在手动画一些,或者去他们的库里面在挖一挖。 目录 1 blender 1-1 blender 相关links 1-2 install 2 gazebo导入模型 2-1 g…...
目标检测YOLOv3基于DarkNet53模型测试-笔记
目标检测YOLOv3基于DarkNet53模型测试-笔记 预测和试测结果: 预测代码如下所示: testInsects.py #YOLOv3网模型测试-单图片文件测试并显示测试结果 import time import os import paddle import numpy as np import cv2 import random from PIL impor…...
Unity项目中查找所有使用某一张图片的材质球,再查找所有使用材质球的预设
废话少说,直接上代码。 using UnityEditor; using UnityEngine;public class FindDependencies : MonoBehaviour {static bool m_bIsSaveFile false;static TextWriteHelper m_szMaterialList new TextWriteHelper();static TextWriteHelper m_szPrefabList new…...
postman接口测试中文汉化教程
想必同学们对于接口测试工具postman的使用并不陌生,以及最近大为流行的国产工具apifox。对于使用过的同学来说,两者区别以及优缺点很容易别展示出来,postman相比apifox来说更加轻量,但是apifox更加符合国人的使用习惯....中国人给…...
java.lang.ClassNotFoundException: com.mysql.cj.jdbc.Driver的解决办法
springcloudAlibaba项目连接mysql时(mysql版本8.0.31,Springboot2.2.2,spring cloud Hoxton.SR1,spring cloud alibaba 2.1.0.RELEASE),驱动名称报红,配置如下: 原因:引入的jdbc驱动包和使用的m…...
认识所有权
专栏简介:本专栏作为Rust语言的入门级的文章,目的是为了分享关于Rust语言的编程技巧和知识。对于Rust语言,虽然历史没有C、和python历史悠远,但是它的优点可以说是非常的多,既继承了C运行速度,还拥有了Java…...
恒盛策略:怎样看k线图实图详解如何看懂k线图?
K线图是股票剖析中常用的一种图表,它能够反映一段时间内股票价格的变化状况,对于股票投资者来说非常重要。但是,由于k线图并不是很好理解,很多投资者并不知道怎样看懂它。那么,咱们就从多个视点来看看怎样看k线图实图&…...
物联网的定义、原理、示例、未来
什么是物联网? 物联网 (IoT) 是指由嵌入传感器、软件和网络连接的物理设备、车辆、电器和其他物理对象组成的网络,允许它们收集和共享数据。这些设备(也称为“智能对象”)的范围可以从简单的“智能家居”设备(如智能恒温器)到可穿戴设备(如智能手表和支持RFID的服…...
Vue 整合 Element UI 、路由嵌套和参数传递(五)
一、整合 Element UI 1.1 工程初始化 使用管理员的模式进入 cmd 的命令行模式,创建一个名为 hello-vue 的工程,命令为: # 1、目录切换 cd F:\idea_home\vue# 2、项目的初始化,记得一路的 no vue init webpack hello-vue 1.2 安装…...
Git全栈体系(四)
第七章 IDEA 集成 Git 一、配置 Git 忽略文件 1. Eclipse 特定文件 2. IDEA 特定文件 3. Maven 工程的 target 目录 4. 问题 4.1 为什么要忽略他们? 与项目的实际功能无关,不参与服务器上部署运行。把它们忽略掉能够屏蔽 IDE 工具之间的差异。 4.2 …...
数据结构初阶--二叉树的链式结构
目录 一.二叉树链式结构的概念 二.二叉树链式结构的功能实现 2.1.链式二叉树的定义 2.2.链式二叉树的构建 2.3.链式二叉树的遍历 2.3.1.先序遍历 2.3.2.中序遍历 2.3.3.后序遍历 2.3.4.层序遍历 2.4.链式二叉树的求二叉树的结点数量 法一:计数法 法二&a…...
Taro UI中的AtTabs
TaroUI 中的 AtTabs 是一个用于创建标签页(tab)组件的组件。它提供了一种简单的方式来切换显示不同的内容。 AtTabs 的使用方式如下: 首先,引入 AtTabs 组件和必要的样式: import { AtTabs, AtTabsPane } from taro-ui import taro-ui/dis…...
ChatGPT FAQ指南
问:chatgpt 国内不开放注册吗? OpenAI不允许大陆和香港用户注册访问 openai可以的,chatGPT不行 以下国家IP不支持使用 中国(包含港澳台) 俄罗斯 乌克兰 阿富汗 白俄罗斯 委内瑞拉 伊朗 埃及 问:ChatGPT和GPT-3什么关系? GPT-3是OpenAI推出的AI大语言模型 ChatGPT是在G…...
在矩池云使用ChatGLM-6B ChatGLM2-6B
ChatGLM-6B 和 ChatGLM2-6B都是基于 General Language Model (GLM) 架构的对话语言模型,是清华大学 KEG 实验室和智谱 AI 公司于 2023 年共同发布的语言模型。模型有 62 亿参数,一经发布便受到了开源社区的欢迎,在中文语义理解和对话生成上有…...
7.2 手撕VGG11模型 使用Fashion_mnist数据训练VGG
VGG首先引入块的思想将模型通用模板化 VGG模型的特点 与AlexNet,LeNet一样,VGG网络可以分为两部分,第一部分主要由卷积层和汇聚层组成,第二部分由全连接层组成。 VGG有5个卷积块,前两个块包含一个卷积层,…...
docker安装ES
拉取镜像文件 sudo docker pull elasticsearch:7.12.0 创建容器挂载目录 sudo mkdir -p /home/elasticsearch/config sudo mkdir -p /home/elasticsearch/data sudo mkdir -p /home/elasticsearch/plugins elasticsearch.yml http.host: 0.0.0.0 创建容器 sudo docker r…...
python爬虫实战(2)--爬取某博热搜数据
1. 准备工作 使用python语言可以快速实现,调用BeautifulSoup包里面的方法 安装BeautifulSoup pip install BeautifulSoup完成以后引入项目 2. 开发 定义url url https://s.微博.com/top/summary?caterealtimehot定义请求头,微博请求数据需要cookie…...
k8s的Namespace详解
简介 在一个K8s集群中可以拥有多个命名空间,它们在逻辑上彼此隔离 namespaces是对一组资源和对象的抽象集合,比如可以将系统内部的对象划分为不同的项目组或用户组 K8s在集群启动之后,会默认创建几个namespace默认namespace defaultÿ…...
【Redis】Redis内存过期策略和内存淘汰策略
【Redis】Redis内存过期策略和内存淘汰策略 文章目录 【Redis】Redis内存过期策略和内存淘汰策略1. 过期策略1.1 惰性删除1.2 周期删除1.2.1 SLOW模式1.2.2 FAST模式 2. 淘汰策略 1. 过期策略 Redis本身是一个典型的key-value内存存储数据库,因此所有的key、value都…...
技术干货 | cilium 原理之sock_connect
1.背景 在集群网络使用cilium之后,最明显的情况就是:服务暴露vipport,在集群内怎么测试都正常,但集群外访问可能是有问题的。而这就在于cilium所使用的ebpf科技。 2.引子:curl请求的路程 相对底层一点的语言…...
Rust 异步编程的常见陷阱
Rust 的异步编程凭借其高性能和零成本抽象的特性,成为现代系统开发的热门选择。异步编程模型本身复杂,加之 Rust 严格的编译期检查,开发者容易陷入一些常见陷阱。本文将深入剖析几个典型问题,帮助读者规避潜在风险,写出…...
给硬件工程师的PCIe实战避坑指南:从BAR配置到链路训练,这些细节你踩过几个?
给硬件工程师的PCIe实战避坑指南:从BAR配置到链路训练,这些细节你踩过几个? 调试PCIe接口就像在迷宫中寻找出口——每个转角都可能藏着意想不到的陷阱。上周当我调试一块新设计的Gen3 x8板卡时,系统识别出了设备却无法分配BAR空间…...
别再傻傻分不清了!医院里EMR、HIS、PACS这些系统到底谁管谁?一张图给你讲明白
医院信息系统生态图鉴:EMR、HIS、PACS如何各司其职 走进任何一家现代化医院,你都会听到这样的对话:"PACS调不出增强CT影像""HIS里查不到昨天的检验报告""EMR病程记录无法保存"。这些英文缩写系统就像医院里的隐…...
滚动增长:在亚马逊,如何用“分步击破”的耐心策略建立品牌帝国
拥有充足资金,能在亚马逊全球所有站点、所有品类全面发力推广新品的公司寥寥无几。但这恰恰是绝大多数卖家的常态。因此,明智的策略不是盲目追求全面开花,而是像历史上的成功品牌一样,耐心地找到一个可守的“滩头阵地”࿰…...
别再只盯着准确率了!用Python的sklearn手把手教你画ROC曲线,搞定模型评估
别再只盯着准确率了!用Python的sklearn手把手教你画ROC曲线,搞定模型评估 刚入门机器学习时,我们总会被高准确率的模型迷惑双眼。直到某次项目复盘,发现一个准确率高达95%的预测模型,在实际业务中几乎毫无作用——这才…...
git-aware-prompt实战案例:大型团队如何统一终端开发环境
git-aware-prompt实战案例:大型团队如何统一终端开发环境 【免费下载链接】git-aware-prompt Display current Git branch name in your terminal prompt when in a Git working directory. 项目地址: https://gitcode.com/gh_mirrors/gi/git-aware-prompt 在…...
告别触摸屏!用旋转编码器给STM32+LVGL项目做个复古又实用的物理菜单
用旋转编码器为STM32LVGL项目打造极致物理交互体验 在触摸屏大行其道的今天,物理旋钮的精准操控和触觉反馈反而成了一种奢侈体验。想象一下,在工业控制面板上,无需盯着屏幕就能凭手感调节参数;在智能家居中控上,盲操作…...
Flutter UME控制台与代码查看:如何高效调试Flutter应用
Flutter UME控制台与代码查看:如何高效调试Flutter应用 【免费下载链接】flutter_ume UME is an in-app debug kits platform for Flutter. Produced by Flutter Infra team of ByteDance 项目地址: https://gitcode.com/gh_mirrors/flu/flutter_ume Flutter…...
揭秘PostCSS Parser:从CSS文本到AST节点树的完整转换指南
揭秘PostCSS Parser:从CSS文本到AST节点树的完整转换指南 【免费下载链接】postcss Transforming styles with JS plugins 项目地址: https://gitcode.com/gh_mirrors/po/postcss PostCSS是一个强大的CSS处理工具,其核心功能之一就是通过Parser解…...
nli-MiniLM2-L6-H768快速部署:Kubernetes Helm Chart一键部署到生产集群
nli-MiniLM2-L6-H768快速部署:Kubernetes Helm Chart一键部署到生产集群 1. 模型概述 nli-MiniLM2-L6-H768是一个轻量级自然语言推理(NLI)模型,专注于文本关系判断而非内容生成。该模型的核心能力是分析两段文本之间的语义关系,主要判断以下…...
