工程一:使用urdf描述一个长方体,在 Rviz 中显示
组织架构如下
实现流程:
-
准备:新建功能包,导入依赖
-
核心:编写 urdf 文件
-
核心:在 launch 文件集成 URDF 与 Rviz
-
在 Rviz 中显示机器人模型
步骤一:新建功能包,导入依赖,创建响应的文件
1.mkdir -p urdf_rviz/src
2.cd urdf_rviz/src
3.catkin_create_pkg urdf_rviz urdf xacro //在src文件下,新建一个终端
4.cd urdf_rviz/src/urdf_rviz
4.1 mkdir urdf //存储 urdf 文件的目录
4.2 mkdir meshes //机器人模型渲染文件
4.3 mkdir config //配置文件
4.4 mkdir launch //存储 launch 启动文件
步骤二:编写 urdf 文件
1.cd urdf文件下
1.1 mkdir urdf
1.2 mkdir xacro
2.cd 1.1的urdf文件下:
2.1 touch demo_01.urdf //新建.urdf文件
2.2 demo_01.urdf内容如下:
<robot name="mycar">
<link name="base_link">
<visual>
<geometry>
<box size="0.5 0.2 0.1" />
</geometry>
</visual>
</link>
</robot>
步骤三:在 launch 文件中集成URDF 与 Rviz
3.1在launch
目录下,新建一个 launch 文件,该 launch 文件需要启动 Rviz,并导入 urdf 文件,Rviz 启动后可以自动载入解析urdf
文件,并显示机器人模型。
1. cd到launch文件下,新建demo_01.launch
1.1 touch demo_01.launch
1.2 demo_01.launch代码如下:
<launch>
<!-- 设置参数 -->
<param name="robot_description" textfile="$(find urdf_rviz)/urdf/urdf/demo_01.urdf" />
<!-- 启动 rviz -->
<node pkg="rviz" type="rviz" name="rviz" />
</launch>
3.2 在urdf_rviz下:进行编译
1.cd urdf_rviz下运行:
catkin_make
步骤四:rviz 启动
1.cd urdf_rviz下运行:
source devel/setup.bash
roslaunch urdf_rviz demo_01.launch
4.1会发现并没有盒装的机器人模型,这是因为默认情况下没有添加机器人显示组件,需要手动添加,添加方式如下:
设置完毕后,可以正常显示了。
4.2重复启动launch
文件时,Rviz 之前的组件配置信息不会自动保存,需要重复执行步骤4的操作,为了方便使用,可以使用如下方式优化:首先,将当前配置保存进config
目录
然后,launch
文件中 Rviz 的启动配置添加参数:args
,值设置为-d 配置文件路径
<launch>
<param name="robot_description" textfile="$(find urdf_rviz)/urdf/urdf/demo_01.urdf" />
<node pkg="rviz" type="rviz" name="rviz" args="-d $(find urdf_rviz)/config/show_mycar.rviz" />
</launch>
再启动时,就可以包含之前的组件配置了,使用更方便快捷。