# UAVs_formation **Repository Path**: Anthony_Bridge/UAVs_formation ## Basic Information - **Project Name**: UAVs_formation - **Description**: 基于虚拟领航员、人工势场法队形组织的无人机编队飞行仿真 - **Primary Language**: Unknown - **License**: GPL-3.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-02-05 - **Last Updated**: 2025-02-17 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 基于虚拟领航员、人工势场法队形组织的无人机编队飞行仿真
### B站视频 [【ROS、PX4】基于虚拟领航员、人工势场法队形组织的无人机编队飞行仿真](https://www.bilibili.com/video/BV12m421L7iX/?spm_id_from=333.1387.homepage.video_card.click&vd_source=c46697e1d06be94cd5e10883ded86efe) ## 一、项目所需的基础环境 系统:Ubuntu20.04 x86
CPU:推荐等效性能 >= 8代Intel移动端i5处理器
GPU:推荐等效性能 >= GTX1050或等效性能 >= 12代Intel CPU核显
ROS:ros-noetic版本,Gazebo11 ## 二、前置配置要求 电脑需要配置好Ubuntu20.04x86版本基础环境,完整安装ros-noetic版本,并配置好所需的基础开发环境
安装ROS推荐使用[鱼香ROS](https://fishros.org.cn/forum/topic/20/%E5%B0%8F%E9%B1%BC%E7%9A%84%E4%B8%80%E9%94%AE%E5%AE%89%E8%A3%85%E7%B3%BB%E5%88%97)
若网址无法进入请搜索引擎搜索“鱼香ROS” ## 三、下载源码 项目源码包括PX4,尺寸较大,使用百度网盘下载:
链接:https://pan.baidu.com/s/1D-zCK7JbylbOcSWiwOoqwA?pwd=yyvi  提取码:yyvi ## 四、开始配置 安装依赖: ``` sudo apt-get install ros-noetic-mavros ros-noetic-mavros-extras ``` 解压下载的源码压缩包进入UAVs_formation文件夹下的Resource文件夹,将GeographicLib文件夹整体复制到/usr/share目录下,可以在Resource文件夹下打开终端运行: ``` sudo cp -r GeographicLib/ /usr/share/ ``` 实现复制。
复制完成后回到Resource文件夹,依次运行: ``` sudo chmod 777 install_geographiclib_datasets.sh sudo ./install_geographiclib_datasets.sh ``` 正确执行会输出: ``` GeographicLib geoids dataset egm96-5 already exists, skipping GeographicLib gravity dataset egm96 already exists, skipping GeographicLib magnetic dataset emm2015 already exists, skipping ``` 将Resource文件夹下的models文件夹整体复制到~/.gazebo目录下,可以在Resource文件夹下打开终端运行: ``` cp -r models/ ~/.gazebo/ ``` 完成复制。注意.gazebo目录在系统主目录下,为一个隐藏文件夹,需要打开隐藏文件夹显示才能看到。
进入Resource文件夹下的conio.h文件夹,在conio.h文件夹下打开终端,依次运行: ``` sudo make sudo make install ``` 无报错则完成。 ## 五、PX4配置 进入UAVs_formation文件夹下的PX4-Autopilot文件夹,在PX4-Autopilot文件夹下打开终端运行:(这一步会从国外仓库下载文件,建议挂梯子,否则容易失败) ``` bash ./Tools/setup/ubuntu.sh ``` 没有报错并输出“Relogin or reboot computer before attempting to build NuttX targets”则完成,然后根据这个提示重启电脑,再执行之后的步骤。
重启后,重新进入UAVs_formation文件夹下的PX4-Autopilot文件夹,在PX4-Autopilot文件夹下打开终端运行: ``` sudo chmod 777 ./Tools/check_submodules.sh sudo chmod 777 ./Tools/sitl_run.sh sudo chmod 777 ./Tools/sitl_gazebo/scripts/jinja_gen.py make px4_sitl gazebo ``` 这一步成功后会启动Gazebo,可以在仿真环境中看到一个四旋翼无人机:
## 六、开始运行 进入UAVs_formation文件夹,在此文件夹下打开终端,运行catkin_make命令,编译ROS工作空间,这一步不应该出现报错,出现报错请阅读原因并解决。
进入PX4-Autopilot文件夹,找到其中的“环境变量.txt”并打开,复制其中所有内容。在PX4-Autopilot文件夹下打开终端,将刚刚复制的内容全部粘贴到终端中,然后回车执行。(P.S.这一步的作用是为了刷新当前目录下PX4 ROS功能包的环境变量,让ROS识别到当前目录下的功能包,每一次在这个目录下打开的新终端都需要执行一次这一步,如果不想每次都执行,也可以将“环境变量.txt”中的内容加入系统全局变量,具体做法参见网络,这个做法并不推荐)
在刚刚打开的终端中执行: ``` roslaunch px4 multi_uav_mavros_sitl.launch ``` 执行后会自动启动Gazebo,一切正常会出现仿真场景和多架四旋翼无人机,如下图所示:
正常启动后,回到UAVs_formation文件夹下,打开一个新终端,依次执行: ``` source ./devel/setup.bash roslaunch integrated_launch UAVs_keyboard_control.launch ``` 执行后,Gazebo场景中的无人机会起飞,起飞完成后,在指向该终端的情况下,可以使用键盘控制。(P.S.注意需要指向刚刚运行“roslaunch integrated_launch UAVs_keyboard_control.launch”语句的终端,即将这个终端放在前台才可以使用键盘控制)
键盘键位对应:
``` 小键盘数字键: 8:前进 2:后退 4:向左平移 6:向右平移 7:上升 9:下降 1:左转 3:右转 5:停止 键盘字母键: P:菱形队形(默认) O:正方形队形 I:横向一字型队形 U:竖向一字型队形 ```