欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 新闻 > 会展 > ROS2下Rviz显示orbbec相机depth深度图

ROS2下Rviz显示orbbec相机depth深度图

2025/2/21 21:48:43 来源:https://blog.csdn.net/weixin_38428827/article/details/145693606  浏览:    关键词:ROS2下Rviz显示orbbec相机depth深度图

ROS2下Rviz显示orbbec相机depth深度图

在这里插入图片描述
视频讲解

ROS2下Rviz显示orbbec相机depth深度图

在《ROS2下编写orbbec相机C++ package并Rviz显示》的基础上,继续添加depth图像的获取及显示

rgb_publisher_ = this->create_publisher<sensor_msgs::msg::Image>("rgb_image", 10);
depth_publisher_ = this->create_publisher<sensor_msgs::msg::Image>("depth_image", 10);rclcpp::Publisher<sensor_msgs::msg::Image>::SharedPtr rgb_publisher_;
rclcpp::Publisher<sensor_msgs::msg::Image>::SharedPtr depth_publisher_;

将原来的publisher变量变成rgb,并增加depth发布者,同时将深度图像的消息名称命名为depth_image

void timer_callback()
{//CV_8UC3 8位无符号3通道图像cv::Mat rgb_image = cam_.getImg();sensor_msgs::msg::Image::SharedPtr rgb_msg = cv_bridge::CvImage(std_msgs::msg::Header(), "bgr8", rgb_image).toImageMsg();rgb_publisher_->publish(*rgb_msg);//CV_16UC1 16位无符号单通道图像cv::Mat depth_image = cam_.getDepth();sensor_msgs::msg::Image::SharedPtr depth_msg = cv_bridge::CvImage(std_msgs::msg::Header(), "mono16", depth_image).toImageMsg();depth_publisher_->publish(*depth_msg);// RCLCPP_INFO(this->get_logger(), "Publishing image");
}

只需要修改time_callback函数即可,增加cam_.getDetph();图像的类型为16位单通道无符号,所以要将cv_brige的格式改成mono16,不然会出现格式转换有问题的现象

sudo su
colcon build --packages-select orbbec_cam_pkg
source install/setup.bash 
ros2 run orbbec_cam_pkg image_publisher  

切换到sudo,编译,运行,另起一个窗口启动Rviz2
在这里插入图片描述
再添加一个Image,Topic选择/depth_image,如果图像不显示,则将三个policy全选System Default即可
在这里插入图片描述

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词