gazebo 导入从blender导出的dae等文件

news2024/9/29 11:27:38

背景: gazebo 模型库里的模型在我需要完成的任务中不够用,还是得从 solidworks、3DMax, blender这种建模软件里面在手动画一些,或者去他们的库里面在挖一挖。

目录

1 blender

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. 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创建红色小方格

  1. 打开blender
  2. 界面变成中文显示 : 编辑 -> 偏好设置 -> 界面(翻译(简体中文))
  3. 添加一个立方体 :位于上侧,依次点击: 添加 -> 网格 -> 立方体
  4. 染色红色 :位于右侧,依次点击: 材质 -> +号 -> 基础色设为红色

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

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

 后续步骤和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导入网上模型资产库,再导出三种模式文件 

  1. 打开blender
  2. 界面变成中文显示 : 编辑 -> 偏好设置 -> 界面(翻译(简体中文))
  3. 网上下载想要的模型 -> 放到指定位置解压
  4. 编辑 -> 偏好设置 -> 文件路径 -> 资产库 -> +号 -> 选择路径
  5. 左下方 -> 资产浏览器 -> 选择模型拽到试图区
  6. 导出

 后续步骤和2-2-2 一模一样

 

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

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

相关文章

使用imu_tools对imu_raw进行滤波处理

文章目录 1 前言2 安装3 查找自己的IMU话题4 imu_tools滤波 1 前言 imu_filter_madgwick&#xff1a;一种滤波器&#xff0c;可将来自常规IMU设备的角速度&#xff0c;加速度和磁力计读数&#xff08;可选&#xff09;融合到一个方向中。基于工作&#xff1a;http://www.x-io.…

电力系统电流三段式保护MATLAB仿真模型

整体模型如下&#xff1a; Matlab/Simulink搭建的电力系统电流保护模型采用辐射型单电源供电的运行方式 Ⅰ段保护的搭建 Ⅰ段保护为瞬时速断保护&#xff0c;根据Ⅰ段整定原则确定整定值。线路发生短路故障时&#xff0c;短路电流急剧增大&#xff1b;超过设置的整定值时&…

lokibot样本分析

火绒剑行为监控 行为监控 1.主程序在temp文件夹下释放frhdgr.exe 2.并创建进程 参数为 C:\Users\xxx\AppData\Local\Temp\frhdgr.exe C:\Users\xxx \AppData\Local\Temp\vxogkynyop 3.主进程退出 4.frhdgr.exe自我删除 并释放C:\Users\xxx\AppData\Roaming\F503CB\B28854…

【ARM Cache 系列文章 8 -- ARM DynamIQ 技术介绍

文章目录 DynamIQ 技术背景DynamIQ技术详解DynamIQ 与 big.LITTLEDynamIQ cluster 分类硬件支持 DynamIQ为什么适合人工智能&#xff1f; DynamIQ 技术背景 2017年3月21日下午&#xff0c;ARM在北京金隅喜来登酒店召开发布会&#xff0c;正式发布了全新的有针对人工智能及机器…

推动多云管理平台发展的因素简单分析

随着云计算的快速发展&#xff0c;上云企业的不断增加&#xff0c;使用多云管理平台企业也在快速增加&#xff0c;多云管理平台发展越来越迅速。但还有不少人不明白为什么多云管理平台发展会这么快&#xff0c;推动多云管理平台发展的因素有哪些&#xff1f;今天我们大家就来简…

/proc directory in linux

Its zero-length files are neither binary nor text, yet you can examine and display themUnder Linux, everything is managed as a file; even devices are accessed as files (in the /dev directory). Although you might think that “normal” files are either text …

windows11 svn 找不到clean up选项

刚开始使用windows 11 系统&#xff0c;在更新项目时遇到冲突&#xff0c;提示clean up&#xff0c;于是在项目点击右键svn里没找到clean up 这项&#xff0c;后来才知道需要在settings里勾选才能有&#xff0c;如下图&#xff1a;

stm32_断点调试无法进入串口接收中断

先说结果&#xff0c;可能是stm32调试功能/keil软件/调试器&#xff08;试过STLINK和JLINK两种&#xff09;的问题&#xff0c;不是代码&#xff1b; 1、入坑 配置完串口后&#xff0c;可以发送数据到串口助手&#xff0c;但不能接收数据并做处理&#xff0c;所以第一步&…

低代码培训实录:个性化策略助力企业成长

