ZED2相机同步订阅rgb与depth话题用于室内场景分析


在这里插入图片描述

1.安装ZED2相机SDK

下载链接

chmod +x ZED_SDK_Tegra_JP45_v3.5.0.run
sudo ./ZED_SDK_Tegra_JP45_v3.5.0.run

在这里插入图片描述

相机校准,zed2 sdk安装在目录usr/locsl/zed, 在usr/local/zed/tools下运行

ZED_Calibration

2.编译zed_ros

mkdir -p zed_ws/src
cd zed_ws/src
git clone --recursive https://github.com/stereolabs/zed-ros-wrapper.git
cd ../
rosdep install --from-paths src --ignore-src -r -y
catkin_make -DCMAKE_BUILD_TYPE=Release
echo "source ~/zed_ws/devel/setup.bash">> ~/.bashrc
source ~/.bashrc

在这里插入图片描述

3.运行

roslaunch zed_wrapper zed2.launch

使用rqt或rviz订阅zed2相机发布的话题,查看相机捕获到的信息

rqt # 或 rviz

在这里插入图片描述

4.ROS同时订阅zed2两个话题同步处理

由于做室内场景分析使用RGB-D数据,需要同时使用RGB图像与Depth图像作为输入,因此需要同时订阅两个话题同步处理

# -*- coding: utf-8 -*-
import rospy
import message_filters
from sensor_msgs.msg import Image, CompressedImage
from cv_bridge import CvBridge, CvBridgeError

import cv2
import numpy as np

class rgbd():
    def __init__(self):

        # 带宽可能不足导致卡顿,订阅压缩话题
        rgb = message_filters.Subscriber('/camera/color/image_raw/compressed', CompressedImage, queue_size=10,
                                         buff_size=2 ** 24)
        depth = message_filters.Subscriber('/camera/depth/image_rect_raw', Image, queue_size=10,
                                           buff_size=2 ** 24)
        # 同步时间戳
        ts = message_filters.ApproximateTimeSynchronizer([rgb, depth], 10, 0.1, allow_headerless=True)
        # 执行回调函数
        ts.registerCallback(self.callback)


    def callback(self, rgb, depth):


        bridge = CvBridge()

        # 解码压缩
        rgb_image = cv2.imdecode(np.fromstring(rgb.data, dtype=np.int8), cv2.IMREAD_COLOR)
        # 转16位深度图
        depth_image = bridge.imgmsg_to_cv2(depth, '32FC1')
        depth_image = np.array(depth_image, dtype=np.float)
        depth_image = depth_image * 1000
        depth_image = np.round(depth_image).astype(np.uint16)
        # 显示
        cv2.imshow('rgb', rgb_image)
        cv2.imshow('depth', depth_image)
        cv2.waitKey(1)


if __name__ == '__main__':

    rospy.init_node('rgbd')
    rgbd = rgbd()
    rospy.spin()

4.对接ESANet室内场景语义分割效果

ESANet

在这里插入图片描述

  • 5
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值