最近在搭建无人机的自主飞行平台,无GPS的情况下室内定位的方案除了光流,最好的就是配合intel的realsense系列的摄像头。尤其是T265本身带IMU,可以直接给飞控输出位姿信息,不管是APM固件还是PX4固件,在ROS和MAVROS的帮助下,都可以直接获取T265的信息。
自主飞行平台的板载电脑是树莓派3b+,运行ubuntu mate 18.04的系统和ROS Melodic,理论上可以随时更换为性能更强劲的英伟达Jetson系列系统,或者intel upboard系列。
ROS的安装,在其他的文章中已经讲过了。本文只涉及部署Intel的T265相机。分为两个部分,SDK的安装和ROS节点的安装。前提是ROS系统已经被部署在树莓派上。

0. 预操作:扩大Swap分区

Ubuntu mate默认的Swap分区太小,编译时会直接卡死,并且不会报错,所以首先要扩大swap分区。另外,编译操作会让树莓派温度升高的很厉害,需要安装好散热风扇。
查看当前的交换空间大小,我的默认是100M

free -m 

1.建立交换空间文件
随便在哪里都行,放到碰不到的地方,防治误删除

cd /opt/
sudo mkdir swap_temp #名字任意起
cd swap_temp
sudo touch swap

2.设置交换文件的大小

sudo dd if=/dev/zero of=/opt/swap_temp/swap bs=1024 count=3048000  # 我这里设置的是3G

等一会儿,结束时才会有回显,我的写入速度是20M每秒,3G需要2分钟左右
结束后返回:

3048000+0 records in
3048000+0 records out
2097152000 bytes (2.9 GB, 3.0 GiB) copied, 242.095 s, 18.7 MB/s

3.设置为交换空间

sudo mkswap /opt/swap_temp/swap

4.启用交换空间

sudo swapon /opt/swap_temp/sawp

现在已经可以使用了,通过free -m查看

5.写入分区

sudo vim /etc/fstab
文件最后加入
/opt/swap_temp/sawp /swap swap defaults 0 0

1.Intel Realsense SDK的安装

1.安装依赖包

sudo apt-get update && sudo apt-get upgrade && sudo apt-get dist-upgrade
sudo apt-get install git cmake libssl-dev libusb-1.0-0-dev pkg-config libgtk-3-dev
sudo apt-get install libglfw3-dev libgl1-mesa-dev libglu1-mesa-dev

第二行的是核心依赖,必装。第三行是3D相关的依赖,如果不打算使用realsense-viewer,可以不装,树莓派性能有限,安装SDK的目的是为了安装好驱动,不需要执行太多本机操作,建议内存卡小的不用装了。

3.下载Realsense SDK

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

4.编译准备

cd librealsense
mkdir build && cd build
cmake ../ -DCMAKE_BUILD_TYPE=Release -DBUILD_EXAMPLES=true \
-DFORCE_RSUSB_BACKEND=ON -DBUILD_WITH_TM2=false -DIMPORT_DEPTH_CAM_FW=false

-DFORCE_RSUSB_BACKEND=ON 必选,强制LIBUVC后端,否则你要自己给内核打补丁。
5.编译

sudo make uninstall && make clean && make -j2 && sudo make install -2


我自己的3B+需要编译三小时左右。中间交换空间最大占用为1.6G。

6.设置udev规则

sudo ./scripts/setup_udev_rules.sh

主要是为了识别设备,最重要的也就是这里
7.测试

realsense-viewer

我的机载电脑没有开图形界面,一般都是VNC连接上去。

2. 编译ROS驱动

目的是为了让ROS节点可以订阅T265发回的IMU信息。
英特尔官方发布了两种安装方式,1是通过apt的方式安装二进制文件,2是通过源码编译。但是前提是系统里已经安装好了对应的ROS系统,我的是18.04+Melodic

2.1 APT-Get 安装

export ROS_VER=melodic

安装

sudo apt-get install ros-$ROS_VER-realsense2-camera

用于3D显示的库

sudo apt-get install ros-$ROS_VER-realsense2-description

注意:

  • 这种方法安装的librealsense2总是落后于最新发布的版本

2.2 源码编译

1.创建工作目录

工作目录的名字不一定要是catkin_ws

mkdir -p ~/catkin_ws/src
cd ~/catkin_ws/src/
2.克隆源码
git clone https://github.com/IntelRealSense/realsense-ros.git
cd realsense-ros/
git checkout `git tag | sort -V | grep -P "^\d+\.\d+\.\d+" | tail -1`
cd ..
3.编译
catkin_init_workspace
cd ..
catkin_make clean
catkin_make -DCATKIN_ENABLE_TESTING=False -DCMAKE_BUILD_TYPE=Release
catkin_make install
echo "source ~/catkin_ws/devel/setup.bash" >> ~/.bashrc
source ~/.bashrc

3.使用

启动节点

roslaunch realsense2_camera rs_camera.launch