项目简介
本项目名为cityfly,是基于ROS2(jazzy)的无人机低空飞行软件算法栈。包含sensor驱动、融合定位、融合感知、避障规划、运动控制、诊断等模块,实现无人机低空自主飞行,操作者只需关注目标地点。此外,还有基于ROS2框架的传感器节点系统OakFfc4p,用于控制和管理四个摄像头的传感器设备。
项目的主要特性和功能
无人机低空飞行部分
- 多个功能模块,实现传感器驱动、融合定位、感知、避障规划、运动控制和诊断。
- 支持无人机自主低空飞行,减轻操作者负担。
传感器节点系统部分
- 初始化ROS2环境和日志系统,保证节点启动并记录调试信息。
- 支持设备配置与连接,包含打开设备、启动数据管道、创建发布者等。
- 提供在线运行和清理功能,启动数据轮询线程,处理线程完成和设备关闭。
- 构建含IMU和四个摄像头配置的数据管道,进行数据轮询和发布。
- 从设备获取IMU和图像数据,转换为ROS消息格式并发布。
安装使用步骤
开发环境搭建
- 安装docker:参考官方教程Install Docker Engine on Ubuntu,并完成Post-installation steps for Linux。
- 编译dev镜像:
bash cd cityfly ./src/docker/build.bash --dev
编译完成后,使用docker images
查看生成的镜像,其tag应为cityfly:dev
。 - 启动容器:
bash ./src/docker/run_dev.bash
启动后,在容器内编译cityfly仓库以验证环境正确性:bash colcon build
也可启动rviz2验证图形界面功能:bash source ~/.bashrc rviz2
- 启动IDE:
- tmux+nvim方式:
bash tmux nvim
运行与部署
开发环境容器内运行
与运行普通程序相同,此处不赘述。
宿主机运行
- 编译运行用的docker镜像:
bash ./src/docker/build.bash --run
- 以rosbag录包为例运行:
bash ./src/docker/run.bash ros2 bag record -a
传感器节点系统运行
- 环境准备:确保已安装ROS2开发环境及相关依赖库。
- 代码编译:在
minrui-hust_cityfly
仓库的根目录下运行colcon build
命令。 - 运行节点:
bash ros2 run minrui_hust_cityfly sensor_node oak_ffc_4p_node
- 验证功能:通过ROS2的工具和命令,验证节点功能是否正常,如查看日志、检查发布的话题和数据等。
以上步骤假设用户已经下载了本项目的源码文件,并且具备一定的ROS2开发环境配置经验。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】