安装RealSense SDK

1.注册服务器的公钥

sudo apt-key adv --keyserver keys.gnupg.net --recv-key F6E65AC044F831AC80A06380C8B3A55A6F3EFCDE || sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-key F6E65AC044F831AC80A06380C8B3A55A6F3EFCDE

2.添加软件源

#ubuntu 16
sudo add-apt-repository "deb https://librealsense.intel.com/Debian/apt-repo xenial main" -u

#ubuntu 18
sudo add-apt-repository "deb https://librealsense.intel.com/Debian/apt-repo bionic main" -u

3.安装SDK

sudo apt-get install librealsense2-utils
sudo apt-get install librealsense2-dev

*参考:https://dev.intelrealsense.com/docs/nvidia-jetson-tx2-installation

下载编译ROS包

mkdir -p ~/catkin_ws/src
cd ~/catkin_ws/src/
git clone https://github.com/IntelRealSense/realsense-ros.git
cd ..
catkin_make

*参考:https://github.com/IntelRealSense/realsense-ros

Bug及解决

OpenCV版本问题

1.报错内容

CMake Error at /opt/ros/melodic/share/cv_bridge/cmake/cv_bridgeConfig.cmake:113 (message):
  Project 'cv_bridge' specifies '/usr/include/opencv' as an include dir,
  which is not found.  It does neither exist as an absolute directory nor in
  '${{prefix}}//usr/include/opencv'.  Check the issue tracker
  'https://github.com/ros-perception/vision_opencv/issues' and consider
  creating a ticket if the problem has not been reported yet.
Call Stack (most recent call first):
  /opt/ros/melodic/share/catkin/cmake/catkinConfig.cmake:76 (find_package)
  realsense-ros/realsense2_camera/CMakeLists.txt:11 (find_package)


-- Configuring incomplete, errors occurred!
See also "/home/qianmo/realsense_ws/build/CMakeFiles/CMakeOutput.log".
See also "/home/qianmo/realsense_ws/build/CMakeFiles/CMakeError.log".
Invoking "cmake" failed

2.原因分析
Jetson Nano的OpenCV版本为4.x,目录位置不一致。
3.解决方法

roscd cv_bridge/cmake/
nano cv_bridgeConfig.cmake

SHIFT+ALT+3可以让nano显示行号,修改94行和96行内容,由:

 94 if(NOT "include;/usr/include;/usr/include/opencv " STREQUAL " ")
 95   set(cv_bridge_INCLUDE_DIRS "")
 96   set(_include_dirs "include;/usr/include;/usr/include/opencv")

改为:

 94 if(NOT "include;/usr/include;/usr/include/opencv4 " STREQUAL " ")
 95   set(cv_bridge_INCLUDE_DIRS "")
 96   set(_include_dirs "include;/usr/include;/usr/include/opencv4")

启动缺少依赖

1.报错内容

Resource not found: rgbd_launch
ROS path [0]=/opt/ros/melodic/share/ros
ROS path [1]=/home/qianmo/realsense_ws/src
ROS path [2]=/opt/ros/melodic/share
The traceback for the exception was written to the log file

2.原因分析
缺少依赖:rgbd_launch。
3.解决方法

sudo apt install ros-melodic-rgbd-launch