GithubHelp home page GithubHelp logo

johnathondean / carto_map_toolbox Goto Github PK

View Code? Open in Web Editor NEW
7.0 2.0 4.0 122.32 MB

Cartographer地图编辑工具

License: MIT License

CMake 1.98% C++ 93.54% C 0.18% Starlark 0.75% Lua 1.26% Python 1.30% Shell 0.84% XSLT 0.07% Batchfile 0.03% GLSL 0.06%

carto_map_toolbox's Introduction

carto_map_toolbox

简介

carto_map_toolbox是一个基于Cartographer的离线地图编辑工具,可以读取pbstream地图文件并通过ROS话题发布地图数据,在Rviz上可视化显示地图数据。与cartographer_ros中的visualize_pbstream.launch不同的是在carto_map中使用了独立的节点加载和显示地图数据,并且提供ROS service接口实现对地图的编辑,目前支持以下地图编辑功能:

  • 子图数据删除
  • 轨迹数据删除
  • 子图位姿编辑
  • 手动回环优化
  • 子图重叠率检测

参考:https://github.com/sqrt81/carto_slam
https://github.com/SteveMacenski/slam_toolbox

安装编译

系统环境:ubuntu20.04、ROS noetic

注意: 仓库内包含了原生的cartographer和cartographer_ros功能包,注意编译冲突

安装absl 安装glog

在本地创建ROS工作空间,将仓库克隆到工作空间然后编译

mkdir -p docker_ws/src
cd docker_ws/src
git clone <url>
cd ..
catkin_make_isolated
source devel_isolated/setup.bash

使用说明

使用前确认已经source工作空间的环境变量

source devel_isolated/setup.bash

使用roslaunch启动节点

roslaunch carto_map visualize_pbstream.launch pbstream_filename:=/home/dean/map/

其中变量pbstream_filename为加载地图文件夹路径

注意: 输入参数为地图文件夹路径,不是pbstream地图文件的路径

节点启动后会自动打开Rviz显示从文件中加载到的地图,然后可以使用Rviz中的CartoSlamToolboxPlugin对地图进行编辑操作。也可以通过调用ROS service接口实现对地图的编辑。

  1. 删除子图数据
  2. 删除轨迹数据
  3. 保存地图
  4. 子图重叠率检测
  5. 子图位姿编辑和优化

注意: 在Interactive Mode开启的时候,Submap中发布的Submap Pose Markers遮挡InteractiveMarkers,导致鼠标无法选中和拖动InteractiveMarkers,需要先在Submap中关闭All Submap Pose Markers的显示

ROS service接口

  1. 删除子图数据
rosservice call /carto_map/remove_submap "trajectory_id: 0 submap_index: 1"
  1. 删除轨迹数据
rosservice call /carto_map/remove_trajectory "trajectory_id: 1"
  1. 保存地图
rosservice call /carto_map/save_map "filename: '/home/dean/map'"
  • 参数filename为地图文件夹路径
  1. 手动回环优化
rosservice call /carto_map/optimize_submap "{trajectory_id: 0, submap_index: 9, x: 0.0, y: 45.0, theta: 0.04}"
  1. 子图重叠率检测
rosservice call /carto_map/compute_overlap_submap "{}"

此版本使用低分辨率子图进行重叠率检测,每次新生成的低分辨率子图会保存到meta.json文件中。 每次启动节点加载地图文件过程中,会从meta.json文件中读取之前生成好的低分辨率子图。

TODO

carto_map_toolbox's People

Contributors

johnathondean avatar

Stargazers

zzh avatar Quentin Quadrat avatar JaySlamer avatar liyunlong avatar Dennis avatar zhouzuhong avatar  avatar

Watchers

zhouzuhong avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.