1. 首页 > 手机 >

gmapping算法原理 gmres算法基本原理

怎么播放roag建图的过程

要播放roag建图的过程,首先需要准备一个roag文件,这个文件包含了关于建图所需要的所有信息,包括机器人的位姿、激光雷达数据和深度图像数据等等。之后,可以使用roag工具来播放这个roag文件,以收集建图所需要的数据。播放roag文件需要用到一些参数,比如播放速度、帧率等等,这些参数可以在播放之前进行设置。

gmapping算法原理 gmres算法基本原理gmapping算法原理 gmres算法基本原理


gmapping算法原理 gmres算法基本原理


播放完roag文件之后,就可以进入真正的建图过程。在这个过程中,需要使用一些算法,比如激光雷达SLAM算法、基于深度图像的SLAM算法等等,这些算法可以用来分析收集到的数据,并构建出一个完整的环境地图。,需要将建立的地图保存下来,以备将来使用。

OSBAG建图的过程主要分为四个步骤:

步:使用2D激光雷达来扫描环境,并将扫描到的点云转换成全局坐标系下的点云。

第二步:使用基于激光点云的算法来计算出每个点云中的边界点,以及每个边界点之间的相互关系,从而构建特征图。

第三步:使用OSBAG算法将特征图中的边界点进行聚类,以获得更大的特征块,并记录每一个特征块的位置和大小。

第四步:使用可视化算法将每一个特征块的位置和大小绘制出来,从而形成一张完整的地图。

1.启动建图节点

终端1

roscore

登录后

终端2

cd spark

./onekey

55

y登录后

2.记录数据

2.1打开记录数据的节点

终端3

cd bagfiles

roag record -a

登录后

2.2控制机器人运动和建图

2.3保存数据

终端3

ctrl+c

登录后

3.回放数据

3.1关闭建图

终端2

ctrl+c

登录后

3.2重启建图

终端2

cd spark

./onekey

55

y登录后

3.3回放数据

roag play

激光雷达SLAM算法

机器人研究的问题包含许许多多的领域,我们常见的几个研究的问题包括:建图(Mapping)、定位(Localization)和路径规划(Path Planning),如果机器人带有机械臂,那么运动规划(Motion Planning)也是重要的一个环节,SLAM需要机器人在未知的环境中逐步建立起地图,然后根据地区确定自身位置,从而进一步定位。

ROS系统通常由大量节点组成,其中任何一个节点均可以通过发布/订阅的方式与其他节点进行通信。举例来说,机器人上的一个位置传感器如雷达单元就可以作为ROS的一个节点,雷达单元可以以信息流的方式发布雷达获得的信息,发布的信息可以被其他节点如导航单元、路径规划单元获得。

ROS的通信机制:

ROS(机器人作系统)中SLAM的一些功能包,也就是一些常用的SLAM算法,例如Gmapping、Karto、Hector、Cartographer等算法。我们不会去关注算法背后的数学原理,而是更注重工程实现上的方法,告诉你SLAM算法包是如何工作的,怎样快速的搭建起SLAM算法。

地图 : ROS中的地图很好理解,就是一张普通的灰度图像,通常为pgm格式。这张图像上的黑色像素表示障碍物,白色像素表示可行区域,灰色是未探索的区域

地图在ROS中是以Topic的形式维护和呈现的,这个Topic名称就叫做 /map ,由于 /map 中实际上存储的是一张图片,为了减少不必要的开销,这个Topic往往采用锁存(latched)的方式来发布。地图如果没有更新,就维持着上次发布的内容不变,此时如果有新的订阅者订阅消息,这时只会收到一个 /map 的消息,也就是上次发布的消息;只有地图更新了(比如SLAM又建出来新的地图),这时 /map 才会发布新的内容。 这种方式非常适合变动较慢、相对固定的数据(例如地图),然后只发布一次,相比于同样的消息不定的发布,锁存的方式既可以减少通信中对带宽的占用,也可以减少消息资源维护的开销。

Gmapping ,Gmapping算法是目前基于激光雷达和里程计方案里面比较可靠和成熟的一个算法,它基于粒子滤波,采用RBPF的方法效果稳定,许多基于ROS的机器人都跑的是gmapping_slam。

gmapping的作用是根据激光雷达和里程计(Odometry)的信息,对环境地图进行构建,并且对自身状态进行估计。因此它得输入应当包括激光雷达和里程计的数据,而输出应当有自身位置和地图。

论文支撑:R-LINS: A Robocentric Lidar-Inertial State Estimator for Robust and Efficient Nigation

6轴 IMU:高频,聚焦自身运动,不采集外界环境数据

3D LiDAR:低频,聚焦车体运动,采集外界环境数据

R-LINS使用以上两种传感器来估计机器人的运动姿态, 对于任一传感器而言,单独的依靠自己的数据是很难实现地图构建的, 比如纯雷达模型使用的传感器是激光雷达,可以很好的探测到外界的环境信息。但是,同样的,也会受到这些信息的干扰,再长时间的运算中会产生一定的累计误。为了防止这种误干扰到后续的地图构建中,需要使用另一种传感器来矫正机器人自身的位姿信息, 即IMU传感器,IMU传感器由于是自身运动估计的传感器,所以,采集的都是自身运动的姿态信息。可以很好的矫正激光雷达里程计的位姿信息。所以,通常使用激光雷达和惯导来进行数据融合,实现姿态信息的矫正。

一共分为三大块:

如何看待谷歌在10月6日开源的slam算法cartographer

跑了demo,效果非常好.之前使用gmapping画过室内地图,分别用北醒与镭神的雷达跑的,镭神效果较好,但是总体还是和cartographer了一截.

现在的问题是,cartographer使用的是MultiEchoLaserScan类型的数据,而我使用的雷达传入的是LaserScan类型的数据,正在寻找解决办法

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 12345678@qq.com 举报,一经查实,本站将立刻删除。

联系我们

工作日:9:30-18:30,节假日休息