Hướng dẫn cài đặt T265 với SDK RealSense và RealSense-ROS

I. Giới thiệu phần cứng

Máy tính nh_embedded Jetson Xavier NX với thiết bị 6002E như hình dưới:

Camera T265 kép

II. Giới thiệu về RealSense SDK và RealSense-ROS

Theo quan điểm của tôi, RealSense SDK là trình điều khiển cần thiết để sử dụng T265, cho phép chúng ta mở phần mềm chính thức để xem vị trí và hình ảnh kép. RealSense-ROS là trình điều khiển cần thiết để tích hợp T265 với ROS.

Lưu ý quan trọng là có yêu cầu về phiên bản giữa RealSense SDK (librealsense) và RealSense-ROS. Nếu các phiên bản không tương thích, sẽ gặp vấn đề khi sử dụng T265, chẳng hạn như hiển thị không có kết nối T265 khi chạy các ví dụ.

Cách kiểm tra phiên bản tương thích giữa RealSense SDK (librealsense) và RealSense-ROS:

III. Cài đặt RealSense SDK

  1. Cài đặt từ mã nguồn Tải về nhãn v2.48.0, sau một thời gian kiểm tra, phiên bản 2.50.0 sau này sẽ gặp một số vấn đề lạ.
git clone -b v2.48.0 https://github.com/IntelRealSense/librealsense
cd librealsense
  1. Cài đặt các thư viện phụ thuộc Nối camera vào máy trước khi cài đặt:
sudo apt-get install libudev-dev pkg-config libgtk-3-dev
sudo apt-get install libusb-1.0-0-dev pkg-config
sudo apt-get install libglfw3-dev
sudo apt-get install libssl-dev
  1. Cài đặt tập lệnh quyền
sudo cp config/99-realsense-libusb.rules /etc/udev/rules.d/
sudo udevadm control --reload-rules && udevadm trigger
  1. Biên dịch và cài đặt
mkdir build
cd build
cmake ../ -DCMAKE_BUILD_TYPE=Release -DBUILD_EXAMPLES=true
sudo make uninstall
make clean && make -j8
sudo make install
  1. Kiểm tra cài đặt
cd librealsense/build/examples/capture
./rs-capture
realsense-viewer

IV. Cài đặt realsense-ros

Lưu ý: Nếu lệnh catkin_make gặp lỗi, có thể do bạn biên dịch ở sai thư mục. Hãy vào thư mục cấp trên và biên dịch trong thư mục realsense-ros.

  1. Cài đặt
cd ~/control/ROS
git clone -b v2.3.1 https://github.com/IntelRealSense/realsense-ros.git
git clone https://github.com/pal-robotics/ddynamic_reconfigure.git
cd realsense-ros
catkin_make -DCATKIN_ENABLE_TESTING=False -DCMAKE_BUILD_TYPE=Release
catkin_make install
sudo gedit ~/.bashrc
source ~/control/ROS/realsense-ros/devel/setup.bash
  1. Kiểm tra cài đặt
source ~/control/ROS/realsense-ros/devel/setup.bash
roslaunch realsense2_camera rs_camera.launch
rostopic list
  1. Chỉnh sửa rs_camera.launch

Trong quá trình hiệu chỉnh VINS thực tế, chúng ta cần tắt ánh sáng cấu trúc. Vì vậy, cần chỉnh sửa rs_camera.launch như sau:

