• PX4实战之旅(五):利用T265实现室内定点飞行


    前言

    硬件:
    Intel NUC
    Intel Realsense T265
    Pixhawk 2.4.8

    软件:
    PX4 1.13.0
    Ubuntu 20.04
    Ros Neotic
    Mavros

    视觉惯性里程计测距(VIO)是一种计算机视觉技术,用于估算3D姿态(本地位置和方向),相对于本地起始位置的移动的机体速度。 它通常用于在GPS不存在或不可靠的情况下(例如室内或在桥下飞行时)给载具导航。
    VIO 使用视觉里程计(Visual Odometry)从相机图像中估计机身姿态,并结合机身IMU的惯性测量以校正。

    一、相机安装

    将相机连接到机载计算机并将其安装到机架上:
    使用提供的线缆连接 T265 和板载计算机。
    尽可能使镜头朝下安装相机(默认)。
    相机对振动非常敏感;建议使用软安装(例如使用隔振泡沫)。

    二、安装Realsense驱动

    使用下面的命令安装

    sudo apt-get install ros-noetic-realsense2-camera
    
    • 1

    安装完驱动之后,将T265连接到NUC,启动下面的launch文件测试

    roslaunch realsense2_camera demo_t265.launch
    
    • 1

    启动后会弹出RVIZ,里面可以显示T265的位姿,移动T265可以查看RVIZ显示是否正常。
    请添加图片描述

    三、安装VIO桥接包

    下载

    cd ~/catkin_ws/src
    git clone https://github.com/Auterion/VIO.git
    
    • 1
    • 2

    如果上面网址不存在,也可以在网盘中下载,然后解压放到src下
    链接:https://pan.baidu.com/s/1lFRgjZ7rEOrt7hP4Q74M2g?pwd=1hbc
    提取码:1hbc
    –来自百度网盘超级会员V6的分享
    编译

    cd ~/catkin_ws
    catkin_make
    
    • 1
    • 2

    四、配置摄像头方向

    如果需要,配置摄像头方向:
    如果摄像机的镜头朝下安装(默认设置),则VIO桥接包不需要任何配置。
    对于任何其他方向,请在修改bridge_mavros.launch中以下部分

    
    
    • 1
    • 2

    这是将ROS中摄像头帧camera_pose_frame链接到mavros无人机帧base_link的静态转换。
    前三个参数指定解释为从飞控中心到摄像机的 x,y,z方向,以米为单位。 例如,如果摄像头在飞控前方10cm,上方4cm, 则前三个数字将是:[0.1, 0, 0.04 …]
    接下来的三个 参数 是旋转弧度(偏航, 俯仰, 横滚)。 所以 [… 0, 1.5708, 0] 是向下俯仰90度(朝向地面)。 直面是 [… 0 0 0]。

    PX4中还需要修改下面三个参数。
    EKF2_EV_POS_X, EKF2_EV_POS_Y, EKF2_EV_POS_Z 设置T265相对于机体的位置。

    五、运行VIO

    通过使用适当的启动文件调用 roslaunch 来运行VIO:

    cd ~/catkin_ws
    source devel/setup.bash 
    roslaunch px4_realsense_bridge 启动文件
    
    • 1
    • 2
    • 3

    启动文件可以是下面三个:

    bridge_mavros.launch: 同时启动桥接和MAVROS。
    bridge.launch: 如果其他组件负责启动 MAVROS(仅启动桥接),则使用此launch文件
    bridge_mavros_sitl.launch:用于模拟仿真(启动桥接, MAVROS, SITL)验证与飞控的连接。

    我这里使用bridge_mavros.launch测试时发现飞控收不到T265位姿,可能是MAVROS启动失败。于是单独进行启动,就正常了。
    先将飞控连上NUC,启动MAVROS

    roslaunch mavros px4.launch
    
    • 1

    出现下面的提示说明连接正常
    请添加图片描述

    再启动T265桥接

    cd ~/catkin_ws
    source devel/setup.bash 
    roslaunch px4_realsense_bridge bridge.launch
    
    • 1
    • 2
    • 3

    出现下面提示说明启动正常
    请添加图片描述
    然后执行:

    rostopic echo /mavros/odometry/out
    
    • 1

    正常的话会打印T265的位姿
    请添加图片描述

    六、通过MAVROS连接地面站

    我这里飞控是用USB连接的NUC,USB端口已经被MAVROS使用,不能再连地面站,为了方便我这里通过MAVROS连接地面站

    修改px4.launch

    roscd mavros
    cd launch
    gedit px4.launch
    
    • 1
    • 2
    • 3

    将下图位置修改为

    
    
    • 1

    请添加图片描述
    设置地面站不要自动连接飞控
    请添加图片描述然后打开地面站,启动MAVROS,地面站就自动连接到飞控了,并且和MAVROS不冲突

    PX4设置

    连接到地面站,修改下面的参数
    EKF2_AID_MASK
    修改数据来源,将位置和偏航的数据来源修改为视觉,也就是T265
    请添加图片描述
    修改
    EKF2_HGT_MODE
    将高度模式设置为视觉
    请添加图片描述

    然后重启飞控,启动MAVROS和VIO桥接,打开地面站,在MAVLink Inspector可以看到LOCAL_POSITION_NED消息,移动T265可以查看数据是否正常,无人机此时可以切换到Position模式

    请添加图片描述数据的坐标系为前右下(FRD),将机架抬离地面,应该看到位置的z坐标减小。 向前移动无人机,应该增加位置的 x 坐标。 向右移动无人机时,应增加 y 坐标。线性速度也是以 FRD 机架参照系表示。

    检查无误就可以飞行测试了。

    常见问题 / 解决方案

    问题: 当无人机飞行时发生漂移/飞走,但是手拿着时位姿不会发生漂移。
    如果使用 T265,请尝试将其软安装(soft-mounting,做好减震,此相机对高频振动非常敏感)。

    问题: 启用 VIO 定点时无人机绕一个点转圈,越转越大。
    确保相机的方向与启动文件中的变换匹配。 确保相机方向没有装错

  • 相关阅读:
    [附源码]Python计算机毕业设计Django交通事故档案管理系统
    Spring In Action 5 学习笔记 chapter1 拓展
    DDS数据分发服务——提升汽车领域数据传输效率
    Seata详解
    初出茅庐的小李第115篇博客项目笔记之国产GD32F103RCT6基础工程创建
    springboot二手交易平台 毕业设计-附源码290915
    【LeetCode:86. 分隔链表 | 链表】
    附录12-伪类选择器
    ASP.NET第四章 Response、Request和Server对象
    图像质量评价指标pytorch库函数 FID FSIM SSIM LIPIPS...
  • 原文地址:https://blog.csdn.net/qq_38768959/article/details/127775815