声明
本文主要介绍如何通过launch文件将urdf与rviz连接在一起启动,同时将对rviz的设置界面做保存优化的处理,这样也就解决了当重新rviz时候需要一遍遍设置内置程序的问题。
1.新功能包的创建与相关依赖的添加。
我是在ilove02_01_ws这个工作空间下新创建了一个叫做ilovezero4_urdf的功能包,同时记得导入两个依赖:
urdf xacro
同时在这个功能包下创建四个文件夹:launch,meshes,urdf,config
2.编写urdf文件
首先在先前所创建的urdf文件下面创建两个子文件夹,分别命名为:urdf与xacro,我们接下来会在子文件夹urdf下编写urdf文件。
以下是urdf文件,我的文件名为 hello_mycar.urdf:
<robot name="mycar">
<link name="base_link">
<visual>
<geometry>
<box size="0.5 0.2 0.1" />
</geometry>
</visual>
</link>
</robot>
3.创建launch文件
我们编写这个launch文件的目的是将urdf文件与rviz同时启动,那么我们的思路必然是:要在参数服务器中载入urdf文件,同时启动rviz。
需要注意的是:在载入urdf文件时,param的name时,是固定为robot_description.
以下是代码,文件名为hello_mycar.launch:
<launch>
<!-- 设置参数 -->
<param name = "robot_description" textfile ="$(find ilovezero4_urdf)/urdf/urdf/hello_mycar.urdf"/>
<!-- 启动 rivz -->
<node pkg = "rviz" type = "rviz" name = "rviz" />
</launch>
在运行后,加入robot组件后,若出现报错,这时候需要关注:你的urdf文件中的link name与rviz中的fixed name是否名字一致。
4.rviz的组件设置保存优化
如果不进行这一步操作,那么每次重新操作时都需要重新进行设置组件,下面我们来进行优化。
在打开rviz后,你首先已经配置好了相关组件,接下来你按照file------save config as-----你的工作空间下的config文件夹 这个路径保存你的urdf文件(也可以是其他路径),在config下就会生成一个rviz文件。
然后,改写你的launch文件,让他可以找到这个文件,改写如下:
<launch>
<!-- 设置参数 -->
<param name = "robot_description" textfile ="$(find ilovezero4_urdf)/urdf/urdf/hello_mycar.urdf"/>
<!-- 启动 rivz -->
<node pkg = "rviz" type = "rviz" name = "rviz" args = "-d $(find ilovezero4_urdf)config/hello_mycar.rviz" />
</launch>
总结