机器人状态估计:robot_localization 功能包简介与安装

news2024/11/17 11:31:00

机器人状态估计:robot_localization 功能包简介与参数配置

  • 前言
  • 功能包简介
  • 安装
    • 使用ubuntu软件源安装
    • 使用源码安装

前言

在这里插入图片描述

移动机器人的状态估计需要用到很多传感器,因为对单一的传感器来讲,都存在各自的优缺点,所以需要一种多传感器融合技术,将机器人的状态估计出来。对于移动机器人来讲,自身可能携带:

  • 惯导
  • 轮速里程计
  • 激光里程计
  • 视觉里程计
  • gps等

如何利用各传感器的优点,将所有数据结合起来,取长补短,就用到了本篇博客介绍的内容 robot_localization ,一个移动机器人状态估计功能包。

功能包简介

robot_localization是状态估计节点的集合,每个节点都是非线性状态估计器的一种实现,用于在3D空间中移动的机器人。它包括两个状态估计节点ekf_localization_nodeukf_localization_node。另外,robot_localization提供navsat_transform_node,它有助于集成GPS数据。

功能包特点
robot_localization中的所有状态估计节点都具有共同的特征,即:

  • 融合任意数量的传感器。节点不限制传感器的数量。例如,如果您的机器人具有多个IMU或里程计信息,则robot_localization中的状态估计节点可以支持所有传感器。
  • 支持多种ROS消息类型。robot_localization中的所有状态估计节点都可以接收nav_msgs/Odometrysensor_msgs/Imugeometry_msgs/PoseWithCovarianceStamped,或geometry_msgs/TwistWithCovarianceStamped消息。
  • 自定义每个传感器的输入。如果给定的传感器消息包含您不希望包含在状态估计中的数据,则robot_localization中的状态估计节点允许您排除该数据。
  • 连续估计。robot_localization中的每个状态估计节点在收到一次测量结果后便开始估算车辆的状态。如果传感器数据中有间歇(即很长一段时间,没有收到任何数据),则滤波器将继续通过内部运动模型来估算机器人的状态。

所有状态估计节点都跟踪车辆的15维状态:
在这里插入图片描述

安装

安装环境:ubuntu 20.04
ros 版本:noetic

使用ubuntu软件源安装

sudo apt-get install ros-noetic-robot-localization

使用源码安装

github网址:https://github.com/cra-ros-pkg/robot_localization
注意现在默认是ros2
要选择分支 noetic-devel
在这里插入图片描述

git clone https://github.com/cra-ros-pkg/robot_localization --branch noetic-devel

成功后显示:
在这里插入图片描述

正克隆到 ‘robot_localization’… remote: Enumerating objects: 7078, done.
remote: Counting objects: 100% (72/72), done. remote: Compressing
objects: 100% (46/46), done. remote: Total 7078 (delta 33), reused 47
(delta 24), pack-reused 7006 接收对象中: 100% (7078/7078), 15.87 MiB |
370.00 KiB/s, 完成. 处理 delta 中: 100% (4739/4739), 完成.

将功能包移动到ros工作空间下面
进行编译

catkin_make

编译成功后提示:

在这里插入图片描述

[ 98%] Linking CXX executable /home/jk-jone/jone_ws/devel/lib/robot_localization/ukf_localization_node
[100%] Linking CXX executable /home/jk-jone/jone_ws/devel/lib/robot_localization/ekf_localization_node
[100%] Built target ukf_localization_node
[100%] Built target ekf_localization_node
[100%] Linking CXX shared library /home/jk-jone/jone_ws/devel/lib/libekf_localization_nodelet.so
[100%] Linking CXX shared library /home/jk-jone/jone_ws/devel/lib/libukf_localization_nodelet.so
[100%] Built target ekf_localization_nodelet
[100%] Built target ukf_localization_nodelet

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/804303.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Linux下CMake开发

CMake编译和运行C文件 编写CMakeLists.txt # 声明要求的 cmake 最低版本 cmake_minimum_required( VERSION 3.1 )# 声明一个 cmake 工程 project( pro )# 设置编译模式 set( CMAKE_BUILD_TYPE "Release" )#添加OPENCV库 #指定OpenCV版本,代码如下 #find…

vue2+wangEditor5富文本编辑器(图片视频自定义上传七牛云/服务器)

1、安装使用 安装 yarn add wangeditor/editor # 或者 npm install wangeditor/editor --save yarn add wangeditor/editor-for-vue # 或者 npm install wangeditor/editor-for-vue --save在main.js中引入样式 import wangeditor/editor/dist/css/style.css在使用编辑器的页…

压缩算法的原理丨基因型vcf文件为什么压缩后发生了什么?

压缩算法的本质 最近碰到一个神奇的现象,一份大小为16GB的xx.vcf.gz文件,解压之后体积变为600GB的vcf文件,为什么一份文件经过压缩后体积缩小了这么多? (work) [bio notes 21:29:40 ~/work/20230726/data]$ ls -lh总用量 620GB-…

mac m1安装Centos9

先看结果(在mac M1 安装centos8 安装不成功的原因大部分是没有找到正确的系统) 由于Cnetos8 停服,现有mac m1 上能够按照的Centos8 并非由官方发布,因此寻找官方发布的能够在mac m1上安装的centos版本。 在YouTuBe上找到一个视频…

华为产品测评官-开发者之声 +【小白的CodeArts产品体验(Devops实践)】

