Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

您好,请问您在测试的时候有遇到过这个问题吗 #11

Closed
ToutDonner opened this issue Jan 1, 2022 · 46 comments
Closed

您好,请问您在测试的时候有遇到过这个问题吗 #11

ToutDonner opened this issue Jan 1, 2022 · 46 comments

Comments

@ToutDonner
Copy link

================================================================================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

@cybaol
Copy link

cybaol commented Jan 1, 2022

我也是
光流模块内存分配失败,然后r3live_mapping就shutdown了。

@ToutDonner
Copy link
Author

我也是 光流模块内存分配失败,然后r3live_mapping就shutdown了。

那您现在解决了吗,是我的系统有问题吗

@ziv-lin
Copy link
Member

ziv-lin commented Jan 1, 2022 via email

@ziv-lin
Copy link
Member

ziv-lin commented Jan 1, 2022

你能否把这个程序打印截图一下给我?
Screenshot from 2022-01-01 17-54-11

@cybaol
Copy link

cybaol commented Jan 1, 2022

DeepinScreenshot_select-area_20220101175832

@ziv-lin
Copy link
Member

ziv-lin commented Jan 1, 2022

你的内存才7.51Gb啊。。。建议分配下swap试下

@ziv-lin
Copy link
Member

ziv-lin commented Jan 1, 2022

你参考下这个教程,你添加下swap(虚拟内存)试试?
https://www.cnblogs.com/bigben0123/p/13066136.html

@slam-art
Copy link

slam-art commented Jan 2, 2022

你能否把这个程序打印截图一下给我? Screenshot from 2022-01-01 17-54-11

大佬你好,16GB物理内存和2GB虚拟内存,也是报这个错误,r3live是对内存大小要求很高吗?多少能正常运行呢?

@ziv-lin
Copy link
Member

ziv-lin commented Jan 2, 2022

16GB 肯定是够的,一般来说空余内存大于12GB就行,你这问题有点奇怪,能否详细阐述下?
关于内存占用问题,是因为在程序里面一开始我为了避免std constainer频繁动态分配内存导致整体程序整体性能低下,所以我在一开始就reserve好一个比较大的buffer,如:pointcloud_rgbd.cpp 中的168行这里,以及光流模块image的buffer的allocate。

m_rgb_pts_vec.reserve( 1e9 );

@ToutDonner
Copy link
Author

你能否把这个程序打印截图一下给我?
sendpix0
您好,这个是我的配置信息

@ziv-lin
Copy link
Member

ziv-lin commented Jan 2, 2022

你尝试把pointcloud_rgbd.cpp 中的168行里面的1e9改小一点试试,例如1e7之类的?如果是这个问题的话,我提交下代码修下这个bug

@ziv-lin
Copy link
Member

ziv-lin commented Jan 2, 2022

我在DJI-manifold (8GB RAM+ 8 GB swap) 上面验证了这个bug,一开始在16GB内存的机子上的确有bad malloc的问题,1e9一开始确实分配有点大了,我改成:
m_rgb_pts_vec.reserve( 1e8 );
就可以了。
这是改之前的
Screenshot from 2022-01-02 19-42-15
这是改之后的:
Screenshot from 2022-01-02 19-44-14
我稍等把修复推上去

@ToutDonner
Copy link
Author

ToutDonner commented Jan 2, 2022

你尝试把pointcloud_rgbd.cpp 中的168行里面的1e9改小一点试试,例如1e7之类的?如果是这个问题的话,我提交下代码修下这个bug

我修改过后还是不可以,但是我可以用r3live_bag.launch运行自己采集的数据(只使用了一台avia),仍然可以完成建图,用fastlio也可以运行您google网盘上传的数据。

@ziv-lin
Copy link
Member

ziv-lin commented Jan 2, 2022

我擦,这就奇怪了,我DJI manifold 8GB RAM + 8GB swap都可以跑额。。。

@ziv-lin
Copy link
Member

ziv-lin commented Jan 2, 2022

这是我在DJI-manifold2 (8GB RAM+ 8 GB swap) 上的测试结果
Screenshot from 2022-01-02 20-07-34

@ToutDonner
Copy link
Author

我擦,这就奇怪了,我DJI manifold 8GB RAM + 8GB swap都可以跑额。。。

我在编译的过程中爆出一个这样的waring,会不会是这里有问题。或者是我的opencv版本不兼容?但是如果是这里有问题为啥我自己的数据又可以运行
sendpix1
这个是我用r3live_bag.launch运行自己的数据的一些截图
sendpix2

