如何使用realsense摄像头调试ROS错误消息
How to debug ROS error message with realsense camera
我正在运行以下realsense2_camera启动命令:
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:http://docs.ros.org/kinetic/api/librealsense2/html/types_8cpp_source.html
它仍然没有信息,因为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 }
我们如何看待实际解释此错误消息的代码逻辑?我想这需要找到消息的来源。我们是怎么发现的?
英特尔®;RealSense™是开源的,你可以在GitHub上找到源代码。如果你检查异常的来源,你会发现
三条线路327、388和411
则抛出异常(class wrong_api_call_sequence_exception : public recoverable_exception
)。
所有异常都是基于失败的分配(如)抛出的
_actual_source.alloc_frame(...);
其中CCD_ 2。深入挖掘,您会发现frame_source::alloc_frame
的定义,在我们的例子中,它返回一个null指针。此空指针由虚拟方法alloc_and_track
返回,该方法的实现导致publish_frame
失败。
对我来说,似乎有一个帧缓冲区,如果发布,这些帧可以发布并在以后重用。你的软件(在这种情况下是ROS)只是没有足够快地释放帧以便再次重用。
这应该基本上回答了你的问题。如果需要,您现在可以更深入地了解如何参数化intestuint32_t max_publish_list_size
的参数,或者尝试找出为什么您的帧发布得不够快。做到这一点的方法与到目前为止所做的完全相同。试着逐步了解代码。
打开启动文件,修改帧速率参数。您的默认值是30,您可以将其缩小。
<arg name="depth_fps" default="15"/>
<arg name="infra_fps" default="15"/>
<arg name="color_fps" default="15"/>
相关文章:
- 警告处理为错误这里有什么问题
- "error: no matching function for call to"构造函数错误
- boost::进程间消息队列引发错误
- C++,OpenCV,尝试显示图像时"OpenCV(4.3.0) Error: Assertion failed (size.width>0 && size.height>0)"此错误
- 有关插入适配器的错误。[错误]请求从 'back_insert_iterator<vector<>>' 类型转换为非标量类型
- QT在错误的班级中寻找空位
- vector.resize()中的分配错误
- 代码在main()中运行,但在函数中出现错误
- 释放错误后堆使用
- (C++)分析树以计算返回错误值的简单算术表达式
- Project Euler问题4的错误解决方案
- 我的字符计数代码计算错误.为什么
- 从"int*"强制转换为"unsigned int"会丢失精度错误
- 如何使用realsense摄像头调试ROS错误消息
- 如何消除ROS打开CV中的内存不足错误?
- 分段错误(核心转储)ROS C++ 箭头
- 升压、ros 和 catkin - 链接器错误
- ROS在linux下使用C++的boost::文件系统库链接错误
- 如何解决 ros 中"对 libusb 的未定义引用"错误?
- ROS 水电 opencv2 在'catkin_make'期间链接错误