首页 > 其他分享 >cartographer重要模块——motion_filter

cartographer重要模块——motion_filter

时间:2023-05-25 15:23:16浏览次数:47  
标签:filter cartographer odometry pose motion time

运动滤波,间隔一段时间、一段距离和角度,对odometry的数据进行关键帧采样。

  absl::optional<MotionFilter> pose_graph_odometry_motion_filter;
  if (trajectory_options.has_pose_graph_odometry_motion_filter()) {
    LOG(INFO) << "Using a motion filter for adding odometry to the pose graph.";
    pose_graph_odometry_motion_filter.emplace(
        MotionFilter(trajectory_options.pose_graph_odometry_motion_filter()));
  }

具体可以看看MotionFilter,判断两帧数据是否相似,以减少重复数据。在静止时,避免插入scan数据等操作。

//间隔时间,间隔距离,间隔角度大于阈值,return false
bool MotionFilter::IsSimilar(const common::Time time,
                             const transform::Rigid3d& pose) {
  LOG_IF_EVERY_N(INFO, num_total_ >= 500, 500)
      << "Motion filter reduced the number of nodes to "
      << 100. * num_different_ / num_total_ << "%.";
  ++num_total_;
  if (num_total_ > 1 &&
      time - last_time_ <= common::FromSeconds(options_.max_time_seconds()) &&
      (pose.translation() - last_pose_.translation()).norm() <=
          options_.max_distance_meters() &&
      transform::GetAngle(pose.inverse() * last_pose_) <=
          options_.max_angle_radians()) {
    return true;
  }
  last_time_ = time;
  last_pose_ = pose;
  ++num_different_;
  return false;
}

这些阈值参数可以在cartographer/configuration_files/trajectory_builder_2d.lua文件中找到

  motion_filter = {
    max_time_seconds = 5.,
    max_distance_meters = 0.2,
    max_angle_radians = math.rad(1.),
  },

 

标签:filter,cartographer,odometry,pose,motion,time
From: https://www.cnblogs.com/havain/p/17431383.html

相关文章

  • 【Java基础】Java8 使用 stream().filter()过滤List对象(查找符合条件的对象集合)
    本篇主要说明在Java8及以上版本中,使用stream().filter()来过滤List对象,查找符合条件的集合。一、集合对象定义集合对象以学生类(Student)为例,有学生的基本信息,包括:姓名,性别,年龄,身高,生日几项。我的学生类代码如下:packagecom.iot.productmanual.controller;importio.swagger.annota......
  • Java Web三大组件之Filter过滤器
    JavaWeb三大组件(Servlet、Filter、Listener)1、Filter过滤器概念生活中的过滤器:净水器,空气净化器,大山里的土匪等JavaWeb中的过滤器:当浏览器访问服务器资源时,过滤器就会拦截浏览器发过来的请求,实现一些特别的功能作用:一般用于完成通用的操作,如登录验证,身份验证,统一字符编码和敏感字......
  • 记录一下springboot配置filter之后后端获取不到Authorization问题
    fitler中的添加headers是用逗号隔开的,如content-type,Authorization .......原先代码:res.addHeader("Access-Control-Allow-Headers","content-type");修改后:res.addHeader("Access-Control-Allow-Headers","content-type,Authorization");......
  • Revit二次开发实战04(元素搜集过滤器FilteredElementCollector)
    Revit二次开发实战 FilteredElementCollector元素搜集过滤器1、创建搜集器FilteredElementCollector(Document);搜集文档中所有元素;FilteredElementCollector(Document,List<ElementId>);在指定id集合中搜集;FilteredElementCollector(Document,ElementIdviewId);在......
  • 14-Filter&Listener&Ajax&Axios&JSON
    1,Filter1.1Filter概述Filter表示过滤器,是JavaWeb三大组件(Servlet、Filter、Listener)之一。Servlet我们之前都已经学习过了,Filter和Listener我们今天都会进行学习。过滤器可以把对资源的请求拦截下来,从而实现一些特殊的功能。如下图所示,浏览器可以访问服务器上的所有......
  • JavaWeb中Filter&Listener的神奇作用
    @[toc]1,Filter1.1Filter概述Filter表示过滤器,是JavaWeb三大组件(Servlet、Filter、Listener)之一。过滤器可以把对资源的请求拦截下来,从而实现一些特殊的功能。如下图所示,浏览器可以访问服务器上的所有的资源(servlet、jsp、html等)而在访问到这些资源之前可以使过滤器拦截来下,......
  • spring security授权过滤器FilterSecurityInterceptor学习
    目录一、springsecurity资源访问权限配置1.1使用ExpressionUrlAuthorizationConfigurer1.2使用UrlAuthorizationConfigurer二、FilterSecurityInterceptor的处理流程2.1ConfigAttribute的获取2.2决策管理器AccessDecisionManager2.3AccessDecisionVoter投票器三、FilterSec......
  • 最快Android模拟器Genymotion的安装
        在这开发Android的一段时间内,一直是使用真机进行测试的,使用过的机子包括华为U8825d,红米,MX3.深知Android的最大问题就是碎片化,就是各种适配问题,甚是头疼。也是一直听说Genymotion的快速与强大,也是亲眼见过别人使用Genymotion,完全把Android自带的AVD碾压的渣都不剩。所以......
  • Filter过滤和Listener监听器
    过滤器Filter简介Filter也称之为过滤器,Web开发人员通过Filter技术,对web服务器管理的所有web资源:例如Jsp,Servlet,静态图片文件或静态html文件等进行拦截,从而实现一些特殊的功能。例如实现URL级别的权限访问控制、过滤敏感词汇、压缩响应信息等一些高级功能处理编码。它主要......
  • Filter过滤和Listener监听器
    过滤器Filter简介Filter也称之为过滤器,Web开发人员通过Filter技术,对web服务器管理的所有web资源:例如Jsp,Servlet,静态图片文件或静态html文件等进行拦截,从而实现一些特殊的功能。例如实现URL级别的权限访问控制、过滤敏感词汇、压缩响应信息等一些高级功能处理编码。它主要......