1. 本文简介

本文依照港科大开源的代码和论文
文章主要内容:对无人机集群实现协同定位。参与融合的定位因子有以下4点

  1. 全向鱼眼相机的VIO定位:VINS-Fisheye
  2. 基于地图定位:视觉特征点协同建图
  3. 基于UWB协同定位:节点间测距
  4. 视觉检测定位

2.论文框架

3.算法安装与环境配置

3.1 创建工作空间

备注:3.2中安装插件cv_bridge中也创建过,不要重复创建,用一个即可

mkdir -p GDPt_ws/src
cd GDPt_ws/src
catkin_init_workspace

3.2 安装依赖插件

我写的VINS系列代码需要插件安装教程
注:这节看起来平平无奇,但是环境总是最难配的,所以我单独写了一篇,你可以选择直接装文章里所有插件,也可以跳过直接往下走,后续显示缺什么再返回去装

3.3 添加Omni-swarm所需核心功能包

①依赖功能包

cd GDPt_ws/src
git clone https://github.com/HKUST-Swarm/inf_uwb_ros.git
git clone https://github.com/HKUST-Swarm/bspline
git clone https://github.com/HKUST-Swarm/swarm_msgs.git

通过catkin_make编译,编译成功再走下一步。
可能会遇到eigen3,opencv,lib**类似问题,请点击3.2的链接参考我另外一篇文章

cd src
git clone https://github.com/HKUST-Aerial-Robotics/Omni-swarm
git clone https://github.com/HKUST-Swarm/swarm_detector

然后下载models,下载地址(大小655MB),解压缩之后放在swarm_loop文件夹下,如图

3.4 Debug

建议直接catkin_make,下边列出我出现的错误

①找不到Eigen3

Could not find a package configuration file provided by "Eigen3" with anyof the following names:Eigen3Config.cmakeeigen3-config.cmakeAdd the installation prefix of "Eigen3" to CMAKE_PREFIX_PATH or set"Eigen3_DIR" to a directory containing one of the above files.  If "Eigen3"provides a separate development package or SDK, be sure it has beeninstalled.

首先确定你成功安装eigen3

pkg-config --modversion eigen3

如果显示版本,那么证明你成功安装,是搜索目录的问题,解决方法

②缺少 libXX

/usr/bin/ld: 找不到 -ldw
collect2: error: ld returned 1 exit status

有这几种可能
我是因为之前没有安装libdw
直接 sudo apt-get install libdw-dev

② camera_models
可以在VINS_Fusion的文件夹下找到
建议先下载VINS_Fusion,然后把camera_models文件夹拖到GDPT/src(GDPT是我的工作空间)
③ vins
是类似的 也是在VINS_Fusion 下可以找到
①②解决完的文件夹是这样的

注意!!!:如果你把VINS_fusion添加进来还是显示缺少vins-config,就先把OMni和swarm_detector先剪切出去,等其余功能包编译成功,再复制回来再次编译。
原理:功能包之间互相依赖的时候编译顺序是很重要的,正规做法是先单独编译被依赖的VINS_Fusion先单独编译,再共同编译。

③缺少Opencv 3.4.0
我电脑上之前有Opencv3.2.0,但是用不了,我是把3.2.0版本的卸载了,安装3.4.10教程
④缺少Torch
缺少Torch这个部分我奋斗了好几天,先总结以下我的经验,

由于OMni有目标检测的部分,所以用到了深度学习的pytorch库,那么pytorch又依赖CUDA,CUDA需要使用显卡他的安装又受显卡驱动的影响,所以是绝对不能在虚拟机上做的

给出比较好的一个教程,但是我个人是没有成功,我担心是由于硬件限制,所以决定不死磕了,因为我实际上做的是融合定位的部分,那目标检测的因子本来也不加上,所以把重点转移到如何修改Omni代码,不跑torch
所以以下是不用目标检测部分的代码调试!!!!!!!!!!!!!!!

详细修改内容
删除3.3中git clone的swarm_detector功能包
src/Omni-swarm/swarm_loop/CMakeLists.txt
h9set(USE_TENSORRT on)改为set(USE_TENSORRT off)
h43和h44 注释,具体内容如下

find_package(CUDA)
include_directories(${CUDA_INCLUDE_DIRS} ${TORCH_INCLUDE_DIRS})

src/Omni-swarm/swarm_localization/CMakeLists.txt
h59~h61 、h64以及 h76之后 注释,具体注释内容如下

add_executable(${PROJECT_NAME}_simulator        test/swarm_local_sim.cpp)add_dependencies(${PROJECT_NAME}_simulator ${${PROJECT_NAME}_EXPORTED_TARGETS} ${catkin_EXPORTED_TARGETS} )target_link_libraries(${PROJECT_NAME}_simulator
${catkin_LIBRARIES}
${CERES_LIBRARIES}
${camera_models_LIBRARIES}
${YAML_CPP_LIBRARIES}
dw
faiss
OpenMP::OpenMP_CXX
)


编译catkin_make,还是会有一些问题,这个问题主要是vins的代码部分,显示一些文件找不到,但是因为Omni用的是鱼眼相机,我最后想用单目realsense相机,所以这些问题留着后续解决

