首页 > 其他分享 >EGO-Swarm仿真环境搭建

EGO-Swarm仿真环境搭建

时间:2024-08-02 18:39:13浏览次数:13  
标签:仿真 planner rosnoetic server Swarm EGO ego swarm VirtualBox

EGO-Swarm仿真环境搭建

参考教程:

https://github.com/ZJU-FAST-Lab/ego-planner-swarm

EGO-Swarm是一种分散的异步系统解决方案,用于仅使用机载资源在未知的障碍物丰富的场景中进行多机器人自主导航。

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. 环境部署

2.1 Armadillo下载

Armadillo的官网链接如下所示:

http://arma.sourceforge.net/

执行如下指令安装Armadillo,程序中的uav_simulator需要Armadillo

rosnoetic@rosnoetic-VirtualBox:~$ sudo apt-get install libarmadillo-dev

2.2 EGO源码下载

执行如下指令下载EGO源码

rosnoetic@rosnoetic-VirtualBox:~$ git clone https://github.com/ZJU-FAST-Lab/ego-planner-swarm.git

下载好后即可在主目录下看到如下文件:

2.3 编译

multi_map_server文件夹下的4.h头文件拖拽到虚拟机的

/home/rosnoetic/ego-planner-swarm/src/uav_simulator/Utils/multi_map_server/include/multi_map_server目录下

ctrl+allt+T打开终端,执行如下指令进行编译

rosnoetic@rosnoetic-VirtualBox:~$ cd ego-planner-swarm/

rosnoetic@rosnoetic-VirtualBox:~/ego-planner-swarm$ catkin_make -DCMAKE_BUILD_TYPE=Release -j1

  • 如果出现错误:fatal error: multi_map_server/MultiOccupancyGrid.h: 没有那个文件或目录

    参考教程:

    multi_map_server/MultiOccupancyGrid.h:没有那个文件或目录_fatal error: multi_map_server/multioccupancygrid.h-CSDN博客

    出现该错误的原因还是因为缺少了MultiOccupancyGrid.h的头文件,与之前的添加MultiOccupancyGrid.h方式不同,此时我们需要直接添加在编译后的/home/rosnoetic/ego-planner-swarm/devel/include/multi_map_server文件夹下

    接着重新编译(注意此时不需要删除builddevel文件夹)

    rosnoetic@rosnoetic-VirtualBox:~/ego-planner-swarm$ catkin_make -DCMAKE_BUILD_TYPE=Release -j1
    

    就可以发现剩下的内容编译成功

3. 运行

ctrl+alt+T打开一个新的终端,输入如下指令,进行rviz可视化和交互

rosnoetic@rosnoetic-VirtualBox:~$ cd ego-planner-swarm/

rosnoetic@rosnoetic-VirtualBox:~/ego-planner-swarm$ source ./devel/setup.bash 

rosnoetic@rosnoetic-VirtualBox:~/ego-planner-swarm$ roslaunch ego_planner rviz.launch

可以打开一个rviz界面

ctrl+alt+T再打开一个新的终端,输入如下指令,实现仿真规划

rosnoetic@rosnoetic-VirtualBox:~/ego-planner-swarm$ source ./devel/setup.bash 

rosnoetic@rosnoetic-VirtualBox:~/ego-planner-swarm$ roslaunch ego_planner swarm.launch

完成上述步骤后,我们看到如下所示的结果。

注:虚拟机环境下运行起来会很卡,需要等待一段时间,可以通过增加交换空间的方式来使得运行更加流畅:

  • 增加交换空间

    首先关闭交换分区

    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
    

标签:仿真,planner,rosnoetic,server,Swarm,EGO,ego,swarm,VirtualBox
From: https://www.cnblogs.com/windandchimes/p/18339375

