littlebot
Published on 2025-04-09 / 1 Visits
0

【源码】基于ROS2框架的无人机低空飞行系统

项目简介

本项目名为cityfly,是基于ROS2(jazzy)的无人机低空飞行软件算法栈。包含sensor驱动、融合定位、融合感知、避障规划、运动控制、诊断等模块,实现无人机低空自主飞行,操作者只需关注目标地点。此外,还有基于ROS2框架的传感器节点系统OakFfc4p,用于控制和管理四个摄像头的传感器设备。

项目的主要特性和功能

无人机低空飞行部分

  • 多个功能模块,实现传感器驱动、融合定位、感知、避障规划、运动控制和诊断。
  • 支持无人机自主低空飞行,减轻操作者负担。

传感器节点系统部分

  • 初始化ROS2环境和日志系统,保证节点启动并记录调试信息。
  • 支持设备配置与连接,包含打开设备、启动数据管道、创建发布者等。
  • 提供在线运行和清理功能,启动数据轮询线程,处理线程完成和设备关闭。
  • 构建含IMU和四个摄像头配置的数据管道,进行数据轮询和发布。
  • 从设备获取IMU和图像数据,转换为ROS消息格式并发布。

安装使用步骤

开发环境搭建

  1. 安装docker:参考官方教程Install Docker Engine on Ubuntu,并完成Post-installation steps for Linux
  2. 编译dev镜像: bash cd cityfly ./src/docker/build.bash --dev 编译完成后,使用docker images查看生成的镜像,其tag应为cityfly:dev
  3. 启动容器: bash ./src/docker/run_dev.bash 启动后,在容器内编译cityfly仓库以验证环境正确性: bash colcon build 也可启动rviz2验证图形界面功能: bash source ~/.bashrc rviz2
  4. 启动IDE:
  5. tmux+nvim方式bash tmux nvim

运行与部署

开发环境容器内运行

与运行普通程序相同,此处不赘述。

宿主机运行

  1. 编译运行用的docker镜像: bash ./src/docker/build.bash --run
  2. 以rosbag录包为例运行: bash ./src/docker/run.bash ros2 bag record -a

传感器节点系统运行

  1. 环境准备:确保已安装ROS2开发环境及相关依赖库。
  2. 代码编译:在minrui-hust_cityfly仓库的根目录下运行colcon build命令。
  3. 运行节点: bash ros2 run minrui_hust_cityfly sensor_node oak_ffc_4p_node
  4. 验证功能:通过ROS2的工具和命令,验证节点功能是否正常,如查看日志、检查发布的话题和数据等。

以上步骤假设用户已经下载了本项目的源码文件,并且具备一定的ROS2开发环境配置经验。

下载地址

点击下载 【提取码: 4003】【解压密码: www.makuang.net】