- 1--啟動roscore后報錯:原因是我把一個功能包的配置文件-package.xml的內容作了修改,有的地方沒有改對,因此把配置文件改回來,如果改不回來就把整個功能包刪除再運行即可。我是為了方便加了一個中文注釋,結果報錯,原因是注釋格式寫錯了。
- 2--運行 rqt 報
打開終端輸入sudo nautilus(不輸入直接找到路徑會限制修改),然后文件系統會自動彈出,
進到/opt/ros/kinetic/share/pr2_motor_diagnostic_tool中新建一個plugin.xml的文件。內容如下:
然后保存關閉,再啟動rqt就不會報錯了
- 3-- gazebo啟動報錯
在對應的urdf中找到gazebo插件部分,加入如下兩句即可
- 4--安裝工具包時報錯:
修改網關配置,sudo vi /etc/resolv.conf命令打開配置文件,網上查找自己的鏡像源網關地址,我用的是清華大學的,地址是nameserver 202.96.134.133 和 nameserver 202.96.128.68兩個不同的運營商,都添加進去。
如果還不行則進行密鑰更換:
1 //刪除舊密鑰,Ubuntu 16.04和更新版本: 2 3 sudo apt-key del 421C365BD9FF1F717815A3895523BAEEB01FA116 4 5 導入新密鑰: 6 7 sudo -E apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C65
運行sudo apt update,sudo apt install,沒有報錯即可。然后就可以正常安裝了。
- 5--運行launch文件提示log已超過1G,
用rosclean purge清除一下即可。
- 不同路徑存在多個功能包報錯:
用命令查看存在同名功能包的地址;catkin_find --without-underlays --libexec --share orbslam2_pointcloud,將不屬於當前功能包的文件刪除,運行即可
- 報錯提示usb權限沒有打開:
- #error This file requires compiler and library support for the ISO C++ 2011錯誤解決辦法,在CMakeLists.txt添加如下內容
include(CheckCXXCompilerFlag) CHECK_CXX_COMPILER_FLAG("-std=c++11" COMPILER_SUPPORTS_CXX11) CHECK_CXX_COMPILER_FLAG("-std=c++0x" COMPILER_SUPPORTS_CXX0X) if(COMPILER_SUPPORTS_CXX11) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11") elseif(COMPILER_SUPPORTS_CXX0X) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++0x") else() message(STATUS "The compiler ${CMAKE_CXX_COMPILER} has no C++11 support. Please use a different C++ compiler.") endif()
- 編譯build_ros.sh時報錯
Building ROS nodes mkdir: cannot create directory ‘build’: File exists [rosbuild] Building package ORB_SLAM2 [rosbuild] Error from directory check: /opt/ros/kinetic/share/ros/core/rosbuild/bin/check_same_directories.py /home/tianbot/catkin_ws/src/ORB_SLAM2/Examples/ROS/ORB_SLAM2 1 Traceback (most recent call last): File "/opt/ros/kinetic/share/ros/core/rosbuild/bin/check_same_directories.py", line 46, in <module> raise Exception Exception CMake Error at /opt/ros/kinetic/share/ros/core/rosbuild/private.cmake:102 (message): [rosbuild] rospack found package "ORB_SLAM2" at "", but the current directory is "/home/tianbot/catkin_ws/src/ORB_SLAM2/Examples/ROS/ORB_SLAM2". You should double-check your ROS_PACKAGE_PATH to ensure that packages are found in the correct precedence order. Call Stack (most recent call first): /opt/ros/kinetic/share/ros/core/rosbuild/public.cmake:177 (_rosbuild_check_package_location) CMakeLists.txt:4 (rosbuild_init) -- Configuring incomplete, errors occurred! See also "/home/tianbot/catkin_ws/src/ORB_SLAM2/Examples/ROS/ORB_SLAM2/build/CMakeFiles/CMakeOutput.log". make: *** No targets specified and no makefile found. Stop.
在~/.bashrc文件末尾添加一行路徑(一定要加在末尾,不然還會報錯):gedit ~/.bashrc
export ROS_PACKAGE_PATH=${ROS_PACKAGE_PATH}:/home/tianbot/code_source/ORB_SLAM2_PointCloud/Examples/ROS //按自己當前的路徑修改
- 編譯build_ros.sh時報錯:/usr/lib/x86_64-linux-gnu/libboost_system.so: error adding symbols: DSO missing from command line,
找到ROS功能包下的CMakeLists.txt,后面添加-lboost_system
set(LIBS ${OpenCV_LIBS} ${EIGEN3_LIBS} ${Pangolin_LIBRARIES} ${PROJECT_SOURCE_DIR}/../../../Thirdparty/DBoW2/lib/libDBoW2.so ${PROJECT_SOURCE_DIR}/../../../Thirdparty/g2o/lib/libg2o.so ${PROJECT_SOURCE_DIR}/../../../lib/libORB_SLAM2.so -lboost_system )
- 報錯找不到ply_io.h文件。其他找不到.h文件的類似
用locate ply_io.h尋找系統的文件路徑,在CMakeLists.txt文件中加入如下的配置
include_directories("/usr/include/pcl-1.7")
出現如下錯誤的原因比較多:有可能是不能夠加載文件,文件路徑錯誤: