rtabmap_ros icon indicating copy to clipboard operation
rtabmap_ros copied to clipboard

CUDA opencv compatibility

Open fbliman opened this issue 1 year ago • 3 comments

Hi! I am quite new in robotics and rtabmap-ros has been my most used SLAM software. Up to now i have used it only in the cPU version, but recently I got a GPU laptop and I am trying to install it with all cUDA capabilities with no luck.

HARDWARE: Lenovo P5 AMD RYZEN 5 with NVIDIA Geforce 3050Ti OS: UBUNTU 20.04 Ros noetic

I know that ros noetic is built with opencv 4.2 and I was planning to build from source opencv 4.2 with CUDA so that I could use SuperPoint+SuperGlue, but I couldn't make it work so I ended up installing opencv 4.5.2 with cuda 11.4 so now I am running with opencv 4.2/4.5 conflict when installing rtabmap--ros

First I tryed ti install opencv 4.2 with either cuda 10 or 11 but failed in both cases ( I couldnt make my gpu work with cuda 10 and I couldnt make opencv 4.2 work with cuda 11)

I would really appreciate some guidance in which would be the correct setup to make rtabmap_ros + ros noetic working in this hardware.

Thanks!!

Federico Bliman

fbliman avatar Aug 07 '23 22:08 fbliman

follow up:

I have the system up and working (almost...) I finally installed opencv 4.2 with cuda 11.4 So the intallation of ros noetic and rtabmap was simple.

I am having runtime issues with the libtorch library libtorch-cxx11-abi-shared-with-deps-1.12.1+cu113 not sure If I choose the correct one, there is no specific version for cuda 11.4

