视觉学习笔记5——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:
示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。
解读与解决:
大概意思就是你的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

成功运行!!!
在这里插入图片描述

  • 3
    点赞
  • 7
    收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:深蓝海洋 设计师:CSDN官方博客 返回首页
评论

打赏作者

RanceGru

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值