文章目录

  • 一、Far Planner是什么?
  • 二、配置安装Far Planner
    • 1.运行环境
    • 2.下载编译开发环境包
    • 3.编译Far_Planner

一、Far Planner是什么?

FAR Planner项目旨在建立一种可在现实环境中实时提取环境几何特征并动态建立Visibility Graph进行路径规划及导航的算法,同时该算法支持在没有已知地图的环境下根据实时传感器输入对路径图以及导航路径进行实时动态调整, 可在1-2ms实现对300m环境内的全局路径规划及动态调整。FAR Planner项目所提算法是Team Explorer, CMU&OSU参加DARPA地下挑战赛 (Subterranean Challenge)使用的全局路径规划算法。
开源地址
论文地址


二、配置安装Far Planner

1.运行环境

  1. i7
  2. GTX 1660 TI
  3. ubuntu18.04

2.下载编译开发环境包

github网站下载或者命令行下载Far Planner:

 git clone https://github.com/MichaelFYang/far_planner

下载开发环境包:
开发环境包地址
这个开发环境包在带有ROS Melodic和带有ROS Noetic中进行过测试。
首先命令行安装依赖项 。

sudo apt update
sudo apt install libusb-dev

下载开源存储库:github下载开源包。

在下载时请选择与计算机设置匹配的“ melodic”或“noetic”分支。

然后解压,进入开发环境夹下编译.

“distribution”就是你的“ melodic”或“noetic”。
cd autonomous_exploration_development_environment_distribution
catkin_make

出现报错1:

解读与解决:
大概意思就是你的boost包里面没有找到“boost_signals”库,怎么冒出个boost来了。我查了一下boost版本号

dpkg -l | grep boost1.xx

显示的却是boost 1.65.1版本,说明电脑里存在两个版本的boost,多版本boost其实会出现问题的,比如说boost_signals库存在的最后一个版本是boost1.69,也就是说boost1.65中存在boost_signals,而boost1.70中没有boost_signals。所以我猜测是因为多版本的不对应导致存在“boost_signals”问题。
我查了下我的两个boost出处,发现boost1.65是我的ros命令行安装自带的,boost1.70是我源码下载安装的,主要原因是我上一篇博客ORB-SLAM3安装时出现的小问题,具体解释可以看我上一篇博客的boost安装部分。

卸载源码安装boost:

