文章主要解决问题:

本文为笔者在Ubuntu20.04上配置RACER开源代码的流程记录,其中遇到的一些bug error记录一下,以供后续使用该代码的朋友们参考。

备注:其中用的Eigen3 ROS-noetic需要的前提库,大家自行安装。


下载方式:

//下载地址
https://github.com/SYSU-STAR/RACER

通过git clone下载不出来的可以直接去这个网站下,再把下载的文件(3个bag)放在你要的工作空间内。

下发是git clone 下载以及建立工作空间的代码:

mkdir -p ws_name/src
cd ws_name/src
catkin_init_workspace
git clone https://github.com/SYSU-STAR/RACER.git
cd ..
catkin_make 

这里编译一定是会出错的,如果你没出错,那就可以直接启动使用啦,本文对你的参考价值就没有啦。


如何编译:

上方的编译出错主要有如下原因:

需要加入库文件:

sudo apt-get install libarmadillo-dev libelf-dev libdw-dev 

以及非线性优化库nlopt,这里见我的另一篇关于fastplanner解决nlopt缺失问题的文章。Nlopt缺失问题解决icon-default.png?t=N7T8https://blog.csdn.net/weixin_65657501/article/details/134938329其次,需要在下作者(论文)的相关配置文件:

wget http://akira.ruc.dk/~keld/research/LKH-3/LKH-3.0.6.tgz
tar xvfz LKH-3.0.6.tgz
cd LKH-3.0.6
make
sudo cp LKH /usr/local/bin

这里弄完之后,查看一下/usr/local/bin里有没有LKH。

到这里这个bag的不常见依赖文件就都有啦。其余报错的缺少库可以自行安装,或者在评论下提问,笔者会常来CSDN看的。

由于20.04版本不在适合直接用apt-get install ros-noetic-nlopt,需要自行下载 nlopt 库。并要

将bspline_opt的CMakeLists修改,使得bspline_opt不在去调用ros-noetic-nlopt,代码附上如下

cmake_minimum_required(VERSION 2.8.3)
project(bspline_opt)
set(CMAKE_CXX_STANDARD 14)
find_package(NLopt REQUIRED)
set(NLopt_INCLUDE_DIRS ${NLOPT_INCLUDE_DIR})

set(CMAKE_BUILD_TYPE "Release")
set(CMAKE_CXX_FLAGS "-std=c++11")
set(CMAKE_CXX_FLAGS_RELEASE "-O3 -Wall")

find_package(Eigen3 REQUIRED)
find_package(PCL 1.7 REQUIRED)

find_package(catkin REQUIRED COMPONENTS
  roscpp
  rospy
  std_msgs
  visualization_msgs
  active_perception
  cv_bridge
  plan_env
)

catkin_package(
 INCLUDE_DIRS include
 LIBRARIES bspline_opt
 CATKIN_DEPENDS plan_env active_perception
#  DEPENDS system_lib
)

include_directories( 
    SYSTEM 
    include 
    ${catkin_INCLUDE_DIRS}
    ${Eigen3_INCLUDE_DIRS} 
    ${PCL_INCLUDE_DIRS}
    ${NLOPT_INCLUDE_DIR}
)

add_library( bspline_opt 
    src/bspline_optimizer.cpp 
    )
target_link_libraries( bspline_opt
    ${catkin_LIBRARIES} 
    ${NLOPT_LIBRARIES}
    # /usr/local/lib/libnlopt.so
    )  

随后编译会遇到这是catkin_make会遇到PCL报错,因为20.04需要用到c++14,在涉及报错的bag中的CMakeLists文件中加入

set(CMAKE_CXX_STANDARD 14)

这里需要对所有bag里的都加入一遍,你可以根据自己的报错再去找位置加、

解决完以上问题就可以编译啦,我这里遇到了找不到plan_env.h的问题,因此我采用先编译这个库文件的方式:

catkin_make -DCATKIN_WHITELIST_PACKAGES="plan_env"
catkin_make -DCATKIN_WHITELIST_PACKAGES=""

这样就可以得到如下编译成功的结果啦,嘎嘎嘎。

实在还报错的评论交流吧,也可以联系我三连要配置好的code。


初步使用:

完成编译之后就可以开始它的第一个demo啦。

分别启动rviz和探索程序。

source devel/setup.bash && roslaunch exploration_manager rviz.launch
source devel/setup.bash && roslaunch exploration_manager swarm_exploration.launch

然后,在rviz里给一个2D goal用来触发程序。可以看到四个无人机开始探索地图啦。

证明你的代码配置环境成功啦。不过终端会报很多error warn这应该是代码里自己写的提醒,不算真正的错误,不会影响代码的运行。后续我继续研究这个程序的话,就继续更新分享。有需要的朋友可以评论私信。

先赞后看养成习惯哦!!!嘎嘎噶!!!来个阿尼亚!!!

Logo

更多推荐