VINS-Fusion-gpu
VINS-Fusion-gpu copied to clipboard
Erroneous use of sensor_msgs::ImageConstPtr leads to extravagant memory overflow
In our experiment with Nvidia Jetson TX2, memory utilization of vins-gpu could go up to 85% (as mentioned in #2 ) and would eventually escalate sigkill. After we examined the main entry of ROS node rosNodeTest.cpp
, we found you have used queue<sensor_msgs::ImageConstPtr>
in line 29,30, which may bring about miserable results such as failure of memory deallocation of sensor_msgs::Image
, thus causing memory panic.
After making some minor changes, i.e. using queue<cv::Mat>
and convert msgs just in time, this problem can be addressed. Note: extra care should be taken since cv::Mat wouldn't save extra info such as timestamp, which means you have to store it somewhere else manually.
Hope this helps
@zx1239856 I have also noticed a memory leakage, after running vins in nvidia xavier. Have you explicitly modified the code and solved the problem ?
Thanks, Metin