Blender建模在Gazebo中仿真
本文介绍了在TurtleBot3仿真中使用自定义地图的完整流程。通过Blender创建模型并添加地图纹理后,导出为.dae格式,在Gazebo中转换为可用模型。关键步骤包括:导入模型时勾选Static属性防止下坠,修改model.sdf文件确保纹理正确显示,清除默认地面避免穿模问题,最终保存为.world文件。教程还展示了完整的项目文件结构,包含多个路标模型、TurtleBot3机器人模型及世界文
·
在进行TurtleBot3仿真时,我们有时会希望使用自己创建的地图,并在仿真环境中添加对应的模型。本教程以Blender建模为例,介绍如何导出.dae文件,在Gazebo中转换格式并生成可用的.world文件。
目录
最终实现效果如下:

1. 使用Blender建模
在Blender中创建模型后,我们需要为其添加地图纹理。具体步骤如下:
-
在材质属性中选择图像纹理,导入地图图像。
-
点击渲染进行预览,确保纹理正确显示。

2. 导出模型文件
-
在导出时选择Collada (
.dae) 格式,并注意保存路径。 -
导出时Blender会自动将纹理图片与
.dae文件关联保存。请勿随意删除这些文件,否则后续在Gazebo中可能无法正确显示纹理。


3. 在Gazebo中导入并转换为模型
- 打开Gazebo,点击菜单栏的 Edit → Model Editor。
- 点击 Add,选择你之前导出的
.dae文件。

- 导入后,点击 Model → 勾选 Static,防止模型在仿真中下坠。

-
选择合适的路径保存模型。

4. 修改模型文件以正确显示纹理
-
打开保存的
model.sdf文件,删除其中<material>...</material>部分,这样才能正常显示图片纹理。

- 重新打开Gazebo,插入模型,即可看到带有地图纹理的模型。

5. 清除默认地面
-
删除场景中的
ground_plane,避免模型与地面发生重叠或穿模问题。


6. 保存为.world文件
- 完成所有设置后,点击 File → Save World As,将当前场景保存为
.world文件。
📁 整个文件结构如下:
├── my_sim
│ ├── launch
│ │ ├── multi_robot.launch.py #多机启动总文件
│ │ ├── multi_spawn_turtlebot3.launch.py #多机生成TurtleBot3机器人文件
│ │ ├── robot_state_publisher.launch.py #多机发布机器人URDF描述文件
│ │ ├── rviz2.launch.py #rviz2启动文件
│ │ ├── single_robot.launch.py #单机启动总文件
│ │ └── spawn_turtlebot3.launch.py #单机生成TurtleBot3机器人文件
│ ├── models
│ │ ├── ground #地图模型
│ │ │ ├── ground.dae
│ │ │ ├── ground.jpg
│ │ │ ├── model.config
│ │ │ └── model.sdf
│ │ ├── P #P路标模型
│ │ │ ├── model.config
│ │ │ ├── model.sdf
│ │ │ ├── P.dae
│ │ │ └── P.png
│ │ ├── Right #Right路标模型
│ │ │ ├── model.config
│ │ │ ├── model.sdf
│ │ │ ├── Right.dae
│ │ │ └── Right.png
│ │ ├── Sidewalk #Sidewalk路标模型
│ │ │ ├── model.config
│ │ │ ├── model.sdf
│ │ │ ├── Sidewalk.png
│ │ │ └── Sidewlk.dae
│ │ ├── Slow #Slow路标模型
│ │ │ ├── model.config
│ │ │ ├── model.sdf
│ │ │ ├── Slow.dae
│ │ │ └── Slow.png
│ │ ├── Stop #Stop路标模型
│ │ │ ├── model.config
│ │ │ ├── model.sdf
│ │ │ ├── Stop.dae
│ │ │ └── Stop.png
│ │ ├── Straight #Straight路标模型
│ │ │ ├── model.config
│ │ │ ├── model.sdf
│ │ │ ├── Straight.dae
│ │ │ └── Straight.png
│ │ └── turtlebot3_burger #turtlebot3_burger小车模型
│ │ ├── model-1_4.sdf
│ │ ├── model.config
│ │ └── model.sdf
│ ├── my_sim
│ │ └── __init__.py
│ ├── package.xml
│ ├── resource
│ │ └── my_sim
│ ├── rviz
│ │ └── multi_tb3.rviz
│ ├── setup.cfg
│ ├── setup.py
│ ├── test
│ │ ├── test_copyright.py
│ │ ├── test_flake8.py
│ │ └── test_pep257.py
│ ├── urdf #turtlebot3_burger小车URDF文件
│ │ ├── turtlebot3_burger.gv
│ │ ├── turtlebot3_burger.pdf
│ │ └── turtlebot3_burger.urdf
│ └── worlds
│ ├── CarMap.world
│ ├── empty_world.world
│ └── myworld.world
更多推荐


所有评论(0)