赞
踩
配置完D435i相机的开发环境后开始尝试研究官方例程,试着运行一些demo初入intel相机。
开始的时候也是很头疼,不知道如何下手,看了众多博客后稍微有了一些眉目,最后在官网上找到了一些简单的例程。官方链接。
因此开始尝试写几个简单代码,首先测试的是官方例程rs-hello-realsense。但是令人头疼的就是编译问题和运行问题,这个问题卡了三天左右。本以为写了程序编译一下然后运行测试一下就没问题了结果还是一个个问题接踵而至
主要是工作空间下的cmakelist文件内容有问题,参考了众多博客最后弄清楚了开发intel相机所需要的cmakelist书写内容。先附上我的cmakelist文件内容如下:
cmake_minimum_required(VERSION 3.0.2) #cmake要求最低版本 project(realsense_dev) #项目名 ## Compile as C++11, supported in ROS Kinetic and newer #add_compile_options(-std=c++11) set(CMAKE_CXX_STANDARD 11) set(CMAKE_CXX_STANDARD_REQUIRED True) #要求C++11 find_library(librealsense REQUIRED) #寻找librealsense库 find_package(catkin REQUIRED COMPONENTS #依赖包 geometry_msgs roscpp rospy std_msgs ) find_package(realsense2 REQUIRED) #realsense依赖包 find_package(OpenCV REQUIRED) #opencv依赖包 catkin_package( # INCLUDE_DIRS include # LIBRARIES realsense_dev CATKIN_DEPENDS geometry_msgs roscpp rospy std_msgs # DEPENDS system_lib ) include_directories( # include ${catkin_INCLUDE_DIRS} ) #include_directories( /home/catkin_ws/src/realsense-ros/realsense2_camera/include) add_executable(hello_realsense src/hello_realsense.cpp) target_link_libraries(hello_realsense ${catkin_LIBRARIES}) target_link_libraries(hello_realsense ${librealsense_LIBRARY}) #文件链接librealsense2动态库 #target_include_directories(hello_realsense PRIVATE ${librealsense_INCLUDE_DIR}) target_link_libraries(hello_realsense "/usr/local/lib/librealsense2.so") #我的librealsense2.so的文件路径
编译不通过主要存在的问题就显示各种函数未引用,主要是因为没有链接到librealsense的动态库,后来通过执行whereis librealsense2.so命令,查找到了我的电脑下的librealsense.so动态库的位置。是位于/usr/local/lib/librealsense2.so因此,在cmakelist文件的最后一行加入了路径之后编译就没有问题了。
关于librealsense使用方法及一些问题可以参考这篇博文。
重要内容截图如下:
报错信息:抛出 ‘rs2::backend_error’ 实例后调用终止
what(): xioctl(VIDIOC_S_FMT) failed Last Error: Device or resource busy
解决方案:查看了这种帖子都没有找到解决方案,内心委屈的一批,终于功夫不负有心人在这篇文档里找到了解决方案。看到解决方案后自己都笑了,自己真的是太蠢了,主要是因为自己在运行程序的时候开着realsense2_camera rs_camera.launch 话题,因此设备信息被占用,后来把该指令关闭之后程序成功运行,并且成功读取图像中心点的深度值。和官网的视频显示的是相同的内容。
接下来终于可以开始深入intel D435i相机的开发了!!
赞
踩
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。