使用动作捕捉进行飞行(VICON、Optitrack)
:::警告 内容仍在完善中
本主题与外部位置估计(ROS)有大量重叠内容。 :::
像VICON、诺亦腾(NOKOV)和Optitrack这样的室内动作捕捉系统,可用于为飞行器状态估计提供位置和姿态数据,或作为用于分析的真实数据参考。 动作捕捉数据可用于更新PX4相对于局部原点的局部位置估计。姿态估计器也可以选择整合来自动作捕捉系统的航向(偏航角)信息。
来自动作捕捉系统的位姿(位置和方向)数据通过MAVLink协议,使用ATT_POS_MOCAP消息发送到自动驾驶仪。有关数据表示规范,请参阅下面关于坐标系的部分。mavros ROS-Mavlink接口有一个默认插件来发送此消息。也可以使用纯C/C++代码并直接使用MAVLink库来发送这些数据。
计算架构
强烈建议 您通过 机载 计算机(如树莓派、ODroid等)发送动作捕捉数据,以确保通信可靠。机载计算机可以通过WiFi连接到动作捕捉计算机,WiFi能提供可靠的高带宽连接。
大多数标准的遥测链路,如3DR/SiK无线电, 不 适合高带宽的动作捕捉应用场景。
坐标系
本节展示如何使用正确的参考系来设置系统。有多种表示方式,但我们将使用其中两种:东北天(ENU)坐标系和北东地(NED)坐标系。
- 东北天(ENU)坐标系是一个固定于地面的坐标系,其中 X 轴指向东,Y 轴指向北,Z 轴指向上方。机器人/飞行器的机体坐标系中,X 轴指向前方,Z 轴指向上方,Y 轴指向左侧。
- 北东地(NED)坐标系中,X 轴指向北,Y 轴指向东,Z 轴指向下方。机器人/飞行器的机体坐标系中,X 轴指向前方,Z 轴指向下方,Y 轴按相应方向确定。
坐标系如下图所示。左侧是北东地(NED)坐标系,右侧是东北天(ENU)坐标系:
然而,在进行外部航向估计时,磁北方向将被忽略,并使用一个与世界 x 轴对应的向量来替代(该向量在动作捕捉校准中可自由设置);偏航角将相对于局部 x 轴给出。
:::警告 在动作捕捉软件中创建刚体时,请记住首先将机器人与世界 X 轴对齐,否则偏航角估计会有一个初始偏移。 :::
估计器选择
对于支持GPS的系统,建议使用扩展卡尔曼滤波器2(EKF2)(局部位置估计(LPE)已弃用,因此不再受支持或维护)。 如果您没有GPS,建议使用Q估计器,因为它无需磁力计或气压计即可工作。
有关更多信息,请参阅切换状态估计器。
扩展卡尔曼滤波器2(EKF2)
动作捕捉系统的动作捕捉数据的ROS话题为 mocap_pose_estimate
,视觉数据的话题为 vision_pose_estimate
。 有关更多信息,请查看mavros_extras 。