下载源码到主目录
打开终端输入
git clone https://github.com/jedeschaud/ct_icp.git
查看自己的编译环境是否符合要求
1.clang版本
Ubuntu18.04升级clang版本到9.0_clang升级-CSDN博客
2.gcc版本
ubantu18.04升级g++到g++11_ubuntu18.04升级g++-CSDN博客
3.cmake版本
按下面一步一步来
1.Superbuild
cd ct_icp
mkdir .cmake-build-superbuild && cd .cmake-build-superbuild
cmake ../superbuild
cmake --build . --config Release
----------在上面第3步出现问题,CERES那里网络连接失败------------
根据这位老哥的操作:
Ubuntu搭建CT_ICP里程计的环境暨CT-ICP部署_环境ct icp-CSDN博客
新开终端
sudo gedit ~/ct_icp/.cmake-build-superbuild/MappingResearchKEU_superbuild/src/MappingResearchKEU_superbuild/CMakeLists.txt
找到这部分并修改成如下的Ceres网址
# INSTALL Ceres
if (WITH_CERES)
message(INFO "${LOG_PREFIX}Generating Ceres dependency")
ExternalProject_Add(
Ceres
PREFIX Ceres
GIT_REPOSITORY https://github.com/ceres-solver/ceres-solver
GIT_TAG 2.0.0
保存后退出
再进入.cmake-build-superbuild文件夹下执行上述第三步
----------还会可能出现链接失败的情况------------
fatal: unable to access 'https://github.com/mirror/tclap/': Failed to connect to github.com port 443: 连接超时
这个多试几次就通过了
------------还会可能出现“不清楚你的身份”问题,让你输入邮箱和用户名-----------
那么就去给git配置全局设置,写入你github的邮箱及用户名就好了
2.Build and install CT-ICP library
回到ct_icp目录下
cd ct_icp
mkdir cmake-build-release && cd cmake-build-release
cmake .. -DCMAKE_BUILD_TYPE=Release
cmake --build . --target install --config Release --parallel 12
在第三步可能遇到问题:
/ct_icp/src/SlamCore/../../include/SlamCore/utils.h:30:32: error: ‘filesystem’ is not a member of ‘std’
#define __SLAM_FILENAME__ std::filesystem::path(__FILE__).filename()
原因就是你编译器版本旧,没办法编译这部分,升级gcc和g++到11的版本即可
3.ROS
cd ct_icp/ros/roscore
mkdir cmake-build-release && cd cmake-build-release
cmake .. -DCMAKE_BUILD_TYPE=Release
cmake --build . --target install --config Release --parallel 12
我并没有出现什么问题,如果有问题可以去github的问题板块找解决方案
4.连接到工作空间下
在主目录新开终端新建工作空间
例如:
mkdir catkin_ws/src
名称随意并不是固定的,但src是必须的
<path-to-your-catkin-workspace>就是你的工作空间名字,在这里的话就是catkin_ws
<path-to-ct_icp-git-project>是你下载源码的主目录,替换成 /home/你的主机名/ct_icp
用 ~/ct_icp 应该也是可以的
<path-to-superbuild-install-dir>是生成的install文件夹的路径,替换成 /home/你的主机名/ct_icp/install
cd <path-to-your-catkin-workspace>/src
ln -s <path-to-ct_icp-git-project>/ros/catkin_ws/ct_icp_odometry ct_icp_odometry
ln -s <path-to-ct_icp-git-project>/ros/catkin_ws/slam_roscore slam_roscore
cd ..
catkin_make -DSUPERBUILD_INSTALL_DIR=<path-to-superbuild-install-dir>
我在执行catkin_make,也就是最后一步时出现问题:
ct_ws/src/ct_icp_odometry/src/ct_icp_odometry_node.cxx:21:10: fatal error: slam_roscore/monitor_entry.h There is no such file or directory
原因是ct_icp_odometry_node.cxx中头文件包含了monitor_entry.h,但是并不存在这个文件,最后也并没有找到这个文件,我重新刷了个系统,从头构建,最后构建成功了,没有再出现这个错误。根据最后成功的日志文件中,我推测应该是python或者编译器的问题,也没解决方法,懂的大佬可以赐教一下
结束
有问题的可以评论探讨