########### 距离算法成功应用还有一段举例,未完待续…

4.下篇预告——omni-swarm 算法应用

VINS学习04———Omni教程相关推荐

  1. 雷神新911PRO晖金二代win10+ubuntu16.04系统安装教程+Anaconda3搭建深度学习环境tensorflow-gpu

    雷神新911PRO晖金二代win10+ubuntu16.04系统安装教程 雷神新911PRO晖金二代win10+ubuntu16.04系统安装教程 1.ubuntu16.04安装 1.1.ubuntu ...

  2. Windows 7下硬盘安装Ubuntu 14.04图文教程

    Ubuntu 官方已经发布了正式版的 Ubuntu 14.04 LTS,并宣称这是为云计算准备的版本.该版本在云平台和伸缩环境的可靠性.性能和交互性都有很好的提升,同时提供 5 年的支持和维护服务. ...

  3. Java 学习 系统 免费 教程 视频 链接

    Java 学习 系统 免费 教程 视频 链接 哔哩哔哩视频 01,<Java编程学习第一季>:av35556299 02,<Java编程学习第二季>:av37316788 03 ...

  4. 业余快速学习虚幻引擎教程

    仅用5小时学会虚幻引擎! 你会学到什么 专为希望在业余时间打造虚幻引擎技能的艺术家和开发人员量身定制的专业技术 从几何图形到材料,从照明到互动,所有方面的提示 探索如何创造建筑水的效果 如何使用顶点绘 ...

  5. 3Dmax+V-Ray学习建筑可视化教程

    3Dmax+V-Ray学习建筑可视化教程 视频:1920×1080,. mp4,25 fps |音频:AAC-LC,253 kb/s 2通道,48.0 KHz |流派:电子学习 软件:3Ds Max ...

  6. Ubuntu18.04安装教程及SLAM常用软件安装教程

    文章目录 前言 Ubuntu18.04安装教程 一.准备工作 1.1.下载ubuntu镜像 1.2.制作U盘启动项 1.3.给ubuntu分配硬盘空间 二 安装ubuntu18.04系统 2.1.设置 ...

  7. 鸟哥的linux 实训教程,鸟哥的Linux基础学习实训教程

    1.理想的Linux上机实践课程 每周一次.每次三小时的学与练 本书所有例题讲解,均经过鸟哥在大专院校实施多年来的测试,对于学生的理解具有相当满意的效果. 2. 提供一致性教学环境 让学习者不再有陌生 ...

  8. python自学平台-Python学习交流平台与教程推荐

    Python学习交流平台与教程推荐 目录 一.有编程问题怎么办? 1 Stack Overflow 2 Github 3 CSDN-专业IT技术社区 二.Python教程 1 跟我读Python文档 ...

  9. python难不难学-超级适合新手学习的python教程,入门其实不难?

    在互联网时代很多人都希望掌握一个与互联网相关的知识,比如Python的知识就非常重要,因为无论是操作新媒体平台还是去制作一些软件,我们都需要掌握一些Python的技巧,而且学习一些Python的知识, ...

最新文章

  1. 量子算命,在线掷筊:一个IBM量子云计算机的应用实践,代码都有了
  2. SpringBoot自动装载
  3. centOS6.7 /etc/profile
  4. Complex Congratulation β
  5. 软件构架师的十大特点
  6. GitHub Research:超过50%的Java记录语句写错了
  7. 老照片的复活,焕发生机与跃然纸上!这篇CVPR2020的论文彻底火了
  8. 为什么php都用mysql,PHP MySQL为什么?
  9. 深入解析alloc/retain/release/dealloc实现
  10. java 构建者模式_Java不可变类–构建器模式
  11. Codeforces #662C Binary Table
  12. 自家主机建云服务器_用云主机还是自己建服务器好
  13. matplotlib之pyplot模块——阶梯图(step():基本功能、参数)
  14. 2022美国大学生数学建模竞赛A题思路与总结
  15. H5--大概的,没事看看
  16. Mybatis操作Oracle中的Clob和Blob字段
  17. 经典的二叉树的先根、中根和后根遍历序列题
  18. 关于__declspect(dllexport) 和 __declspec(dllimport)的使用
  19. 金融+科技,民生银行与华为携手打造数字化智能银行
  20. linux DNS jnl ixfr axfr 小解

热门文章

  1. 图形引擎实战:移动平台海飞丝系统-运动篇
  2. 高仿钉钉和小米的日历控件
  3. 大数据培训要多少钱?
  4. String StringBuilder StringBuffer 包装类 Date 类 枚举类
  5. office linux 安装程序,如何安装Office2016 64位安装包?只安装3件套!
  6. 什么可以帮助睡眠质量?这几个东西轻松能改善睡眠
  7. 右下角图标不见了的解决办法
  8. 点击按钮页面滚动到对应位置(锚点)
  9. c语言无符号数最大值和最小值,微机原理中设计一个程序,求10个无符号数的最大值...
  10. P1546 [USACO3.1]最短网络 Agri-Net