1.直接運行

官方网站:Intel RealSense SDK 2.0 – Intel RealSense Depth and Tracking cameras

(1) x86运行

librealsense/distribution_linux.md at master · IntelRealSense/librealsense · GitHub

sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-key F6E65AC044F831AC80A06380C8B3A55A6F3EFCDE || sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-key F6E65AC044F831AC80A06380C8B3A55A6F3EFCDE
sudo add-apt-repository "deb https://librealsense.intel.com/Debian/apt-repo $(lsb_release -cs) main" -u
sudo apt-get install librealsense2-dkms
sudo apt-get install librealsense2-utils

(2)jeston 使用这种方式无cuda加速

NVIDIA Jetson installation

sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-key F6E65AC044F831AC80A06380C8B3A55A6F3EFCDE

ubuntu18.04

sudo add-apt-repository "deb https://librealsense.intel.com/Debian/apt-repo bionic main" -u
sudo apt-get install librealsense2-utils
sudo apt-get install librealsense2-dev

運行

realsense-viewer

2.源碼安裝

官網:Linux/Ubuntu - RealSense SDK 2.0 Build Guide

2.1.更新内核

运行代码(4.4.0-50以上)

uname -r

2.2.更新cmake(需要3.6以上版本)

cmake -version

2.3.安装gcc-c++(gcc 5.00以上):

gcc -v

3.安装依赖

sudo apt-get install libusb-1.0-0-dev pkg-config libgtk-3-dev
sudo apt-get install libglfw3-dev libgl1-mesa-dev libglu1-mesa-dev

4下载安装包

https://github.com/IntelRealSense/librealsense/tags

建议在上述网址选择合适的版本进行安装,测试2.49.0跑ros点云很卡,卸载安装2.48.0

sudo git clone https://github.com/IntelRealSense/librealsense

5.添加驅動(不插設備)

(1)x86运行

sudo cp config/99-realsense-libusb.rules /etc/udev/rules.d/
sudo udevadm control --reload-rules && udevadm trigger
./scripts/patch-realsense-ubuntu-lts.sh

(2)arm运行

./scripts/patch-realsense-ubuntu-L4T.sh
./scripts/setup_udev_rules.sh

6.安装Openssl库:

sudo apt-get install libssl-dev

8.安装编译

cd librealsense/
sudo mkdir build
cd build

(1) x86運行cmake(程序中有很多例子,若想編譯example,如無例子添加可省略,编译点云-DBUILD_PCL_EXAMPLES=true)

cmake ../ -DBUILD_EXAMPLES=true
sudo make && make install 

(2)jeston 带有cuda加速

cmake .. -DBUILD_EXAMPLES=true -DCMAKE_BUILD_TYPE=release -DFORCE_RSUSB_BACKEND=false -DBUILD_WITH_CUDA=true && make -j$(($(nproc)-1)) && sudo make install

運行

~/Desktop/realsense_document/software/librealsense-2.48.0/build/examples/capture/rs-capture

9.ROS Realsense

https://github.com/IntelRealSense/realsense-ros/blob/development/README.md#installation-instructions

Releases · IntelRealSense/realsense-ros · GitHub

创建工作空间在src中解压下载的source文件

catkin_make -DCATKIN_ENABLE_TESTING=False -DCMAKE_BUILD_TYPE=Release
catkin_make install

10.错误

(1) ros在opencv之前安装,导致重新安装了opencv在cv_bridge中找opencv的默认路径不一样,所以要修改。

这里:/opt/ros/melodic/share/cv_bridge/cmake/cv_bridgeConfig.cmake

原来是这样子:

修改的内容是把 /usr/include/opencv 改为/usr/local/include/opencv4/opencv2,/usr/local/include/opencv4

下面set(libraries)也需要改。

set(libraries "cv_bridge;/usr/lib/libopencv_core.so.4.5.3;/usr/lib/libopencv_imgproc.so.4.5.3;/usr/lib/libopencv_imgcodecs.so.4.5.3")

(2)ddynamic_reconfigure

CMake Error at /opt/ros/melodic/share/catkin/cmake/catkinConfig.cmake:83 (find_package):Could not find a package configuration file provided by"ddynamic_reconfigure" with any of the following names:ddynamic_reconfigureConfig.cmakeddynamic_reconfigure-config.cmake

修改:

