通过ros订阅orbbec astra深度摄像头的话题,图像无法显示.

小楠jasen 2017-04-21 10:00:29
通过roslaunch打开astra摄像头后,写了订阅rgb节点的opencv程序去订阅/camera/rgb/image_raw,编译没问题,运行时imshow()窗口出现两秒钟就卡死黑屏,无法显示图像,如图


下面是订阅节点代码,求助该如何解决:
#include <ros/ros.h>
#include <image_transport/image_transport.h>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/imgproc/imgproc.hpp>
#include <sensor_msgs/image_encodings.h>
#include <cv_bridge/cv_bridge.h>

using namespace std;
using namespace cv;

void imageCallback(const sensor_msgs::ImageConstPtr& msg)
{
cv_bridge::CvImagePtr cv_ptr;
try
{
cv_ptr = cv_bridge::toCvCopy(msg,sensor_msgs::image_encodings::BGR8);
}
catch (cv_bridge::Exception& e)
{
ROS_ERROR("Could not convert from '%s' to 'bgr8'.", msg->encoding.c_str());
}
Mat img_rgb = cv_ptr->image;
imshow("view",img_rgb);
}
int main(int argc, char **argv)
{
ros::init(argc, argv, "image_listener");
ros::NodeHandle nh;
image_transport::ImageTransport it(nh);
cv::namedWindow("view");
image_transport::Subscriber sub = it.subscribe("camera/rgb/image_raw", 1,imageCallback);
ros::spin();
return 0;
}
...全文
1594 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
msdddd 2020-09-17
  • 打赏
  • 举报
回复
在回调函数的末尾加个 waitKey(10); 用来显示图像
qq_17666915 2017-10-24
  • 打赏
  • 举报
回复
引用 1 楼 learner1212 的回复:
是orbbec astra摄像头的话,rgb图需要安装驱动,建议安装libuvc-camera,安装编译完后,会有image-raw这个节点,把这个节点的内容传输到/camera/rgb/image_raw中就可以显示了。你可以尝试下,我这么干了,成功了。
有具体代码吗?求回复
小楠jasen 2017-04-26
  • 打赏
  • 举报
回复
已经解决问题了,我把订阅话题换成了camera/rgb/image_rect_color就可以了.
learner1212 2017-04-25
  • 打赏
  • 举报
回复
是orbbec astra摄像头的话,rgb图需要安装驱动,建议安装libuvc-camera,安装编译完后,会有image-raw这个节点,把这个节点的内容传输到/camera/rgb/image_raw中就可以显示了。你可以尝试下,我这么干了,成功了。
    随着ICT技术不断深化和传统场景的结合,自动化、智能化相融合已经成为ICT技术的下一代浪潮,以工业机器人、服务机器人、自动驾驶等的新一代技术浪潮目前已经方兴未艾,成为又一波热点。而作为次级操作系统的ROS则提供了一系列的调试、仿真工具,能支持激光导航、视觉导航等算法,是切入机器人和自动驾驶技术的重要基石。    机器人是一个复合型的领域,涉及软件、算法、硬件、结构等诸多方向,是一个理论性和实践性并重的行业,考虑到其复杂性和讲解的循序渐进,整个系列课程将分为三个系列即入门系列、中级系列、高级系列。   在入门系列中,我们将介绍ROS的基础知识(机器人基础知识、ROS开发环境等)、ROS配置管理(系统架构、参数管理、Launch启动、编译配置以及如何基于源代码开发等)、ROS系统调试(代码调试、可视化调试、消息回放、单元测试等)。   在中级系列中,我们将围绕机器人仿真涉及的URDF机器人模型、Gazebo仿真环境、坐标变换、运动控制等展开介绍,并随着课程的深入,将会深度使用RVIZ、Gazebo等仿真和调试工具。   在高级系列中,我们将着眼于人工智能框架及算法,分享机器人开发涉及的运动控制、SLAM、语音交互、计算机视觉等。逐层递进,为大家一层层剥开机器人的神秘面纱。    本系列课程的特色在于:    1、从基础知识、编译管理、通信机制、系统调试等4个方面循序渐进、逐步深化,知识覆盖全面,便于深度认知;    2、从基本理论、源码解读、工程示例等领域开展ROS系统入门知识的深度介绍和分析,源于工程实践,利于快速上手;   3、基于全新的环境Ubuntu 20.04、ROS Noetic、Gazebo 11、GMapping、Cartographer、tensorFlow 2.*、OpenCV 4.*等讲解,紧跟时代前沿。   整个系列的课程将会逐步开发并上线,三个系列是一个逐步深入、环环相扣的课程内容,感兴趣的同学可以开始学习啦。  

18,781

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 专题技术讨论区
社区管理员
  • 专题技术讨论区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