您好,请问您在测试的时候有遇到过这个问题吗
ToutDonner opened this issue · 46 comments
================================================================================REQUIRED process [r3live_mapping-3] has died!
process has died [pid 7193, exit code -11, cmd /home/crz/SLAM/R3Live/devel/lib/r3live/r3live_mapping __name:=r3live_mapping __log:=/home/crz/.ros/log/b600fbac-6ad9-11ec-b8ae-2cf05d2b732e/r3live_mapping-3.log].
log file: /home/crz/.ros/log/b600fbac-6ad9-11ec-b8ae-2cf05d2b732e/r3live_mapping-3*.log
Initiating shutdown!
[================================================================================
编译过后运行r3live_bag.lanuch,使用您提供的bag运行就会提示出这个错误,我的ros是melodic
我也是
光流模块内存分配失败,然后r3live_mapping就shutdown了。
我也是 光流模块内存分配失败,然后r3live_mapping就shutdown了。
那您现在解决了吗,是我的系统有问题吗
你的内存才7.51Gb啊。。。建议分配下swap试下
你参考下这个教程,你添加下swap(虚拟内存)试试?
https://www.cnblogs.com/bigben0123/p/13066136.html
16GB 肯定是够的,一般来说空余内存大于12GB就行,你这问题有点奇怪,能否详细阐述下?
关于内存占用问题,是因为在程序里面一开始我为了避免std constainer频繁动态分配内存导致整体程序整体性能低下,所以我在一开始就reserve好一个比较大的buffer,如:pointcloud_rgbd.cpp 中的168行这里,以及光流模块image的buffer的allocate。
r3live/r3live/src/rgb_map/pointcloud_rgbd.cpp
Line 168 in bd8d8af
你尝试把pointcloud_rgbd.cpp 中的168行里面的1e9改小一点试试,例如1e7之类的?如果是这个问题的话,我提交下代码修下这个bug
你尝试把pointcloud_rgbd.cpp 中的168行里面的1e9改小一点试试,例如1e7之类的?如果是这个问题的话,我提交下代码修下这个bug
我修改过后还是不可以,但是我可以用r3live_bag.launch运行自己采集的数据(只使用了一台avia),仍然可以完成建图,用fastlio也可以运行您google网盘上传的数据。
我擦,这就奇怪了,我DJI manifold 8GB RAM + 8GB swap都可以跑额。。。
这是因为你没有图像导致的,你看camera-frame那儿都是0
你命令行窗口输入这个我看下:
pkg-config --modversion opencv
另外你有没有按照readme里面说的按照ros的相关packages?
sudo apt-get install ros-XXX-cv-bridge ros-XXX-tf ros-XXX-message-filters ros-XXX-image-transport ros-XXX-image-transport*
如果你没有安装ros-XXX-image-transport*,有可能你是没有解压解compressed_image的相关模块
另外你有没有按照readme里面说的按照ros的相关packages? sudo apt-get install ros-XXX-cv-bridge ros-XXX-tf ros-XXX-message-filters ros-XXX-image-transport ros-XXX-image-transport* 如果你没有安装ros-XXX-image-transport*,有可能你是没有解压解compressed_image的相关模块
readme里面提到的我有安装,您看一下有问题没。opencv这个问题我再研究一下,我做系统的时候就是装的4.5.4,以前我查询过opencv显示确实也是4.5.3,但是一直没有什么错误,我也就没在意
你使用下rqt_image_view, 看能否看到compressed image?就是rosbag play的你能否看到图像?如果能看到,说明你的解压模块没有问题
看起来是对的,然后你跑我的example报什么错误来着?
额,我也看不出问题了,要不你先保证下openCV的编译版本和运行版本一致?不排除是不是这个原因导致的,openCV的问题也一直折腾了我很久。又或者换一个干净的环境重新试下?有结果了和我同步下?
额,我也看不出问题了,要不你先保证下openCV的编译版本和运行版本一致?不排除是不是这个原因导致的,openCV的问题也一直折腾了我很久。又或者换一个干净的环境重新试下?有结果了和我同步下?
恩恩,好的没问题,另外想问一下您后续的工作中会考虑将r3live部署到arm架构下进行测试吗
我短时间内不大会考虑,比较类似openCV之类的东西移植到arm上面肯定是一堆兼容性问题,扎进这一堆工程细节一堆bug上就没完没了,先考虑下怎么样才能毕业吧。。。头秃。。。
你尝试把pointcloud_rgbd.cpp 中的168行里面的1e9改小一点试试,例如1e7之类的?如果是这个问题的话,我提交下代码修下这个bug
我修改过后还是不可以,但是我可以用r3live_bag.launch运行自己采集的数据(只使用了一台avia),仍然可以完成建图,用fastlio也可以运行您google网盘上传的数据。
16GB 肯定是够的,一般来说空余内存大于12GB就行,你这问题有点奇怪,能否详细阐述下? 关于内存占用问题,是因为在程序里面一开始我为了避免std constainer频繁动态分配内存导致整体程序整体性能低下,所以我在一开始就reserve好一个比较大的buffer,如:pointcloud_rgbd.cpp 中的168行这里,以及光流模块image的buffer的allocate。
r3live/r3live/src/rgb_map/pointcloud_rgbd.cpp
Line 168 in bd8d8af
改成1e8和1e7都不行,我安装的是最新的OpenCV 4.5.5,刚发现编译的时候有以下警告:
/usr/bin/ld: warning: libopencv_imgcodecs.so.3.2, needed by /opt/ros/melodic/lib/libcv_bridge.so, may conflict with libopencv_imgcodecs.so.405
/usr/bin/ld: warning: libopencv_imgproc.so.405, needed by /home/wb/3rd/opencv-4.5.5/build/lib/libopencv_imgcodecs.so.4.5.5, may conflict with libopencv_imgproc.so.3.2
可能跟这个有关吧?
你尝试把pointcloud_rgbd.cpp 中的168行里面的1e9改小一点试试,例如1e7之类的?如果是这个问题的话,我提交下代码修下这个bug
我修改过后还是不可以,但是我可以用r3live_bag.launch运行自己采集的数据(只使用了一台avia),仍然可以完成建图,用fastlio也可以运行您google网盘上传的数据。
16GB 肯定是够的,一般来说空余内存大于12GB就行,你这问题有点奇怪,能否详细阐述下? 关于内存占用问题,是因为在程序里面一开始我为了避免std constainer频繁动态分配内存导致整体程序整体性能低下,所以我在一开始就reserve好一个比较大的buffer,如:pointcloud_rgbd.cpp 中的168行这里,以及光流模块image的buffer的allocate。
r3live/r3live/src/rgb_map/pointcloud_rgbd.cpp
Line 168 in bd8d8af
改成1e8和1e7都不行,我安装的是最新的OpenCV 4.5.5,刚发现编译的时候有以下警告:
/usr/bin/ld: warning: libopencv_imgcodecs.so.3.2, needed by /opt/ros/melodic/lib/libcv_bridge.so, may conflict with libopencv_imgcodecs.so.405
/usr/bin/ld: warning: libopencv_imgproc.so.405, needed by /home/wb/3rd/opencv-4.5.5/build/lib/libopencv_imgcodecs.so.4.5.5, may conflict with libopencv_imgproc.so.3.2可能跟这个有关吧?
额,能否确保下这2者一样?编译时用的库和实际运行的库不match的话总会出现一些奇怪的问题。
可以可以,大佬666,感谢你分享你的解决过程
可以可以,大佬666,感谢你分享你的解决过程
不敢当不敢当,谢谢你帮我逐个排查问题
I am facing the same problem.
I heard that you modified cmake, can you tell me which part you edited?
My current environment is as follows.
ROS:melodic
额,我也看不出问题了,要不你先保证下openCV的编译版本和运行版本一致?不排除是不是这个原因导致的,openCV的问题也一直折腾了我很久。又或者换一个干净的环境重新试下?有结果了和我同步下?
I downgraded the OpenCV version from 4.5.1 to 3.4.0 as shown below and rebuilt and it worked.
Thanks.
I am facing the same problem. I heard that you modified cmake, can you tell me which part you edited? My current environment is as follows. ROS:melodic
额,我也看不出问题了,要不你先保证下openCV的编译版本和运行版本一致?不排除是不是这个原因导致的,openCV的问题也一直折腾了我很久。又或者换一个干净的环境重新试下?有结果了和我同步下?
Nice!!! It seems that I need to add this point to ReadME.md for helping other users to address the same problem.
额,我也看不出问题了,要不你先保证下openCV的编译版本和运行版本一致?不排除是不是这个原因导致的,openCV的问题也一直折腾了我很久。又或者换一个干净的环境重新试下?有结果了和我同步下?
你好,我也遇到了一样的问题,我用的melodic,安装ros的时候自动安装了opencv3.2,然后想换到opencv4.5.3的,但是配置一直有问题,我发现链接的时候还是链接到了/usr/lib/x86_64-linux-gnu目录下面的opencv的so库了,修改cv_bridge下面的cmake之后,不找这个路径了,但是cv_bridge开始报错找不到函数定义了,能请教下你是怎么更新的opencv版本嘛?谢谢哈~~
你好我也同样遇到了类似的问题,之前系统自动安装的opencv3。2不符合标准,我再次装了一个opencv4.5.3,编译可以成功,但是运行数据集就报错,希望能得到指导,本人功力尚浅,对于这些路径,配置不太擅长,希望能说说具体的解决方式
不客气,应该就是版本不一致导致的,我之前遇到的是跑起来会挂掉,统一版本后才能正常运行,但是那个三维重建mesh的节点运行还是有问题,后面没再研究mesh