ubuntu16.04 ROS Kinetic+rtabmap安装运行

it2025-08-12  6

一、前期准备

1.安装ROS环境 2.安装kinect v2驱动以及ROS下运行

二、安装rtabmap-ros包

deb 安装

sudo apt-get install ros-kinetic-rtabmap-ros

三、运行测试

①运行kinect v2指令:
roslaunch kinect2_bridge kinect2_bridge.launch publish_tf:=true

这时,kinect2的红外灯会亮一会然后熄灭, 白灯也会过一段时间熄灭。

出现打印 INFO] [1478769022.036459690]: [Kinect2Bridge::main] waiting for clients to connect,表示kinect2启动成功 kinect2成功启动后可以查看topic :

rostopic list

出现结果: /kinect2/bond /kinect2/hd/camera_info /kinect2/hd/image_color /kinect2/hd/image_color/compressed /kinect2/hd/image_color_rect /kinect2/hd/image_color_rect/compressed /kinect2/hd/image_depth_rect /kinect2/hd/image_depth_rect/compressed /kinect2/hd/image_mono /kinect2/hd/image_mono/compressed /kinect2/hd/image_mono_rect /kinect2/hd/image_mono_rect/compressed /kinect2/hd/points /kinect2/qhd/camera_info /kinect2/qhd/image_color /kinect2/qhd/image_color/compressed /kinect2/qhd/image_color_rect /kinect2/qhd/image_color_rect/compressed /kinect2/qhd/image_depth_rect /kinect2/qhd/image_depth_rect/compressed /kinect2/qhd/image_mono /kinect2/qhd/image_mono/compressed /kinect2/qhd/image_mono_rect /kinect2/qhd/image_mono_rect/compressed /kinect2/qhd/points /kinect2/sd/camera_info /kinect2/sd/image_color_rect /kinect2/sd/image_color_rect/compressed /kinect2/sd/image_depth /kinect2/sd/image_depth/compressed /kinect2/sd/image_depth_rect /kinect2/sd/image_depth_rect/compressed /kinect2/sd/image_ir /kinect2/sd/image_ir/compressed /kinect2/sd/image_ir_rect /kinect2/sd/image_ir_rect/compressed /kinect2/sd/points /rosout /rosout_agg

其中,hd 表示1080P(1920x1080),qhd表示hd的四分之一大小 960x540,sd 大小应该是640x480, 实际大小是 height: 424 width: 512.可以看到其中主要的是hd,qhd,sd三类,每一类都包含相机信息、彩色、深度、红外等数据,再加上最后的输出.

如果启动遇到下面的问题: 请执行:

source ~/catkin_ws/devel/setup.bash
②执行官方给的指令tf:
rosrun tf static_transform_publisher 0 0 0 -1.5707963267948966 0 -1.5707963267948966 camera_link kinect2_link 100

该指令主要是前半部分涉及静态转换(本人猜测是坐标转换或者标定,没有细查),后半部分涉及传感器选择的帧来源。

该指令默认的是qhd,即默认960*540.其对应的帧是kinect2_rgb_optical_frame,这一点可以不用管它。

如果使用的是hd, 那么对应的frame也是kinect2_rgb_optical_frame,hd和qhd的尺寸图像都是基于rgd镜头的,所以它们的frame是彩色镜头的frame。

如果使用的是sd, 那么对应的frame是kinect2_ir_optical_frame, 红外镜头的frame。

③启动rtabmap_ros
roslaunch rtabmap_ros rtabmap.launch rtabmap_args:="--delete_db_on_start" rgb_topic:=/kinect2/qhd/image_color_rect depth_topic:=/kinect2/qhd/image_depth_rect camera_info_topic:=/kinect2/qhd/camera_info

roslaunch 启动文件,rtabmap_args:="–delete_db_on_start" 是说启动前先删除数据库db下的数据, topic分别对应好rgb彩色数据、depth深度数据、相机参数信息. rtabmap.launch参数解析: 地图数据保存在 ~/.ros/rtabmap.db 可利databaseViewer工具查看数据库

rtabmap-databaseViewer ~/.ros/rtabmap.db

注意: ①在三维点云地图中右键取消Z轴锁定,即可以上帝视角查看三维模型 ②indigo版本和kinect版本之间的mapdata格式存在差异,不同版本之间发布和订阅会出现无tf输出的情况(没明白)

最新回复(0)