当前位置: 首页 > news >正文

EGO-Swarm 仿真环境搭建

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 -aNo 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 -dmelodic

可知,当前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 /swapfilerosnoetic@rosnoetic-VirtualBox:~$ sudo swapon /swapfile
    

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

    也可以查看分区的大小

    rosnoetic@rosnoetic-VirtualBox:~$ free -m
    

    编译若是还不成功,试着创建更大的分区。

    如果编译使用完成后,可以关闭内存。

    rosnoetic@rosnoetic-VirtualBox:~$ sudo swapoff /swapfilerosnoetic@rosnoetic-VirtualBox:~$ sudo rm /swapfile
    
http://www.lryc.cn/news/417939.html

相关文章:

  • 【EI会议征稿通知】第九届计算机技术与机械电气工程国际学术论坛(ISCME 2024)
  • 【starRocks-docker 部署问题汇总】
  • threejs中,如何检测一个模型周边一定范围内的其它模型
  • UDP端口可达性检测(端口扫描)工具开发
  • 第三届计算、通信、感知与量子技术国际会议(CCPQT 2024)会议通知
  • Qt文件读写
  • 发现了一套超厉害的英语资料,绝对YYDS
  • C# new关键字作用
  • Python代码之特征工程基础
  • 低代码平台:效率利器还是质量妥协?
  • 大数据-Big Data
  • Redis的持久化的策略
  • 【八】Zookeeper3.7.1集成Hadoop3.3.4集群安装
  • 【C/C++笔记】:易错难点3 (二叉树)
  • 一篇文章解决Webpack
  • 速盾:cdn如何解析php文件中的图片?
  • 如何快速实现MODBUS TCP转Profinet——泗博网关EPN-330
  • 什么是实时数据仓库?它有哪些不可替代之处?
  • 《Ubuntu22.04环境下的ROS2学习笔记1》
  • Jupyter nbextensions安装与使用
  • java.nio.charset.MalformedInputException: Input length = 1
  • yarn的安装和配置使用
  • JVM知识总结(即时编译)
  • 【网络】TCP协议——TCP连接相关、TCP连接状态相关、TCP数据传输与控制相关、TCP数据处理和异常、基于TCP应用层协议
  • 一起看看JavaAgent到底是干啥用的
  • k8s工作负载控制器--DaemonSet
  • 探索Python文档自动化的奥秘:MkDocs的神奇之旅
  • 树莓派边缘计算网关搭建:集成MQTT、SQLite与Flask的完整解决方案
  • 如何通过GD32 MCU内部ADC参考电压通道提高采样精度?
  • Centos安装OpenSearch