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

文章目录

  • 一、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:
视觉学习笔记5——FAR Planner全局路径规划算法学习研究_第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。
视觉学习笔记5——FAR Planner全局路径规划算法学习研究_第2张图片
视觉学习笔记5——FAR Planner全局路径规划算法学习研究_第3张图片
视觉学习笔记5——FAR Planner全局路径规划算法学习研究_第4张图片
视觉学习笔记5——FAR Planner全局路径规划算法学习研究_第5张图片

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


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

出现报错2:

视觉学习笔记5——FAR Planner全局路径规划算法学习研究_第6张图片
解读与解决:
又是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路径。

视觉学习笔记5——FAR Planner全局路径规划算法学习研究_第7张图片


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

接下来运行脚本以下载模拟环境 (~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

成功运行!!!

你可能感兴趣的:(深度学习,机器学习,自动驾驶,超分辨率重建)