首页 > 其他分享 >cartographer 纯定位---pure_localization

cartographer 纯定位---pure_localization

时间:2023-02-06 16:05:09浏览次数:52  
标签:Node cartographer const localization --- pure resolution


0. 简介

最近群里有些老哥在问cartographer纯定位相关问题,网上已有的方法均已失效,这里作者研究了下cartographer相关的流程以及源码,给出了一种简单的解决策略。

1. 旧版cartographer_ros

launch文件的修改

在启动cartographer_occupancy_grid_node节点时,增加pure_localization参数。

<node name="cartographer_occupancy_grid_node" pkg="cartographer_ros"
type="cartographer_occupancy_grid_node" args="-resolution 0.05
-pure_localization 1" />

源文件的修改

在​​cartographer_ros/cartographer_ros/cartographer_ros/occupancy_grid_node_main.cc​​文件中

  • 增加纯定位参数
DEFINE_int32(pure_localization, 0, "Pure localization !");
  • 更改初始化函数,增加参数赋值
//Node::Node(const double resolution, const double publish_period_sec)
Node::Node(const int pure_localization,const double resolution, const double publish_period_sec)
: resolution_(resolution),
pure_localization_(pure_localization),//kaikai.gao
  • 禁止地图话题发布:
void Node::DrawAndPublish(const ::ros::WallTimerEvent& unused_timer_event) {
if (submap_slices_.empty() || last_frame_id_.empty()) {
return;
}

// 非常重要,逻辑不能出错,否则影响导航地图!
if(pure_localization_ == 1) return;

::cartographer::common::MutexLocker locker(&mutex_);
auto painted_slices = PaintSubmapSlices(submap_slices_, resolution_);
std::unique_ptr<nav_msgs::OccupancyGrid> msg_ptr = CreateOccupancyGridMsg(
painted_slices, resolution_, last_frame_id_, last_timestamp_);

occupancy_grid_publisher_.publish(*msg_ptr);
}


标签:Node,cartographer,const,localization,---,pure,resolution
From: https://blog.51cto.com/u_13157605/6039304

相关文章

  • SC-LEGO-LOAM 扩展以及深度解析
    前言本作者在16年大学开始接触ROS后,逐步向着机器人建图导航方面扩展,尤其是对激光雷达方向比较感兴趣,目前打算针对近阶段的SC-LEGO-LOAM进行分析讲述。从ScanContext和LegoL......
  • RT-Thread stm32 基础记录
    准备工作安装RT-ThreadStudio。新建Nano工程打开IDE,点击【文件】-【新建】-【RT-Thread项目】:进入新建工程的配置向导:注:可以通过修改board.c的 ​​SystemClock_Co......
  • Spring12 - 注解管理bean
    Annotation从Java5开始,Java增加了对注解(Annotation)的支持,它是代码中的一种特殊标记,可以在编译、类加载和运行时被读取,执行相应的处理。开发人员可以通过注解在不改变......
  • CMU15-445:Lecture #09 笔记
    Lecture#09:IndexConcurrencyControl本文是对CMU15-445课程第9节笔记的一个粗略总结和翻译。仅供个人(M1kanN)复习使用。目录Lecture#09:IndexConcurrencyCont......
  • 造价-1-工程地质-岩石
    岩体岩石这里我也很好奇,国内的教材为什么要抹掉莫氏硬度的说明。这下意识会让不懂学问的人默认为这是国家定义的10级硬度标准。岩石的成因岩石的成因:这里主要是指地......
  • 开发经验总结-点滴积累
    <欢迎大家加入iOS开发学习交流群:529560119>啊看到一个新的界面,要细细划分区域,应该怎么设计合理。1.如果是在一个cell中有好几行,每行都是两个label,规则排版一样,这样很好做,但......
  • 科研-竞赛图
    目录Grzesik等(2023):已知\(n\)阶随机竞赛图中\(\ell\)-圈的个数(不要求点不交,或者边不交,只要不同就可以)的期望值为\(R(n,\ell)=\frac{(\ell-1)!}{2^{\ell}}\bin......
  • JVM参数:带你认识-X和-XX参数
    摘要:JVM参数分为三类:标准参数、非标准参数(-X参数)和高级选项(-XX参数)。本文主要为大家讲解-X参数和-XX参数。本文分享自华为云社区《JVM运行参数之-X和-XX参数》,作者:共饮一......
  • 0-Jenkins安装
    1、安装JDK2、安装Git:yuminstallgit-y3、安装Maven配置maven环境变量4、安装Tomcat5、部署jenkins  1、快速运行java-jarjenkins.war (建议部署到To......
  • 《区块链基础知识25讲》-第九讲-记录所有权
    把交易历史记录作为当前所有权的证明依据。需要:找到一份不仅是声称某人是某物所有者的账本记录,而且还提供所有权的证据文件,从而作为所有权的证明。每一次所有权的交易通过交......