相关文章

  • 功能强大的电路设计与仿真软件Multisim 14.3安装教程
    一款功能强大的电路设计与仿真软件Multisim是一款强大的电子电路仿真软件,广泛应用于电子工程和教育领域。本教程全面细致地解析了原理图设计、电路仿真以及虚拟仪器测试等核心功能,通过友好易学的界面设计,为用户打造了一款高效便捷的电路设计和分析工具,助您轻松掌握电路设计的精髓......
  • SpinalHDL之仿真(四)
    本文作为SpinalHDL学习笔记第三十二篇,介绍SpinalHDL仿真时钟域相关内容。目录:1.激励函数API2.回调函数API3.默认时钟域4.新时钟域1.激励函数API以下是ClockDomain激励函数的列表:时钟域激励函数描述forkStimulus(period)分裂一个仿真进程以生成时钟域激......
  • EGO-Planner算法仿真环境搭建
    EGO-Planner算法仿真环境搭建欢迎关注我的B站:https://space.bilibili.com/379384819欢迎交流学习,vx:18074116692参考教程:ZJU-FAST-Lab/自我规划师(github.com)1.查看系统环境要运行本仿真程序,需要保证当前环境为ubuntu18.04+ros-melodic-desktop-full查看ubuntu版本:rosn......
  • 汽车虚拟仿真应用存在的几大挑战及解决方案
    汽车虚拟仿真是指利用软件和数学模型,模拟汽车的设计、制造、测试和运行等过程,以及汽车与环境、驾驶员、乘客等的交互。汽车虚拟仿真可以帮助汽车工程师快速验证方案,优化性能,降低成本,提高安全性和可靠性。汽车虚拟仿真广泛应用于汽车设计、制造、测试和运行等多个领域。在设计方......
  • Modelsim仿真实现Verilog HDL序列检测器
    检测接收到的数字序列中出现“10011”的次数。例如输入序列为40位:1100_1001_1100_1001_0100_1100_1011_0010_1100_1011从最高位开始检测,出现了2次:1100_1001_1100_1001_0100_1100_1011_0010_1100_1011所以,序列检测器的计数结果应该是2。状态机如下:当前状态current_stat......
  • SpinalHDL之仿真(三)
    本文作为SpinalHDL学习笔记第三十一篇,介绍SpinalHDL仿真过程中访问信号相关内容。目录:1.读写信号2.访问组件层次结构内部的信号3.仿真中内存的加载和存储1.读写信号顶层模块的每个接口信号都可以从Scala程序中读写:语法描述Bool.toBoolean将硬件Bo......
  • SpinalHDL之仿真(二)
    本文作为SpinalHDL学习笔记第三十篇,介绍SpinalHDL启动仿真器相关内容。目录:1.简介2.配置3.在同一硬件上运行多个测试4.从线程中抛出仿真成功或失败结果5.在失败之前捕获给定时间窗内的波形1.简介下面是一个硬件定义+测试平台的示例:importspinal.core._//Iden......
  • Intent中的四个重要属性——Action、Data、Category、Extras
    Intent作为联系各Activity之间的纽带,其作用并不仅仅只限于简单的数据传递。通过其自带的属性,其实可以方便的完成很多较为复杂的操作。例如直接调用拨号功能、直接自动调用合适的程序打开不同类型的文件等等。诸如此类,都可以通过设置Intent属性来完成。Intent主要有以下四个重要......
  • Simulink仿真中出现“Output argument ‘y‘ is not assigned on some execution path
        在simulink中添加函数时,经常由于代码的不完全,导致在simulink仿真时经常会出现“Outputargument'y'isnotassignedonsomeexecutionpaths."的错误,这是由于在编写程序时,对于输出y的赋值没有考虑全面,如下所示的代码:functiony=fcn(u)ifu>7y=1;......
  • 碰撞检测 | 矩形增量膨胀安全走廊模型(附C++/Python仿真)
    目录0专栏介绍1安全走廊建模的动机2矩形增量膨胀算法3算法仿真3.1C++实现3.2Python实现0专栏介绍......