6.3 rviz2集成URDF基本流程
6.3 rviz2集成URDF基本流程
在 rviz2 中如何显示机器人模型呢?前面已经简单介绍过: URDF 是一种机器人建模文件,rviz2 可以按照该文件渲染出图形化的机器人模型。换言之,rviz2 必须集成 URDF 文件才能显示机器人模型,本节就将主要介绍该二者集成的基本实现流程。
6.3.1 案例以及案例分析
1.案例需求
需求:在 rviz2 中显示一个简单的盒状机器人。

2.案例分析
在上述案例中,需要关注的要素有三个:
如何编写 URDF 文件;
如何加载 URDF 文件到系统;
如何使用 rviz2 显示机器人模型;
3.流程简介
主要步骤如下:
编写 URDF 文件;
编写 launch 文件;
编辑配置文件;
编译;
执行 launch 文件并在 rviz2 加载机器人模型。
该案例中,C++ 与 Python 实现都遵顼上述流程,且大多数实现都基本一致,只是在配置文件上稍有差异,本节主要以 C++ 功能包为例演示该实现。
4.准备工作
1.安装所需功能包
请调用如下命令,安装案例所需的两个功能包:
sudo apt install ros-humble-joint-state-publisher
sudo apt install ros-humble-joint-state-publisher-gui
2.新建功能包
终端下进入工作空间的src目录,调用如下命令创建C++功能包。
ros2 pkg create cpp06_urdf --build-type ament_cmake
功能包下新建 urdf、rviz、launch、meshes目录以备用,其中 urdf 目录下再新建子目录 urdf 与 xacro,分别用于存储 urdf 文件和 xacro 文件。
6.3.2 案例实现
1.URDF文件实现
功能包 cpp06_urdf 的 urdf/urdf 目录下,新建 urdf 文件 demo01_helloworld.urdf,并编辑文件,输入如下内容:

2.launch文件实现
功能包 cpp06_urdf 的 launch 目录下,新建 launch 文件 display.launch.py,并编辑文件,输入如下内容:

launch 文件启动时,可以通过参数 model 动态传入被加载的 urdf 文件。
3.编辑配置文件
1.package.xml
在 package.xml 中需要手动添加一些执行时依赖,核心内容如下:

2.CMakeLists.txt
在功能包下,新建了若干目录,需要为这些目录配置安装路径,核心内容如下:

4.编译
终端中进入当前工作空间,编译功能包:
colcon build --packages-select cpp06_urdf
5.执行
当前工作空间下,启动终端,输入如下指令:

然后 rviz2 会启动,启动后做如下配置:
Global Options 中的 Fixed Frame 设置为 base_link(和 urdf 文件中 link 标签的 name 一致);
添加机器人模型插件,并将参数 Description Topic 的值设置为 /robot_description,即可显示机器人模型。

小提示:
在本章的后续案例中,所有实现都遵循上述步骤,在后续案例中我们只需要关注 urdf 实现即可,launch 文件和 配置文件无需修改。

B站有完整的ros系列教程视频,可以观看完整内容ros课程ROS2理论与实践
更多内容将在猛狮知识星球社区更新最新课程,后续将推出更多优质内容——详情可关注猛狮集训营公众号和猛狮集训营官方网站