# 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:竖向一字型队形
```