关于使用华为云Codearts产品中产品优点以及实践中出现的问题 一、Devops简介二、产品的优点1. 直观化的思维导图2. 迭代详情3. 合理的项目工作流程4. 合理的分支请求5. 可视化的代码问题统计图6. 报告的完整性7.流水线视图 三、实践中的小坑第一个小坑第二个小坑第三个小坑&…

点击按钮横向滚动左右滚动

展示 原理 隐藏超过部分,通过设置元素左侧的滚动距离,使元素向右向左滚动 1.scrollLeft:元素左侧已滚动的距离,即位于元素左边界与元素中当前可见内容的最左端之间的距离 2.scrollWidth:元素的整体宽度,包括由于溢出…

现代C++中的从头开始深度学习:激活函数

一、说明 让我们通过在C中实现激活函数来获得乐趣。人工神经网络是生物启发模型的一个例子。在人工神经网络中,称为神经元的处理单元被分组在计算层中,通常用于执行模式识别任务。 在这个模型中,我们通常更喜欢控制每一层的输出以服从一些约束…

详解python中的垃圾回收机制

目录 什么是垃圾回收机制 垃圾回收的工作流程 为什么要进行垃圾回收 详解python中的垃圾回收机制 总结 什么是垃圾回收机制 垃圾回收(Garbage Collection)是一种自动内存管理机制,用于检测和释放不再被程序使用的内存资源,以…

【数据结构】实验十一:图

实验十一 图 一、实验目的与要求 1)掌握图的存储表示与操作实现。 2)掌握图的连通性及其应用。 二、 实验内容 1.用邻接表存储一个图形结构,并计算每个顶点的度。 2. 采用深度和广度优先搜索算法,遍历上述这张图,…

CSS之允许点击穿透

一、pointer-events 属性用于设置元素是否对鼠标事件做出反应。 二、属性值 三、如果设置点击穿透效果,使用 pointer-events:none; 设置作用元素即可 .your-classname {pointer-events:none; }

23款奔驰S400豪华型升级后排电动腿托系统,提升后排乘坐舒适性

奔驰S400L后排座椅是不带腿托和脚托的,也没有一键躺平功能,相对于奔驰S级高配车型上配置的右边老板位座椅,舒适性就差强了一些。

AX88179A千兆网卡芯片,支持switch联网

AX88179是世界上第一个USB 3.0,千兆以太网控制器,它在单一芯片上集成了USB 3.0 PHY和10/100/1000Mbps千兆以太网MAC / PHY。AX88179是最新此外ASIX的USB-到-LAN产品组合,提供一个小的形式因素的解决方案和插头-和-打法可用性,使嵌…

重学C++系列之模板

一、什么模板 模板的引入跟泛型编程有关,泛型编程指编写和编译时,对于参数的类型是一个不确定的类型,直到程序运行时,才能确定真正的类型。而泛型编程的实现主要通过函数模板和类模板。 二、模板有几种 模板有两种,函…

无涯教程-jQuery - hide( )方法函数

如果显示了 hide()方法&#xff0c;它们只是隐藏每个匹配元素集。此方法还有另一种形式&#xff0c;可以控制动画的速度。 hide( ) - 语法 selector.hide( ); hide( ) - 示例 以下是一个简单的示例&#xff0c;简单说明了此方法的用法- <html><head><title…

软件测试人员一定要会的用例设计思路

职场新人对测试用例的困惑无非有以下几点 1、什么是测试用例&#xff0c;为什么要写测试用例&#xff1f; 2、不知道怎么写&#xff0c;写了也不知道写的是否完整。 一、什么是测试用例&#xff1f; 百科的释义&#xff1a; 测试用例是对一项特定的软件产品进行测试任务的…

day45-Netflix Mobile Navigation(左边侧边栏动态导航)

50 天学习 50 个项目 - HTMLCSS and JavaScript day45-Netflix Mobile Navigation&#xff08;左边侧边栏动态导航&#xff09; 效果 index.html <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8" /><meta name&…

pinia在vue3中的使用

总结&#xff1a; 在store文件夹中建一个pinia的文件userStore.js 1.要想使用pinia必须先引入defineStore 这里我们使用es6的模块化语法导出的 import { defineStore } from pinia 2.然后使用export const useUserStore defineStore(user,{}) defineStore 方法有两个参数&…

NAT协议(网络地址转换协议)详解

NAT协议&#xff08;网络地址转换协议&#xff09;详解 为什么需要NATNAT的实现方式静态NAT动态NATNAPT NAT技术的优缺点优点缺点 NAT协议是将IP数据报头中的IP地址转换为另外一个IP地址的过程&#xff0c;主要用于实现私有网络访问公有网络的功能。这种通过使用少量的IP地址代…

机器视觉系统组成,你知道多少?

机器视觉系统是一个复杂而高效的技术体系&#xff0c;它的组成主要包括以下几个核心部件&#xff1a; 相机和镜头&#xff1a;相机是机器视觉系统的眼睛&#xff0c;用于捕捉被测物的图像。镜头是相机的重要组成部分&#xff0c;它可以调节焦距、光圈和通光量&#xff0c;帮助获…

第3章 配置与服务

1 CoreCms.Net.Configuration.AppSettingsHelper using Microsoft.Extensions.Configuration; using Microsoft.Extensions.Configuration.Json; namespace CoreCms.Net.Configuration { /// <summary> /// 【应用设置助手--类】 /// <remarks> /// 摘要&#x…