ROS中報錯總結


  • 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")

出現如下錯誤的原因比較多:有可能是不能夠加載文件,文件路徑錯誤:

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM