ROS EKF 机器人位姿估计功能包:robot_pose_ekf 安装(Ubuntu20.04)

news2024/11/25 22:47:11

ROS EKF 机器人位姿估计功能包:robot_pose_ekf 安装(Ubuntu20.04)

  • 功能包简介
  • 安装

在这里插入图片描述

功能包简介

robot_pose_ekf软件包用于基于来自不同来源的(部分)位姿测量值来估计机器人的3D姿势。它使用带有6D模型(3D位置和3D方向)的扩展卡尔曼滤波器,将来自车轮里程计,IMU传感器和视觉里程计的测量结果结合起来。基本思想是提供与不同传感器的松散耦合集成,其中传感器信号以ROS消息的形式接收。

安装

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

下载源码

git clone https://github.com/ros-planning/robot_pose_ekf

安装完成后提示:

正克隆到 ‘robot_pose_ekf’…
remote: Enumerating objects: 569, done.
remote: Counting objects: 100% (28/28), done.
remote: Compressing objects: 100% (15/15), done.
remote: Total 569 (delta 12), reused 22 (delta 12), pack-reused 541
接收对象中: 100% (569/569), 100.28 KiB | 251.00 KiB/s, 完成.
处理 delta 中: 100% (357/357), 完成.

将 robot_pose_ekf 文件夹拷贝到 ros的工作空间下,进行编译

catkin_make

– +++ processing catkin package: ‘robot_pose_ekf’
– ==> add_subdirectory(robot_pose_ekf)
– Checking for module ‘orocos-bfl’
– No package ‘orocos-bfl’ found
CMake Error at /usr/share/cmake-3.16/Modules/FindPkgConfig.cmake:463 (message):
A required package was not found
Call Stack (most recent call first):
/usr/share/cmake-3.16/Modules/FindPkgConfig.cmake:643 (_pkg_check_modules_internal)
robot_pose_ekf/CMakeLists.txt:6 (pkg_check_modules)

有个这个报错

原因是在 robot_pose_ekf 功能包的 CMakeLists.txt 的 第6行

# bfl (Bayesian Filtering Library) is a third party package that uses pkg-config
find_package(PkgConfig)
pkg_check_modules(BFL REQUIRED orocos-bfl)

orocos-bfl 没有找到,所以报错

解决办法:
ubuntu16.04 or 18.04 :

sudo apt-get install ros-kinetic-bfl
or
sudo apt-get install ros-melodic-bfl

ubuntu20.04:sudo apt-get install ros-noetic-bfl是不行的,需要

sudo apt-get install liborocos-bfl-dev

安装完成后提示:

准备解压 …/liborocos-bfl0.8_0.8.0-5build1_amd64.deb …
正在解压 liborocos-bfl0.8:amd64 (0.8.0-5build1) …
正在选中未选择的软件包 liborocos-bfl-dev:amd64。
准备解压 …/liborocos-bfl-dev_0.8.0-5build1_amd64.deb …
正在解压 liborocos-bfl-dev:amd64 (0.8.0-5build1) …
正在设置 liborocos-bfl0.8:amd64 (0.8.0-5build1) …
正在设置 liborocos-bfl-dev:amd64 (0.8.0-5build1) …
正在处理用于 libc-bin (2.31-0ubuntu9.9) 的触发器 …

再次对ros工作空间进行编译:

catkin_make

成功后会提示:

[100%] Linking CXX executable /home/jk-jone/jone_ws/devel/lib/robot_pose_ekf/test_robot_pose_ekf_zero_covariance
[100%] Linking CXX executable /home/jk-jone/jone_ws/devel/lib/robot_pose_ekf/test_robot_pose_ekf
[100%] Built target test_robot_pose_ekf_zero_covariance
[100%] Built target test_robot_pose_ekf
[100%] Linking CXX executable /home/jk-jone/jone_ws/devel/lib/robot_pose_ekf/robot_pose_ekf
[100%] Built target robot_pose_ekf

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

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

相关文章

想要精通算法和SQL的成长之路 - 两两交换链表中的节点

想要精通算法和SQL的成长之路 - 两两交换链表中的节点 前言一. 两两交换链表中的节点 前言 想要精通算法和SQL的成长之路 - 系列导航 一. 两两交换链表中的节点 原题链接 给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点。你必须在不修改…

1.8w 字的 SQL 优化大全

目录 1、MySQL的基本架构 1)MySQL的基础架构图 2)查询数据库的引擎 ① show engines; ② show variables like “%storage_engine%”; 3)指定数据库对象的存储引擎 2. SQL优化 1)为什么需要进行SQL优化? 2&am…

迷你版ChatGPT开源,教你怎么用nanoGPT训练一个写小说的AI机器人!

大家好,我是千与千寻,好久不见,最近太忙了,去医院拔了颗智齿,这不是刚休息一天,就立刻来给大家分享ChatGPT的新奇项目了。 ChatGPT的功能确实是好用,但是我觉得有一个小缺点,就是反应的时间比较慢,原因是GPT-3.5/GPT-4.0的模型体积较大,比较占用内存空间。 同时大模…

MySQL存储引擎介绍、InnoDB和MyISAM的区别

存储引擎是MySQL的核心组件,是存储数据、建立索引、更新/查询数据等技术的实现方式,存储引擎是基于表的,而不是基于库的,所以存储引擎也可被称为表类型。以在创建表的时候,来可以指定选择的存储引擎,如果没…

指针--指针变量的定义和初始化

存放变量的地址需要一种特殊类型的变量,这种特殊的数据类型就是指针(Pointer)。 具有指针类型的变量,称为指针变量,它时专门用于存储变量的地址值和变量。 其定义形式如下: 类型关键字 * 指针变量名&#x…

