单无人机自主搜索

6.1.1 单无人机自主搜索

参考教程:

HKUST-Aerial-Robotics/FUEL: An Efficient Framework for Fast UAV Exploration (github.com)

1. 查看系统环境

要运行本仿真程序,需要保证当前环境为ubuntu18.04+ros-melodic-desktop-full

查看ubuntu版本:

rosnoetic@rosnoetic-VirtualBox:~$ lsb_release -a

No LSB modules are available.
Distributor ID:	Ubuntu
Description:	Ubuntu 18.04.6 LTS
Release:	18.04
Codename:	bionic

可知,当前ubuntu版本满足18.04

查看ros版本:

rosnoetic@rosnoetic-VirtualBox:~$ rosversion -d

melodic

可知,当前ros版本满足melodic

2. 安装依赖

ctrl+alt+T打开终端,执行如下指令下载相关依赖

rosnoetic@rosnoetic-VirtualBox:~$ sudo apt-get install libarmadillo-dev ros-melodic-nlopt libelf-dev libdw-dev
  • 如果出现错误:E: 无法获得锁 /var/lib/dpkg/lock-frontend - open (11: 资源暂时不可用)

    我们在使用Ubuntu系统时经常性使用sudo apt install命令安装所需要的软件库,偶尔会出现如下问题:

    解决方法

    首先我们需要检测进程都有哪些:

    rosnoetic@rosnoetic-VirtualBox:~$ ps -e | grep apt
    

    我这里显示

    接下来杀死这些进程(需要根据你自己的进程ID更改命令)

    rosnoetic@rosnoetic-VirtualBox:~$ sudo kill 2746
    
    rosnoetic@rosnoetic-VirtualBox:~$ sudo kill 2750
    

    根据实际操作,一般只用执行第一句话就可以了,第二个进行会跟着一起被杀死。

    接下来非常重要:

    rosnoetic@rosnoetic-VirtualBox:~$ sudo rm /var/lib/dpkg/lock-frontend 
    
    rosnoetic@rosnoetic-VirtualBox:~$ sudo rm /var/cache/apt/archives/lock
    
    rosnoetic@rosnoetic-VirtualBox:~$ sudo rm /var/lib/dpkg/lock 
    
    rosnoetic@rosnoetic-VirtualBox:~$ sudo rm /var/cache/apt/archives/lock
    

    执行完一般都会解决问题

    如果还提示错误,先更新:

    rosnoetic@rosnoetic-VirtualBox:~$ sudo apt-get update
    

3. 下载源码并编译

ctrl+alt+T打开终端,并执行如下指令创建工作空间

rosnoetic@rosnoetic-VirtualBox:~$ mkdir -p uav_explore/src

进入uav_explore/src文件夹下载源码:

rosnoetic@rosnoetic-VirtualBox:~$ cd uav_explore/src/

rosnoetic@rosnoetic-VirtualBox:~/uav_explore/src$ git clone https://github.com/HKUST-Aerial-Robotics/FUEL.git

编译源码:

rosnoetic@rosnoetic-VirtualBox:~$ cd uav_explore/

rosnoetic@rosnoetic-VirtualBox:~/uav_explore$ catkin_make
  • 编译过程

4. 运行

4.1 扩大内存

首先关闭交换分区

rosnoetic@rosnoetic-VirtualBox:~$ sudo swapoff /swapfile

接着创建分区, 4 * 1024 = 4096创建 4 G 的内存分区

rosnoetic@rosnoetic-VirtualBox:~$ sudo dd if=/dev/zero of=/swapfile bs=1M count=4096

继续执行如下指令:

rosnoetic@rosnoetic-VirtualBox:~$ sudo mkswap /swapfile

rosnoetic@rosnoetic-VirtualBox:~$ sudo swapon /swapfile

创建完交换分区之后就可以继续编译。

也可以查看分区的大小

rosnoetic@rosnoetic-VirtualBox:~$ free -m

  • 如果不需要用交换内存,则执行如下指令进行关闭

    rosnoetic@rosnoetic-VirtualBox:~$ sudo swapoff /swapfile
    
    rosnoetic@rosnoetic-VirtualBox:~$ sudo rm /swapfile
    

4.2 启动仿真

ctrl+alt+T打开终端,执行如下指令启动可视化

rosnoetic@rosnoetic-VirtualBox:~$ cd uav_explore/

rosnoetic@rosnoetic-VirtualBox:~/uav_explore$ source ./devel/setup.bash 

rosnoetic@rosnoetic-VirtualBox:~/uav_explore$ roslaunch exploration_manager rviz.launch

ctrl+alt+T打开终端,执行如下指令启动协同仿真

rosnoetic@rosnoetic-VirtualBox:~$ cd uav_explore/

rosnoetic@rosnoetic-VirtualBox:~/uav_explore$ source ./devel/setup.bash 

rosnoetic@rosnoetic-VirtualBox:~/uav_explore$ roslaunch exploration_manager exploration.launch

点击Rviz软件的2D Nav Goal设置目标,启动无人机运动:

接着就可以看到无人机开始搜索,完成对地图的探索功能

posted on 2024-08-05 12:55  守望者与托养者  阅读(15)  评论(0编辑  收藏  举报