ros-noetic三个slam包-安装

下面安装cartographer好像需要python3,我觉得最好默认就是python3,之前我是没注意的

sudo apt-get install ros-noetic-navigation 
sudo apt-get install ros-noetic-gmapping 
sudo apt-get install ros-noetic-hector-slam 

这个好像需要git一下
先新建个工作空间,如果感觉需要的话
默认已经做了换源(最好别把官方的源删了,放后面)等工作

编译前工具

sudo apt-get install -y python3-wstool python3-rosdep ninja-build stow 

建环境

mkdir catkin_ws cd catkin_ws 
wstool init src wstool merge -t src https://raw.githubusercontent.com/cartographer-project/cartographer_ros/master/cartographer_ros.rosinstall 
cd src git clone https://github.com/googlecartographer/cartographer_ros.git git clone https://github.com/googlecartographer/cartographer.git git clone https://github.com/ceres-solver/ceres-solver.git 

注意,git clone通常会失败,这里有个小技巧是去gitee找一下镜像
下面是我搜到的一些替代

cd src git clone https://gitee.com/wbr_git/cartographer_ros.git git clone https://gitee.com/adamghzhong/cartographer.git git clone https://gitee.com/ddddzkz/ceres-solver.git 

[还可以尝试加https://ghproxy.com/前缀]

在工作目录(如catkin_ws)下开始安装依赖,ros distro表示发行版本,比如ros-noetic,就按下面写不改动也行

sudo rosdep init rosdep update rosdep install --from-paths src --ignore-src --rosdistro=${ROS_DISTRO} -y 

可能运气不好会报错

所以参考这两篇文章

https://www.pythonheidong.com/blog/article/1034234/3dd1c045741b726b607b/

https://blog.csdn.net/learning_man/article/details/119766435
和这篇文章(最后没用到)

https://blog.csdn.net/weixin_44028876/article/details/120201324
如果操作过前两篇文章之一,就不要进行第三篇的操作,否则反而会带来报错

安装abseil-cpp,abseil是从Google内部代码块中抽取出来的一系列最基础的软件库。作为基本的组成部分,这些软件库支撑了几乎全部Google在运行的项目。

src/cartographer/scripts/install_abseil.sh 

这里也有一个指向GitHub的git clone
用文本编辑器打开文件,注释这行,也换上gitee

#git clone https://github.com/abseil/abseil-cpp.git
git clone https://gitee.com/dsl11/abseil-cpp.git

接下来执行

sudo apt-get remove ros-${ROS_DISTRO}-abseil-cpp 

但我好像没有,问题不大

开始编译

catkin_make_isolated --install --use-ninja 

以后如果修改了cartographer里的内容,也按照这个命令编译,不是用catkin_make
这个会编译一段时间,可以开另一个窗口执行下一步

下载2D测试包

wget -P ~/Downloads https://storage.googleapis.com/cartographer-public-data/bags/backpack_2d/cartographer_paper_deutsches_museum.bag 

运行测试包

编译完成后
运行

source install_isolated/setup.bash roslaunch cartographer_ros demo_backpack_2d.launch bag_filename:=${HOME}/Downloads/cartographer_paper_deutsches_museum.bag 

注意点

我发现如果再src里增加一个文件(我增加了一个launch文件),再重新编译,就会报错,而且是目前我看来很离谱的报错,报错后就算新增的文件删除,也还是会继续报错。所以尽量只更改不增加,或者编译前自己先预留空白launch文件。
报错我目前唯一的解决方法是删掉三个isolated文件夹,重新编译。

本网页由快兔兔AI采集器生成,目的为演示采集效果,若侵权请及时联系删除。

原文链接:https://chenyeke.blog.csdn.net/article/details/123517258

更多内容