基于跟踪摄像头的自主室内定位

注意:本教程适用于 Kerloud Flying Rover Scorpion VIO

室内定位对于实现 Kerloud Flying Rover 的自动室内驾驶、飞行至关重要。Scorpion VIO 配备有英特尔Realsense跟踪摄像头T265和激光测距仪,可分别提供0.05m和0.01m的水平和垂直定位精度。 跟踪摄像头可以输出基于视觉里程计(VIO)的实时姿态估计,自动驾驶仪中将VIO输出与IMU数据融合来进行低级状态估计。

1. 环境设置

机载计算机中已安装此用例所需的全部预装软件。Scorpion VIO推荐的环境是ubuntu 20.04和ROS noetic,现成的工作区位于~/src/catkinws_realsense目录下,包含以下软件包:

  • realsense-ros : realsense相机的官方ros包

  • VIO : 连接realsense VIO 输出与mavros通道的软件包

编译工作区,

    # source customized offboard control workspace first
    # included in ~/.bashrc for convenience
    cd ~/src/flyingrover_workspace/catkinws_offboard
    source devel/setup.bash

    cd ~/src/catkinws_realsense
    catkin build -j 2 # set j=2 to avoid overburden

请注意,本地工作区依赖于我们位于 ~/src/catkinws_offboard 中的自定义包(mavros、mavlink),因此用户必须在编译工作区前先从 offboard control 工作区中获取环境设置。 在此强调,ROS发布的默认mavros和mavlink包不能用于我们的 Kerloud Flying Rover,默认情况下source操作包含在 ~/.bashrc 中。

2. 使用方法

固件设置

飞控在出厂阶段已进行调优,无需再进行固件设置。用户在初次使用时必须校准 IMU 传感器(加速度计、陀螺仪和磁力计),磁力计需定期校准,因为自动驾驶仪使用其数据进行航向估计。如果您误修改了任何板载参数,请咨询我们的售后寻求帮助。

网络设置

Scorpion VIO 可连接到具有 wifi 的本地网络中,以便轻松实现远程操作。通过ssh工具,用户可以通过相应的IP地址访问板载计算机:

    ssh ubuntu@<drone IP address>

与室内激光slam教程类似,登录路由器的管理页面可以找到机体的IP地址。以TP-Link路由器为例,用户可以访问<192.168.0.1>或http://tplogin.cn 查看本地网络中所连接的全部电脑。Scorpion VIO 的计算机名称默认为 ubuntu。 IP 地址会显示如下:

📌 用户在远程连接机载电脑时至少需要等待3分钟,以确保所有系统启动进程完成。否则Realsense T265 跟踪相机有可能不能正常工作。

开启室内定位

要开启定位进程,

    cd ~/src/flyingrover_workspace/catkinws_realsense
    bash run.sh

然后用户可以通过命令行查看 ROS 话题来确认本定位输出:

    rostopic echo /mavros/odometry/out # VIO output
    rostopic echo /mavros/local_position/pose  # fused vehicle position from the autopilot

通常定位操作可能需要 20-30 秒才能在自动驾驶仪中稳定下来。用户可以查看飞行控制器的本地位置话题来验证定位状态,通过在 QGroundcontrol 站的 Mavlink 控制台中键入以下命令即可实现:

    listener vehicle_local_position

有些时候控制台会由于网络负担而输出不完整, 用户可以尝试以下命令:

    listener vehicle_local_position -n 20

我们建议所有用户首先进行半自动室内飞行,因为飞行可以帮助验证机载软件的定位精度,操作步骤与快速入门部分相同。预计机体可以很好地悬停,甚至比户外情况下更好。

进行室内飞行

补充说明,应确保相机前面有一些可识别特征,不要让机体面向纯白色墙壁或玻璃。

3. 演示视频

半自主室内飞行:

视频链接

Last updated