进阶功能-室内指点飞行

  • 本节主要讲解P450系列无人机在室内的指点飞行演示。视频紧接上节内容 首次飞行 ,默认已经通过WiFi数传连接到QGC地面站和nomachine远程连接到板载计算机,主要分为一下几点进行讲解:启动指令,命令行控制终端详解,起飞,指点飞,以及最后的视频演示。

    注意!

    1.受限于开源飞控硬件性能,飞机在长时间不用后会出现位姿漂移,要求每次飞行前电池重新上电以重启飞控和板载计算机,并严格按照wiki规范操作,避免炸机风险。

    2.vins视觉定位对测试环境(光照条件、视觉特征点等)依赖较大,非vins专业人士 建议测试场地做如下部署:地面采用颜色交错的地板、且四周墙面尽量张贴二维码A4纸(发货时赠送的二维码A4纸,最忌四面白墙),以此增加飞机视觉定位的稳定性、保障试验效果的理想,相反在视觉特征点不明显的环境下定位数据容易发散、炸机风险增高。

启动指令

  • 请按以下步骤执行

    注意!

    受限于开源飞控硬件性能,飞机在长时间不用后会出现位姿漂移,要求每次飞行前电池重新上电以重启飞控和板载计算机,并严格按照wiki规范操作,避免炸机风险。

    22.png

    24.png

  • 输入启动脚本前,先在QGC重启飞控,如下图所示:

  • 选择MAVLink Console,进入MAVLink控制终端,输入reboot,回车,听到飞控重启的提示音,即重启飞控成功。

    23.png

  • 启动基本vio脚本 ,通过Nomachine访问板载终端,输入如下命令

    roslaunch p450_experiment p450_vio_onboard.launch
    
    None
  • 然后重新打开一个终端,再启动控制脚本,命令如下

    roslaunch p450_experiment p450_vio_control.launch
    

    None

  • 之后会出现终端控制界面,提示有两种控制的输入方式,第一种是通过命令输入控制方式,另外一种是通过键盘按键控制方式。

    None

    两种方式都可以控制无人机,一般在做实机实验过程中选择第一种通过命令输入控制方式;第二种键盘控制不太安全。接下来会详细讲解如何使用第一种命令输入控制方式实现指点飞行。

命令行控制终端详解

  • 如下图所示

    None

    其中

    0 表示的是 怠速;意思就是飞机会进入offboard模式,但是在该模式下,没有对飞机进行任何指令的发送。飞机也不会有任何动作。这个指令一般也可以不用。

    1 表示的是 起飞;起飞点为当前点,起飞高度通过 yaml参数文档设置,单位是米,默认起飞高度是0.5m

    2 表示的是 悬停;飞机正在飞行过程中如何接受到 2 指令,会在当前时刻进入悬停状态。

    3 表示的是 降落;降落速度通过 yaml参数文档设置,单位是m/s ,默认降落速度为0.2m/s 。还有一个上锁高度,到达上锁高度之后飞机会进入飞控的本身降落模式进而缓缓着地,上锁高度通过 yaml 参数文档进行设置,单位是米,默认是 0.18m,即认为离地不到20cm的时候进入飞控本身的降落飞行模式。

    4 表示的是 move模式;该模式就包含我们所称的指点飞行功能,在此模式下,又有5种子模式:

    • 0对应XYZ_POS,空间位置控制;

    • 1对应XY_POS_Z_VEL,水平面位置控制,高度速度控制;

    • 2对应XY_VEL_Z_POS,水平面速度控制,高度定高控制;

    • 3对应XYZ_VEL,空间速度控制;

    • 5对应TRAJECTORY,轨迹跟踪控制。

    None

    常用的模式为0空间位置控制(指点飞行),接下来会讲讲实机过程中起飞的具体实现。

起飞

  • 通过控制终端发送1起飞指令

    这时候飞机通过板载计算机已经给飞机一直发送起飞指令,但是目前飞机还没有进入offboard模式和解锁,所以飞机是没有响应的。

    /images/1起飞.png)

    然后遥控器切换到position模式,遥控器操作“内八”进行解锁,最后拨动offboard飞行模式开关。飞机就会慢慢起飞起来,保持在0.4m的高度。

    /images/起飞d到0.4米的高度.png)

    可以看到飞机起飞已经完成,保持在0.4m高度,接下来进行指点操作,这时候就不需要遥控器操作了,只需要看好遥控器,防止意外事情发生;进入指点飞行过程。

指点飞

  • 选择4 move 飞行模式,然后选择0空间位置控制,然后选择0 ENU_FRAME 惯性坐标系,最后输入期望的状态,空间位置xyz和航向角yaw。

    /images/1指点飞行.png)

    这里我们发送的指令是x为0.5,y为0.5,z为0.5,yaw为0.让飞机往前x轴飞行0.5m,往左y轴飞行0.5m,往上z轴飞行到0.5m,航向角保持不变发送为0。

    飞机开始移动到我们设定空间位置

    /images/飞到指定位置.png)

    上图可看飞机已经到达并且稳定到我们设定的空间位置。

    注意!

    1.受限于开源飞控硬件性能,飞机在长时间不用后会出现位姿漂移,要求每次飞行前电池重新上电以重启飞控和板载计算机,并严格按照wiki规范操作,避免炸机风险。

    2.vins视觉定位对测试环境(光照条件、视觉特征点等)依赖较大,非vins专业人士 建议测试场地做如下部署:地面采用颜色交错的地板、且四周墙面尽量张贴二维码A4纸(发货时赠送的二维码A4纸,最忌四面白墙),以此增加飞机视觉定位的稳定性、保障试验效果的理想,相反在视觉特征点不明显的环境下定位数据容易发散、炸机风险增高。

视频演示

  • 前两段测试视频为v1版本,第三段测试视频为v2版本功能演示,预祝复现室内指点飞行成功。

    v2版本功能演示