sudo apt install ros-melodic-rgbd-launch
sudo apt-get install ros-melodic-ddynamic-reconfigure
roslaunch realsense2_camera rs_camera.launch  //realsense數據採集節點
roslaunch realsense2_camera rs_camera.launch filters:=pointcloud //點暈
roslaunch realsense2_camera rs_camera.launch filters:=pointcloud pointcloud_texture_stream:=RS2_STREAM_ANY enable_color:=false //完全无图像只有点云,换为ture有图像,非对齐后的,直接是图像对其点云
rosrun image_view image_view image:=/camera/color/image_raw  //系統自帶顯示
rosrun recive_rgb recive_rgbc //C++節點,在cmake與xml 要添加image_transfer
rosrun recive_rgb src/recevi_rgb.py   //python監聽節點
rosrun rqt_graph rqt_graph   //節點關系圖
rosrun pcl_cloudc pcl_cloudc //點暈
roslaunch realsense2_camera rs_rgbd.launch//
sudo gedit ~/.bashrc
source /home/catkin_ws/devel/setup.bash
source ~/.bashrc

(3) /opt/ros/kinetic/lib/nodelet/nodelet: symbol lookup error: /opt/ros/kinetic/lib//libexample_pkg.so: undefined symbol: _ZN2cv11namedwindowERKNS_6StringEi

说明:undefined symbol: _ZN2后的字母,cv =opencv

在camera CMakeLists中添加下面

set(OpenCV_DIR /usr/local/lib)
find_package( OpenCV REQUIRED )target_link_libraries( ${OpenCV_LIBS})

symbol lookup error: /home/llx/catkin_ws/markerlocalization/devel/lib//liblaneloc.so: undefined symbol: _ZN2tf17TransformListenerC1EN3ros8DurationEb
说明:tf的问题。

使用c++filt 查看報錯的位置: 終端輸入:

c++filt  _ZN2tf17TransformListenerC1EN3ros8DurationEb

tf::TransformListener::TransformListener(ros::Duration, bool)
顯示這個

find_package(tf)

原文链接:https://blog.csdn.net/weixin_39608351/article/details/92843763

11.pcl_cloudc.cpp

说明:点云数据ros提取。

catkin_create_pkg pcl_cloudc cv_bridge image_transport pcl_conversions pcl_ros roscpp rospy sensor_msgs std_msgs
#include <ros/ros.h>
// PCL specific includes
#include <sensor_msgs/PointCloud2.h>
#include <pcl_conversions/pcl_conversions.h>
#include <pcl/point_cloud.h>
#include <pcl/point_types.h>#include <pcl/filters/voxel_grid.h>ros::Publisher pub;void cloud_cb (const sensor_msgs::PointCloud2ConstPtr& cloud_msg)
{// Container for original & filtered datapcl::PCLPointCloud2* cloud = new pcl::PCLPointCloud2; pcl::PCLPointCloud2ConstPtr cloudPtr(cloud);pcl::PCLPointCloud2 cloud_filtered;// Convert to PCL data typepcl_conversions::toPCL(*cloud_msg, *cloud);// Perform the actual filteringpcl::VoxelGrid<pcl::PCLPointCloud2> sor;sor.setInputCloud (cloudPtr);sor.setLeafSize (0.1, 0.1, 0.1);sor.filter (cloud_filtered);// Convert to ROS data typesensor_msgs::PointCloud2 output;pcl_conversions::moveFromPCL(cloud_filtered, output);// Publish the datapub.publish (output);
}int
main (int argc, char** argv)
{// Initialize ROSros::init (argc, argv, "my_pcl_tutorial");ros::NodeHandle nh;// Create a ROS subscriber for the input point cloudros::Subscriber sub = nh.subscribe<sensor_msgs::PointCloud2> ("/camera/depth/color/points", 1, cloud_cb);// Create a ROS publisher for the output point cloudpub = nh.advertise<sensor_msgs::PointCloud2> ("filtered_points", 1);// Spinros::spin ();
}

CMakeLists.txt

cmake_minimum_required(VERSION 3.0.2)
project(pcl_cloudc)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}  -std=c++0x")
find_package(catkin REQUIRED COMPONENTScv_bridgeimage_transportpcl_conversionspcl_rosroscpprospysensor_msgsstd_msgs
)
catkin_package()
include_directories(
# include${catkin_INCLUDE_DIRS}
)
add_executable(pcl_cloudc src/pcl_cloudc.cpp)
target_link_libraries(pcl_cloudc ${catkin_LIBRARIES})

package.xml添加:

<build_depend>libpcl-all-dev</build_depend>

<exec_depend>libpcl-all</exec_depend>

(2) arm64行下面

12.recive_rgb

catkin_create_pkg  recive_rgb cv_bridge roscpp rospy sensor_msgs image_transport std_msgs

recevice_rgb.cpp

