ROS Group 产品服务
Product Service 开源代码库
Github 官网
Official website 技术交流
Technological exchanges 激光雷达
LIDAR ROS教程
ROS Tourials 深度学习
Deep Learning 机器视觉
Computer Vision
google激光雷达slam算法Cartographer的安装及bag包demo测试
-
Cartographer 是google于2016年9月开源的一套激光雷达slam算法,精度和效果在业界处于领先水准。点击查看最终效果。
操作步骤:
1.安装依赖包
# Install the required libraries that are available as debs. sudo apt-get update sudo apt-get install -y \ cmake \ g++ \ git \ google-mock \ libboost-all-dev \ libcairo2-dev \ libeigen3-dev \ libgflags-dev \ libgoogle-glog-dev \ liblua5.2-dev \ libprotobuf-dev \ libsuitesparse-dev \ libwebp-dev \ ninja-build \ protobuf-compiler \ sphinx-common
python-sphinx 可以换成 sphinx-common
2.安装ceres solver
cd ~/Documents git clone https://ghproxy.com/https://github.com/ceres-solver/ceres-solver.git cd ceres-solver git checkout 1.14.x mkdir build cd build cmake .. #git hook时间比较长,耐心等待 make -j sudo make install
3.安装prtobuf 3.0
cd ~/Documents git clone https://ghproxy.com/https://github.com/google/protobuf.git cd protobuf git checkout v3.6.1 mkdir build cd build cmake \ -DCMAKE_POSITION_INDEPENDENT_CODE=ON \ -DCMAKE_BUILD_TYPE=Release \ -Dprotobuf_BUILD_TESTS=OFF \ ../cmake make -j 2 sudo make install
4.安装cartographer
cd ~/Documents git clone https://gitee.com/BlueWhaleRobot/cartographer.git cd cartographer mkdir build cd build cmake .. make -j sudo make install
5.安装cartographer_ros
cd ~/Documents/ros/src #请修改路径到自己的ROS catkin工作空间 git clone https://git.bwbot.org/publish/cartographer_ros cd .. catkin_make
6.安装已完成,开始下载测试用的bag文件
点击下述链接下载文件,保存到桌面
下载链接7.启动demo演示,正常可以看到rviz启动并开始建图
根据个人平台计算能力不同,本demo完整运行时间一般为半个小时到1个小时之间
roslaunch cartographer_ros offline_backpack_2d.launch bag_filenames:=${HOME}/Desktop/cartographer_paper_deutsches_museum.bag
8.提取建立的地图,结束测试
上面步骤7会生成一个pbstream文件,用cartographer_ assets_writer可以转换成栅格地图
roslaunch cartographer_ros assets_writer_ros_map.launch bag_filenames:=${HOME}/Desktop/cartographer_paper_deutsches_museum.bag pose_graph_filename:=${HOME}/Desktop/cartographer_paper_deutsches_museum.bag.pbstream
现在在home目录下的Desktop文件夹内会生成建立的地图文件,这两个文件(pgm 和 yaml)在ros中的map_server中可以加载使用 -
您好,请问·你们有尝试过使用velodyne系列雷达去跑cartographer吗?我遇到了一些问题。如果能给我提供一下建议非常感谢!我的邮箱是1433052323@qq.com.
-
@xiaoxiao 没有用过,我们qq技术群是538456117,可以在里面问问其它人
-
大佬,3.安装prtobuf 3.0中
cmake \ -DCMAKE_POSITION_INDEPENDENT_CODE=ON \ -DCMAKE_BUILD_TYPE=Release \ -Dprotobuf_BUILD_TESTS=OFF \ ../cmake 这一步报错,显示 CMake Error at protoc.cmake:9 (add_executable): Cannot find source file: /home/gahoo/lanjing_ws/protobuf/build/version.rc Tried extensions .c .C .c++ .cc .cpp .cxx .m .M .mm .h .hh .h++ .hm .hpp .hxx .in .txx Call Stack (most recent call first): CMakeLists.txt:210 (include) -- Generating done -- Build files have been written to: /home/gahoo/lanjing_ws/protobuf/build
这个问题怎么解决呢……
-
@gahoo protobuf最新的3.6.x分支有一个bug。已经更新了编译指令,按照现在的操作应该就可以了。
-
@weijiz 现在可以了,谢谢大佬
-
@weijiz 大佬,我安装了ubuntu16.04+ros kinetic 这回编译是全部通过了
但是到第7步roslaunch cartographer_ros offline_backpack_2d.launch bag_filenames:=${HOME}/Desktop/cartographer_paper_deutsches_museum.bag报错显示
what(): Error opening file: /home/gahoo/Desktop/cartographer_paper_deutsches_museum.bag
[rospack] Error: package ‘xiaoqiang_udrf’ not found
[librospack]: error while executing command是不是那个cartographer_ros包内有点问题
-
@gahoo 在 google激光雷达slam算法Cartographer的安装及bag包demo测试 中说:
xiaoqiang_udrf
从错误提示看你是缺少小强的模型包。那个源是针对小强修改过的。你可以修改配置文件让其不适用小强模型包,也可下载一个小强模型包安装上。
小强模型包 -
@weijiz 好的成功啦,谢谢大佬
-
@weijiz 大佬,cartographer不是说可以不需要imu,单单使用激光雷达,论坛里有速腾单单使用激光雷达背包模型的包么。
-
@gahoo 你可以在配置文件里面把use_imu_data 设置成false这样就不适用imu了
-
请问,Cartographer生成的pgm 和 yaml文件和gmapping生成的pgm 和 yaml文件有区别吗,两者通用吗。
-
@zhouyi 通用的
-
你好!我想问一下,我在安装cartographer之后,跑2d的那个博物馆demo是没问题的,但是调用服务时会出现问题:
ERROR: Unable to load type [cartographer_ros_msgs/FinishTrajectory]. Have you typed 'make' in [cartographer_ros_msgs]?
谷歌官方和本文的安装方法我都试了,都会出现这种问题。
看错误信息,应该是编译时候的问题,但是不知道如何解决。希望能解答,非常感谢。 -
@zhaoyu24 cartographer_ros_msgs包没有编译成功或者source问题,参考https://github.com/googlecartographer/cartographer_ros/issues/1078
-
@xiaoqiang 谢谢回复,我去看一看
-
@xiaoqiang 非常感谢你的回复,解决了问题。解决方法就是打开终端开启建图的launch之后,不管是新开终端
Ctrl+Alt+t
还是新建标签```
Ctrl+Shift+t -
@zhaoyu24 打开终端开启建图的launch之后,不管是新开终端
Ctrl+Alt+t
还是新建标签Ctrl+Shift+t
,调用服务之前都要source。 -
@zhaoyu24 可以把source语言写到~/.bashrc里面,这样就不用每次都写source指令了。
-
@weijiz 是的