ROS-自主导航与定位

2023-05-16

文章目录

    • 1,引言
    • 2,全球导航卫星系统GNSS
    • 3,惯性传感器
    • 4,GNSS和IMU融合形式
      • 1)融合形式:松耦合
      • 2)融合形式:紧耦合
    • 5,雷达和摄像头
    • 6,雷达和摄像头的比较

1,引言

​ 当我们自己走在街道上,大脑中本能的就会产生一张与实际地形类型的地图,同时精确的定位当前所处的位置,以及目的地的位置,然后在大脑中快速地进行路径规划,最后控制我们的肌肉从出发地到目的地。无独有偶,智能机器人·的自主运动也遵循与人类类似的四个认知步骤,即地图的产生,自身的地位,轨迹的规划和运动的控制。智能机器人的自主运动通常使用提前配合好的高精度的地图,然后需要通过传感器和相应的算法进行准确的定位,并获取在世界坐标系下的X,Y,Z,Vx,Vy,Vz,Vaw,Pitch和Rall这9个参数,通过这9个参数就可以为后续运动规划提供基础。目前智能机器人的定位主要通过四种方式实现,分别是全球导航卫星系统GNSS,惯性传感器IMU,激光雷达LiDAR和毫米波雷达Radar,以及摄像头

2,全球导航卫星系统GNSS

​ 传统的GNSS,比如美国的GPS,欧洲的伽利略和中国的北斗虽然在可靠性和稳定性方面有一定的优势,同时提供了X,Y,Z,Vx,Vy,Vz的输出。但是系统的精度通常不够,一般在米级别,并且对于信号遮挡区域,如隧道等都无法提供服务,因此单纯使用GNSS无法满足智能机器人的定位需要。

3,惯性传感器

​ 利用加速度计和角速度计提供的X,Y,Z,Vx,Vy,Vz,Vaw,Pitch和Rall的数据,在根据上一时刻的位置和方位从而推断出现在的位置,因此使用惯性传感器需要给定初始的位置。虽然惯性传感器紧紧依靠自身记录的数据就可以独立工作,但是惯性传感器具有累计误差,只适用短时间的测量,而在实际应用中,惯性传感器通常会和GNSS融合使用。通过惯性传感器弥补GNSS更新频率低的缺陷,同时GNSS可以纠正惯性传感器的运动误差。

4,GNSS和IMU融合形式

1)融合形式:松耦合

工作原理:GNSS和IMU各自独立工作,将各自计算的位置和速度估计信息进行比较,得到的差值作为测量值进行卡尔曼滤波优化处理,输出最好的结果。滤波后的结果进行反馈给SINS,用于IMU的校正。

优点:基于位置和速度的组合,结构简单,容易实现。

缺点:耦合程度低,定位性能弱。

2)融合形式:紧耦合

工作原理:使用GNSS的原始数据,并通过SINS解算得到位置和速度信息来估计GNSS的数据,然后使用SINS计算得到的估计数据与GNSS的数据做比较,并将结果作为测量值,并通过卡尔曼滤波反馈给SINS来校正IMU的数据。

优点:高抗干扰性,定位性能强。

缺点:对硬件要求高,实现难度大。

5,雷达和摄像头

​ 这两种方式都属于基于环境特征匹配定位技术,即利用激光雷达,毫米波雷达货摄像头记录周围环境的信息,测量机器人到静态物体法人距离,然后将点云数据或图像数据与存储的赶进度地图进行数据匹配。匹配后的结果可以把智能机器人的本地坐标与世界坐标坐标系之间的转换,从而确定可能所处的位置。

6,雷达和摄像头的比较

1)匹配形式:雷达环境匹配

​ 定位原理:利用激光雷达获取点云图特征与预先采集的地图基准进行匹配,来获得车辆的位置信息

定位流程:首先通过GNSS给定一个初始位置,然后使用IMU和电机的编码器得到车辆的起始姿态,接着将包含几何信息和语义信息的点云数据进行数据提取,然后结合智能机器人的起始位置进行空间变化,从而获得在全局坐标下的矢量特证,然后将这些特征与预存的地图特证进行匹配,以此来获得准确的定位。

输出结果 x,y,z,yaw

缺点 受天气和环境影响较大且激光雷达成本高

优点 不受环境光线影响,白天晚上都可以使用,并且数据量小,定位精度高

2)匹配形式 摄像头环境匹配

定位原理 摄像头获取图像信息,再利用图像中稳定的语义特征与预先采集的地图基准数据进行匹配,来获得车辆的位置和方向信息

定位流程 首先通过摄像头获取图像,并进行图像特征检测,然后从预采集的地图中提取相关的元素,再通过GPS获取一个初始位置,通过该位置把相机获取的特征与地图采集的特征进行匹配,然后利用IMU进行姿态预测,预测和匹配完成后把位置和方向结果进行输出

输出结果 x,y,z,yaw

缺点 容易受光线的影响

优点 摄像头技术成熟,成本低,可以根据不同的算法选择不同的特征组合,容易拓展,数据丰富

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

