在B站上有个ros使用自动驾驶数据集kitti教程,其中有一节是自己动手写一个node来发布照片。但是在发布的过程比较繁琐,要启动roscore,rivz等等,为了方便,我就把这个写成了一个launch,可以一步启动,我把这个launch命名为kitti_cam.launch。
这个功能包包括三个部分。
- yaml文件,用来定义node所需的参数,包括图片的路径,图片的数量,播放的速率。
- rviz文件。作为在launch文件中,启动rviz的参数
- 源代码
如何创建功能包这里就不在描述了
YAML文件
path: '/media/simul/newvol/dataset/KITTI/PerspectiveImages/data_2d_raw/2013_05_28_drive_0000_sync/image_00'
number: 9215
rate: 10
Launch文件
<launch>
<node pkg="kitti_tutorial" type="kitti_data.py" name="kitti_cam">
<rosparam file="$(find kitti_tutorial)/config/kitti.yaml" command="load"/>
</node>
<node pkg="rviz" type="rviz" name="rviz" args="-d $(find kitti_tutorial)/config/kitti_rviz.rviz"/>
</launch>
命名node的名称为kitti_cam,这样的话你的参数的名为就变为/kitti_cam/path,/kitti_cam/number,/kitti_cam/rate,这个名称是根据node的名称来的。如果你修改了node的名称,代码中获得变量的函数的参数就要做响应的修改。
rviz node 节点中args是启动rviz时加载的自己保持的rviz的config文件,可以根据自己的需要进行修改。
编写代码
整个功能包放在了GitHub上,只要修改yaml中的文件即可
https://github.com/lym-ay/kitti_tutorial/tree/main
觉得不错,可以打赏,多少随意。