Acfly相关库的安装

Acfly 相关库的安装

安装 mavros

  • 参考 acfly_mavros 官方 readme 写的安装步骤

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    sudo apt-get install python-catkin-tools python-rosinstall-generator -y
    # 如果用的ROS版本是Noetic则使用
    # sudo apt install python3-catkin-tools python3-rosinstall-generator python3-osrf-pycommon -y

    # 需要替换你的ROS版本,且以下指令需要在同一个终端执行
    source /opt/ros/${你的ROS版本}/setup.bash

    # 因为acfly增加了自定义mavlink信息,若之前有通过二进制安装过mavros则需要卸载,没有则跳过
    sudo apt purge ros-${ROS_DISTRO}-mavlink ros-${ROS_DISTRO}-mavros

    # 构建ROS工作空间,可以自行修改路径
    mkdir -p ~/acfly_ws/src && cd ~/acfly_ws
    catkin init

    # 下载mavlink和acfly-mavros
    cd src
    git clone -b release/${ROS_DISTRO}/mavlink/2022.1.5-1 https://gitee.com/LauZanMo/mavlink
    git clone -b acfly-develop https://gitee.com/LauZanMo/acfly-mavros

    # 安装依赖,如果rosdep update没执行则需要执行成功才能继续
    cd .. && rosdep install --from-paths src --ignore-src -y

    # 安装GeographicLib:
    ./src/acfly-mavros/mavros/scripts/install_geographiclib_datasets.sh

    # 第一次编译请执行acfly提供的脚本
    ./src/acfly-mavros/update_custom_msg.sh
    # 后续更改mavros源码只需要执行catkin build

    # 每一次开启终端都需要设置环境变量
    source devel/setup.bash
  • 安装 GeographicLib 出问题:
    将下载完的 GeographicLib 文件整个直接放到/usr/share/下

    1
    2
    # 进到存放GeographicLib的文件下
    sudo mv ./GeographicLib /usr/share

安装 T265 相关库

注意!

如果要同时使用 T265D435 的话, 请勿直接使用本文!
本文仅为单独使用 T265 时的教程。
请参考 T265 和 D435 联合使用

  • 安装 realsense_ros

1
git clone -b ros1-legacy https://github.com/IntelRealSense/realsense-ros.git
  • 安装 T265 和坐标转换的工具包

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    # 进到自己创建的acfly_ws工作空间下
    cd ~/acfly_ws/src

    # 克隆t265转换飞控的坐标的包
    git clone https://github.com/thien94/vision_to_mavros.git

    # 克隆t265的工具包
    git clone -b v2.50.0 https://github.com/IntelRealSense/librealsense.git

    # 到工作空间下编译所有的工具包
    # 此处编译时 librealsense 会出现 warn 不用管,不影响后续使用
    # 若其warn为git clone相关的网络警告
    # 则需要清空其 librealsense 和 realsense2_camera catkin build 出来的相关文件
    cd ~/acfly_ws && catkin build

    清空相关文件的指令为:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    cd ~/acfly_ws
    sudo rm -rf ./logs/realsense2_camera
    sudo rm -rf ./logs/librealsense2
    sudo rm -rf ./build/librealsense2
    sudo rm -rf ./build/realsense2_camera
    sudo rm -rf ./devel/*/realsense2_camera
    sudo rm -rf ./devel/*/librealsense*

    # 清空完后重新 catkin build
    cd ~/acfly_ws && catkin build
  • 使用说明

    直接使用:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    # 第一个终端
    # 打开t265
    roslaunch realsense2_camera rs_t265.launch

    # 第二个终端 添加参数说明fcu_url:=/dev/ttyUSB0:57600
    # 我使用的orangepi5plus上的gpio的uart
    roslaunch mavros acfly.launch fcu_url:=/dev/ttyS3:57600

    # 第三个终端
    # 此处需要先source前一步安装mavros工作空间中的setup.bash
    source devel/setup.bash
    roslaunch vision_to_mavros t265_tf_to_mavros.launch

    创建 launch 文件一次性调用:

    1
    2
    3
    4
    5
    6
    7
    cd ~/acfly_ws/src
    catkin_create_pkg acfly_master_launch rospy roscpp
    cd ..
    catkin build
    cd ./src/acfly_master_launch
    mkdir ./launch && cd ./launch
    vim ./start_all.launch

    编写 launch 文件:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <launch>
    <!-- 启动第一个终端的realsense2_camera节点 -->
    <include file="$(find realsense2_camera)/launch/rs_t265.launch" />

    <!-- 启动第二个终端的mavros节点 -->
    <!-- value="/dev/ttyUSB0:57600"请根据实际串口进行更改 -->
    <include file="$(find mavros)/launch/acfly.launch">
    <arg name="fcu_url" value="/dev/ttyUSB0:57600"/>
    </include>

    <!-- 启动第三个终端的vision_to_mavros节点 -->
    <include file="$(find vision_to_mavros)/launch/t265_tf_to_mavros.launch" />
    </launch>

    启动:

    1
    roslaunch acfly_master_launch start_all.launch

    注意!

    Acfly_A9 在不知名的一次固件版本更新之后,就算飞机没有接受到来着 T265 的传感器定位信息也能启动。
    会进入定高模式,正常启动应该是进入定点模式,这将导致飞机乱飞不可控