<launch>
  <arg name="serial_no"           default=""/>
  <arg name="usb_port_id"         default=""/>
  <arg name="device_type"         default=""/>
  <arg name="json_file_path"      default=""/>
  <arg name="camera"              default="camera"/>
  <arg name="tf_prefix"           default="$(arg camera)"/>
  <arg name="external_manager"    default="false"/>
  <arg name="manager"             default="realsense2_camera_manager"/>
  <arg name="output"              default="screen"/>

  <arg name="fisheye_width"       default="1280"/>
  <arg name="fisheye_height"      default="720"/>
  <arg name="enable_fisheye"      default="false"/>

  <arg name="depth_width"         default="1280"/>
  <arg name="depth_height"        default="720"/>
  <arg name="enable_depth"        default="true"/>

  <arg name="confidence_width"    default="1280"/>
  <arg name="confidence_height"   default="720"/>
  <arg name="enable_confidence"   default="true"/>
  <arg name="confidence_fps"      default="15"/>

  <arg name="infra_width"         default="1280"/>
  <arg name="infra_height"        default="720"/>
  <arg name="enable_infra"        default="true"/>
  <arg name="enable_infra1"       default="true"/>
  <arg name="enable_infra2"       default="true"/>
  <arg name="infra_rgb"           default="false"/>

  <arg name="color_width"         default="1280"/>
  <arg name="color_height"        default="720"/>
  <arg name="enable_color"        default="true"/>

  <arg name="fisheye_fps"         default="15"/>
  <arg name="depth_fps"           default="15"/>
  <arg name="infra_fps"           default="15"/>
  <arg name="color_fps"           default="15"/>
  <arg name="gyro_fps"            default="200"/>
  <arg name="accel_fps"           default="250"/>
  <arg name="enable_gyro"         default="true"/>
  <arg name="enable_accel"        default="true"/>

  <arg name="enable_pointcloud"         default="false"/>
  <arg name="pointcloud_texture_stream" default="RS2_STREAM_COLOR"/>
  <arg name="pointcloud_texture_index"  default="0"/>

  <arg name="enable_sync"               default="true"/>
  <arg name="align_depth"               default="false"/>

  <arg name="publish_tf"                default="true"/>
  <arg name="tf_publish_rate"           default="0"/>

  <arg name="filters"                   default=""/>
  <arg name="clip_distance"             default="-2"/>
  <arg name="linear_accel_cov"          default="0.01"/>
  <arg name="initial_reset"             default="false"/>
  <arg name="unite_imu_method"          default="copy"/>
  <arg name="topic_odom_in"             default="odom_in"/>
  <arg name="calib_odom_file"           default=""/>
  <arg name="publish_odom_tf"           default="true"/>
  <arg name="allow_no_texture_points"   default="false"/>
    <arg name="emitter_enable"   		   default="false"/>
	
<rosparam>
  /camera/stereo_module/emitter_enabled: 0
</rosparam>

<rosparam if="$(arg emitter_enable)">
  /camera/stereo_module/emitter_enabled: 1
</rosparam>

  <group ns="$(arg camera)">
    <include file="$(find realsense2_camera)/launch/includes/nodelet.launch.xml">
      <arg name="tf_prefix"                value="$(arg tf_prefix)"/>
      <arg name="external_manager"         value="$(arg external_manager)"/>
      <arg name="manager"                  value="$(arg manager)"/>
      <arg name="output"                   value="$(arg output)"/>
      <arg name="serial_no"                value="$(arg serial_no)"/>
      <arg name="usb_port_id"              value="$(arg usb_port_id)"/>
      <arg name="device_type"              value="$(arg device_type)"/>
      <arg name="json_file_path"           value="$(arg json_file_path)"/>

      <arg name="enable_pointcloud"        value="$(arg enable_pointcloud)"/>
      <arg name="pointcloud_texture_stream" value="$(arg pointcloud_texture_stream)"/>
      <arg name="pointcloud_texture_index"  value="$(arg pointcloud_texture_index)"/>
      <arg name="enable_sync"              value="$(arg enable_sync)"/>
      <arg name="align_depth"              value="$(arg align_depth)"/>

      <arg name="fisheye_width"            value="$(arg fisheye_width)"/>
      <arg name="fisheye_height"           value="$(arg fisheye_height)"/>
      <arg name="enable_fisheye"           value="$(arg enable_fisheye)"/>

      <arg name="depth_width"              value="$(arg depth_width)"/>
      <arg name="depth_height"             value="$(arg depth_height)"/>
      <arg name="enable_depth"             value="$(arg enable_depth)"/>

      <arg name="confidence_width"         value="$(arg confidence_width)"/>
      <arg name="confidence_height"        value="$(arg confidence_height)"/>
      <arg name="enable_confidence"        value="$(arg enable_confidence)"/>
      <arg name="confidence_fps"           value="$(arg confidence_fps)"/>

      <arg name="color_width"              value="$(arg color_width)"/>
      <arg name="color_height"             value="$(arg color_height)"/>
      <arg name="enable_color"             value="$(arg enable_color)"/>

      <arg name="infra_width"              value="$(arg infra_width)"/>
      <arg name="infra_height"             value="$(arg infra_height)"/>
      <arg name="enable_infra"             value="$(arg enable_infra)"/>
      <arg name="enable_infra1"            value="$(arg enable_infra1)"/>
      <arg name="enable_infra2"            value="$(arg enable_infra2)"/>
      <arg name="infra_rgb"                value="$(arg infra_rgb)"/>

      <arg name="fisheye_fps"              value="$(arg fisheye_fps)"/>
      <arg name="depth_fps"                value="$(arg depth_fps)"/>
      <arg name="infra_fps"                value="$(arg infra_fps)"/>
      <arg name="color_fps"                value="$(arg color_fps)"/>
      <arg name="gyro_fps"                 value="$(arg gyro_fps)"/>
      <arg name="accel_fps"                value="$(arg accel_fps)"/>
      <arg name="enable_gyro"              value="$(arg enable_gyro)"/>
      <arg name="enable_accel"             value="$(arg enable_accel)"/>

      <arg name="publish_tf"               value="$(arg publish_tf)"/>
      <arg name="tf_publish_rate"          value="$(arg tf_publish_rate)"/>

      <arg name="filters"                  value="$(arg filters)"/>
      <arg name="clip_distance"            value="$(arg clip_distance)"/>
      <arg name="linear_accel_cov"         value="$(arg linear_accel_cov)"/>
      <arg name="initial_reset"            value="$(arg initial_reset)"/>
      <arg name="unite_imu_method"         value="$(arg unite_imu_method)"/>
      <arg name="topic_odom_in"            value="$(arg topic_odom_in)"/>
      <arg name="calib_odom_file"          value="$(arg calib_odom_file)"/>
      <arg name="publish_odom_tf"          value="$(arg publish_odom_tf)"/>
      <arg name="allow_no_texture_points"  value="$(arg allow_no_texture_points)"/>
      
      
    </include>
  </group>