` [ERROR] [1691590165.592998582]: Exception thrown while processing service call: Legacy model format is not supported on mobile. Exception raised from deserialize at ../torch/csrc/jit/serialization/import.cpp:273 (most recent call first): frame #0: c10::Error::Error(c10::SourceLocation, std::__cxx11::basic_string<char, std::char_traits, std::allocator >) + 0x6b (0x7f0d947f22eb in /home/fede/libtorch-cxx11-abi-shared-with-deps-1.12.1+cu113/libtorch/lib/libc10.so) frame #1: c10::detail::torchCheckFail(char const*, char const*, unsigned int, char const*) + 0xd1 (0x7f0d947ede41 in /home/fede/libtorch-cxx11-abi-shared-with-deps-1.12.1+cu113/libtorch/lib/libc10.so) frame #2: + 0x3e01465 (0x7f0d624b3465 in /home/fede/libtorch-cxx11-abi-shared-with-deps-1.12.1+cu113/libtorch/lib/libtorch_cpu.so) frame #3: torch::jit::load(std::shared_ptrcaffe2::serialize::ReadAdapterInterface, c10::optionalc10::Device, std::unordered_map<std::__cxx11::basic_string<char, std::char_traits, std::allocator >, std::__cxx11::basic_string<char, std::char_traits, std::allocator >, std::hash<std::__cxx11::basic_string<char, std::char_traits, std::allocator > >, std::equal_to<std::__cxx11::basic_string<char, std::char_traits, std::allocator > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits, std::allocator > const, std::__cxx11::basic_string<char, std::char_traits, std::allocator > > > >&) + 0x1cd (0x7f0d624b4b8d in /home/fede/libtorch-cxx11-abi-shared-with-deps-1.12.1+cu113/libtorch/lib/libtorch_cpu.so) frame #4: torch::jit::load(std::__cxx11::basic_string<char, std::char_traits, std::allocator > const&, c10::optionalc10::Device, std::unordered_map<std::__cxx11::basic_string<char, std::char_traits, std::allocator >, std::__cxx11::basic_string<char, std::char_traits, std::allocator >, std::hash<std::__cxx11::basic_string<char, std::char_traits, std::allocator > >, std::equal_to<std::__cxx11::basic_string<char, std::char_traits, std::allocator > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits, std::allocator > const, std::__cxx11::basic_string<char, std::char_traits, std::allocator > > > >&) + 0xe0 (0x7f0d624b77a0 in /home/fede/libtorch-cxx11-abi-shared-with-deps-1.12.1+cu113/libtorch/lib/libtorch_cpu.so) frame #5: torch::jit::load(std::__cxx11::basic_string<char, std::char_traits, std::allocator > const&, c10::optionalc10::Device) + 0x6f (0x7f0d624b794f in /home/fede/libtorch-cxx11-abi-shared-with-deps-1.12.1+cu113/libtorch/lib/libtorch_cpu.so) frame #6: torch::serialize::InputArchive::load_from(std::__cxx11::basic_string<char, std::char_traits, std::allocator > const&, c10::optionalc10::Device) + 0x2a (0x7f0d62b7a6da in /home/fede/libtorch-cxx11-abi-shared-with-deps-1.12.1+cu113/libtorch/lib/libtorch_cpu.so) frame #7: void torch::load<std::shared_ptrrtabmap::SuperPoint, std::__cxx11::basic_string<char, std::char_traits, std::allocator > >(std::shared_ptrrtabmap::SuperPoint&, std::__cxx11::basic_string<char, std::char_traits, std::allocator >&&) + 0x4b (0x7f0d989546db in /usr/local/lib/librtabmap_core.so.0.21) frame #8: rtabmap::SPDetector::SPDetector(std::__cxx11::basic_string<char, std::char_traits, std::allocator > const&, float, bool, int, bool) + 0x1d0 (0x7f0d989520e0 in /usr/local/lib/librtabmap_core.so.0.21) frame #9: rtabmap::SuperPointTorch::parseParameters(std::map<std::__cxx11::basic_string<char, std::char_traits, std::allocator >, std::__cxx11::basic_string<char, std::char_traits, std::allocator >, std::less<std::__cxx11::basic_string<char, std::char_traits, std::allocator > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits, std::allocator > const, std::__cxx11::basic_string<char, std::char_traits, std::allocator > > > > const&) + 0x210 (0x7f0d985b8b50 in /usr/local/lib/librtabmap_core.so.0.21) frame #10: rtabmap::SuperPointTorch::SuperPointTorch(std::map<std::__cxx11::basic_string<char, std::char_traits, std::allocator >, std::__cxx11::basic_string<char, std::char_traits, std::allocator >, std::less<std::__cxx11::basic_string<char, std::char_traits, std::allocator > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits, std::allocator > const, std::__cxx11::basic_string<char, std::char_traits, std::allocator > > > > const&) + 0xcb (0x7f0d985b8dab in /usr/local/lib/librtabmap_core.so.0.21) frame #11: rtabmap::Feature2D::create(rtabmap::Feature2D::Type, std::map<std::__cxx11::basic_string<char, std::char_traits, std::allocator >, std::__cxx11::basic_string<char, std::char_traits, std::allocator >, std::less<std::__cxx11::basic_string<char, std::char_traits, std::allocator > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits, std::allocator > const, std::__cxx11::basic_string<char, std::char_traits, std::allocator > > > > const&) + 0x1f0 (0x7f0d985b8fe0 in /usr/local/lib/librtabmap_core.so.0.21) frame #12: rtabmap::Feature2D::create(std::map<std::__cxx11::basic_string<char, std::char_traits, std::allocator >, std::__cxx11::basic_string<char, std::char_traits, std::allocator >, std::less<std::__cxx11::basic_string<char, std::char_traits, std::allocator > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits, std::allocator > const, std::__cxx11::basic_string<char, std::char_traits, std::allocator > > > > const&) + 0xb3 (0x7f0d985b91c3 in /usr/local/lib/librtabmap_core.so.0.21) frame #13: rtabmap::RegistrationVis::parseParameters(std::map<std::__cxx11::basic_string<char, std::char_traits, std::allocator >, std::__cxx11::basic_string<char, std::char_traits, std::allocator >, std::less<std::__cxx11::basic_string<char, std::char_traits, std::allocator > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits, std::allocator > const, std::cxx11::basic_string<char, std::char_traits, std::allocator > > > > const&) + 0x16b4 (0x7f0d987ad624 in /usr/local/lib/librtabmap_core.so.0.21) frame #14: rtabmap::Memory::parseParameters(std::map<std::cxx11::basic_string<char, std::char_traits, std::allocator >, std::cxx11::basic_string<char, std::char_traits, std::allocator >, std::less<std::cxx11::basic_string<char, std::char_traits, std::allocator > >, std::allocator<std::pair<std::cxx11::basic_string<char, std::char_traits, std::allocator > const, std::cxx11::basic_string<char, std::char_traits, std::allocator > > > > const&) + 0x1015 (0x7f0d98482d25 in /usr/local/lib/librtabmap_core.so.0.21) frame #15: rtabmap::Rtabmap::parseParameters(std::map<std::cxx11::basic_string<char, std::char_traits, std::allocator >, std::cxx11::basic_string<char, std::char_traits, std::allocator >, std::less<std::cxx11::basic_string<char, std::char_traits, std::allocator > >, std::allocator<std::pair<std::cxx11::basic_string<char, std::char_traits, std::allocator > const, std::cxx11::basic_string<char, std::char_traits, std::allocator > > > > const&) + 0x1247 (0x7f0d984069a7 in /usr/local/lib/librtabmap_core.so.0.21) frame #16: rtabmap_slam::CoreWrapper::updateRtabmapCallback(std_srvs::EmptyRequest<std::allocator >&, std_srvs::EmptyResponse<std::allocator >&) + 0x1be8 (0x7f0cd45c4a1e in /home/fede/catkin_ws/devel/lib//librtabmap_slam_plugins.so) frame #17: boost::mfi::mf2<bool, rtabmap_slam::CoreWrapper, std_srvs::EmptyRequest<std::allocator >&, std_srvs::EmptyResponse<std::allocator >&>::operator()(rtabmap_slam::CoreWrapper*, std_srvs::EmptyRequest<std::allocator >&, std_srvs::EmptyResponse<std::allocator >&) const + 0x7a (0x7f0cd46a2ecc in /home/fede/catkin_ws/devel/lib//librtabmap_slam_plugins.so) frame #18: bool boost::bi::list3<boost::bi::value<rtabmap_slam::CoreWrapper*>, boost::arg<1>, boost::arg<2> >::operator()<bool, boost::mfi::mf2<bool, rtabmap_slam::CoreWrapper, std_srvs::EmptyRequest<std::allocator >&, std_srvs::EmptyResponse<std::allocator >&>, boost::bi::rrlist2<std_srvs::EmptyRequest<std::allocator >&, std_srvs::EmptyResponse<std::allocator >&> >(boost::bi::type, boost::mfi::mf2<bool, rtabmap_slam::CoreWrapper, std_srvs::EmptyRequest<std::allocator >&, std_srvs::EmptyResponse<std::allocator >&>&, boost::bi::rrlist2<std_srvs::EmptyRequest<std::allocator >&, std_srvs::EmptyResponse<std::allocator >&>&, long) + 0x8e (0x7f0cd468a508 in /home/fede/catkin_ws/devel/lib//librtabmap_slam_plugins.so) frame #19: bool boost::bi::bind_t<bool, boost::mfi::mf2<bool, rtabmap_slam::CoreWrapper, std_srvs::EmptyRequest<std::allocator >&, std_srvs::EmptyResponse<std::allocator >&>, boost::bi::list3<boost::bi::value<rtabmap_slam::CoreWrapper*>, boost::arg<1>, boost::arg<2> > >::operator()<std_srvs::EmptyRequest<std::allocator >&, std_srvs::EmptyResponse<std::allocator >&>(std_srvs::EmptyRequest<std::allocator >&, std_srvs::EmptyResponse<std::allocator >&) + 0x5b (0x7f0cd46776cb in /home/fede/catkin_ws/devel/lib//librtabmap_slam_plugins.so) frame #20: boost::detail::function::function_obj_invoker2<boost::bi::bind_t<bool, boost::mfi::mf2<bool, rtabmap_slam::CoreWrapper, std_srvs::EmptyRequest<std::allocator >&, std_srvs::EmptyResponse<std::allocator >&>, boost::bi::list3<boost::bi::value<rtabmap_slam::CoreWrapper*>, boost::arg<1>, boost::arg<2> > >, bool, std_srvs::EmptyRequest<std::allocator >&, std_srvs::EmptyResponse<std::allocator >&>::invoke(boost::detail::function::function_buffer&, std_srvs::EmptyRequest<std::allocator >&, std_srvs::EmptyResponse<std::allocator >&) + 0x37 (0x7f0cd46624d3 in /home/fede/catkin_ws/devel/lib//librtabmap_slam_plugins.so) frame #21: boost::function2<bool, std_srvs::EmptyRequest<std::allocator >&, std_srvs::EmptyResponse<std::allocator >&>::operator()(std_srvs::EmptyRequest<std::allocator >&, std_srvs::EmptyResponse<std::allocator >&) const + 0x75 (0x7f0cd46f6a5b in /home/fede/catkin_ws/devel/lib//librtabmap_slam_plugins.so) frame #22: ros::ServiceSpec<std_srvs::EmptyRequest<std::allocator >, std_srvs::EmptyResponse<std::allocator > >::call(boost::function<bool (std_srvs::EmptyRequest<std::allocator >&, std_srvs::EmptyResponse<std::allocator >&)> const&, ros::ServiceSpecCallParams<std_srvs::EmptyRequest<std::allocator >, std_srvs::EmptyResponse<std::allocator > >&) + 0x48 (0x7f0cd46f0f1f in /home/fede/catkin_ws/devel/lib//librtabmap_slam_plugins.so) frame #23: ros::ServiceCallbackHelperT<ros::ServiceSpec<std_srvs::EmptyRequest<std::allocator >, std_srvs::EmptyResponse<std::allocator > > >::call(ros::ServiceCallbackHelperCallParams&) + 0x123 (0x7f0cd46e3711 in /home/fede/catkin_ws/devel/lib//librtabmap_slam_plugins.so) frame #24: ros::ServiceCallback::call() + 0x1e9 (0x7f0d97f95439 in /opt/ros/noetic/lib/libroscpp.so) frame #25: ros::CallbackQueue::callOneCB(ros::CallbackQueue::TLS*) + 0x112 (0x7f0d97fe6172 in /opt/ros/noetic/lib/libroscpp.so) frame #26: ros::CallbackQueue::callOne(ros::WallDuration) + 0x1e5 (0x7f0d97fe6f15 in /opt/ros/noetic/lib/libroscpp.so) frame #27: nodelet::detail::CallbackQueue::callOne() + 0x79 (0x7f0d98efa2c9 in /opt/ros/noetic/lib/libnodeletlib.so) frame #28: nodelet::detail::CallbackQueueManager::workerThread(nodelet::detail::CallbackQueueManager::ThreadInfo*) + 0x207 (0x7f0d98efcd67 in /opt/ros/noetic/lib/libnodeletlib.so) frame #29: + 0x1143b (0x7f0d9794f43b in /lib/x86_64-linux-gnu/libboost_thread.so.1.71.0) frame #30: + 0x8609 (0x7f0d97995609 in /lib/x86_64-linux-gnu/libpthread.so.0) frame #31: clone + 0x43 (0x7f0d97b65133 in /lib/x86_64-linux-gnu/libc.so.6)

[ERROR] [1691590165.593320900]: Service call failed: service [/rtabmap/update_parameters] responded with an error: Legacy model format is not supported on mobile. Exception raised from deserialize at ../torch/csrc/jit/serialization/import.cpp:273 (most recent call first): frame #0: c10::Error::Error(c10::SourceLocation, std::__cxx11::basic_string<char, std::char_traits, std::allocator >) + 0x6b (0x7f0d947f22eb in /home/fede/libtorch-cxx11-abi-shared-with-deps-1.12.1+cu113/libtorch/lib/libc10.so) frame #1: c10::detail::torchCheckFail(char const*, char const*, unsigned int, char const*) + 0xd1 (0x7f0d947ede41 in /home/fede/libtorch-cxx11-abi-shared-with-deps-1.12.1+cu113/libtorch/lib/libc10.so) frame #2: + 0x3e01465 (0x7f0d624b3465 in /home/fede/libtorch-cxx11-abi-shared-with-deps-1.12.1+cu113/libtorch/lib/libtorch_cpu.so) frame #3: torch::jit::load(std::shared_ptrcaffe2::serialize::ReadAdapterInterface, c10::optionalc10::Device, std::unordered_map<std::__cxx11::basic_string<char, std::char_traits, std::allocator >, std::__cxx11::basic_string<char, std::char_traits, std::allocator >, std::hash<std::__cxx11::basic_string<char, std::char_traits, std::allocator > >, std::equal_to<std::__cxx11::basic_string<char, std::char_traits, std::allocator > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits, std::allocator > const, std::__cxx11::basic_string<char, std::char_traits, std::allocator > > > >&) + 0x1cd (0x7f0d624b4b8d in /home/fede/libtorch-cxx11-abi-shared-with-deps-1.12.1+cu113/libtorch/lib/libtorch_cpu.so) frame #4: torch::jit::load(std::__cxx11::basic_string<char, std::char_traits, std::allocator > const&, c10::optionalc10::Device, std::unordered_map<std::__cxx11::basic_string<char, std::char_traits, std::allocator >, std::__cxx11::basic_string<char, std::char_traits, std::allocator >, std::hash<std::__cxx11::basic_string<char, std::char_traits, std::allocator > >, std::equal_to<std::__cxx11::basic_string<char, std::char_traits, std::allocator > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits, std::allocator > const, std::__cxx11::basic_string<char, std::char_traits, std::allocator > > > >&) + 0xe0 (0x7f0d624b77a0 in /home/fede/libtorch-cxx11-abi-shared-with-deps-1.12.1+cu113/libtorch/lib/libtorch_cpu.so) frame #5: torch::jit::load(std::__cxx11::basic_string<char, std::char_traits, std::allocator > const&, c10::optionalc10::Device) + 0x6f (0x7f0d624b794f in /home/fede/libtorch-cxx11-abi-shared-with-deps-1.12.1+cu113/libtorch/lib/libtorch_cpu.so) frame #6: torch::serialize::InputArchive::load_from(std::__cxx11::basic_string<char, std::char_traits, std::allocator > const&, c10::optionalc10::Device) + 0x2a (0x7f0d62b7a6da in /home/fede/libtorch-cxx11-abi-shared-with-deps-1.12.1+cu113/libtorch/lib/libtorch_cpu.so) frame #7: void torch::load<std::shared_ptrrtabmap::SuperPoint, std::__cxx11::basic_string<char, std::char_traits, std::allocator > >(std::shared_ptrrtabmap::SuperPoint&, std::__cxx11::basic_string<char, std::char_traits, std::allocator >&&) + 0x4b (0x7f0d989546db in /usr/local/lib/librtabmap_core.so.0.21) frame #8: rtabmap::SPDetector::SPDetector(std::__cxx11::basic_string<char, std::char_traits, std::allocator > const&, float, bool, int, bool) + 0x1d0 (0x7f0d989520e0 in /usr/local/lib/librtabmap_core.so.0.21) frame #9: rtabmap::SuperPointTorch::parseParameters(std::map<std::__cxx11::basic_string<char, std::char_traits, std::allocator >, std::__cxx11::basic_string<char, std::char_traits, std::allocator >, std::less<std::__cxx11::basic_string<char, std::char_traits, std::allocator > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits, std::allocator > const, std::__cxx11::basic_string<char, std::char_traits, std::allocator > > > > const&) + 0x210 (0x7f0d985b8b50 in /usr/local/lib/librtabmap_core.so.0.21) frame #10: rtabmap::SuperPointTorch::SuperPointTorch(std::map<std::__cxx11::basic_string<char, std::char_traits, std::allocator >, std::__cxx11::basic_string<char, std::char_traits, std::allocator >, std::less<std::__cxx11::basic_string<char, std::char_traits, std::allocator > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits, std::allocator > const, std::__cxx11::basic_string<char, std::char_traits, std::allocator > > > > const&) + 0xcb (0x7f0d985b8dab in /usr/local/lib/librtabmap_core.so.0.21) frame #11: rtabmap::Feature2D::create(rtabmap::Feature2D::Type, std::map<std::__cxx11::basic_string<char, std::char_traits, std::allocator >, std::__cxx11::basic_string<char, std::char_traits, std::allocator >, std::less<std::__cxx11::basic_string<char, std::char_traits, std::allocator > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits, std::allocator > const, std::__cxx11::basic_string<char, std::char_traits, std::allocator > > > > const&) + 0x1f0 (0x7f0d985b8fe0 in /usr/local/lib/librtabmap_core.so.0.21) frame #12: rtabmap::Feature2D::create(std::map<std::__cxx11::basic_string<char, std::char_traits, std::allocator >, std::__cxx11::basic_string<char, std::char_traits, std::allocator >, std::less<std::__cxx11::basic_string<char, std::char_traits, std::allocator > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits, std::allocator > const, std::__cxx11::basic_string<char, std::char_traits, std::allocator > > > > const&) + 0xb3 (0x7f0d985b91c3 in /usr/local/lib/librtabmap_core.so.0.21) frame #13: rtabmap::RegistrationVis::parseParameters(std::map<std::__cxx11::basic_string<char, std::char_traits, std::allocator >, std::__cxx11::basic_string<char, std::char_traits, std::allocator >, std::less<std::__cxx11::basic_string<char, std::char_traits, std::allocator > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits, std::allocator > const, std::cxx11::basic_string<char, std::char_traits, std::allocator > > > > const&) + 0x16b4 (0x7f0d987ad624 in /usr/local/lib/librtabmap_core.so.0.21) frame #14: rtabmap::Memory::parseParameters(std::map<std::cxx11::basic_string<char, std::char_traits, std::allocator >, std::cxx11::basic_string<char, std::char_traits, std::allocator >, std::less<std::cxx11::basic_string<char, std::char_traits, std::allocator > >, std::allocator<std::pair<std::cxx11::basic_string<char, std::char_traits, std::allocator > const, std::cxx11::basic_string<char, std::char_traits, std::allocator > > > > const&) + 0x1015 (0x7f0d98482d25 in /usr/local/lib/librtabmap_core.so.0.21) frame #15: rtabmap::Rtabmap::parseParameters(std::map<std::cxx11::basic_string<char, std::char_traits, std::allocator >, std::cxx11::basic_string<char, std::char_traits, std::allocator >, std::less<std::cxx11::basic_string<char, std::char_traits, std::allocator > >, std::allocator<std::pair<std::cxx11::basic_string<char, std::char_traits, std::allocator > const, std::cxx11::basic_string<char, std::char_traits, std::allocator > > > > const&) + 0x1247 (0x7f0d984069a7 in /usr/local/lib/librtabmap_core.so.0.21) frame #16: rtabmap_slam::CoreWrapper::updateRtabmapCallback(std_srvs::EmptyRequest<std::allocator >&, std_srvs::EmptyResponse<std::allocator >&) + 0x1be8 (0x7f0cd45c4a1e in /home/fede/catkin_ws/devel/lib//librtabmap_slam_plugins.so) frame #17: boost::mfi::mf2<bool, rtabmap_slam::CoreWrapper, std_srvs::EmptyRequest<std::allocator >&, std_srvs::EmptyResponse<std::allocator >&>::operator()(rtabmap_slam::CoreWrapper*, std_srvs::EmptyRequest<std::allocator >&, std_srvs::EmptyResponse<std::allocator >&) const + 0x7a (0x7f0cd46a2ecc in /home/fede/catkin_ws/devel/lib//librtabmap_slam_plugins.so) frame #18: bool boost::bi::list3<boost::bi::value<rtabmap_slam::CoreWrapper*>, boost::arg<1>, boost::arg<2> >::operator()<bool, boost::mfi::mf2<bool, rtabmap_slam::CoreWrapper, std_srvs::EmptyRequest<std::allocator >&, std_srvs::EmptyResponse<std::allocator >&>, boost::bi::rrlist2<std_srvs::EmptyRequest<std::allocator >&, std_srvs::EmptyResponse<std::allocator >&> >(boost::bi::type, boost::mfi::mf2<bool, rtabmap_slam::CoreWrapper, std_srvs::EmptyRequest<std::allocator >&, std_srvs::EmptyResponse<std::allocator >&>&, boost::bi::rrlist2<std_srvs::EmptyRequest<std::allocator >&, std_srvs::EmptyResponse<std::allocator >&>&, long) + 0x8e (0x7f0cd468a508 in /home/fede/catkin_ws/devel/lib//librtabmap_slam_plugins.so) frame #19: bool boost::bi::bind_t<bool, boost::mfi::mf2<bool, rtabmap_slam::CoreWrapper, std_srvs::EmptyRequest<std::allocator >&, std_srvs::EmptyResponse<std::allocator >&>, boost::bi::list3<boost::bi::value<rtabmap_slam::CoreWrapper*>, boost::arg<1>, boost::arg<2> > >::operator()<std_srvs::EmptyRequest<std::allocator >&, std_srvs::EmptyResponse<std::allocator >&>(std_srvs::EmptyRequest<std::allocator >&, std_srvs::EmptyResponse<std::allocator >&) + 0x5b (0x7f0cd46776cb in /home/fede/catkin_ws/devel/lib//librtabmap_slam_plugins.so) frame #20: boost::detail::function::function_obj_invoker2<boost::bi::bind_t<bool, boost::mfi::mf2<bool, rtabmap_slam::CoreWrapper, std_srvs::EmptyRequest<std::allocator >&, std_srvs::EmptyResponse<std::allocator >&>, boost::bi::list3<boost::bi::value<rtabmap_slam::CoreWrapper*>, boost::arg<1>, boost::arg<2> > >, bool, std_srvs::EmptyRequest<std::allocator >&, std_srvs::EmptyResponse<std::allocator >&>::invoke(boost::detail::function::function_buffer&, std_srvs::EmptyRequest<std::allocator >&, std_srvs::EmptyResponse<std::allocator >&) + 0x37 (0x7f0cd46624d3 in /home/fede/catkin_ws/devel/lib//librtabmap_slam_plugins.so) frame #21: boost::function2<bool, std_srvs::EmptyRequest<std::allocator >&, std_srvs::EmptyResponse<std::allocator >&>::operator()(std_srvs::EmptyRequest<std::allocator >&, std_srvs::EmptyResponse<std::allocator >&) const + 0x75 (0x7f0cd46f6a5b in /home/fede/catkin_ws/devel/lib//librtabmap_slam_plugins.so) frame #22: ros::ServiceSpec<std_srvs::EmptyRequest<std::allocator >, std_srvs::EmptyResponse<std::allocator > >::call(boost::function<bool (std_srvs::EmptyRequest<std::allocator >&, std_srvs::EmptyResponse<std::allocator >&)> const&, ros::ServiceSpecCallParams<std_srvs::EmptyRequest<std::allocator >, std_srvs::EmptyResponse<std::allocator > >&) + 0x48 (0x7f0cd46f0f1f in /home/fede/catkin_ws/devel/lib//librtabmap_slam_plugins.so) frame #23: ros::ServiceCallbackHelperT<ros::ServiceSpec<std_srvs::EmptyRequest<std::allocator >, std_srvs::EmptyResponse<std::allocator > > >::call(ros::ServiceCallbackHelperCallParams&) + 0x123 (0x7f0cd46e3711 in /home/fede/catkin_ws/devel/lib//librtabmap_slam_plugins.so) frame #24: ros::ServiceCallback::call() + 0x1e9 (0x7f0d97f95439 in /opt/ros/noetic/lib/libroscpp.so) frame #25: ros::CallbackQueue::callOneCB(ros::CallbackQueue::TLS*) + 0x112 (0x7f0d97fe6172 in /opt/ros/noetic/lib/libroscpp.so) frame #26: ros::CallbackQueue::callOne(ros::WallDuration) + 0x1e5 (0x7f0d97fe6f15 in /opt/ros/noetic/lib/libroscpp.so) frame #27: nodelet::detail::CallbackQueue::callOne() + 0x79 (0x7f0d98efa2c9 in /opt/ros/noetic/lib/libnodeletlib.so) frame #28: nodelet::detail::CallbackQueueManager::workerThread(nodelet::detail::CallbackQueueManager::ThreadInfo*) + 0x207 (0x7f0d98efcd67 in /opt/ros/noetic/lib/libnodeletlib.so) frame #29: + 0x1143b (0x7f0d9794f43b in /lib/x86_64-linux-gnu/libboost_thread.so.1.71.0) frame #30: + 0x8609 (0x7f0d97995609 in /lib/x86_64-linux-gnu/libpthread.so.0) frame #31: clone + 0x43 (0x7f0d97b65133 in /lib/x86_64-linux-gnu/libc.so.6)

`

fbliman avatar Aug 09 '23 14:08 fbliman

I fix this with this with the update weights here

and now I can get the nodes up, but I am getting a terminate called after throwing an instance of

'c10::CUDAOutOfMemoryError' what(): CUDA out of memory. Tried to allocate 226.00 MiB (GPU 0; 3.81 GiB total capacity; 18.41 MiB already allocated; 219.44 MiB free; 30.00 MiB reserved in total by PyTorch) If reserved memory is >> allocated memory try setting max_split_size_mb to avoid fragmentation. See documentation for Memory Management and PYTORCH_CUDA_ALLOC_CONF

any clues/?

fbliman avatar Aug 09 '23 17:08 fbliman

The last error is "out of GPU memory", you may need more memory.

For special builds like you did, the long way is to uninstall ros-$ROS_DISTRO-cv-bridge completely, rebuild/install opencv with CUDA support, then rebuild cv_bridge from source (and any packages from source you need that have been uninstalled when removing cv_bridge).

For CUDA/pytorch compatibility with rtabmap_ros, got an example here: https://github.com/introlab/rtabmap_ros/blob/master/docker/noetic/superpoint/Dockerfile

matlabbe avatar Aug 13 '23 21:08 matlabbe