#include <ros/ros.h>
#include <image_transport/image_transport.h>
#include <cv_bridge/cv_bridge.h>
//OpenCV2标准头文件#include<opencv2/core/core.hpp>
#include<opencv2/highgui/highgui.hpp>
#include <opencv2/imgcodecs.hpp>void imageCallback(const sensor_msgs::ImageConstPtr& msg)
{try{cv::imshow("c++ show", cv_bridge::toCvShare(msg, "bgr8")->image);//展示图片cv::waitKey(10);}catch (cv_bridge::Exception& e){ROS_ERROR("Could not convert from '%s' to 'bgr8'.", msg->encoding.c_str());}
}int main(int argc, char **argv)
{ros::init(argc, argv, "image_listener");ros::NodeHandle nh;cv::namedWindow("view");cv::startWindowThread();image_transport::ImageTransport it(nh);image_transport::Subscriber sub = it.subscribe("/camera/color/image_raw", 1, imageCallback);ros::spin();cv::destroyWindow("view");
}

recevi_rgb.py

#!/usr/bin/env python
import rospy
from sensor_msgs.msg import Image
import cv2
from cv_bridge import CvBridgedef callback(imgmsg):bridge = CvBridge()img = bridge.imgmsg_to_cv2(imgmsg, "bgr8")#print('******************')#print(img.shape)cv2.imshow("python show", img)cv2.waitKey(3)def listener():# In ROS, nodes are uniquely named. If two nodes with the same# node are launched, the previous one is kicked off. The# anonymous=True flag means that rospy will choose a unique# name for our 'listener' node so that multiple listeners can# run simultaneously.rospy.init_node('listener', anonymous=True)rospy.Subscriber("/camera/color/image_raw", Image, callback)# spin() simply keeps python from exiting until this node is stoppedrospy.spin()
if __name__ == '__main__':listener()

CMakeLists.txt

cmake_minimum_required(VERSION 3.0.2)
project(recive_rgb)## Compile as C++11, supported in ROS Kinetic and newer
# add_compile_options(-std=c++11)## 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 COMPONENTScv_bridgeroscpprospysensor_msgsimage_transportstd_msgs
)
find_package(OpenCV 4.2.0 REQUIRED)
catkin_package(
#  INCLUDE_DIRS include
#  LIBRARIES recive_rgbCATKIN_DEPENDS cv_bridge roscpp rospy sensor_msgs std_msgs std_srvs
#  DEPENDS system_lib
)
include_directories(
# include${catkin_INCLUDE_DIRS}${OpenCV_INCLUDE_DIRS}
)add_executable(recive_rgbc src/recevice_rgb.cpp)
target_link_libraries(recive_rgbc ${catkin_LIBRARIES} ${OpenCV_LIBS})

package.xml

<buildtool_depend>catkin</buildtool_depend><build_depend>cv_bridge</build_depend><build_depend>roscpp</build_depend><build_depend>rospy</build_depend><build_depend>sensor_msgs</build_depend><build_depend>std_msgs</build_depend><build_depend>std_srvs</build_depend><build_depend>image_transport</build_depend> <build_export_depend>image_transport</build_export_depend><build_export_depend>cv_bridge</build_export_depend><build_export_depend>roscpp</build_export_depend><build_export_depend>rospy</build_export_depend><build_export_depend>sensor_msgs</build_export_depend><build_export_depend>std_msgs</build_export_depend><build_export_depend>std_srvs</build_export_depend><exec_depend>image_transport</exec_depend><exec_depend>cv_bridge</exec_depend><exec_depend>roscpp</exec_depend><exec_depend>rospy</exec_depend><exec_depend>sensor_msgs</exec_depend><exec_depend>std_msgs</exec_depend><exec_depend>std_srvs</exec_depend>

roslaunch realsense2_camera rs_camera.launch filters:=pointcloud pointcloud_texture_stream:=RS2_STREAM_ANY enable_color:=true

roslaunch realsense2_camera demo_pointcloud.launch

