导航

    蓝鲸ROS机器人论坛

    • 注册
    • 登录
    • 搜索
    • 版块
    • 话题
    • 热门
    ROS交流群
    ROS Group
    产品服务
    Product Service
    开源代码库
    Github
    官网
    Official website
    技术交流
    Technological exchanges
    激光雷达
    LIDAR
    ROS教程
    ROS Tourials
    深度学习
    Deep Learning
    机器视觉
    Computer Vision

    google激光雷达slam算法Cartographer的安装及bag包demo测试

    产品服务
    15
    41
    70431
    正在加载更多帖子
    • 从旧到新
    • 从新到旧
    • 最多赞同
    回复
    • 在新帖中回复
    登录后回复
    此主题已被删除。只有拥有主题管理权限的用户可以查看。
    • xiaoqiang
      xiaoqiang 最后由 frank 编辑

      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
      

      0_1531754676780_map_yaml.png
      现在在home目录下的Desktop文件夹内会生成建立的地图文件,这两个文件(pgm 和 yaml)在ros中的map_server中可以加载使用

      1 条回复 最后回复 回复 引用 0
      • xiaoxiao
        xiaoxiao 最后由 编辑

        您好,请问·你们有尝试过使用velodyne系列雷达去跑cartographer吗?我遇到了一些问题。如果能给我提供一下建议非常感谢!我的邮箱是1433052323@qq.com.

        frank 1 条回复 最后回复 回复 引用 0
        • frank
          frank @xiaoxiao 最后由 编辑

          @xiaoxiao 没有用过,我们qq技术群是538456117,可以在里面问问其它人

          1 条回复 最后回复 回复 引用 0
          • GaHoo
            GaHoo 最后由 weijiz 编辑

            大佬,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
            

            这个问题怎么解决呢……

            weijiz 1 条回复 最后回复 回复 引用 0
            • weijiz
              weijiz @GaHoo 最后由 编辑

              @gahoo protobuf最新的3.6.x分支有一个bug。已经更新了编译指令,按照现在的操作应该就可以了。

              GaHoo 2 条回复 最后回复 回复 引用 0
              • GaHoo
                GaHoo @weijiz 最后由 编辑

                @weijiz 现在可以了,谢谢大佬

                1 条回复 最后回复 回复 引用 0
                • GaHoo
                  GaHoo @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包内有点问题

                  weijiz 1 条回复 最后回复 回复 引用 0
                  • weijiz
                    weijiz @GaHoo 最后由 编辑

                    @gahoo 在 google激光雷达slam算法Cartographer的安装及bag包demo测试 中说:

                    xiaoqiang_udrf

                    从错误提示看你是缺少小强的模型包。那个源是针对小强修改过的。你可以修改配置文件让其不适用小强模型包,也可下载一个小强模型包安装上。
                    小强模型包

                    GaHoo 2 条回复 最后回复 回复 引用 0
                    • GaHoo
                      GaHoo @weijiz 最后由 编辑

                      @weijiz 好的成功啦,谢谢大佬

                      1 条回复 最后回复 回复 引用 0
                      • GaHoo
                        GaHoo @weijiz 最后由 编辑

                        @weijiz 大佬,cartographer不是说可以不需要imu,单单使用激光雷达,论坛里有速腾单单使用激光雷达背包模型的包么。

                        weijiz 1 条回复 最后回复 回复 引用 0
                        • weijiz
                          weijiz @GaHoo 最后由 编辑

                          @gahoo 你可以在配置文件里面把use_imu_data 设置成false这样就不适用imu了

                          1 条回复 最后回复 回复 引用 0
                          • zhouyi
                            zhouyi 最后由 编辑

                            请问,Cartographer生成的pgm 和 yaml文件和gmapping生成的pgm 和 yaml文件有区别吗,两者通用吗。

                            xiaoqiang 1 条回复 最后回复 回复 引用 0
                            • xiaoqiang
                              xiaoqiang @zhouyi 最后由 编辑

                              @zhouyi 通用的

                              1 条回复 最后回复 回复 引用 0
                              • zhaoyu24
                                zhaoyu24 最后由 编辑

                                你好!我想问一下,我在安装cartographer之后,跑2d的那个博物馆demo是没问题的,但是调用服务时会出现问题:

                                ERROR: Unable to load type [cartographer_ros_msgs/FinishTrajectory].
                                Have you typed 'make' in [cartographer_ros_msgs]?
                                

                                谷歌官方和本文的安装方法我都试了,都会出现这种问题。
                                看错误信息,应该是编译时候的问题,但是不知道如何解决。希望能解答,非常感谢。

                                xiaoqiang 1 条回复 最后回复 回复 引用 0
                                • xiaoqiang
                                  xiaoqiang @zhaoyu24 最后由 编辑

                                  @zhaoyu24 cartographer_ros_msgs包没有编译成功或者source问题,参考https://github.com/googlecartographer/cartographer_ros/issues/1078

                                  zhaoyu24 2 条回复 最后回复 回复 引用 0
                                  • zhaoyu24
                                    zhaoyu24 @xiaoqiang 最后由 编辑

                                    @xiaoqiang 谢谢回复,我去看一看

                                    1 条回复 最后回复 回复 引用 0
                                    • zhaoyu24
                                      zhaoyu24 @xiaoqiang 最后由 编辑

                                      @xiaoqiang 非常感谢你的回复,解决了问题。解决方法就是打开终端开启建图的launch之后,不管是新开终端Ctrl+Alt+t还是新建标签```
                                      Ctrl+Shift+t

                                      zhaoyu24 1 条回复 最后回复 回复 引用 0
                                      • zhaoyu24
                                        zhaoyu24 @zhaoyu24 最后由 编辑

                                        @zhaoyu24 打开终端开启建图的launch之后,不管是新开终端Ctrl+Alt+t还是新建标签Ctrl+Shift+t,调用服务之前都要source。

                                        weijiz 1 条回复 最后回复 回复 引用 0
                                        • weijiz
                                          weijiz @zhaoyu24 最后由 编辑

                                          @zhaoyu24 可以把source语言写到~/.bashrc里面,这样就不用每次都写source指令了。

                                          zhaoyu24 1 条回复 最后回复 回复 引用 0
                                          • zhaoyu24
                                            zhaoyu24 @weijiz 最后由 编辑

                                            @weijiz 是的

                                            1 条回复 最后回复 回复 引用 0
                                            • 1
                                            • 2
                                            • 3
                                            • 1 / 3
                                            • First post
                                              Last post
                                            Copyright © 2015-2023 BlueWhale community