Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/153.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何使用realsense摄像头调试ROS错误消息_C++_Ros - Fatal编程技术网

C++ 如何使用realsense摄像头调试ROS错误消息

C++ 如何使用realsense摄像头调试ROS错误消息,c++,ros,C++,Ros,我正在运行以下realsense2\u摄像头启动命令: roslaunch realsense2_camera rs_rgbd.launch 我看到这个错误: 04/01 22:02:12,523 WARNING [139805191870208] (types.cpp:49) Out of frame resources! 04/01 22:02:12,523 ERROR [139805191870208] (synthetic-stream.cpp:47) Exception was t

我正在运行以下realsense2\u摄像头启动命令:

roslaunch realsense2_camera rs_rgbd.launch
我看到这个错误:

04/01 22:02:12,523 WARNING [139805191870208] (types.cpp:49) Out of frame resources!
 04/01 22:02:12,523 ERROR [139805191870208] (synthetic-stream.cpp:47) Exception was thrown during user processing callback!
尝试调试此文件时存在一些问题: 1.我们正在使用已编译的realsense ros库,因此在我们的系统上找不到types.cpp

消息超出了框架资源!这是没有信息的。在这里查看types.cpp: 它仍然没有信息,因为types.cpp第47行只是一般的错误处理代码:

45     recoverable_exception::recoverable_exception(const std::string& msg,
   46         rs2_exception_type exception_type) noexcept
   47         : librealsense_exception(msg, exception_type)
   48     {
   49         LOG_WARNING(msg);
   50     }

我们如何看待实际解释此错误消息的代码逻辑?我想这需要找到消息的来源。我们如何找到它?

Intel®RealSense™ 是开源的,你可以找到。如果您检查异常的来源,您将发现

三条线,和

抛出异常

所有异常都是基于失败的分配引发的,如

_actual_source.alloc_frame(...);
在哪里。深入挖掘,您将发现在我们的示例中返回空指针的。此空指针由虚拟方法返回,这将导致失败

对我来说,它看起来像是有一个帧缓冲区,这些帧可以被发布并在发布后重新使用。在这种情况下,您的软件只是没有快速释放帧,无法再次重复使用


这应该基本上回答了你的问题。如果需要,您现在可以更深入地了解如何参数化intrest的参数,或者尝试了解帧释放速度不够快的原因。这样做的方法与之前完全相同。只需尝试单步执行代码。

Intel®RealSense™ 是开源的,你可以找到。如果您检查异常的来源,您将发现

三条线,和

抛出异常

所有异常都是基于失败的分配引发的,如

_actual_source.alloc_frame(...);
在哪里。深入挖掘,您将发现在我们的示例中返回空指针的。此空指针由虚拟方法返回,这将导致失败

对我来说,它看起来像是有一个帧缓冲区,这些帧可以被发布并在发布后重新使用。在这种情况下,您的软件只是没有快速释放帧,无法再次重复使用


这应该基本上回答了你的问题。如果需要,您现在可以更深入地了解如何参数化intrest的参数,或者尝试了解帧释放速度不够快的原因。这样做的方法与之前完全相同。只需尝试单步执行代码。

打开启动文件,并修改帧速率参数。您的默认值是30,您可以将其缩小

  <arg name="depth_fps"           default="15"/>
  <arg name="infra_fps"           default="15"/>
  <arg name="color_fps"           default="15"/>

打开启动文件,并修改帧速率参数。您的默认值是30,您可以将其缩小

  <arg name="depth_fps"           default="15"/>
  <arg name="infra_fps"           default="15"/>
  <arg name="color_fps"           default="15"/>