ubuntu18.04 realsense相关推荐

  1. Ubuntu18.04安装realsense d435i SDK和ROS Wrapper以及相机标定全过程

    第一步:安装realsense SDK 1.用源码进行安装: https://github.com/IntelRealSense/librealsense/ 然后将下载的源码安装包放在文件夹下面,我把 ...

  2. Nvidia TX2 Ubuntu18.04 安装 IntelRealsense L515 realsense SDK 及 Realsense ROS (make各种问题解答,一篇到位版本)

    前提:刷完tx2板子 及 安装完ros 可以参考我这两篇博客 Nvidia JetsonTx2 Ubuntu18.04 安装 ros melodic(顺带快速解决sudo rosdep init问题) ...

  3. ubuntu18.04安装Realsense D435i 摄像头的驱动SDK和ROS Wrapper

    ubuntu18.04安装Realsense D435i 摄像头的驱动SDK和ROS Wrapper 2022年更新: 安装教程同:进更新安装包下载方式和下载链接--见文末. 1.安装Realsens ...

  4. Ubuntu18.04 + kinova joca2机械臂 + RealSense D435i深度相机进行eye to hand手眼标定

    文章目录 前言 一.前期准备 1. RealSense D435i安装 2. Kinova-ROS安装 二.手眼标定环境配置 1. visip 2. aruco_ros 3. easy_handeye ...

  5. Ubuntu18.04运行ORB-SLAM3(Demo+本地Realsense D415运行)

    ORB-SLAM3论文地址:https://arxiv.org/abs/2007.11898 代码地址:https://github.com/UZ-SLAMLab/ORB_SLAM3 一.安装库 根据 ...

  6. Ubuntu18.04+python3.6+pcl-1.8+opencv3+realsense D415环境搭建

    Ubuntu18.04+python3.6+pcl-1.8+opencv3+realsense D415环境搭建 说明:此篇文章是参考了几位博主,因为自己要用realsenseD415深度相机,并且使 ...

  7. Ubuntu18.04 realsenseD435i深度摄像头外参标定的问题

    Ubuntu18.04 realsenseD435i深度摄像头外参标定的问题 鱼香ROS介绍: 鱼香ROS是由机器人爱好者共同组成的社区,欢迎一起参与机器人技术交流. 进群加V:fishros2048 ...

  8. Orbslam2 稠密点云 +D435i实现(Ubuntu18.04)

    系统:Ubuntu18.04 设备:Realsense D435i 一.安装相关依赖库 毕设后写的一篇通俗一些的,适合没接触过或不太会ubuntu的同学,前半部分都是一样的, tips:需要安装一个[ ...

  9. 树莓派+ubuntu18.04+ROS-melodic+MAVROS+librealsense+vio+realsense_ros

    目录 一.树莓派安装ubuntu18.04 1 下载ubuntu系统文件 2 将系统文件烧入SD卡 3 强制修改HDMI输出分辨率(此步骤可忽略) 4 设置wifi(此步骤也可忽略,后续连接网线安装桌 ...

最新文章

  1. 云计算将成为金融服务业的主流技术
  2. 使用 Bundle在Activity间传递数据
  3. idea 从svn导入多个项目_IDEA导入项目简单教程
  4. ASP.NET Core 2.1 : 十五.图解路由(2.1 or earler)
  5. I/O多路复用是什么?(I/O multiplexing)
  6. python中options设置_如何在AngularJS的ng-options中设置value属性?
  7. [转]automaticallyAdjustsScrollViewInsets(个人认为iOS7中略坑爹的属性)
  8. Vscode多个窗口显示多个选项卡/Tabs
  9. 【Django 2021年最新版教程13】Cookie是什么 如何使用
  10. vivado综合阶段部分IP报错--需要安装y2k22补丁包
  11. 小度智能音响拆解 芯片_拆机解析,小度智能音箱1S,万能遥控版音箱,这做工你想不到...
  12. Python 第六章 面向对象编程(MD模式)
  13. 服务器修改硬盘顺序,服务器硬盘阵列硬盘顺序
  14. 魔众EDM邮件营销系统 v1.1.0 页面SEO优化,系统升级调整
  15. Psoc Creator入门——EZI2C 通信
  16. Python大学计算机程序设计-通讯录管理系统
  17. 一个屌丝程序员的青春(一九一)
  18. 在eclipse上配置tomcat,安装eclipse的JST Server Adapters Extensions时报错 Anerroroccurredwhilecollectingitems...
  19. js实现3D旋转相册
  20. 双系统下ubuntu自动挂载windows盘

热门文章

  1. win10记事本编写html没反应,Win10记事本编辑时无响应假死解决方法(图)
  2. 药品追溯体系建设方案
  3. Execution Error,return code 2 from org.apache.haddop.hive.ql.exec.mr.MapRedTask解决办法
  4. java 2d 应用_JAVA 2D的一些应用
  5. 通过VBA在excel中实现股票历史数据查询和K线趋势图绘制(完整的excel原件可以在我的资源中下载)
  6. scratch(图形化编程工具)绘制一个彩虹尾巴猫!
  7. 用户通过什么和计算机交换信息,人和计算机进行信息交换是通过计算机的输入、输出设备实现的。(  )——青夏教育精英家教网——...
  8. Web攻防——各脚本语言特有漏洞之ASP
  9. TokenGazer《一问到底》| 第56期:研究员 VS WOM
  10. office2019 下载安装在其他盘非系统盘