预计完成时间:10 分钟
网格模型可以用来创建更复杂的三维几何形状。设想一下,你手上有一台真实机器人,整个项目是用 CAD 软件完成的,现在你想对它进行仿真,那么你通常会直接拥有模型文件。URDF 支持 .stl 和 .dae 文件,其中后者通常能提供更好的显示效果。
下面来看如何在你当前制作的机器人中使用网格模型。
进入底盘的 visual 部分,并将下面这段代码替换掉:
<geometry>
<box size="2 1.3 0.4" />
</geometry>
替换为以下内容:
复制并粘贴
<geometry>
<mesh filename="package://robot_description/meshes/chassis.stl" />
</geometry>
URDF 支持 package:// 这种写法,可以通过相对路径更方便地找到文件。这也意味着你的功能包中必须有一个 meshes 文件夹。先创建这个文件夹,然后上传下面的文件:
在 Web Shell 3 中执行
mkdir -p /workspace/src/robot_description/meshes/
将这个 chassis.stl 文件下载到你的电脑中,并放进你在 robot_description 功能包里创建的 meshes 文件夹。

把 meshes 文件夹添加到 setup.py 中,这样下次编译时就能检测到 *.stl 文件。
此时你的 setup.py 文件应该包含下面这四行:
(os.path.join('share', package_name, 'urdf'), glob('urdf/*.urdf')),
(os.path.join('share', package_name, 'rviz'), glob('rviz/*.rviz')),
(os.path.join('share', package_name, 'meshes'), glob('meshes/*.stl')),
(os.path.join('share', package_name, 'launch'), glob('launch/*.launch.*')),
重新启动 rviz.launch 和 Joint State Publisher GUI,你应该看到如下结果:

注意,这个 .stl 文件会沿用基础几何体所设置的材质颜色。