比起培训总监&#xff0c;其实我更愿意将自己看作是 1 个有 5 年经验的低代码开发爱好者。 ​ 作者介绍 胡杰&#xff0c;万应低代码培训总监、产品专家&#xff0c;主导过多个百万级低代码项目交付。 这几年来&#xff0c;我亲眼见证了低代码平台在国内的崛起&#xff1a;从最…

ESP8266_RTOS_SDK AP和Station功能实现

一、开发环境搭建 SDK开发工具集选择乐鑫配置&#xff1a;VirtualBox Linux 交叉编译工具 使用的是以下这块开发板 VirtualBox下载地址 Lubuntu 镜像下载地址Lubuntu是一个轻量级系统&#xff08;由乐鑫官方提供&#xff09; source insight 编辑代码 为了便于我们开发&…

微信-网页授权

参考文档 基础配置 代码测试说明测试公众号配置你本地的ip 完整的代码在文字末尾 下载微信的开发者工具 公众号AppId以及AppSecret的申请,并可以获取到token 注意 回调地址需要和js安全域名配置为同一个 授权地址必须在微信执行(本地在微信的开发工具进行执行) 授权地址…

卷积神经网络实现彩色图像分类 - P2

&#x1f368; 本文为&#x1f517;365天深度学习训练营 中的学习记录博客&#x1f366; 参考文章&#xff1a;365天深度学习训练营-第P2周&#xff1a;彩色识别&#x1f356; 原作者&#xff1a;K同学啊 | 接辅导、项目定制&#x1f680; 文章来源&#xff1a;K同学的学习圈子…

网络嗅探,大神都在用这10个抓包工具

下午好&#xff0c;我的网工朋友。 前两天发了一篇网工能干的工作大科普&#xff0c;没看过的看这&#xff1a;《不得不说&#xff0c;网工能干的活也太多了吧》。 然后有小友就说&#xff0c;里面的有些工作岗位要求&#xff0c;自己不知道从哪去补充知识&#xff0c;希望可…

【Java并发】synchronized关键字的底层原理

文章目录 1.synchronized作用2.synchronized加锁原理3.monitor锁4.synchronized锁的优化4.1.自适应性自旋锁4.2.偏向锁4.3.轻量级锁4.3.重量级锁 5.总结 1.synchronized作用 synchronized是Java提供一种隐式锁&#xff0c;无需开发者手动加锁释放锁。保证多线程并发情况下数据…

dubbo之高可用

负载均衡 概述 负载均衡是指在集群中&#xff0c;将多个数据请求分散到不同的单元上执行&#xff0c;主要是为了提高系统的容错能力和对数据的处理能力。 Dubbo 负载均衡机制是决定一次服务调用使用哪个提供者的服务。 策略 在Dubbo中提供了7中负载均衡策略&#xff0c;默…

1.0 Python 标准输入与输出

python 是一种高级、面向对象、通用的编程语言&#xff0c;由Guido van Rossum发明&#xff0c;于1991年首次发布。python 的设计哲学强调代码的可读性和简洁性&#xff0c;同时也非常适合于大型项目的开发。python 语言被广泛用于Web开发、科学计算、人工智能、自动化测试、游…

C#实现三菱FX-3U SerialOverTcp

设备信息 测试结果 D值测试 Y值写入后读取测试 协议解析 三菱FX 3U系列PLC的通信协议 1. 每次给PLC发送指令后&#xff0c;必须等待PLC的应答完成才能发送下一条指令; 2. 报文都是十六进制ASCII码的形式 3. 相关指令 指令 命令码&#xff08;ASCII码&#xff09; 操作原件 …

七牛云获取qn(url、bucket、access-key、secret-key)

1.注册账号 2.access-key和secret-key&#xff1a; 点击“密钥管理” 复制AK和SK即可 域名&#xff1a; bucket&#xff1a; 这个就是对象存储空间名字 先新建一个空间&#xff08;没买需要先购买&#xff09;&#xff0c;步骤如下&#xff1a; 填写存储空间名字&#xff0…

“OSError: [WinError 1455]页面文件太小,无法完成操作。”解决方案

按照下面步骤, 会发现电脑默认情况下是没有给D盘分配虚拟内存的, 所以将Python装在D盘的朋友, 在跑程序时, 没有分配虚拟内存, 自然就遇到了上面的问题, 所以根本操作只要给D盘分配虚拟内存即可 第一步&#xff1a;鼠标右击我的电脑 (此电脑)&#xff0c;点击属性进入以下界面 …