</launch>

Phần được chỉnh sửa là:

<rosparam>
  /camera/stereo_module/emitter_enabled: 0
</rosparam>

<rosparam if="$(arg emitter_enable)">
  /camera/stereo_module/emitter_enabled: 1
</rosparam>

V. Các lỗi thường gặp trong quá trình cài đặt

  1. Lỗi CMake Error at /opt/ros/melodic/share/catkin/cmake/catkin_workspace.cmake:100 (message):

"This workspace contains non-catkin packages in it, and catkin cannot build a non-homogeneous workspace without isolation. Try the 'catkin_make_isolated' command instead."

Giải pháp: Xóa file .package.xml

  1. Lỗi CMake Error: The following variables are used in this project, but they are set to NOTFOUND.

Giải pháp: Kiểm tra phiên bản cmake. Phiên bản ros-melodic đi kèm cmake 3.10. Đừng nâng cấp cmake vội vàng, vì lệnh sudo make uninstall sẽ gỡ bỏ cmake.

  1. Lỗi cài đặt wstool

Giải pháp: Khi cài đặt mavros, bạn có thể gặp lỗi wstool. Cài đặt bằng:

sudo apt-get install python-wstool

hoặc

sudo pip install -U wstool
  1. Lỗi ERROR: your rosdep installation has not been initialized yet. Please run: rosdep update

Giải pháp:

rosdep init

Nếu lệnh rosdep update thất bại, có thể do các vấn đề kết nối mạng.

  1. Lỗi không thể kết nối GitHub

Giải pháp: Chỉnh sửa file hosts:

sudo gedit /etc/hosts

Thêm vào:

185.199.110.133 raw.githubusercontent.com
  1. Lỗi bash: rosinstall_generator: command not found.

Giải pháp:

sudo apt-get install rosinstall_generator
  1. Lỗi Mavros catkin_build

Giải pháp 1: Giới hạn hệ thống

Giải pháp 2: Giảm số nhân tính toán

Catkin_build -j2
  1. Lỗi CMake Error at CMakeLists.txt:1: Parse error. Expected a command name, got unquoted argument with text "/opt/ros/melodic/share/catkin/cmake/toplevel.cmake".

Giải pháp: Xóa file CMakeLists.txt trong thư mục src/

Thẻ: RealSense T265 ROS Ubuntu SDK

Đăng vào ngày 17 tháng 6 lúc 17:07