sudo rm -rf /usr/local/include/boost
sudo rm -rf /usr/local/lib/libboost*
sudo rm -rf /usr/local/lib/cmake/*1.70.0*

卸载命令行安装boost:

要注意会同时把ros一起卸载掉
sudo apt-get autoremove libboost1.65-dev

sudo apt-get autoremove命令会删除大量文件(建议不要乱用,可以自己查查为什么),其中就包括ros。



所以我选择保留boost1.65 版本,具体原因可以看我上一篇博客的boost安装部分。


删掉之前编译失败的开发环境文件夹,重新解压,进入开发环境夹下编译。

出现报错2:


解读与解决:
又是boost_signals问题,不过这次找到的是boost1.65版本,我进入boost1.65的库文件和头文件夹下查了一下确实存在这个boost_signals文件。我仔细看看报错建议,它大概意思是找不到boost_signals在哪,然后我就修改/etc/profile.d/boost.sh文件和source /etc/profile文件,然后更新环境,甚至重启。

source /etc/profile文件
export CPLUS_INCLUDE_PATH=/usr/include/boost:$CPLUS_INCLUDE_PATH
export LIBRARY_PATH=/usr/lib/x86_64-linux-gnu:$LIBRARY_PATH
export LD_LIBRARY_PATH=/usr/lib/x86_64-linux-gnu:$LD_LIBRARY_PATH
/etc/profile.d/boost.sh文件
#!/bin/sh
BOOST_INCLUDE=/usr/include/boost
BOOST_LIB=/usr/lib/x86_64-linux-gnu
export BOOST_INCLUDE BOOST_LIB
source /etc/profile.d/boost.sh
source /etc/profile

可惜以上步骤作用不大,甚至会出现其他问题,我还是做下记录说不定以后有用。
我再次观察报错建议和查找资料,既然它是找不到boost_signals在哪,那么我就在想要寻找boost_signals的文件里提供直达boost_signals的位置。按照提示:

velodyne_simulator/velodyne_gazebo_plugins/CMakeLists.txt:10

也就是CMakeLists.txt文件第10行想要寻找boost_signals,那就在第10行find_package前set和message到boost_signals路径。


删掉之前编译失败的开发环境文件夹,重新解压,进入开发环境夹下编译。
这次就成功编译了开发环境夹。

接下来运行脚本以下载模拟环境 (~500MB),把下载的仿真环境文件解压到’src/vehicle_simulator/meshes’。

./src/vehicle_simulator/mesh/download_environments.sh

3.编译Far_Planner

在终端中,转到far文件夹并编译,这里也要注意一下boost问题。

cd far_planner
catkin_make

转到终端中的开发环境文件夹,获取 ROS 工作区,然后启动。

source devel/setup.sh
roslaunch vehicle_simulator system_indoor.launch

在另一个终端中,转到 FAR Planner 文件夹,获取 ROS 工作空间,然后启动。

source devel/setup.sh
roslaunch far_planner far_planner.launch

出现报错3:

setting /run_id to 2ac9d69e-bee4-11ec-b928-9078419e7334
process[rosout-1]: started with pid [7040] started core service
[/rosout] process[ps3_joy-2]: started with pid [7047]
process[diagnostic_aggregator-3]: started with pid [7048]
process[localPlanner-4]: started with pid [7053] [ERROR]
[1650264772.881360351]: Couldn’t open joystick /dev/input/js0. Will
retry every second. process[pathFollower-5]: started with pid [7059]
process[vehicleTransPublisher-6]: started with pid [7061]
process[sensorTransPublisher-7]: started with pid [7066]
process[terrainAnalysis-8]: started with pid [7072]
process[terrainAnalysisExt-9]: started with pid [7078]
process[gazebo-10]: started with pid [7079] process[spawn_camera-11]:
started with pid [7085] process[spawn_lidar-12]: started with pid
[7086] process[spawn_robot-13]: started with pid [7087]
process[vehicleSimulator-14]: started with pid [7088]
process[sensorScanGeneration-15]: started with pid [7089]
process[visualizationTools-16]: started with pid [7095]
process[realTimePlot-17]: started with pid [7101] process[rvizGA-18]:
started with pid [7106]

Reading path files.

Simulation started.

[pcl::PLYReader]
/xxxx/xxx/xxx/xxxr/autonomous_exploration_development_environment-melodic/src/vehicle_simulator/mesh/garage/preview/pointcloud.ply:1:
parse error: couldn’t read the magic string [pcl::PLYReader::read]
problem parsing header! [pcl::PLYReader::read] problem parsing header!

解读与解决:
大概意思就是开发环境文件夹启动报错,没有找到autonomous_exploration_development_environment-melodic/src/vehicle_simulator/mesh/garage/preview/pointcloud.ply:1路径,字符报错。

我进入这个路径下,确实mesh就断了,没有garage以下部分。

那是因为我们下载的模拟环境 (~500MB)位置没有放对,需要把模拟环境文件夹下的几个文件夹提取到开发文件夹的src/vehicle_simulator/mesh下。这样就找得到正确路径了。

再次运行

转到终端中的开发环境文件夹,获取 ROS 工作区,然后启动。
source devel/setup.sh
roslaunch vehicle_simulator system_indoor.launch
在另一个终端中,转到 FAR Planner 文件夹,获取 ROS 工作空间,然后启动。
source devel/setup.sh
roslaunch far_planner far_planner.launch

成功运行!!!

视觉学习笔记5——FAR Planner全局路径规划算法学习研究相关推荐

  1. 路径规划算法学习Day2

    路径规划算法学习Day2-栅格法创建环境地图 前言 一.栅格法 1.原理 二.栅格法matlab实现 1.创建地图 2.完整代码 3.所生成地图 三.总结 前言 静态环境中机器人全局路径规划一直是路径 ...

  2. 苏宁 11.11:仓库内多 AGV 协作的全局路径规划算法研究

    本文为『InfoQ x 苏宁 2018双十一』技术特别策划系列文章之一. 1. 背景 随着物联网和人工智能的发展,越来越多的任务渐渐的被机器人取代,机器人逐渐在发展中慢慢进入物流领域,"智能 ...

  3. 路径规划算法学习Day5

    路径规划算法学习Day5-A*算法的实现 原理回顾 一.A* 算法评价函数 二.曼哈顿距离(Manhattan Distance) 2.1.名词解释 2.2.其它启发函数 二.A* 算法matlab完 ...

  4. 路径规划算法学习Day3

    路径规划算法学习Day3-Dijkstra算法实现 前言 1.Dijkstra算法 1.1.地图创建 1.2.matlab实现 1.3.20*20地图 1.4.50*50地图 前言 算法原理:参考路径 ...

  5. ROS1云课→20迷宫不惑之A*大法(一种虽古老但实用全局路径规划算法)

    ROS1云课→19仿真turtlebot(stage) 19提及的机器人如何实现全局路径规划?A*算法是一种可行的选择. www.gamedev.net/reference/articles/arti ...

  6. 多无人机任务分配与路径规划算法学习(一)

    本文是阅读"多无人机任务分配与路径规划算法研究_丁家如"文献的学习记录. 记录的第一部分是有关任务分配的知识,各种模型的建立就放到下次来写. 一.多无人机任务分配的本质 目前阅读的 ...

  7. self_drive car_学习笔记--第10课:路径规划

    前言:这节课围绕无人车的路径规划开讲,包含规划时采用的一些算法思路.一些规划方式,最后以Apollo项目规划部分为例子,介绍一下其中所使用的一些规划算法以及方式.很菜现在,有些理解错误地方,还望大大们 ...

  8. 【路径规划】全局路径规划算法——A*算法(含python实现 | c++实现)

    文章目录 参考资料 1. 算法简介 2. 算法精讲 2.1 预处理 2.2 开始搜索 2.3 继续搜索 2.4 确定实际路径 3. 算法总结 3.1 算法步骤 3.2 伪代码 4. python实现 ...

  9. java栅格法全局路径规划,基于A*的全局路径规划算法(1)

    Rate this post 在现实生活中,我们经常需要找到最短路径.例如,当我们想要从一个地点去往另一个地点的时候,我们希望可以在地图中找到最近的一条路.这个时候我们就需要一些特殊的算法来帮助我们解 ...

最新文章

  1. 建立PHP-FPM的Chroot执行环境
  2. Reveal使用步骤和 破解Revealapp的试用时间限制
  3. [Selenium] 操作新弹出窗口之验证标题和内容
  4. Java开源爬虫框架crawler4j
  5. [转]git merge 与 git rebase的区别
  6. JS PopupAlert
  7. 第四季-专题19-I2C驱动程序设计
  8. GCC 原子操作中 Acquire/Release/Consume/Relaxed 内存模型
  9. Java 排序算法:折半插入排序
  10. 前端预览excel插件_网页实现Excel在线预览方案集合
  11. 超参数调优方法整理大全
  12. 深度学习【23】图像风格化总结
  13. 【Luat-esp32c3】4.3 文件系统——加载jpeg图片并拆包
  14. Python第三方库安装
  15. _, predicted = torch.max(outputs, 1),_,的作用
  16. https证书异常是什么意思?
  17. 顾问风采 | LF AI Data 基金会完成换届,堵俊平担任董事会主席、星爵担任会员总代表...
  18. win7下硬盘安装Ubuntu 14.04
  19. 海尔轰天雷t7linux转windowxp,XP改win7系统雨林木风详细教程
  20. 荐书 | 手牵手一步两步望着天,看星星一颗两颗连成线

热门文章

  1. linux 刷流量ip,程序员同事问shell脚本刷流量,不讨巧帮他填了一个巨坑
  2. 用python实现excel 14个常用操作,用Python 操作 Excel,这篇文章别错过了!(超全总结)...
  3. 数学统计:均值、标准差、方差、协方差
  4. 交换机和路由器的区别?
  5. 从“零和博弈”走向“正和博弈” PaaS引发云计算第三次浪潮
  6. By not providing “Findtorch.cmake“ in CMAKE_MODULE_PATH this project has asked CMake to find a pac
  7. Reality Labs首次向媒体开放,空间音频、EMG腕带体验大公开
  8. Gin框架使用Zap接收日志
  9. Rasa课程、Rasa培训、Rasa面试系列之 Rasa对话式 AI 网络研讨会回顾
  10. 搜索市场变局:话说云云