【Swift基础语法SnapKit自动布局库的使用】

文章目录 前言playgroundvar 和 let-元组string-字典-数组闭包enum类和对象属性类UI和OC的区别,更简洁懒加载全局文件snap kit的使用top 和 topMargin 总结 前言 最近在学习swift和写项目,给我的感受,语言简洁和安全,在学习了基础…

从GitHub上新拉一个项目并在mac系统下运行遇到的种种问题

如果项目已经被拉下来,现在我们要启动项目。 step1、需要了解该项目是什么,它的作用是什么,以及它可以解决的问题。阅读项目的介绍、文档和示例,确保对项目有一个基本的认识。 step2、设置开发环境:确保您的开发环境…

网络安全系统教程+渗透测试+学习路线(自学笔记)

一、什么是网络安全 网络安全可以基于攻击和防御视角来分类,我们经常听到的 “红队”、“渗透测试” 等就是研究攻击技术,而“蓝队”、“安全运营”、“安全运维”则研究防御技术。 无论网络、Web、移动、桌面、云等哪个领域,都有攻与防两面…

使用Smart Install Maker为应用制作安装程序

一. 前言 Unity发布发布PC平台exe的时候,是生成一个Data目录和一个exe文件,如下: 而一般软件发布的时候,是只有一个Setup.exe这样子的安装程序,可以使用Smart Install Maker这个软件来制作这个Setup.exe程序。 二. S…

函数重载与缺省参数

目录 一 缺省参数 缺省参数分半缺省和全缺省。 2,半缺省参数 3,全缺省参数 4.缺省参数的注意事项 二 函数重载 2 .函数重载参数类型不同强调 三 函数名修饰规则 一 缺省参数 1.缺省参数特性(备胎) 缺省参数是指我们定义函数时有给缺省值的参数&#xf…

chatgpt赋能python:Python开发APP的SEO优化指南

Python开发APP的SEO优化指南 Python是广受欢迎的编程语言,它用于开发各种应用程序,从简单的脚本到大型网络应用程序。SEO优化对于任何应用程序的成功都非常重要,这篇文章将介绍一些Python开发APP的SEO实践和技巧。 为什么需要SEO优化&#…

【OpenMMLab AI实战营第二期】目标检测与MMDetection

目标检测 目标检测的基本范式 划窗 使用卷积实现密集预测 锚框 多尺度检测与FPN 单阶段&无锚框检测器选讲 RPN YOLO、SSD Focal Loss与RetinaNet FCOS YOLO系列选讲 什么是目标检测 目标检测:给定一张图片,用矩形框框出所有感兴趣物体同…

Lucene(8):Lucene底层储存结构

1 详细理解lucene存储结构 存储结构 : 索引(Index) : 一个目录一个索引,在Lucene中一个索引是放在一个文件夹中的。 段(Segment) : 一个索引(逻辑索引)由多个段组成, 多个段可以合并, 以减少读取内容时候的磁盘IO。Lucene中的数据写入会先写内存的一个…

公共场所人流数据统计如何实现?解决重识别、漏检等检测难题

https://github.com/PaddlePaddle/paddledetection当前疫情形势严峻,商场、火车站、地铁口等公共场所对人员流量的统计至关重要。“每天进出多少人?” “现在商场中人员数量有多少?”这些关键数据直接影响到相关防疫管控措施。因为人员基数较…

shardingsphere5.x整合springboot分库分表实战

官方文档不同版本配置变更记录&#xff1a;Spring Boot Start 配置 :: ShardingSphere pom.xml配置&#xff1a; <!--shardingsphere分库分表依赖--> <dependency><groupId>org.apache.shardingsphere</groupId><artifactId>shardingsphere-jd…

分布式锁原理与实战一:分布式锁简介

跨JVM的线程安全问题 在单体的应用开发场景中&#xff0c;在多线程的环境下&#xff0c;涉及并发同步的时候&#xff0c;为了保证一个代码块在同一时间 只能由一个线程访问&#xff0c;我们一般可以使用 synchronized 语法和 ReetrantLock 去保证&#xff0c;这实际上是本地锁…

指针--间接寻址运算符

通常&#xff0c;只要指明要访问的变量的内存地址&#xff0c;即可直接访问变量所在的存储单元中的内容。在前面都是直接通过变量名来访问变量的内容。直接按变量名或者变量的地址存取变量的内容的访问方式&#xff0c; 称为 直接寻址&#xff08;Direct Addressing&#xff09…

STM32读取BH1750光照强度数据打印到串口

【1】BH1750是什么&#xff1f; BH1750是一种数字式环境光强度传感器&#xff08;Digital Light Sensor&#xff09;&#xff0c;也称为其他名称&#xff0c;例如GY-302传感器、BH1750FVI传感器等。它的工作原理是通过收集光线照射到传感器上的量来测量环境亮度。 使用I2C&am…

操作系统 第三章 3.2 错题整理

页面引用串长度是什么意思 合法位存在位 不存在即发生故障 区分好页表项和逻辑地址 是不同的 逻辑地址48bit 偏移量12bit 页号36bit 页表项8B 4KB/8B2^9 一个页面能存放2^9个页表项 页号9bit&#xff0c;36/94 虚拟存储器包括内存和磁盘对换区&#xff0c;工作集要频繁用到&…

深度学习:使用UNet做图像语义分割,训练自己制作的数据集,详细教程

语义分割(Semantic Segmentation)是图像处理和机器视觉一个重要分支。与分类任务不同&#xff0c;语义分割需要判断图像每个像素点的类别&#xff0c;进行精确分割。语义分割目前在自动驾驶、自动抠图、医疗影像等领域有着比较广泛的应用。我总结了使用UNet网络做图像语义分割的…