最近使用到了robot_localization的机器人定位功能包,想使用其中的EKF功能,但是在编译时遇到了GeographicLib::LocalCartesian::Reset(double, double, double)未声明的引用和其它几个相似的错误,问题很明显定位在GeographicLib上,因此多方查找后,下载GeographicLib的功能包,链接在这里
下载后,进入代码文件中,按照 这里 给出的教程,一步一步来:
mkdir ./build
cd ./build
cmake -D CMAKE_INSTALL_PREFIX=/usr/geographic …
make -j8
make test
make install
这里我将源码安装在了 /usr/geographic路径下。
至此,GeographicLib 安装结束。
在继续编译robot_localization时发现,catkin_make时系统没有找到GeographicLib的位置QAQ,因此需要手动制定一下GeographicLib的Lib文件与Include文件的位置:
具体做法为,打开CMakelists.txt文件,注释掉34,35两行,并加上
# Geographiclib installs Find