首页 > 其他分享 >6.1.2 无人机集群协同探索

6.1.2 无人机集群协同探索

时间:2024-08-07 09:43:18浏览次数:11  
标签:multi rosnoetic sudo uav explore 集群 6.1 无人机 VirtualBox

6.1.2 无人机集群协同探索

参考教程:

SYSU-STAR/RACER: Rapid Exploration with Multiple Unmanned Aerial Vehicles (UAV) (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
    

之后,需要使用以下命令安装 LKH-3(推荐使用 LKH-3.0.6 版本)。请确保可执行文件正确放置在 。LKH/usr/local/bin

rosnoetic@rosnoetic-VirtualBox:~$ wget http://akira.ruc.dk/~keld/research/LKH-3/LKH-3.0.6.tgz

解压文件LKH-3.0.6.tgz

rosnoetic@rosnoetic-VirtualBox:~$ tar xvfz LKH-3.0.6.tgz
  • 解压过程

编译LKH-3.0.6

rosnoetic@rosnoetic-VirtualBox:~$ cd LKH-3.0.6/

rosnoetic@rosnoetic-VirtualBox:~/LKH-3.0.6$ make
  • 编译过程

LKH文件复制到/usr/local/bin文件夹下:

rosnoetic@rosnoetic-VirtualBox:~/LKH-3.0.6$ sudo cp LKH /usr/local/bin

3. 下载源码并编译

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

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

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

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

rosnoetic@rosnoetic-VirtualBox:~/multi_uav_explore/src$ git clone https://github.com/SYSU-STAR/RACER.git

编译源码:

rosnoetic@rosnoetic-VirtualBox:~$ cd multi_uav_explore/

rosnoetic@rosnoetic-VirtualBox:~/multi_uav_explore$ catkin_make

此处编译的时候很容易出现msg或者srv没有转换为头文件.h,而导致编译那些引用这个头文件的cpp程序报错。

例如在编译multi_map_manager.h文件时,由于此前还没有生成ChunkStamps.h,所以导致此处引用的时候报错。

ctrl+alt+T打开终端,执行如下指令打开vscode

rosnoetic@rosnoetic-VirtualBox:~$ cd multi_uav_explore/

rosnoetic@rosnoetic-VirtualBox:~/multi_uav_explore$ code .

勾选”信任父文件夹”rosnoetic“中所有文件的作者“,点击”是,我信任此作者

打开multi_uav_explore/src/RACER/swarm_exploration/plan_env/CMakeLists.txt,将调用multi_map_manager.cpp库、sdf_map.cppmap_ros.cpp的代码注释,先不去编译报错的cpp程序,保证msgsrv头文件完整生成。

接着重新进行编译

rosnoetic@rosnoetic-VirtualBox:~$ cd multi_uav_explore/

rosnoetic@rosnoetic-VirtualBox:~/multi_uav_explore$ catkin_make

接着就可以发现devel/include文件下生成了相应的头文件

  • 头文件列表

头文件生成后,重新将multi_map_manager.cpp库、sdf_map.cppmap_ros.cpp的代码重新释放注释:

接着再次进行编译

rosnoetic@rosnoetic-VirtualBox:~$ cd multi_uav_explore/

rosnoetic@rosnoetic-VirtualBox:~/multi_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 multi_uav_explore/

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

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

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

rosnoetic@rosnoetic-VirtualBox:~$ cd multi_uav_explore/

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

rosnoetic@rosnoetic-VirtualBox:~/multi_uav_explore$ roslaunch exploration_manager swarm_exploration.launch

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

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

标签:multi,rosnoetic,sudo,uav,explore,集群,6.1,无人机,VirtualBox
From: https://www.cnblogs.com/windandchimes/p/18346392

相关文章

  • 部署伪分布式 Hadoop集群
    部署伪分布式Hadoop集群一、JDK安装配置1.1下载JDK1.2上传解压1.3java环境配置二、伪分布式Hadoop安装配置2.1Hadoop下载2.2上传解压2.3Hadoop文件目录介绍2.4Hadoop配置2.4.1修改core-site.xml配置文件2.4.2修改hdfs-site.xml配置文件2.4.3修改ha......
  • 新手小白的Hadoop分布式和集群简述
    Hadoop分布式简介:ApacheHadoop是一个开源的分布式计算框架,它允许用户在节点组成的集群中处理和分析大数据。Hadoop是“Hadoop之父”DougCutting的著作,最初是在Nutch搜索引擎项目中开发的,用于解决网页爬虫的存储和搜索问题。Hadoop的核心由以下几个部分组成:HDFS(Hadoop......
  • Docker-Compose单机容器集群编排工具
    目录容器编排管理与传统的容器管理的区别什么Docker-Compose?Docker-Compose的简介Docker-Compose的作用Docker-compose的三大概念什么YAML文件?YAML文件介绍使用YAML时的注意事项YAML文件的基本数据结构Docker-Compose配置常用字段Docker-Compose常用命令我们知道......
  • K8S云原生-高可用集群部署V1.28.2
    一、环境准备K8S集群角色IP主机名安装相关组件master10.1.16.160hqiotmaster07lapiserver、controller-manager、scheduler、kubelet、etcd、docker、kube-proxy、keepalived、nginx、calicomaster10.1.16.161hqiotmaster08lapiserver、controller-manager、sc......
  • redis-cluster集群部署
    目录主机规划redis安装下载redis安装依赖关闭防火墙编译安装redis所以主机配置环境变量所以主机创建配置目录创建配置文件内核优化启动redis使用system管理使用redis-cli创建集群创建集群查看集群状态集群状态验证redis从5开始已经废弃了使用ruby脚本创建配置,而将创建配置文件直......
  • 【云原生】恰当运用kubernetes中三种探针,确保应用程序在Kubernetes集群中保持健康、可
    ✨✨欢迎大家来到景天科技苑✨✨......
  • Tomcat高可用集群(实例详解)
    一.环境准备虚拟机的版本:VMware-workstation-full-15.5.6-16341506.exe系统镜像版本:CentOS-6.10-x86_64-bin-DVD1.iso,全新安装,桌面版,可上网系统内存大小:1GB系统硬盘大小:20GB连接工具版本:SecureCRTSecureFX_HH_x64_7.0.0.326.zip二.集群概述由于单台Tomcat的承载能力是有限的......
  • rancher2.5.9部署flink1.13.1集群问题求教
    下面是我在rancher页面配置flink的yaml:apiVersion:batch/v1kind:Jobmetadata:name:flink-jobmanagernamespace:flink-resourcespec:template:metadata:labels:app:flinkcomponent:jobmanagerspec:restartPolicy:OnFailurecontainers:-name:jobmanagerima......
  • zookeeper集群+kafka集群
    目录zookeeper集群概念数据流向图zookeeper集群实验架构实现步骤kafka集群概念消息队列的模式kafka的组件kafka的工作流程kafka集群实验创建主题生产者发布信息消费者订阅,消费信息查看topic当中的主题查看主题的详细信息删除主题修改分区数总结zookeepe......
  • 单无人机自主搜索
    6.1.1单无人机自主搜索参考教程:HKUST-Aerial-Robotics/FUEL:AnEfficientFrameworkforFastUAVExploration(github.com)1.查看系统环境要运行本仿真程序,需要保证当前环境为ubuntu18.04+ros-melodic-desktop-full查看ubuntu版本:rosnoetic@rosnoetic-VirtualBox:~$l......