目录
写在前面的话
本文是基于上一篇的工作 urdf ( xacro ) 的 collision碰撞参数设置,根据已有的 xacro 文件,如何通过 gazebo 仿真软件进行可视化仿真?
整体流程
文件的结构如下图,models文件夹下包含一个car_urdf文件夹,里面有 model.config 和 model.sdf 文件和一个 meshes 文件夹(存储.stl文件)
-
models
-
car_urdf
----meshes (存储.stl文件)
----model.config (指定.sdf文件的位置)
----model.sdf (由xacro文件转化)
1 获取SDF文件
1.1 xcaro文件转 urdf
路径根据自己情况自行修改
ros2 run xacro xacro car_urdf.urdf.xacro > car_urdf.urdf
1.2 urdf 文件转 sdf
gz 是 gazebo 的的一个工具包
gz sdf -p car_urdf.urdf > ../models/car_urdf/model.sdf
提醒:这个注意模型的路径问题,确保car_urdf文件夹下面包含meshes文件夹,且文件夹包含所有的模型文件。
2 新建config文件
<?xml version="1.0" ?>
<model>
<name>car_urdf</name>
<version>1.0</version>
<sdf version="1.6">model.sdf</sdf>
<author>
<name></name>
<email></email>
</author>
<description></description>
</model>
3 启动gazebo
4 插入URDF模型并查看
操作:insert > Add Path > 选择models文件夹 > Open
可以看到左边路径窗口多了一个car_urdf,双击,然后在主界面单击即可看到车子。
4.1 gazebo 启动慢的情况
原因是 gazebo 每次启动都要去加载模型库,它会去查找/home/.gazebo/models
目录下的模型文件,没找到的话要进行联网下载,要想启动快的画,直接去下载模型文件放到 .gazebo 文件夹的 models 目录下,这个网上很多教程。
home 目录下没找到 .gazebo 文件夹的话,是因为默认.开头文件会隐藏,键盘按下 Ctrl+H 就可以解除隐藏查看。
cd ~/.gazebo/
ls
mkdir -p models
ls
cd ~/.gazebo/models/
wget http://file.ncnynl.com/ros/gazebo_models.txt
ls
4.2 gazebo 查看模型卡死的问题
我从 solidworks 导出的 .stl 模型文件是比较复杂的,三维面数量很大,这对处理器的要求会高很多,很容易出现卡死的问题。
因此需要对这些模型文件进行简化,用meshlab打开三维模型,然后按下图操作:Filters > Remeshing,Simplification and Reconstruction > Simplification: Quadric Edge collapse Decimation
然后会出现弹窗,修改Target number of faces
参数即可,调小就可以,点 Apply 后可以查看修改后的模型效果,点菜单栏的保存文件(会有一个弹窗,点OK即可)就会覆盖原有文件保存,不想覆盖的就选择另存即可。
模型简化前
内存:248.1 KB
模型简化后
内存:50.1 KB