最近使用到了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两行,并加上
set(GeographicLib_LIBRARY_DIRS "/usr/geographic/lib")
set(GeographicLib_INCLUDE_DIRS "/usr/geographic/include")
然后编译包即可,注意安装一下所需依赖:
sudo apt-get install ros-kinetic-geographic-msgs
sudo apt-get install libgeographic-dev
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)