@ziv-lin
Copy link
Member

ziv-lin commented Jan 2, 2022

这是因为你没有图像导致的,你看camera-frame那儿都是0

@ziv-lin
Copy link
Member

ziv-lin commented Jan 2, 2022

你命令行窗口输入这个我看下:

pkg-config --modversion opencv

@ToutDonner
Copy link
Author

sendpix3

@ziv-lin
Copy link
Member

ziv-lin commented Jan 2, 2022

你刚才截图给我的时候,你编译的时候openCV版本是4.5.4,可是为什么你的运行环境里面是4.5.3呢?
Screenshot from 2022-01-02 20-32-23

@ziv-lin
Copy link
Member

ziv-lin commented Jan 2, 2022

另外你有没有按照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的相关模块

@ToutDonner
Copy link
Author

另外你有没有按照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,但是一直没有什么错误,我也就没在意
sendpix4

@ziv-lin
Copy link
Member

ziv-lin commented Jan 2, 2022

你使用下rqt_image_view, 看能否看到compressed image?就是rosbag play的你能否看到图像?如果能看到,说明你的解压模块没有问题

@ziv-lin
Copy link
Member

ziv-lin commented Jan 2, 2022

你看下能否查看到图像?像这样的:
Screenshot from 2022-01-02 20-48-12

@ToutDonner
Copy link
Author

你看下能否查看到图像?像这样的: Screenshot from 2022-01-02 20-48-12

可以的
sendpix5

@ziv-lin
Copy link
Member

ziv-lin commented Jan 2, 2022

看起来是对的,然后你跑我的example报什么错误来着?

@ToutDonner
Copy link
Author

ToutDonner commented Jan 2, 2022

看起来是对的,然后你跑我的example报什么错误来着?
每次play bag就这样,我现在换一台电脑试一下
sendpix6

@ziv-lin
Copy link
Member

ziv-lin commented Jan 2, 2022

额,我也看不出问题了,要不你先保证下openCV的编译版本和运行版本一致?不排除是不是这个原因导致的,openCV的问题也一直折腾了我很久。又或者换一个干净的环境重新试下?有结果了和我同步下?

@ToutDonner
Copy link
Author

额,我也看不出问题了,要不你先保证下openCV的编译版本和运行版本一致?不排除是不是这个原因导致的,openCV的问题也一直折腾了我很久。又或者换一个干净的环境重新试下?有结果了和我同步下?

恩恩,好的没问题,另外想问一下您后续的工作中会考虑将r3live部署到arm架构下进行测试吗

@ziv-lin
Copy link
Member

ziv-lin commented Jan 2, 2022

我短时间内不大会考虑,比较类似openCV之类的东西移植到arm上面肯定是一堆兼容性问题,扎进这一堆工程细节一堆bug上就没完没了,先考虑下怎么样才能毕业吧。。。头秃。。。

@slam-art
Copy link

slam-art commented Jan 2, 2022

你尝试把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。

m_rgb_pts_vec.reserve( 1e9 );

改成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

可能跟这个有关吧?

@ziv-lin
Copy link
Member

ziv-lin commented Jan 2, 2022

关于内存预分配的问题,我提交的修改如下,当检测到内存小于12Gb的时候,之分配1e8个点的buffer,否则就分配多一点的内存(1e9)
Screenshot from 2022-01-03 00-24-42

@ziv-lin
Copy link
Member

ziv-lin commented Jan 2, 2022

你尝试把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。

m_rgb_pts_vec.reserve( 1e9 );

改成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的话总会出现一些奇怪的问题。

@ToutDonner
Copy link
Author

额,我也看不出问题了,要不你先保证下openCV的编译版本和运行版本一致?不排除是不是这个原因导致的,openCV的问题也一直折腾了我很久。又或者换一个干净的环境重新试下?有结果了和我同步下?

您好,问题解决了,应该就是版本没有管理好,我重新装了一个opencv3.4.16,修改了cmake文件。
Screenshot from 2022-01-03 10-56-43

@ziv-lin
Copy link
Member

ziv-lin commented Jan 3, 2022

可以可以,大佬666,感谢你分享你的解决过程

@ziv-lin ziv-lin pinned this issue Jan 3, 2022
@ziv-lin ziv-lin unpinned this issue Jan 3, 2022
@ToutDonner
Copy link
Author

可以可以,大佬666,感谢你分享你的解决过程

