T265 安装(Realsense SDK和Realsense-ros)

参考文章 :1、 D435i ----- Ubuntu18.04下D435i使用(SDK安装与测试)_d435i使用手册_杰尼君的博客-CSDN博客

VIO视觉无人机室内定点自主飞行(T265+PX4+Mavros+NX)_air 2216电机_小白造飞机的博客-CSDN博客

Ubuntu18.04 安装D435i ROS_哦*&的博客-CSDN博客

一.写在前面

  1. 硬件配置:

Jeston xavier NX 机载电脑,板载6002E 设备如图:

5192347f83e33c5794ec46d2758184db.png

T265双目摄像头

495e902d5d2ed0387e459977743ade8e.png

二.Realsense SDK和Realsense-ros的介绍

在我看来,Realsense SDK是我们使用T265所需的驱动,如我们打开官方软件去观看位姿和双目。Realsense-ros则是我们将T265与ros配合使用的必要驱动。

同时我们需要注意的是Realsense SDK(librealsense)和Realsense-ros之间是有版本要求的,如果版本不对应,使用T265是存在问题,如运行相关例程是显示没有插上T265。

如何查看Realsense SDK(librealsense)和Realsense-ros两者之间的对应版本:

Releases · IntelRealSense/realsense-ros · GitHub

e2a82c5f6764f1e5b8cbbd2a686d129b.png

第一行适配ros1版本,同时realsense-ros版本为2.3.2;支持的realsense-sdk版本为2.50.0;支持的

ros1版本有Noetic、Melodic、Kinetic。

接下来我会把我安装时碰到的弯路。尽量都复现出来,让大家少走弯路,有更多时间找女朋友。

三.Realsense SDK安装

还是源码安装,这里下载 标签v2.48.0,经过我一段时间测试,2.50.0在后面会有一些奇怪的问题

git clone -b v2.48.0 https://github.com/IntelRealSense/librealsense
cd librealsense

下载依赖拔掉相机

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

安装权限脚本

sudo cp config/99-realsense-libusb.rules /etc/udev/rules.d/
sudo udevadm control --reload-rules && udevadm trigger 

编译安装

mkdir build
cd build
cmake ../ -DCMAKE_BUILD_TYPE=Release -DBUILD_EXAMPLES=true
sudo make uninstall
make clean && make -j8
sudo make install

测试安装

cd librealsense/build/examples/capture
./rs-capture

 

realsense-viewer

四.realsense-ros 的安装

注意:catkin_make 这步命令如果错了,可能是编译的地点错误,进入上一级目录,realsense-ros下编译

安装

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

测试安装

source ~/control/ROS/realsense-ros/devel/setup.bash
roslaunch realsense2_camera rs_camera.launch
rostopic list

修改rs_camera.launch

我们在后续vins实际标定时,需要关闭结构光,这里需要对rs_camera.launch进行修改

<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 set /camera/stereo_module/emitter_enabled 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>

修改的是

<!-- rosparam set /camera/stereo_module/emitter_enabled false -->
<rosparam>
  /camera/stereo_module/emitter_enabled: 0
</rosparam>

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

参考文章:Realsense d435i启动双目并关闭IR结构光(保证管用)_d435i关闭结构光_SJTU_YJ的博客-CSDN博客

Realsense D435i关闭IR结构光_Hecttttttttt的博客-CSDN博客

五.安装过程中的错误

1.错误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.

Call Stack (most recent call first):

CMakeLists.txt:69 (catkin_workspace)

解决办法删除.packge.xml

 

 

2.CMake Error: The following variables are used in this project, but they are set to NOTFOUND.

解决办法编译报错 CMake Error: The following variables are used in this project, but they are set to NOTFOUND._Will_Ye的博客-CSDN博客

Cmake --version 3.2.1 (ros 安装时会自带cmake(ros-melodic 下载时附带的cmake版本3.10),我们在编译px4会因为cmake的版本错误报错)

千万注意不要着急升级cmake ,如果你的命令有sudo make uninstall ,那样会卸载cmake。所以安装好ros1后正常安装T265,再编译PX4的时候再进行升级

 

 

3.wstool下载

解决办法:在我们安装mavros时,会碰到wstool,通过

sudo apt-get install python-wstool

或者 sudo pip install -U wstool 下载

wstool的安装_码农邦的博客-CSDN博客

 

4. ERROR: your rosdep installation has not been initialized yet. Please run:rosdep update

rosdep init

Rosdep update 失败的解决办法

解决办法:【ROS】解决rosdep无法更新、缺少依赖问题 - 知乎

这里再次感谢小鱼,放一下鱼哥的网址

小鱼的一键安装系列 | 鱼香ROS

 

5.Ubuntu 复制和移动文件命令

解决办法:Ubuntu在命令行中复制和移动文件/文件夹到另一个目录中 - 北冥有鱼

Ubuntu删除文件命令

ubuntu删除文件夹命令的方法_编程网

 

6.

Wget

https://raw.githubusercontent.com/mavlink/mavros/master/mavros/scripts/install_geographiclib_datasets.sh无法连接的问题

GitHub: Let’s build from here · GitHub无法连接

解决办法:

# 编辑hosts文件

sudo gedit /etc/hosts

# 在hosts中修改或添加下面内容

185.199.110.133 raw.githubusercontent.com

查询网址ip

ip查询 查ip 网站ip查询 同ip网站查询 iP反查域名 iP查域名 同ip域名 (专用于查询网址ip)

e33cada43ad23bbdec750539698c09c5.png

我原本以为选个中国的,结果根本不好用,选第一个就行,不行多试几个,反正电信那个就是下不了

 

 

7.bash: rosinstall_generator: command not found.

解决:sudo apt-get install rosinstall_generator

 

8.Mavros catkin_build 出错

两个办法

解除系统限制

c++: internal compiler error: Segmentation fault (program cc1plus) 解决_机器人虎哥的博客-CSDN博客

我改过后还是那样,open files没有变化,那么可以用第二个方法,不要盲目的以为是自己的内存问题,很可能是系统的限制

减少运算核数

Catkin_build -j2

 

9.PX4固件下载地址

Releases · PX4/PX4-Autopilot · GitHub

 10.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".   -- Configuring incomplete, errors occurred! Invoking "cmake" failed

解决办法: 删去src/下的cmakelists.txt

 

 

  • 6
    点赞
  • 61
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 7
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

YBH最帅!!!

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值