i3tyc / adaptslam Goto Github PK
View Code? Open in Web Editor NEWAdaptSLAM: Edge-Assisted Adaptive SLAM with Resource Constraints via Uncertainty Minimization
Home Page: https://github.com/i3tyc/AdaptSLAM
AdaptSLAM: Edge-Assisted Adaptive SLAM with Resource Constraints via Uncertainty Minimization
Home Page: https://github.com/i3tyc/AdaptSLAM
Compile according to the build_ros.sh file of AdaptSLAM, execute the make - j command, and report an error:
/usr/bin/ld: warning: libpangolin.so, needed by ../../../../lib/libORB_SLAM3.so, not found (try using -rpath or -rpath-link) /usr/bin/ld: warning: libopencv_calib3d.so.3.4, needed by ../../../../lib/libORB_SLAM3.so, not found (try using -rpath or -rpath-link) /usr/bin/ld: warning: libopencv_features2d.so.3.4, needed by ../../../../lib/libORB_SLAM3.so, not found (try using -rpath or -rpath-link) /usr/bin/ld: warning: libopencv_highgui.so.3.4, needed by ../../../../lib/libORB_SLAM3.so, not found (try using -rpath or -rpath-link) /usr/bin/ld: warning: libopencv_imgproc.so.3.4, needed by ../../../../lib/libORB_SLAM3.so, not found (try using -rpath or -rpath-link) /usr/bin/ld: warning: libopencv_core.so.3.4, needed by ../../../../lib/libORB_SLAM3.so, not found (try using -rpath or -rpath-link) ../../../../lib/libORB_SLAM3.so:对‘cv::String::allocate(unsigned long)’未定义的引用 ../../../../lib/libORB_SLAM3.so:对‘cv::getTextSize(cv::String const&, int, double, int, int*)’未定义的引用 ../../../../lib/libORB_SLAM3.so:对‘cv::error(int, cv::String const&, char const*, char const*, int)’未定义的引用 ../../../../lib/libORB_SLAM3.so:对‘cv::operator<<(cv::FileStorage&, cv::String const&)’未定义的引用 ../../../../lib/libORB_SLAM3.so:对‘cv::Formatter::get(int)’未定义的引用 ../../../../lib/libORB_SLAM3.so:对‘cv::write(cv::FileStorage&, cv::String const&, double)’未定义的引用 ../../../../lib/libORB_SLAM3.so:对‘pangolin::Handler3D::Handler3D(pangolin::OpenGlRenderState&, pangolin::AxisDirection, float, float)’未定义的引用 ../../../../lib/libORB_SLAM3.so:对‘cv::FileStorage::FileStorage(cv::String const&, int, cv::String const&)’未定义的引用 ../../../../lib/libORB_SLAM3.so:对‘cv::String::deallocate()’未定义的引用 ../../../../lib/libORB_SLAM3.so:对‘cv::read(cv::FileNode const&, cv::String&, cv::String const&)’未定义的引用 ../../../../lib/libORB_SLAM3.so:对‘cv::putText(cv::_InputOutputArray const&, cv::String const&, cv::Point_<int>, int, double, cv::Scalar_<double>, int, int, bool)’未定义的引用 ../../../../lib/libORB_SLAM3.so:对‘cv::_OutputArray::create(int, int, int, int, bool, int) const’未定义的引用 ../../../../lib/libORB_SLAM3.so:对‘cv::namedWindow(cv::String const&, int)’未定义的引用 ../../../../lib/libORB_SLAM3.so:对‘cv::write(cv::FileStorage&, cv::String const&, int)’未定义的引用 ../../../../lib/libORB_SLAM3.so:对‘cv::imshow(cv::String const&, cv::_InputArray const&)’未定义的引用 ../../../../lib/libORB_SLAM3.so:对‘cv::FileStorage::operator[](cv::String const&) const’未定义的引用 collect2: error: ld returned 1 exit status CMakeFiles/RGBD.dir/build.make:234: recipe for target '../RGBD' failed make[2]: *** [../RGBD] Error 1 CMakeFiles/Makefile2:104: recipe for target 'CMakeFiles/RGBD.dir/all' failed make[1]: *** [CMakeFiles/RGBD.dir/all] Error 2 make[1]: *** 正在等待未完成的任务.... /usr/bin/ld: warning: libpangolin.so, needed by ../../../../lib/libORB_SLAM3.so, not found (try using -rpath or -rpath-link) /usr/bin/ld: warning: libopencv_calib3d.so.3.4, needed by ../../../../lib/libORB_SLAM3.so, not found (try using -rpath or -rpath-link) /usr/bin/ld: warning: libopencv_features2d.so.3.4, needed by ../../../../lib/libORB_SLAM3.so, not found (try using -rpath or -rpath-link) /usr/bin/ld: warning: libopencv_highgui.so.3.4, needed by ../../../../lib/libORB_SLAM3.so, not found (try using -rpath or -rpath-link) /usr/bin/ld: warning: libopencv_imgproc.so.3.4, needed by ../../../../lib/libORB_SLAM3.so, not found (try using -rpath or -rpath-link) /usr/bin/ld: warning: libopencv_core.so.3.4, needed by ../../../../lib/libORB_SLAM3.so, not found (try using -rpath or -rpath-link) CMakeFiles/Mono.dir/src/ros_mono.cc.o:在函数‘ImageGrabber::GrabImage(boost::shared_ptr<sensor_msgs::Image_<std::allocator<void> > const> const&)’中: ros_mono.cc:(.text+0x1fa):对‘ORB_SLAM3::System::TrackMonocular(cv::Mat const&, double const&, std::vector<ORB_SLAM3::IMU::Point, std::allocator<ORB_SLAM3::IMU::Point> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >)’未定义的引用 ../../../../lib/libORB_SLAM3.so:对‘cv::String::allocate(unsigned long)’未定义的引用 ../../../../lib/libORB_SLAM3.so:对‘cv::getTextSize(cv::String const&, int, double, int, int*)’未定义的引用 ../../../../lib/libORB_SLAM3.so:对‘cv::error(int, cv::String const&, char const*, char const*, int)’未定义的引用 ../../../../lib/libORB_SLAM3.so:对‘cv::operator<<(cv::FileStorage&, cv::String const&)’未定义的引用 ../../../../lib/libORB_SLAM3.so:对‘cv::Formatter::get(int)’未定义的引用 ../../../../lib/libORB_SLAM3.so:对‘cv::write(cv::FileStorage&, cv::String const&, double)’未定义的引用 ../../../../lib/libORB_SLAM3.so:对‘pangolin::Handler3D::Handler3D(pangolin::OpenGlRenderState&, pangolin::AxisDirection, float, float)’未定义的引用 ../../../../lib/libORB_SLAM3.so:对‘cv::FileStorage::FileStorage(cv::String const&, int, cv::String const&)’未定义的引用 ../../../../lib/libORB_SLAM3.so:对‘cv::String::deallocate()’未定义的引用 ../../../../lib/libORB_SLAM3.so:对‘cv::read(cv::FileNode const&, cv::String&, cv::String const&)’未定义的引用 ../../../../lib/libORB_SLAM3.so:对‘cv::putText(cv::_InputOutputArray const&, cv::String const&, cv::Point_<int>, int, double, cv::Scalar_<double>, int, int, bool)’未定义的引用 ../../../../lib/libORB_SLAM3.so:对‘cv::_OutputArray::create(int, int, int, int, bool, int) const’未定义的引用 ../../../../lib/libORB_SLAM3.so:对‘cv::namedWindow(cv::String const&, int)’未定义的引用 ../../../../lib/libORB_SLAM3.so:对‘cv::write(cv::FileStorage&, cv::String const&, int)’未定义的引用 ../../../../lib/libORB_SLAM3.so:对‘cv::imshow(cv::String const&, cv::_InputArray const&)’未定义的引用 ../../../../lib/libORB_SLAM3.so:对‘cv::FileStorage::operator[](cv::String const&) const’未定义的引用 /usr/bin/ld: warning: libpangolin.so,collect2: error: ld returned 1 exit status needed by ../../../../lib/libORB_SLAM3.so, not found (try using -rpath or -rpath-link) /usr/bin/ld: warning: libopencv_calib3d.so.3.4, needed by ../../../../lib/libORB_SLAM3.so, not found (try using -rpath or -rpath-link) /usr/bin/ld: warning: libopencv_features2d.so.3.4, needed by ../../../../lib/libORB_SLAM3.so, not found (try using -rpath or -rpath-link) /usr/bin/ld: warning: libopencv_highgui.so.3.4, needed by ../../../../lib/libORB_SLAM3.so, not found (try using -rpath or -rpath-link) /usr/bin/ld: warning: libopencv_imgproc.so.3.4, needed by ../../../../lib/libORB_SLAM3.so, not found (try using -rpath or -rpath-link) /usr/bin/ld: warning: libopencv_core.so.3.4, needed by ../../../../lib/libORB_SLAM3.so, not found (try using -rpath or -rpath-link) CMakeFiles/Mono_Inertial.dir/src/ros_mono_inertial.cc.o:在函数‘ImageGrabber::SyncWithImu()’中: ros_mono_inertial.cc:(.text+0x11bd):对‘ORB_SLAM3::System::TrackMonocular(cv::Mat const&, double const&, std::vector<ORB_SLAM3::IMU::Point, std::allocator<ORB_SLAM3::IMU::Point> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >)’未定义的引用 ../../../../lib/libORB_SLAM3.so:对‘cv::String::allocate(unsigned long)’未定义的引用 ../../../../lib/libORB_SLAM3.so:对‘cv::getTextSize(cv::String const&, int, double, int, int*)’未定义的引用 ../../../../lib/libORB_SLAM3.so:对‘cv::error(int, cv::String const&, char const*, char const*, int)’未定义的引用 ../CMakeFiles/Mono.dir/build.make:234: recipe for target '../Mono' failed ../make[2]: *** [../Mono] Error 1 ../../lib/libORB_SLAM3.so:对‘cv::operator<<(cv::FileStorage&, cv::String const&)’未定义的引用 ../../../../lib/libORB_SLAM3.so:对CMakeFiles/Makefile2:434: recipe for target 'CMakeFiles/Mono.dir/all' failed ��make[1]: *** [CMakeFiles/Mono.dir/all] Error 2 �cv::Formatter::get(int)’未定义的引用 ../../../../lib/libORB_SLAM3.so:对‘cv::write(cv::FileStorage&, cv::String const&, double)’未定义的引用 ../../../../lib/libORB_SLAM3.so:对‘pangolin::Handler3D::Handler3D(pangolin::OpenGlRenderState&, pangolin::AxisDirection, float, float)’未定义的引用 ../../../../lib/libORB_SLAM3.so:对‘cv::FileStorage::FileStorage(cv::String const&, int, cv::String const&)’未定义的引用 ../../../../lib/libORB_SLAM3.so:对‘cv::String::deallocate()’未定义的引用 ../../../../lib/libORB_SLAM3.so:对‘cv::read(cv::FileNode const&, cv::String&, cv::String const&)’未定义的引用 ../../../../lib/libORB_SLAM3.so:对‘cv::putText(cv::_InputOutputArray const&, cv::String const&, cv::Point_<int>, int, double, cv::Scalar_<double>, int, int, bool)’未定义的引用 ../../../../lib/libORB_SLAM3.so:对‘cv::_OutputArray::create(int, int, int, int, bool, int) const’未定义的引用 ../../../../lib/libORB_SLAM3.so:对‘cv::namedWindow(cv::String const&, int)’未定义的引用 ../../../../lib/libORB_SLAM3.so:对‘cv::write(cv::FileStorage&, cv::String const&, int)’未定义的引用 ../../../../lib/libORB_SLAM3.so:对‘cv::imshow(cv::String const&, cv::_InputArray const&)’未定义的引用 ../../../../lib/libORB_SLAM3.so:对‘cv::FileStorage::operator[](cv::String const&) const’未定义的引用 collect2: error: ld returned 1 exit status CMakeFiles/Mono_Inertial.dir/build.make:234: recipe for target '../Mono_Inertial' failed make[2]: *** [../Mono_Inertial] Error 1 CMakeFiles/Makefile2:67: recipe for target 'CMakeFiles/Mono_Inertial.dir/all' failed make[1]: *** [CMakeFiles/Mono_Inertial.dir/all] Error 2 /usr/bin/ld: warning: libpangolin.so, needed by ../../../../lib/libORB_SLAM3.so, not found (try using -rpath or -rpath-link) /usr/bin/ld: warning: libopencv_calib3d.so.3.4, needed by ../../../../lib/libORB_SLAM3.so, not found (try using -rpath or -rpath-link) /usr/bin/ld: warning: libopencv_features2d.so.3.4, needed by ../../../../lib/libORB_SLAM3.so, not found (try using -rpath or -rpath-link) /usr/bin/ld: warning: libopencv_highgui.so.3.4, needed by ../../../../lib/libORB_SLAM3.so, not found (try using -rpath or -rpath-link) /usr/bin/ld: warning: libopencv_imgproc.so.3.4, needed by ../../../../lib/libORB_SLAM3.so, not found (try using -rpath or -rpath-link) /usr/bin/ld: warning: libopencv_core.so.3.4, needed by ../../../../lib/libORB_SLAM3.so, not found (try using -rpath or -rpath-link) ../../../../lib/libORB_SLAM3.so:对‘cv::String::allocate(unsigned long)’未定义的引用 ../../../../lib/libORB_SLAM3.so:对‘cv::getTextSize(cv::String const&, int, double, int, int*)’未定义的引用 ../../../../lib/libORB_SLAM3.so:对‘cv::error(int, cv::String const&, char const*, char const*, int)’未定义的引用 ../../../../lib/libORB_SLAM3.so:对‘cv::operator<<(cv::FileStorage&, cv::String const&)’未定义的引用 ../../../../lib/libORB_SLAM3.so:对‘cv::Formatter::get(int)’未定义的引用 ../../../../lib/libORB_SLAM3.so:对‘cv::write(cv::FileStorage&, cv::String const&, double)’未定义的引用 ../../../../lib/libORB_SLAM3.so:对‘pangolin::Handler3D::Handler3D(pangolin::OpenGlRenderState&, pangolin::AxisDirection, float, float)’未定义的引用 ../../../../lib/libORB_SLAM3.so:对‘cv::FileStorage::FileStorage(cv::String const&, int, cv::String const&)’未定义的引用 ../../../../lib/libORB_SLAM3.so:对‘cv::String::deallocate()’未定义的引用 ../../../../lib/libORB_SLAM3.so:对‘cv::read(cv::FileNode const&, cv::String&, cv::String const&)’未定义的引用 ../../../../lib/libORB_SLAM3.so:对‘cv::putText(cv::_InputOutputArray const&, cv::String const&, cv::Point_<int>, int, double, cv::Scalar_<double>, int, int, bool)’未定义的引用 ../../../../lib/libORB_SLAM3.so:对‘cv::_OutputArray::create(int, int, int, int, bool, int) const’未定义的引用 ../../../../lib/libORB_SLAM3.so:对‘cv::namedWindow(cv::String const&, int)’未定义的引用 ../../../../lib/libORB_SLAM3.so:对‘cv::write(cv::FileStorage&, cv::String const&, int)’未定义的引用 ../../../../lib/libORB_SLAM3.so:对‘cv::imshow(cv::String const&, cv::_InputArray const&)’未定义的引用 ../../../../lib/libORB_SLAM3.so:对‘cv::FileStorage::operator[](cv::String const&) const’未定义的引用 collect2: error: ld returned 1 exit status CMakeFiles/Stereo.dir/build.make:234: recipe for target '../Stereo' failed make[2]: *** [../Stereo] Error 1 CMakeFiles/Makefile2:141: recipe for target 'CMakeFiles/Stereo.dir/all' failed make[1]: *** [CMakeFiles/Stereo.dir/all] Error 2 Makefile:129: recipe for target 'all' failed make: *** [all] Error 2
Is the compilation failure because opencv3.4 is forced?
How can I change it to opencv4.4?
Looking forward to the author's reply!!!
Hi everyone. I've benn trying to build and run the AdaptSLAM codebase. After installing all the dependencies and libraries, I ran ./build.sh
following the instruction. However, I had the following error:
/home/lightwish/AdaptSLAM/Sim AdaptSLAM/Examples_old/Monocular/mono_kitti.cc:108:97: error: no matching function for call to ‘ORB_SLAM3::System::TrackMonocular(cv::Mat&, double&, int, std::vector<ORB_SLAM3::IMU::Point>, __gnu_cxx::__alloc_traits<std::allocator<std::__cxx11::basic_string<char> >, std::__cxx11::basic_string<char> >::value_type&)’
108 | SLAM.TrackMonocular(im,tframe,-1,vector<ORB_SLAM3::IMU::Point>(), vstrImageFilenames[ni]);
| ^
In file included from /home/lightwish/AdaptSLAM/Sim AdaptSLAM/Examples_old/Monocular/mono_kitti.cc:27:
/home/lightwish/AdaptSLAM/Sim AdaptSLAM/include/System.h:123:18: note: candidate: ‘Sophus::SE3f ORB_SLAM3::System::TrackMonocular(const cv::Mat&, const double&, const std::vector<ORB_SLAM3::IMU::Point>&, std::string)’
123 | Sophus::SE3f TrackMonocular(const cv::Mat &im, const double ×tamp, const vector<IMU::Point>& vImuMeas = vector<IMU::Point>(), string filename="");
| ^~~~~~~~~~~~~~
/home/lightwish/AdaptSLAM/Sim AdaptSLAM/include/System.h:123:18: note: candidate expects 4 arguments, 5 provided
/home/lightwish/AdaptSLAM/Sim AdaptSLAM/Examples_old/Monocular/mono_kitti.cc:62:12: warning: unused variable ‘t_resize’ [-Wunused-variable]
62 | double t_resize = 0.f;
| ^~~~~~~~
/home/lightwish/AdaptSLAM/Sim AdaptSLAM/Examples_old/Monocular/mono_kitti.cc:63:12: warning: unused variable ‘t_track’ [-Wunused-variable]
63 | double t_track = 0.f;
| ^~~~~~~
/home/lightwish/AdaptSLAM/Sim AdaptSLAM/Examples_old/Monocular-Inertial/mono_inertial_euroc.cc: In function ‘int main(int, char**)’:
/home/lightwish/AdaptSLAM/Sim AdaptSLAM/Examples_old/Monocular-Inertial/mono_inertial_euroc.cc:195:43: error: cannot convert ‘int’ to ‘const std::vector<ORB_SLAM3::IMU::Point>&’
195 | SLAM.TrackMonocular(im,tframe,-1,vImuMeas); // TODO change to monocular_inertial
| ^~
| |
| int
In file included from /home/lightwish/AdaptSLAM/Sim AdaptSLAM/Examples_old/Monocular-Inertial/mono_inertial_euroc.cc:28:
/home/lightwish/AdaptSLAM/Sim AdaptSLAM/include/System.h:123:103: note: initializing argument 3 of ‘Sophus::SE3f ORB_SLAM3::System::TrackMonocular(const cv::Mat&, const double&, const std::vector<ORB_SLAM3::IMU::Point>&, std::string)’
123 | Sophus::SE3f TrackMonocular(const cv::Mat &im, const double ×tamp, const vector<IMU::Point>& vImuMeas = vector<IMU::Point>(), string filename="");
| ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/lightwish/AdaptSLAM/Sim AdaptSLAM/Examples_old/Monocular-Inertial/mono_inertial_euroc.cc:122:12: warning: unused variable ‘t_resize’ [-Wunused-variable]
122 | double t_resize = 0.f;
| ^~~~~~~~
/home/lightwish/AdaptSLAM/Sim AdaptSLAM/Examples_old/Monocular-Inertial/mono_inertial_euroc.cc:123:12: warning: unused variable ‘t_track’ [-Wunused-variable]
123 | double t_track = 0.f;
| ^~~~~~~
/home/lightwish/AdaptSLAM/Sim AdaptSLAM/Examples_old/Monocular-Inertial/mono_inertial_tum_vi.cc: In function ‘int main(int, char**)’:
/home/lightwish/AdaptSLAM/Sim AdaptSLAM/Examples_old/Monocular-Inertial/mono_inertial_tum_vi.cc:207:43: error: cannot convert ‘int’ to ‘const std::vector<ORB_SLAM3::IMU::Point>&’
207 | SLAM.TrackMonocular(im,tframe,-1,vImuMeas); // TODO change to monocular_inertial
| ^~
| |
| int
Then I checked the mono_kitti.cc, mono_inertial_euroc.cc, and mono_inertial_tum_vi.cc three files, I found that they call the ORB_SLAM3::System::TrackMonocular function as SLAM.TrackMonocular(im,tframe,-1,vector<ORB_SLAM3::IMU::Point>(), vstrImageFilenames[ni]);
or SLAM.TrackMonocular(im,tframe,-1,vImuMeas);
, and the problem seems to be the "-1" input, since the function is defined in system.cc as Sophus::SE3f System::TrackMonocular(const cv::Mat &im, const double ×tamp, const vector<IMU::Point>& vImuMeas, string filename)
without an int input. And in original ORB-SLAM3, there is also no "-1" when calling the TrackMonocular()
function. Actually I'm not familiar with the AdaptSLAM code or ORB-SLAM3 code. But it causes build errors. Can someone please explain what is the usage of the "-1" how to fix the errors. I really appreciate your help!
a. Download the EuRoC V102 sequence.
Can I run the RGBD dataset with this code? I see the monocular mode tested in the paper.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.