不敢当不敢当,谢谢你帮我逐个排查问题

This was referenced Jan 5, 2022
@h-wata
Copy link

h-wata commented Jan 5, 2022

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

image

image

额,我也看不出问题了,要不你先保证下openCV的编译版本和运行版本一致?不排除是不是这个原因导致的,openCV的问题也一直折腾了我很久。又或者换一个干净的环境重新试下?有结果了和我同步下?

您好,问题解决了,应该就是版本没有管理好,我重新装了一个opencv3.4.16,修改了cmake文件。 Screenshot from 2022-01-03 10-56-43

@h-wata
Copy link

h-wata commented Jan 5, 2022

I downgraded the OpenCV version from 4.5.1 to 3.4.0 as shown below and rebuilt and it worked.
Thanks.

image

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

image

image

额,我也看不出问题了,要不你先保证下openCV的编译版本和运行版本一致?不排除是不是这个原因导致的,openCV的问题也一直折腾了我很久。又或者换一个干净的环境重新试下?有结果了和我同步下?

您好,问题解决了,应该就是版本没有管理好,我重新装了一个opencv3.4.16,修改了cmake文件。 Screenshot from 2022-01-03 10-56-43

@ziv-lin
Copy link
Member

ziv-lin commented Jan 5, 2022

Nice!!! It seems that I need to add this point to ReadME.md for helping other users to address the same problem.

@ToutDonner
Copy link
Author

ToutDonner commented Jan 5, 2022

我将 OpenCV 版本从 4.5.1 降级到 3.4.0,如下所示,并重新构建,它工作正常。 谢谢。

图片

我面临同样的问题。听说你修改了cmake,能告诉我你修改了哪个部分吗?我现在的环境如下。ROS:旋律
图片
图片

,我也看不出问题了,不你先保证下openCV的编译版本和运行版本?不排除这个原因导致的,openCV的问题也一直折腾了我。又或者换一个干净的环境重试下?有结果了和我同步下?

你好,问题解决了,应该是版本没有管理好,我重新装了一个opencv3.4.16,修改了cmake文件。 截图来自 2022-01-03 10-56-43

Sorry,I was taking an exam just now.

@dandelion-chu
Copy link

额,我也看不出问题了,要不你先保证下openCV的编译版本和运行版本一致?不排除是不是这个原因导致的,openCV的问题也一直折腾了我很久。又或者换一个干净的环境重新试下?有结果了和我同步下?

您好,问题解决了,应该就是版本没有管理好,我重新装了一个opencv3.4.16,修改了cmake文件。 Screenshot from 2022-01-03 10-56-43

你好,我也遇到了一样的问题,我用的melodic,安装ros的时候自动安装了opencv3.2,然后想换到opencv4.5.3的,但是配置一直有问题,我发现链接的时候还是链接到了/usr/lib/x86_64-linux-gnu目录下面的opencv的so库了,修改cv_bridge下面的cmake之后,不找这个路径了,但是cv_bridge开始报错找不到函数定义了,能请教下你是怎么更新的opencv版本嘛?谢谢哈~~

@heisetiantang
Copy link

你好我也同样遇到了类似的问题,之前系统自动安装的opencv3。2不符合标准,我再次装了一个opencv4.5.3,编译可以成功,但是运行数据集就报错,希望能得到指导,本人功力尚浅,对于这些路径,配置不太擅长,希望能说说具体的解决方式

@heisetiantang
Copy link

2022-12-06 14-14-48 的屏幕截图
2022-12-06 14-14-51 的屏幕截图

@dandelion-chu
Copy link

2022-12-06 14-14-48 的屏幕截图 2022-12-06 14-14-51 的屏幕截图

我是参考这两个网页连接中的内容配置的,你可以研究下
https://blog.csdn.net/qq_36758461/article/details/119819161
https://blog.csdn.net/bigdog_1027/article/details/79092263

@heisetiantang
Copy link

你好,多谢指点,我尝试了rqt_image命令发现没有图像,后面发现opencv的运行版本是直接在cmaklist中直接制定4。5。3,通过命令查询得到的版本是3。2,不知道是不是这个问题

2022-12-06 15-54-27 的屏幕截图

@dandelion-chu
Copy link

不客气,应该就是版本不一致导致的,我之前遇到的是跑起来会挂掉,统一版本后才能正常运行,但是那个三维重建mesh的节点运行还是有问题,后面没再研究mesh

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

7 participants