移动机器人定位(amcl)

2023-11-01

1.定位(amcl)

1.1找到amcl自带功能包

在这里插入图片描述
amcl_diff.launch:

<launch>
<node pkg="amcl" type="amcl" name="amcl" output="screen">
  <!-- Publish scans from best pose at a max of 10 Hz -->
  <param name="odom_model_type" value="diff"/>
  <param name="odom_alpha5" value="0.1"/>
  <param name="transform_tolerance" value="0.2" />
  <param name="gui_publish_rate" value="10.0"/>
  <param name="laser_max_beams" value="30"/>
  <param name="min_particles" value="500"/>
  <param name="max_particles" value="5000"/>
  <param name="kld_err" value="0.05"/>
  <param name="kld_z" value="0.99"/>
  <param name="odom_alpha1" value="0.2"/>
  <param name="odom_alpha2" value="0.2"/>
  <!-- translation std dev, m -->
  <param name="odom_alpha3" value="0.8"/>
  <param name="odom_alpha4" value="0.2"/>
  <param name="laser_z_hit" value="0.5"/>
  <param name="laser_z_short" value="0.05"/>
  <param name="laser_z_max" value="0.05"/>
  <param name="laser_z_rand" value="0.5"/>
  <param name="laser_sigma_hit" value="0.2"/>
  <param name="laser_lambda_short" value="0.1"/>
  <param name="laser_lambda_short" value="0.1"/>
  <param name="laser_model_type" value="likelihood_field"/>
  <!-- <param name="laser_model_type" value="beam"/> -->
  <param name="laser_likelihood_max_dist" value="2.0"/>
  <param name="update_min_d" value="0.2"/>
  <param name="update_min_a" value="0.5"/>
  <param name="odom_frame_id" value="odom"/>
  <param name="resample_interval" value="1"/>
  <param name="transform_tolerance" value="0.1"/>
  <param name="recovery_alpha_slow" value="0.0"/>
  <param name="recovery_alpha_fast" value="0.0"/>
</node>
</launch>

1.2将amcl_diff.launch复制粘贴到自己建的功能包下,并建立一个.launch文件
如:nav04_amcl.launch

<launch>
  <node pkg="amcl" type="amcl" name="amcl" output="screen">
    <!-- Publish scans from best pose at a max of 10 Hz -->
    <param name="odom_model_type" value="diff"/>
    <param name="odom_alpha5" value="0.1"/>
    <param name="transform_tolerance" value="0.2" />
    <param name="gui_publish_rate" value="10.0"/>
    <param name="laser_max_beams" value="30"/>
    <param name="min_particles" value="500"/>
    <param name="max_particles" value="5000"/>
    <param name="kld_err" value="0.05"/>
    <param name="kld_z" value="0.99"/>
    <param name="odom_alpha1" value="0.2"/>
    <param name="odom_alpha2" value="0.2"/>
    <!-- translation std dev, m -->
    <param name="odom_alpha3" value="0.8"/>
    <param name="odom_alpha4" value="0.2"/>
    <param name="laser_z_hit" value="0.5"/>
    <param name="laser_z_short" value="0.05"/>
    <param name="laser_z_max" value="0.05"/>
    <param name="laser_z_rand" value="0.5"/>
    <param name="laser_sigma_hit" value="0.2"/>
    <param name="laser_lambda_short" value="0.1"/>
    <param name="laser_lambda_short" value="0.1"/>
    <param name="laser_model_type" value="likelihood_field"/>
    <!-- <param name="laser_model_type" value="beam"/> -->
    <param name="laser_likelihood_max_dist" value="2.0"/>
    <param name="update_min_d" value="0.2"/>
    <param name="update_min_a" value="0.5"/>

    <!-- 注意:odom_frame_id 和 base_frame_id 坐标系根据自己的urdf或xacro文件进行对应修改 -->
    <param name="odom_frame_id" value="odom"/>
    <param name="base_frame_id" value="base_footprint"/>

    <!-- 设置坐标系:odom、map、和机器人基坐标系-->
    <param name="resample_interval" value="1"/>
    <param name="transform_tolerance" value="0.1"/>
    <param name="recovery_alpha_slow" value="0.0"/>
    <param name="recovery_alpha_fast" value="0.0"/>
  </node>
