(12)使用 Vicon 室内定位系统(一)
文章目录
前言
1 概述
2 硬件设置
3 Vicon 系统设置
4 软件设置
5 pyvicon
6 pymavlink
前言
机器人实验室通常有一个使用 Vicon 室内定位系统的室内飞行设施。这些系统使用红外摄像机,通过网络连接提供高速率(200Hz)的位置和姿态。ArduPilot 可以使用这些定位信息进行精确的室内飞行。
1 概述
Vicon 系统自带 SDK,提供用于访问 Vicon 定位数据的 API。要将 Vicon 数据与 ArduPilot 结合使用,你需要一个工具来使用该 API,并将其映射到 MAVLink 数据包中发送给 ArduPilot。
可使用两种类型的 MAVLink 数据包:
- GLOBAL_VISION_POSITION_ESTIMATE 数据包,提供位置(NED)和姿态(欧拉角);
- GPS_INPUT 数据包,提供位置(纬度/经度)、高度、速度(3D)和偏航数据。
目前最好的方法是使用带有 GPS 偏航扩展的 GPS_INPUT,因为与 GLOBAL_VISION_POSITION_ESTIMATE 数据包中的姿态信息相比,GPS 数据包提供的速度数据对良好定位更有价值。今后,我们将支持在一个数据包中提供位置、速度和姿态的 VISION MAVLink 合并信息。
2 硬件设置
从 GCS 计算机到直升机,以及从 GCS 到 Vicon 服务器,你需要一个低延迟的网络链接。建议的方法是使用以太网连接 Vicon 服务器,并在旋翼机上使用运行 mavest8266 的 mavest8266 WiFi 链接。
3 Vicon 系统设置
应正确校准 Vicon 系统。应使用校准棒设置原点。在 Vicon Tracker 软件中,Vicon 系统世界帧的 Z 轴(蓝色显示)应指向上方。我们将 X 轴(红色)称为“北”,Y 轴(绿色)称为“西”。
无人机至少应有 4 个反光标记,以确保精确定位。无人飞行器上的任何反光表面都应用遮蔽胶带遮盖,以避免出现虚假探测。
将无人飞行器放入 Vicon 空间,使自动驾驶仪的前进方向朝向 “北”。(图 1)
在 Vicon 追踪器中,选择所有标记,并为无人机创建一个新对象。然后将无人机的坐标框架与 Vicon 世界框架对齐,这样 X 代表前方,Y 代表左方,Z 代表上方。(图 2)
图 1:创建 Vicon 对象时无人机定位示例。前进方向与 X 轴对齐。
图 2:Vicon Tracker 软件截图,显示与无人机坐标系对齐的世界坐标系(左下)。目标框架的原点应大致位于自动驾驶仪的位置。
!Warning
这些坐标框架约定适用于 MAVProxy 1.8.36 及以上版本。请确保你使用的是最新版本。
4 软件设置
你需要在直升机上安装最新版本的 ArduPilot。自 2019 年 9 月起,建议你使用 ArduPilot master。最新版本需要在 GPS_INPUT MAVLink 信息中支持偏航数据。
下面描述的设置使用 MAVProxy 中的 Vicon 模块将 Vicon 数据通过 MAVLink 传输到您的飞行器。
5 pyvicon
你需要使用至少 3.6 版本的 python 安装 pyvicon python 软件包。要安装 pyvicon,您还需要从 ViconDataStream SDK 安装 1.10 或更高版本的 Vicon SDK。
请注意,pyvicon 不支持 python2。
安装好 SDK 后,应像这样安装 pyvicon:
python3 setup.py build install --user
你还需要在 $PATH 中添加 $HOME/.local/bin。
6 pymavlink
你需要的 pymavlink 版本至少为 2.3.8。使用以下工具安装:
python3 -m pip install --upgrade --user pymavlink