坑梓网站建设如何,哪些网站上可以做租车,做百度网站一年多少钱,新网域名注册对Ubuntu18.04{\rm Ubuntu 18.04}Ubuntu18.04环境下的ROS{\rm ROS}ROS的melodic{\rm melodic}melodic版本安装usb−cam{\rm usb-cam}usb−cam过程出现的两个常见问题提出解决方案。 1.问题1#xff1a;usb-cam功能包编译时出现未定义的引用的问题
问题描述#…对Ubuntu18.04{\rm Ubuntu 18.04}Ubuntu18.04环境下的ROS{\rm ROS}ROS的melodic{\rm melodic}melodic版本安装usb−cam{\rm usb-cam}usb−cam过程出现的两个常见问题提出解决方案。 1.问题1usb-cam功能包编译时出现未定义的引用的问题
问题描述把usb−cam{\rm usb-cam}usb−cam功能包下载到工作空间进行编译时出现很多的未定义的引用的错误具体问题见下图所示
2.解决方案
查看usb−cam{\rm usb-cam}usb−cam功能包下的CMakeLists.txt{\rm CMakeLists.txt}CMakeLists.txt文件其中CMakeLists.txt{\rm CMakeLists.txt}CMakeLists.txt文件具体内容如下代码块所示
cmake_minimum_required(VERSION 2.8.12)
project(usb_cam)## Find catkin macros and libraries
## if COMPONENTS list like find_package(catkin REQUIRED COMPONENTS xyz)
## is used, also find other catkin packages
find_package(catkin REQUIRED COMPONENTS cv_bridge image_transport roscpp std_msgs std_srvs sensor_msgs camera_info_manager)# Find OpenCV
find_package(OpenCV REQUIRED)## pkg-config libraries
find_package(PkgConfig REQUIRED)
pkg_check_modules(avcodec libavcodec REQUIRED)
pkg_check_modules(avutil libavutil REQUIRED)
pkg_check_modules(swscale libswscale REQUIRED)###################################################
## Declare things to be passed to other projects ##
##################################################### LIBRARIES: libraries you create in this project that dependent projects also need
## CATKIN_DEPENDS: catkin_packages dependent projects also need
## DEPENDS: system dependencies of this project that dependent projects also need
catkin_package(INCLUDE_DIRS includeLIBRARIES ${PROJECT_NAME}
)###########
## Build ##
###########include_directories(include${catkin_INCLUDE_DIRS}${avcodec_INCLUDE_DIRS}${swscale_INCLUDE_DIRS}${avutil_INCLUDE_DIRS}${OpenCV_INCLUDE_DIRS}
)## Build the USB camera library
add_library(${PROJECT_NAME} src/usb_cam.cpp)
target_link_libraries(${PROJECT_NAME}${avcodec_LINK_LIBRARIES}${avutil_LINK_LIBRARIES}${swscale_LINK_LIBRARIES}${catkin_LIBRARIES}${OpenCV_LIBS}
)## Declare a cpp executable
add_executable(${PROJECT_NAME}_node nodes/usb_cam_node.cpp)
target_link_libraries(${PROJECT_NAME}_node${PROJECT_NAME}${avcodec_LINK_LIBRARIES}${avutil_LINK_LIBRARIES}${swscale_LINK_LIBRARIES}${catkin_LIBRARIES}${OpenCV_LIBS}
)#############
## Install ##
############### Mark executables and/or libraries for installation
install(TARGETS ${PROJECT_NAME}_node ${PROJECT_NAME}RUNTIME DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}LIBRARY DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}
)## Copy launch files
install(DIRECTORY launch/DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION}/launchFILES_MATCHING PATTERN *.launch
)install(DIRECTORY include/${PROJECT_NAME}/DESTINATION ${CATKIN_PACKAGE_INCLUDE_DESTINATION}FILES_MATCHING PATTERN *.h PATTERN *.hpp
)分析CMakeLists.txt{\rm CMakeLists.txt}CMakeLists.txt文件可知在编译内容上所依赖的库avcodec、swscale、avutil{\rm avcodec、swscale、avutil}avcodec、swscale、avutil使用locate{\rm locate}locate命令找出路径
###########
## Build ##
###########include_directories(include${catkin_INCLUDE_DIRS}${avcodec_INCLUDE_DIRS}${swscale_INCLUDE_DIRS}${avutil_INCLUDE_DIRS}${OpenCV_INCLUDE_DIRS}
)## Build the USB camera library
add_library(${PROJECT_NAME} src/usb_cam.cpp)
target_link_libraries(${PROJECT_NAME}${avcodec_LINK_LIBRARIES}${avutil_LINK_LIBRARIES}${swscale_LINK_LIBRARIES}${catkin_LIBRARIES}${OpenCV_LIBS}
)## Declare a cpp executable
add_executable(${PROJECT_NAME}_node nodes/usb_cam_node.cpp)
target_link_libraries(${PROJECT_NAME}_node${PROJECT_NAME}${avcodec_LINK_LIBRARIES}${avutil_LINK_LIBRARIES}${swscale_LINK_LIBRARIES}${catkin_LIBRARIES}${OpenCV_LIBS}
)# 在终端下分别locate出三个库的具体路径
locate libavcodec
locate libavutil
locate libswscale得出具体路径后在CMakeLists.txt{\rm CMakeLists.txt}CMakeLists.txt文件写入路径见下面代码块
## Declare a cpp executable
add_executable(${PROJECT_NAME}_node nodes/usb_cam_node.cpp)# CMakeLists.txt文件新增路径部分
#
set(avcodec_LINK_LIBRARIES /usr/lib/x86_64-linux-gnu/libavcodec.so)
set(avutil_LINK_LIBRARIES /usr/lib/x86_64-linux-gnu/libavutil.so)
set(swscale_LINK_LIBRARIES /usr/lib/x86_64-linux-gnu/libswscale.so)
# target_link_libraries(${PROJECT_NAME}_node${PROJECT_NAME}${avcodec_LINK_LIBRARIES}${avutil_LINK_LIBRARIES}${swscale_LINK_LIBRARIES}${catkin_LIBRARIES}${OpenCV_LIBS}
)修改CMakeLists.txt{\rm CMakeLists.txt}CMakeLists.txt文件后返回工作空间进行编译如下图所示
3.问题2usb-cam安装好后出现找不到video0的问题
问题描述解决问题1后成功进行编译但在打开摄像头的时候出现找不到Video0{\rm Video0}Video0的问题具体如下图所示
4.解决方案
# 1.关闭虚拟机进入编辑虚拟机设置
# 2.在USB控制器选项的显示所有USB设备前打上√
# 3.启动虚拟机
# 4.在虚拟机选项--可移动设备--USB 2.0 HD UVC Web Cam--点击连接;
# 5.查看是否显示video0;
cd /dev/
ls