</launch>

1.3测试文件test_amcl.launch

<launch>
    <!-- 运行地图服务器,并且加载设置的地图-->
    <include file="$(find nav_dome)/launch/nav03_map_server.launch"/>
    <!-- 启动AMCL节点 -->
    <include file="$(find nav_dome)/launch/nav04_amcl.launch" />
    <!-- 运行rviz -->
    <node pkg="joint_state_publisher" name="joint_state_publisher" type="joint_state_publisher" />
    <node pkg="robot_state_publisher" name="robot_state_publisher" type="robot_state_publisher" />
    <node pkg="rviz" name="rviz" type="rviz" />
</launch>

1.4使用流程
1)启动Gazebo仿真环境
2)启动键盘控制节点

rosrun teleop_twist_keyboard teleop_twist_keyboard.py 

3)启动test_amcl.launch文件
4)在启动的 rviz 中,添加RobotModel、Map组件,分别显示机器人模型与地图,添加 posearray 插件,设置topic为particlecloud来显示 amcl 预估的当前机器人的位姿,箭头越是密集,说明当前机器人处于此位置的概率越高
5)通过键盘控制机器人运动,会发现 posearray 也随之而改变。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

移动机器人定位(amcl) 的相关文章

随机推荐

  • python 图片识别_python识别图片文字

    滑稽研究所 python识别图片文字 哈喽 大家好呀 我是滑稽君 大家在写论文时可能经常碰到无法复制文字的文章 明明找到了需要的内容却无法直接复制使用 这让我们十分苦恼 那么本期滑稽君就告诉大家如何使用python识别图片中的文字 滑稽君整
  • 几款优秀的Windows密码抓取工具

    前言 本篇介绍几款优秀的Windows上的密码抓取工具 每个工具都有自己的特点非常实用 欢迎补充 0x01 Mimikatz 个人点评 这款工具非常强大 公认的Windows密码神器 1 简介 Mimikat是一个法国人写的轻量级调试器 M
  • Linux kernel内存管理之OOM相关参数

    一 OOM概念 OOM是Out Of Memory 内存溢出 的缩写 虽然linux kernel的内存管理有很多机制 从cache中回收 swap out等 可以满足用户空间的各种虚拟内存需求 但是 当你的系统配置不合理 让一匹小马拉大车
  • 浅析React Hooks原理

    React Hooks 简介 React Hooks 是 React 16 8 以及之后版本的产物 React Hooks 就是一堆钩子函数 不同的钩子函数提供了不同的功能 React 通过这些钩子函数对函数型组件进行增强 Hooks 允许
  • 7.2面试

    1 tcp ip四层模型是什么 应用层 运输层 网际层 物理层 网络接口层 网际层 传输层 应用层 tcp ip四层协议模型是对osi七层网络协议模型的简化 其中在tcp ip参考模型中去掉了osi中的会话层和表示层 合并为应用层 把ois
  • 手把手教你用Keil5新建STM32工程

    一 去Keil官网下载STM32芯片支持包 网址http www keil com dd2 pack 下载之后安装 这里的芯片支持包对应标准库的开发 二 去STM32社区下载STM32官方标准库 点击STM32社区网站https www s
  • 调试最长的一帧(第17天)

    先看看流程 电子书上介绍了渲染器osgViewer Renderer类 osgViewer Renderer为摄像机渲染场景的工作提供了一个公共接口 当我们向视景器viewer添加了一个新的摄像机camera时 一个与摄像机相关联的渲染器R
  • 不止是Android,Github超高影响力开源大放送,学习开发必备教科书

    http www cnblogs com liushilin p 6378607 html 1 free programming books https github com vhf free programming books 这个项目目
  • centos7下安装flex,bison

    centos7下安装flex bison 1 修改镜像源为国内镜像源 比如阿里云 1 首先备份系统自带yum源配置文件 etc yum repos d CentOS Base repo root fengyi flex cp etc yum
  • 终于解决DELL台式机的风扇噪音变大的问题

    我的这台电脑是今年7月中旬买的 是DELL 的5150 刚到家的时候 几乎没有什么噪音 很安静 我当时还在感叹DELL的降噪音技术做得如此之好 但到九月份的时候 发现噪音有些变大 尤其在运行需大量运算的程序时 我当时也没多想 但发现就算上新
  • Json Path提取器

    一 Json Path提取器截图 二 Json Path提取器使用说明 http响应的Json结果如下图 数据来源 可以是Http请求的响应结果或者JMeter变量值 目标变量名和Json Path表达式 将Json Path提取出的结果存
  • 共享里的文件被删除了怎么办?可尝试这三种恢复方法

    共享里的文件被删除了怎么恢复 删除之后就马上去回收站找 可是没回收站里没有怎么办 来自某xx小伙伴的咨询 如果你也出现同样的疑惑 那么可以尝试下面的三种方法恢复共享里的文件 方法一 以前的版本恢复 从Windows XP SP2和Windo
  • python安装到一半停止_关于python:使用requirements.txt进行安装时,停止单个包上的pip失败...

    我正在安装requirements txt中的包 pip install r requirements txt requirements txt文件显示 Pillow lxml cssselect jieba beautifulsoup n
  • 外设驱动库开发笔记3:AD527x系列数字电位器驱动

    在一些时候我们需要使用精度更高的数字电位器来实现我们的应用 我们经常使用AD527x系列数字电位器来实现这类应用 在通常情况下 AD527x系列数字电位器完全能够满足要求 为了减少重复工作 在这里我们将分系并实现AD527x系列数字电位器的
  • 12月31日写成13月1日引发重大 Bug,程序员新年就要被“祭天”?

    元旦放假 宅家大扫除成了头等大事 这不 小白鲸扫地机器人竟然选择了 罢工 不少用户反馈小白鲸拖地机器人指示灯一直异常无法工作 到底是什么鬼呢 官方排查发现 是的 你没看错 Bug 原因是程序员小哥哥把 12 月 31 日写成了 13 月 1
  • C4.5算法详解(非常仔细)

    首先 C4 5是决策树算法的一种 决策树算法作为一种分类算法 目标就是将具有p维特征的n个样本分到c个类别中去 相当于做一个投影 c f n 将样本经过一种变换赋予一种类别标签 决策树为了达到这一目的 可以把分类的过程表示成一棵树 每次通过
  • VUE报错 plugin-vue requires vue (>=3.2.13) or @vue/compiler-sfc to be present in the dependency tree

    VUE运行报错 vitejs plugin vue requires vue gt 3 2 13 or vue compiler sfc to be present in the dependency tree 运行 npm install
  • [系统安全] 四十九.恶意软件分析 (5)Cape沙箱分析结果Report报告的API序列批量提取详解

    终于忙完初稿 开心地写一篇博客 您可能之前看到过我写的类似文章 为什么还要重复撰写呢 只是想更好地帮助初学者了解病毒逆向分析和系统安全 更加成体系且不破坏之前的系列 因此 我重新开设了这个专栏 准备系统整理和深入学习系统安全 逆向分析和恶意
  • android设置布局高度的属性,Android内部分享[9]——约束布局 ConstraintLayout 的使用...

    ConstraintLayout 允许您创建具有平面视图层次结构 没有嵌套视图组 的大型复杂布局 它类似于 RelativeLayout 因为所有视图都是根据兄弟视图和父视图布局之间的关系来布局的 但是它比 RelativeLayout 更
  • 移动机器人定位(amcl)

    1 定位 amcl 1 1找到amcl自带功能包 amcl diff launch