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

慈云数据 2024-03-22 技术支持 130 0

文章目录

  • 前言
  • 一、相机安装
  • 二、安装Realsense驱动
  • 三、安装VIO桥接包
  • 四、配置摄像头方向
  • 五、运行VIO
  • 六、通过MAVROS连接地面站
  • PX4设置

    前言

    硬件:

    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
    

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

    roslaunch realsense2_camera demo_t265.launch
    

    启动后会弹出RVIZ,里面可以显示T265的位姿,移动T265可以查看RVIZ显示是否正常。

    请添加图片描述

    三、安装VIO桥接包

    下载

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

    如果上面网址不存在,也可以在网盘中下载,然后解压放到src下

    链接:https://pan.baidu.com/s/1lFRgjZ7rEOrt7hP4Q74M2g?pwd=1hbc

    提取码:1hbc

    –来自百度网盘超级会员V6的分享

    编译

    cd ~/catkin_ws
    catkin_make
    

    四、配置摄像头方向

    如果需要,配置摄像头方向:

    如果摄像机的镜头朝下安装(默认设置),则VIO桥接包不需要任何配置。

    对于任何其他方向,请在修改bridge_mavros.launch中以下部分

     
    

    这是将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 启动文件
    

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

    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
    

    出现下面的提示说明连接正常

    请添加图片描述

    再启动T265桥接

    cd ~/catkin_ws
    source devel/setup.bash 
    roslaunch px4_realsense_bridge bridge.launch
    

    出现下面提示说明启动正常

    请添加图片描述

    然后执行:

    rostopic echo /mavros/odometry/out
    

    正常的话会打印T265的位姿

    请添加图片描述

    六、通过MAVROS连接地面站

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

    修改px4.launch

    roscd mavros
    cd launch
    gedit px4.launch
    

    将下图位置修改为

     
    

    请添加图片描述

    设置地面站不要自动连接飞控

    请添加图片描述然后打开地面站,启动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 定点时无人机绕一个点转圈,越转越大。

    确保相机的方向与启动文件中的变换匹配。 确保相机方向没有装错

微信扫一扫加客服

微信扫一扫加客服

点击启动AI问答
Draggable Icon