ROS-自主导航与定位 的相关文章

  • Webots小车与Gampping建图仿真与ORB3算法实践

    此篇博客转自本作者在古月居的博客 https www guyuehome com 34537 前言 在研一的时候 由于XXX项目的需要 其中一项就是需要测试Gmapping建图 自然也要求使用ROS系统 由于之前经常在webots中进行仿真
  • 1-如何安装ROS

    如何安装ROS 大家好 我是如何 今天尝试在Ubantu下安装ROS Robot Operating System 测试环境 虚拟机VMware Ubantu20 04 准备步骤 添加ROS软件源 sudo sh c echo deb ht
  • 线速度和角速度

    转自 https baike baidu com item E7 BA BF E9 80 9F E5 BA A6 1532652 fr aladdin https baike baidu com item E8 A7 92 E9 80 9F
  • 在Ubuntu 14.04.2 LTS上安装Qt

    Qt是一个跨平台的应用程序框架 广泛用于开发具有GUI界面的应用软件以及命令行工具 几乎所有操作系统都可以使用Qt 如Windows Mac OS X Android等 用于开发Qt应用程序的主要编程语言是C 但是可以使用诸如Python
  • Raspberry Pi 上 ROS 服务器/客户端通过GPIO 驱动硬件

    ROS 服务 现在 想象一下你在你的电脑后面 你想从这个服务中获取天气 你 在你身边 被认为是客户端 在线天气服务是服务器 您将能够通过带有 URL 的 HTTP 请求访问服务器 将 HTTP URL 视为 ROS 服务 首先 您的计算机将
  • ROS 第四天 ROS中的关键组件

    1 Launch文件 通过XML文件实现多节点的配置和启动 可自动启动ROS Master
  • 局域网下ROS多机通信的网络连接配置

    1 在路由器设置中固定各机器IP地址 在浏览器中输入路由器的IP地址 例如TP LINK路由器的IP为 192 168 1 1 进入登录页面后 输入用户名和密码登录 用户名一般为admin 密码为自定义 在 基本设置 gt LAN设置 gt
  • 程序“catkin_init_workspace”尚未安装。 您可以使用以下命令安装: sudo apt install catkin

    程序 catkin init workspace 尚未安装 您可以使用以下命令安装 sudo apt install catkin 问题如图 先贴上解决后的效果 运行环境 ubuntu 16 04 ros版本 kinetic 问题解释 这个
  • 《学习篇》学会这18个常用ROS命令集合就能入门ROS了

    常用ROS命令概述 ROS常用命令可以按照其使用场景分为ROSshell命令 ROS执行命令 ROS信息命令 ROS catkin命令与ROS功能包命令 虽然很难从一开始就很熟练地使用所有的命令 但是随着使用的次数增多 你会发现常用的几个R
  • 如何将视频或图像序列转换为包文件?

    我是 ROS 新手 我需要转换预先存在的视频文件 或者large可以连接到视频流中的图像数量 bagROS 中的文件 我在网上找到了这段代码 http answers ros org question 11537 creating a ba
  • 可视化点云

    我在找到的视差图像上有来自 gpu reprojectImageTo3D 的 3D 点 我现在想显示这个点云 如何将找到的点云转换为OpenCV to sensor msgs PointCloud2 我不需要发布点云 这仅用于调试可视化 是
  • 在 Python 3 中导入 Rosbag

    我正在尝试从 Python 3 读取 rosbag 文件 我安装了 ROS2 Eloquent Elusor 它应该支持 Python 3 当我跑步时 import rosbag bag rosbag Bag test bag 从Pytho
  • 什么是 void `std::allocator`?即:`std::allocator`

    自动生成ROS 机器人操作系统 message C 头文件包含如下类型定义 typedef std msgs Header
  • 不使用ros编译roscpp(使用g++)

    我正在尝试在不使用ROS其余部分的情况下编译roscpp 我只需要订阅一个节点 但该节点拥有使用旧版本ROS的节点 并且由于编译问题 我无法将我的程序与他的程序集成 我从git下载了源代码 https github com ros ros
  • Caught exception in launch(see debug for traceback)

    Caught exception in launch see debug for traceback Caught exception when trying to load file of format xml Caught except
  • 在 Ubuntu 18.10 上安装 ROS Melodic

    I can t是唯一对 Cosmic 与 Wayland 和 Melodic 的组合感兴趣的人 我会坦白说 我似乎已经在 XPS 13 9370 上成功管理了此操作 或者至少安装脚本 最终 成功完成 然而 有一个非常棘手的解决方法 无论结果
  • 可以在catkin工作区之外创建ROS节点吗?

    我想在catkin工作区之外创建一个ROS发布者节点 可以创建吗 当然可以 像对待任何其他 cpp 库或 python 包一样对待 ROS 在Python中你必须保留PYTHONPATH环境变量指向ros包 opt ros kinetic
  • 如何使用一个凉亭同时创建两个地图?

    如下图所示 现在我的gazebo正在运行2个slam gmapping包 首先是 turtlebot slam gmapping 发布到 map 主题 第二个是 slam gmapping 发布到与第一个相同的 map 主题 我想创建一个新
  • 安装 ROS 时 Cmake 未检测到 boost-python

    我一直在尝试在我的 Mac 上安装 ROS 并根据不同版本的 boost 使用不同的库解决了错误 然而 似乎有一个库甚至没有检测到 boost python 这是我得到的错误 CMake Error at usr local share c
  • 操作系统和元操作系统有什么区别

    最近听到这个词元操作系统当我学习ros时 你能帮我区分一下吗操作系统 and 元操作系统 ROS 是什么和不是什么最好的解释是这张纸 http www robotics stanford edu ang papers icraoss09 R

随机推荐