原因分析:
由于arm64的char类型是unsigned类型,因此sbpl库中的char类型无法正常使用,导致move_base使用sbpl_lattice_planner插件无法正常运行,经常会找不到路径。
解决:在github下载sbp的源码,并在sbpl目录下的CMakeLists.txt上加上以下代码
if( CMAKE_COMPILER_IS_GNUCXX)
set(CMAKE_CXX_FLAGS "-fsigned-char")
endif(CMAKE_COMPILER_IS_GNUCXX)
-fsigned-char
是声明char为有符号类型,之后进入sbpl目录下
mkdir build && cd build
cmake .. && make #编译
sudo make install #安装sbpl
在安装sbpl前,先卸载ros自带的spbl库,sudo apt-get purge ros-xxxx-sbpl
,安装spbl后重新编译sbpl_lattice_planner 插件的工作空间就可以了