Ubuntu16.04 왕경대신VIORB 편역 중 겪은 문제
전언
요 며칠 만났어요.rosbuild_ss 아래에서 코드를 컴파일하지만 프로그램을 실행할 수 없고 데이터베이스의 난감한 국면을 벗어날 수 없다.2. rosbuild_ss 아래에 LearnVIORB와 다른 이를 기반으로 한 코드가 동시에 존재할 때ros 경로의 문제;3. 그리고rosbuildss 철저히 일하지 않는 문제;4. ~/.zshrc 시리즈 설정 문제;5. 그리고rosbuildss 아래의 물건을 먼저 복사해 주세요.캣킨에서...ss 아래 컴파일!이번에 VIORB를 컴파일하는 과정에서 겪은 문제점을 기록해 보세요. 기록해 보세요.
질문 1:
컴파일 과정에서
YOU MIXED DIFFERENT NUMERIC TYPES
등 오류가 발생했다. 즉, 여러 가지 불편해 보이는 <>
이라는 괄호 안에 엉망진창인 것이 나타난다. 이전에 ORB-sLAM을 단독으로 컴파일했을 때도 겪었기 때문에 단번에 해결되었다. Step1: LearnVIORB 프로젝트에서 Thirdparty/g2o/g2o/solvers
디렉터리 아래로 들어간다. Step2:vim이나gedit로 수정linear_solver_eigen.h
파일;구체적인 수정 사항://1. :
typedef Eigen::PermutationMatrix<Eigen::Dynamic, Eigen::Dynamic, SparseMatrix::Index> PermutationMatrix;
//2. :
typedef Eigen::PermutationMatrix<Eigen::Dynamic, Eigen::Dynamic, int> PermutationMatrix;
요컨대 위에는 사실
<>
안의 SparseMatrix::Index
를 int
로 바꿨을 뿐이다Step3: 저장 재컴파일을 종료합니다.
그리고 번역하는 과정에서 나는 또 이런 문제에 부딪혔다. ------------------------------------------------
질문 2:
OpenCV 버전 질문, LearnVIORB는 OpenCV 2.x.x의 버전, 구체적인 것은 잊어버렸지만 컴파일하는 과정에서 VIO 부분의 60% 부분을 컴파일하기 시작할 때 오류가 발생하고 실패합니다!!![해결 방법] 이건 좀 쉬워요. 일일이 열거하지 않겠어요!쉽게 말하면 LearnVIORB 밑에 있는 CmakeList를txt 및 Examples/ROS/VIOORB 밑에 CMakeList.txt의
find package()
는 모두 상응하는 버전으로 바뀌었고 그 전에 추가해야 한다. set( OpenCV_DIR "/usr/local/opencv3.2.0/share/OpenCV")
여기는 내가 오픈cv3를 설치한 주소를 예로 들면 각각CMakeListx라는 것을 기억해라.txt는 모두 이런 조작을 해야 한다~자, 이제 VIORB의 VIO 부분은 100%까지 컴파일할 수 있지만, 다음과 같은 새로운 문제가 생겼다. ---------------------------------------------------------------------------
질문 3:
오보 정보: 기본적으로 여러 가지
undefined reference to XXX
를 보고 화가 났어요!화가 많이 났어요!Scanning dependencies of target VIO
[ 66%] Building CXX object CMakeFiles/VIO.dir/src/MsgSync/MsgSynchronizer.cpp.o
[ 66%] Building CXX object CMakeFiles/VIO.dir/src/ros_vio.cc.o
[100%] Linking CXX executable ../VIO
CMakeFiles/VIO.dir/src/ros_vio.cc.o: In function `bool rosbag::Bag::readField(std::map<: class="hljs-built_in">string, std::string, std::less<: class="hljs-built_in">string>, std::allocator<:pair class="hljs-built_in">string const, std::string> > > const&, std::string const&, bool, unsigned int*) const':
ros_vio.cc:(.text._ZNK6rosbag3Bag9readFieldIjEEbRKSt3mapISsSsSt4lessISsESaISt4pairIKSsSsEEERS6_bPT_[_ZNK6rosbag3Bag9readFieldIjEEbRKSt3mapISsSsSt4lessISsESaISt4pairIKSsSsEEERS6_bPT_]+0x25): undefined reference to `rosbag::Bag::checkField(std::map<: class="hljs-built_in">string, std::string, std::less<: class="hljs-built_in">string>, std::allocator<:pair class="hljs-built_in">string const, std::string> > > const&, std::string const&, unsigned int, unsigned int, bool) const'
CMakeFiles/VIO.dir/src/ros_vio.cc.o: In function `ros::SubscriptionCallbackHelperT<:shared_ptr> > const> const&, void>::deserialize(ros::SubscriptionCallbackHelperDeserializeParams const&)':
ros_vio.cc:(.text._ZN3ros27SubscriptionCallbackHelperTIRKN5boost10shared_ptrIKN11sensor_msgs4Imu_ISaIvEEEEEvE11deserializeERKNS_43SubscriptionCallbackHelperDeserializeParamsE[_ZN3ros27SubscriptionCallbackHelperTIRKN5boost10shared_ptrIKN11sensor_msgs4Imu_ISaIvEEEEEvE11deserializeERKNS_43SubscriptionCallbackHelperDeserializeParamsE]+0x6f7): undefined reference to `ros::console::initializeLogLocation(ros::console::LogLocation*, std::string const&, ros::console::levels::Level)'
CMakeFiles/VIO.dir/src/ros_vio.cc.o: In function `boost::shared_ptr<:imu_> > > rosbag::Bag::instantiateBuffer<:imu_> > >(rosbag::IndexEntry const&) const':
ros_vio.cc:(.text._ZNK6rosbag3Bag17instantiateBufferIN11sensor_msgs4Imu_ISaIvEEEEEN5boost10shared_ptrIT_EERKNS_10IndexEntryE[_ZNK6rosbag3Bag17instantiateBufferIN11sensor_msgs4Imu_ISaIvEEEEEN5boost10shared_ptrIT_EERKNS_10IndexEntryE]+0x3ab): undefined reference to `rosbag::Bag::readField(std::map<: class="hljs-built_in">string, std::string, std::less<: class="hljs-built_in">string>, std::allocator<:pair class="hljs-built_in">string const, std::string> > > const&, std::string const&, bool, std::string&) const'
ros_vio.cc:(.text._ZNK6rosbag3Bag17instantiateBufferIN11sensor_msgs4Imu_ISaIvEEEEEN5boost10shared_ptrIT_EERKNS_10IndexEntryE[_ZNK6rosbag3Bag17instantiateBufferIN11sensor_msgs4Imu_ISaIvEEEEEN5boost10shared_ptrIT_EERKNS_10IndexEntryE]+0x3c5): undefined reference to `rosbag::Bag::readField(std::map<: class="hljs-built_in">string, std::string, std::less<: class="hljs-built_in">string>, std::allocator<:pair class="hljs-built_in">string const, std::string> > > const&, std::string const&, bool, std::string&) const'
ros_vio.cc:(.text._ZNK6rosbag3Bag17instantiateBufferIN11sensor_msgs4Imu_ISaIvEEEEEN5boost10shared_ptrIT_EERKNS_10IndexEntryE[_ZNK6rosbag3Bag17instantiateBufferIN11sensor_msgs4Imu_ISaIvEEEEEN5boost10shared_ptrIT_EERKNS_10IndexEntryE]+0x3df): undefined reference to `rosbag::Bag::readField(std::map<: class="hljs-built_in">string, std::string, std::less<: class="hljs-built_in">string>, std::allocator<:pair class="hljs-built_in">string const, std::string> > > const&, std::string const&, bool, std::string&) const'
CMakeFiles/VIO.dir/src/ros_vio.cc.o: In function `boost::shared_ptr<:image_> > > rosbag::Bag::instantiateBuffer<:image_> > >(rosbag::IndexEntry const&) const':
ros_vio.cc:(.text._ZNK6rosbag3Bag17instantiateBufferIN11sensor_msgs6Image_ISaIvEEEEEN5boost10shared_ptrIT_EERKNS_10IndexEntryE[_ZNK6rosbag3Bag17instantiateBufferIN11sensor_msgs6Image_ISaIvEEEEEN5boost10shared_ptrIT_EERKNS_10IndexEntryE]+0x3ab): undefined reference to `rosbag::Bag::readField(std::map<: class="hljs-built_in">string, std::string, std::less<: class="hljs-built_in">string>, std::allocator<:pair class="hljs-built_in">string const, std::string> > > const&, std::string const&, bool, std::string&) const'
ros_vio.cc:(.text._ZNK6rosbag3Bag17instantiateBufferIN11sensor_msgs6Image_ISaIvEEEEEN5boost10shared_ptrIT_EERKNS_10IndexEntryE[_ZNK6rosbag3Bag17instantiateBufferIN11sensor_msgs6Image_ISaIvEEEEEN5boost10shared_ptrIT_EERKNS_10IndexEntryE]+0x3c5): undefined reference to `rosbag::Bag::readField(std::map<: class="hljs-built_in">string, std::string, std::less<: class="hljs-built_in">string>, std::allocator<:pair class="hljs-built_in">string const, std::string> > > const&, std::string const&, bool, std::string&) const'
CMakeFiles/VIO.dir/src/ros_vio.cc.o:ros_vio.cc:(.text._ZNK6rosbag3Bag17instantiateBufferIN11sensor_msgs6Image_ISaIvEEEEEN5boost10shared_ptrIT_EERKNS_10IndexEntryE[_ZNK6rosbag3Bag17instantiateBufferIN11sensor_msgs6Image_ISaIvEEEEEN5boost10shared_ptrIT_EERKNS_10IndexEntryE]+0x3df): more undefined references to `rosbag::Bag::readField(std::map<: class="hljs-built_in">string, std::string, std::less<: class="hljs-built_in">string>, std::allocator<:pair class="hljs-built_in">string const, std::string> > > const&, std::string const&, bool, std::string&) const' follow
CMakeFiles/VIO.dir/src/ros_vio.cc.o: In function `main':
ros_vio.cc:(.text.startup+0x5f): undefined reference to `ros::init(int&, char**, std::string const&, unsigned int)'
ros_vio.cc:(.text.startup+0x216): undefined reference to `ros::NodeHandle::NodeHandle(std::string const&, std::map<: class="hljs-built_in">string, std::string, std::less<: class="hljs-built_in">string>, std::allocator<:pair class="hljs-built_in">string const, std::string> > > const&)'
ros_vio.cc:(.text.startup+0x4c0): undefined reference to `rosbag::Bag::open(std::string const&, unsigned int)'
ros_vio.cc:(.text.startup+0x55e): undefined reference to `rosbag::TopicQuery::TopicQuery(std::vector<: class="hljs-built_in">string, std::allocator<: class="hljs-built_in">string> > const&)'
ros_vio.cc:(.text.startup+0x6db): undefined reference to `rosbag::MessageInstance::getMD5Sum() const'
ros_vio.cc:(.text.startup+0x799): undefined reference to `rosbag::MessageInstance::getMD5Sum() const'
ros_vio.cc:(.text.startup+0xd35): undefined reference to `cv_bridge::toCvShare(boost::shared_ptr<:image_> > const> const&, std::string const&)'
ros_vio.cc:(.text.startup+0x124b): undefined reference to `ros::console::initializeLogLocation(ros::console::LogLocation*, std::string const&, ros::console::levels::Level)'
ros_vio.cc:(.text.startup+0x13e3): undefined reference to `ros::console::initializeLogLocation(ros::console::LogLocation*, std::string const&, ros::console::levels::Level)'
ros_vio.cc:(.text.startup+0x1455): undefined reference to `cv_bridge::toCvShare(boost::shared_ptr<:image_> > const> const&, std::string const&)'
ros_vio.cc:(.text.startup+0x19c8): undefined reference to `ros::console::initializeLogLocation(ros::console::LogLocation*, std::string const&, ros::console::levels::Level)'
ros_vio.cc:(.text.startup+0x1e38): undefined reference to `ros::console::initializeLogLocation(ros::console::LogLocation*, std::string const&, ros::console::levels::Level)'
CMakeFiles/VIO.dir/src/ros_vio.cc.o: In function `ros::SubscriptionCallbackHelperT<:shared_ptr> > const> const&, void>::deserialize(ros::SubscriptionCallbackHelperDeserializeParams const&)':
ros_vio.cc:(.text._ZN3ros27SubscriptionCallbackHelperTIRKN5boost10shared_ptrIKN11sensor_msgs6Image_ISaIvEEEEEvE11deserializeERKNS_43SubscriptionCallbackHelperDeserializeParamsE[_ZN3ros27SubscriptionCallbackHelperTIRKN5boost10shared_ptrIKN11sensor_msgs6Image_ISaIvEEEEEvE11deserializeERKNS_43SubscriptionCallbackHelperDeserializeParamsE]+0x5b9): undefined reference to `ros::console::initializeLogLocation(ros::console::LogLocation*, std::string const&, ros::console::levels::Level)'
CMakeFiles/VIO.dir/src/MsgSync/MsgSynchronizer.cpp.o: In function `ORBVIO::MsgSynchronizer::getRecentMsgs(boost::shared_ptr<:image_> > const>&, std::vector<:shared_ptr> > const>, std::allocator<:shared_ptr> > const> > >&)':
MsgSynchronizer.cpp:(.text+0x19ab): undefined reference to `ros::console::initializeLogLocation(ros::console::LogLocation*, std::string const&, ros::console::levels::Level)'
MsgSynchronizer.cpp:(.text+0x1b24): undefined reference to `ros::console::initializeLogLocation(ros::console::LogLocation*, std::string const&, ros::console::levels::Level)'
CMakeFiles/VIO.dir/src/MsgSync/MsgSynchronizer.cpp.o:MsgSynchronizer.cpp:(.text+0x1bf5): more undefined references to `ros::console::initializeLogLocation(ros::console::LogLocation*, std::string const&, ros::console::levels::Level)' follow
collect2: error: ld returned 1 exit status
CMakeFiles/VIO.dir/build.make:268: recipe for target '../VIO' failed
make[2]: *** [../VIO] Error 1
CMakeFiles/Makefile2:163: recipe for target 'CMakeFiles/VIO.dir/all' failed
make[1]: *** [CMakeFiles/VIO.dir/all] Error 2
Makefile:127: recipe for target 'all' failed
make: *** [all] Error 2
Launch file in Examples/ROS/ORB_VIO/launch.
Modify the configuration file config/euroc.yaml
Run as: roslaunch ORB_VIO testeuroc.launch
[해결 방법]
시도 1:
참고 자료https://github.com/ANYbotics/grid_map/issues/159채택 방식: gcc버전을 4.8에서 5.4로 전환한 결과: VIO는 33%까지 갔고 아까보다 못하다. 더 많은undefined가 생겼고 판골린도 틀렸다!설마 내가 방금 넣은 물건에 문제가 있는 건 아니겠지???
시도 2:
조치: 시도 1의 토대 위에서 CMakeList.txt에 내가 추가한 부분,includedirectories()에 있는 것들은 결과를 취소했습니다. VIO의 번역이 100%에 이르렀습니다. 설명은 효과가 있었지만 다음과 같은 오류 메시지가 나왔습니다. 기본적으로 제3자 라이브러리의 원인으로 보입니다. 설명은 발전했습니다. 적어도 계속 고치려는 욕망이 있습니다!내일 계속!맞아요. 지금의 문제는 c++ 11 표준의 문제인 것 같아요. 내일 CMake Lists.txt의 c++ 11 표준 부분입니다. 이것을 직접 사용해 보십시오.
[ 0%] Built target rospack_genmsg_libexe
[ 0%] Built target rosbuild_precompile
Scanning dependencies of target VIO
[ 66%] Building CXX object CMakeFiles/VIO.dir/src/ros_vio.cc.o
[ 66%] Building CXX object CMakeFiles/VIO.dir/src/MsgSync/MsgSynchronizer.cpp.o
[100%] Linking CXX executable ../VIO
../../../../lib/libORB_SLAM2.so: undefined reference to `DBoW2::FORB::toString[abi:cxx11](cv::Mat const&)'
../../../../lib/libORB_SLAM2.so: undefined reference to `pangolin::CreateWindowAndBind(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, int, int, pangolin::Params const&)'
../../../../lib/libORB_SLAM2.so: undefined reference to `pangolin::CreatePanel(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
../../../../lib/libORB_SLAM2.so: undefined reference to `pangolin::BindToContext(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >)'
../../../../lib/libORB_SLAM2.so: undefined reference to `g2o::writeCCSMatrix(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, int, int, int const*, int const*, double const*, bool)'
../../../../lib/libORB_SLAM2.so: undefined reference to `pangolin::Split(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, char)'
../../../../lib/libORB_SLAM2.so: undefined reference to `DBoW2::FORB::fromString(cv::Mat&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
collect2: error: ld returned 1 exit status
CMakeFiles/VIO.dir/build.make:268: recipe for target '../VIO' failed
make[2]: *** [../VIO] Error 1
CMakeFiles/Makefile2:163: recipe for target 'CMakeFiles/VIO.dir/all' failed
make[1]: *** [CMakeFiles/VIO.dir/all] Error 2
Makefile:127: recipe for target 'all' failed
make: *** [all] Error 2
Launch file in Examples/ROS/ORB_VIO/launch.
Modify the configuration file config/euroc.yaml
Run as: roslaunch ORB_VIO testeuroc.launch
시도 3:
조치: CMakeLists.txt의 c++11 표준은 직접 진행하고 판단의 문장은 하지 않습니다!주석을 달아봐!이전의 주석을 없애라!,
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
결과만 보류: 실패, 그러나 VIO의 컴파일은 100%까지 갈 수 있어 가슴이 막힌다.잘못 보고는 방금 한 푼과 같아서, 이러한 수정은 무효라는 것을 설명한다.새로운 시도를 계속해~
시도 4:
조치: (또는 OpenCV에 대한 예상???)Step1:수정
set(CMAKE_CXXFLAGS)
Step2:set( CMAKE_CXX_FLAGS "-std=c++11 -O3" )
Step3:Thirdparty에 들어가서 BDOW와 G2O 아래의build를 모두 지우고 다시 컴파일하세요!결과:
-- Build files have been written to: /home/hri/catkin_ws/src/LearnVIORB/Examples/ROS/ORB_VIO/build
[ 0%] Built target rospack_genmsg_libexe
[ 0%] Built target rosbuild_precompile
[ 66%] Building CXX object CMakeFiles/VIO.dir/src/MsgSync/MsgSynchronizer.cpp.o
[ 66%] Building CXX object CMakeFiles/VIO.dir/src/ros_vio.cc.o
[100%] Linking CXX executable ../VIO
../../../../lib/libORB_SLAM2.so: undefined reference to `pangolin::CreateWindowAndBind(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, int, int, pangolin::Params const&)'
../../../../lib/libORB_SLAM2.so: undefined reference to `pangolin::CreatePanel(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
../../../../lib/libORB_SLAM2.so: undefined reference to `pangolin::BindToContext(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >)'
../../../../lib/libORB_SLAM2.so: undefined reference to `pangolin::Split(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, char)'
collect2: error: ld returned 1 exit status
CMakeFiles/VIO.dir/build.make:268: recipe for target '../VIO' failed
make[2]: *** [../VIO] Error 1
CMakeFiles/Makefile2:163: recipe for target 'CMakeFiles/VIO.dir/all' failed
make[1]: *** [CMakeFiles/VIO.dir/all] Error 2
Makefile:127: recipe for target 'all' failed
make: *** [all] Error 2
Launch file in Examples/ROS/ORB_VIO/launch.
Modify the configuration file config/euroc.yaml
Run as: roslaunch ORB_VIO testeuroc.launch
분석: BOW와 g2o에 대한 undefined의 보고가 모두 없어졌다. 이것은 조치의 세 번째 단계가 효과가 있었다는 것을 의미한다. 그러면 Pangolin은 다시 번역해야 할지도 모른다???
재시도:
시도 5:
뒤돌아보니 Pangolin에 대한 오답은 내가 gcc/g++버전을 4.8에서 5.4로 바꾼 후에야 발생한 것이다. 그래서 나는 gcc/g++5.4의 형태로pangolin을 다시 한 번 컴파일해야 하는가?조치: 이전에 주석한 c++ 11 표준에 대한 것을 다시 한 번 컴파일합니다!(예상대로 c++ 11 표준의 나방을 보냈습니다!)생각: Pangolin의 헤더 파일의 경로를 set () 하세요!여기의 문제겠지!
// -- CMakeLists.txt
set( Pangolin_DIR "/usr/local/include/pangolin")
결과: 번역도 통과할 수 없습니다. 제가 추가한 것이 틀렸다는 것을 설명합니다. cmake에 대해 아무것도 모릅니다!!!경로 set(pangolin/display) 결과를 다시 추가합니다. 안 됩니다. VIO의 컴파일링은 통과할 수 없습니다. set(Pangolin DIR "/home/hri/ThirdParty/Pangolin-master/CMakeModules")
결과:실패!
저는 이제 Pangolin을 다시 해야 될 것 같아요.
시도 6:
분석: 인터넷에서 undefined reference에 대한 오보 게시물을 검색해 봤는데 gcc/g++와 관련된 것들이 언급되었는데 그 전에 환경이 gcc/g++4.8로 만들어졌기 때문인지 생각했는데 이번ros환경에서의 물건은 5.4버전 아래에서 만들었다(앞에서 4.8이라고 했을 때ros에서 많이 틀렸다). 그러면 판골린을 다시 설치하고 gcc/g++5.4버전에서 컴파일하려고 합니다!조치: 이전의 Pangolin의 컴파일러를 삭제하고/usr/다음 버전의 pangolin에 관한 잔당 잔당은 상관하지 마십시오. 다시 컴파일할 때 이전의 것들을 덮어씁니다!구체적인 방법: Pangolin의 github 주소:https://github.com/stevenlovegrove/Pangolin다운로드 후 정상적으로 컴파일하면 됩니다!
그런 다음 VIORB 코드를 컴파일하여 다음을 통과합니다.
Scanning dependencies of target ORB_SLAM2
[ 11%] Building CXX object CMakeFiles/ORB_SLAM2.dir/src/LocalMapping.cc.o
[ 11%] Building CXX object CMakeFiles/ORB_SLAM2.dir/src/System.cc.o
[ 23%] Building CXX object CMakeFiles/ORB_SLAM2.dir/src/LoopClosing.cc.o
[ 23%] Building CXX object CMakeFiles/ORB_SLAM2.dir/src/ORBextractor.cc.o
[ 23%] Building CXX object CMakeFiles/ORB_SLAM2.dir/src/ORBmatcher.cc.o
[ 11%] Building CXX object CMakeFiles/ORB_SLAM2.dir/src/Tracking.cc.o
[ 26%] Building CXX object CMakeFiles/ORB_SLAM2.dir/src/Converter.cc.o
[ 30%] Building CXX object CMakeFiles/ORB_SLAM2.dir/src/FrameDrawer.cc.o
[ 34%] Building CXX object CMakeFiles/ORB_SLAM2.dir/src/MapPoint.cc.o
[ 38%] Building CXX object CMakeFiles/ORB_SLAM2.dir/src/KeyFrameDatabase.cc.o
[ 42%] Building CXX object CMakeFiles/ORB_SLAM2.dir/src/KeyFrame.cc.o
[ 50%] Building CXX object CMakeFiles/ORB_SLAM2.dir/src/IMU/imudata.cpp.o
[ 46%] Building CXX object CMakeFiles/ORB_SLAM2.dir/src/Sim3Solver.cc.o
[ 53%] Building CXX object CMakeFiles/ORB_SLAM2.dir/src/Map.cc.o
[ 57%] Building CXX object CMakeFiles/ORB_SLAM2.dir/src/MapDrawer.cc.o
[ 61%] Building CXX object CMakeFiles/ORB_SLAM2.dir/src/Frame.cc.o
[ 65%] Building CXX object CMakeFiles/ORB_SLAM2.dir/src/IMU/NavState.cpp.o
[ 69%] Building CXX object CMakeFiles/ORB_SLAM2.dir/src/PnPsolver.cc.o
[ 73%] Building CXX object CMakeFiles/ORB_SLAM2.dir/src/Viewer.cc.o
[ 76%] Building CXX object CMakeFiles/ORB_SLAM2.dir/src/IMU/so3.cpp.o
[ 80%] Building CXX object CMakeFiles/ORB_SLAM2.dir/src/Initializer.cc.o
[ 84%] Building CXX object CMakeFiles/ORB_SLAM2.dir/src/IMU/configparam.cpp.o
[ 88%] Building CXX object CMakeFiles/ORB_SLAM2.dir/src/Optimizer.cc.o
[ 92%] Building CXX object CMakeFiles/ORB_SLAM2.dir/src/IMU/IMUPreintegrator.cpp.o
[ 96%] Building CXX object CMakeFiles/ORB_SLAM2.dir/src/IMU/g2otypes.cpp.o
[100%] Linking CXX shared library ../lib/libORB_SLAM2.so
[100%] Built target ORB_SLAM2
Build ROS node ...
mkdir: cannot create directory ‘build’: File exists
[rosbuild] Building package ORB_VIO
[rosbuild] using multiarch 'x86_64-linux-gnu' for finding Boost
-- Using CATKIN_DEVEL_PREFIX: /home/hri/catkin_ws/src/LearnVIORB/Examples/ROS/ORB_VIO/build/devel
-- Using CMAKE_PREFIX_PATH: /home/hri/catkin_ws/devel;/opt/ros/kinetic
-- This workspace overlays: /home/hri/catkin_ws/devel;/opt/ros/kinetic
-- Using PYTHON_EXECUTABLE: /usr/bin/python
-- Using Debian Python package layout
-- Using empy: /usr/bin/empy
-- Using CATKIN_ENABLE_TESTING: ON
-- Skip enable_testing() for dry packages
-- Using CATKIN_TEST_RESULTS_DIR: /home/hri/catkin_ws/src/LearnVIORB/Examples/ROS/ORB_VIO/build/test_results
-- Found gmock sources under '/usr/src/gmock': gmock will be built
-- Found gtest sources under '/usr/src/gmock': gtests will be built
-- Using Python nosetests: /usr/bin/nosetests-2.7
-- catkin 0.7.14
-- Using these message generators: gencpp;geneus;genlisp;gennodejs;genpy
[rosbuild] Including /opt/ros/kinetic/share/roslisp/rosbuild/roslisp.cmake
[rosbuild] Including /opt/ros/kinetic/share/roscpp/rosbuild/roscpp.cmake
[rosbuild] Including /opt/ros/kinetic/share/rospy/rosbuild/rospy.cmake
Build type: Release
-- Configuring done
-- Generating done
-- Build files have been written to: /home/hri/catkin_ws/src/LearnVIORB/Examples/ROS/ORB_VIO/build
[ 0%] Built target rospack_genmsg_libexe
[ 0%] Built target rosbuild_precompile
[ 33%] Linking CXX executable ../VIO
[100%] Built target VIO
Launch file in Examples/ROS/ORB_VIO/launch.
Modify the configuration file config/euroc.yaml
Run as: roslaunch ORB_VIO testeuroc.launch
됐다!이 위에서 일을 좀 시작합시다. 제가 할 수 있기를 바랍니다!
___________________________분할선
다음은 프로그램을 뛰는 것이다. github에 있는 물건에 따라yaml의 결과를 저장하고 데이터베이스 경로도 설정했지만 번쩍하면 퇴출하는 현상이 나타났다.오류는 다음과 같습니다.
*** Error in `/home/hri/catkin_ws/src/LearnVIORB/Examples/ROS/ORB_VIO/VIO': free(): invalid pointer: 0x000000000c4880b0 ***
그리고 이거:
[VIO-1] process has died [pid 3777, exit code -6, cmd /home/hri/catkin_ws/src/LearnVIORB/Examples/ROS/ORB_VIO/VIO /home/hri/catkin_ws/src/LearnVIORB/Examples/ROS/ORB_VIO/../../../Vocabulary/ORBvoc.bin /home/hri/catkin_ws/src/LearnVIORB/Examples/ROS/ORB_VIO/../../../config/euroc.yaml __name:=VIO __log:=/home/hri/.ros/log/869870f0-b26a-11e8-97c8-e4f89cfbde4d/VIO-1.log].
log file: /home/hri/.ros/log/869870f0-b26a-11e8-97c8-e4f89cfbde4d/VIO-1*.log
all processes on machine have died, roslaunch will exit
shutting down processing monitor...
... shutting down processing monitor complete
done
이것을 참고해 봤는데 메모리가 부족하다고 했나 봐요!내가 로스코어를 직접 입력했을 때도 다음과 같이 표시되기 때문에 다시 한 번 시도해 보겠습니다.
Done checking log file disk usage. Usage is <1GB.
참조:https://stackoverflow.com/questions/9043685/free-invalid-pointer그래서 한번 해볼게요!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
ROS2에서 LiDAR Inertial SLAM최근 LiDAR Inertial SLAM인 LIO-SAM이 발표되었고, 저 안에서 LiDAR Inertial SLAM이 뜨겁습니다. LIO-SAM: Tightly-coupled Lidar Inertial Odomet...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.