目标

  • 了解什么是SLAM
  • 实现SLAM功能

内容

SLAM简介

SLAM(Simultaneous Localization and Mapping),同步定位与地图构建,最早在机器人领域提出,它指的是:机器人从未知环境的未知地点出发,在运动过程中通过重复观测到的环境特征定位自身位置和姿态,再根据自身位置构建周围环境的增量式地图,从而达到同时定位和地图构建的目的。

本实验的机器人选用Livox_Mid-360激光雷达系统。

激光雷达通过连续扫描环境,收集大量数据点,对收集到的数据点进行处理后,生成点云数据,并利用处理后的数据构建环境的地图。此外,为了后续进行机器人在未知环境中的导航功能,SLAM算法将实时融合激光雷达数据与地图,进行定位和建图。

1、SSH远程连接

为了方便远程控制机器人,我们在电脑端用SSH连接机器人上位机端,这样只需要在笔记本电脑上操作,就可以直接控制机器人。

打开机器人电源和上位机电源,并确保上位机端和个人PC端连接在同一局域网下。同时按下键盘组合键“Ctrl + Alt + T”启动上位机终端,打开终端输入

ifconfig

记住机器人的IP地址。

进行SSH远程连接,在电脑端启动终端,输入

ssh orangepi@172.20.10.7

输入密码“x”按回车,进入机器人终端,会发现@后面的计算机名变成了orangepi,说明当前终端已经进入了香橙派端。

2、控制机器人运动建图

在香橙派终端打开slam文件夹,输入

ls

查看slam文件夹下的文件。

输入

./runmapping.sh

启动一个建图程序,检查终端窗口,检查终端中的节点是否正常启动。运行runmapping.sh脚本,在控制机器人运动的过程中收集激光雷达数据并构建环境的地图。运行SLAM算法,录制全局点云bag包。

设定机器人的起点,通过遥控器控制机器人运动。

本实验选择大黑楼走廊进行建图,通过遥控器控制机器人绕走廊运动一周作为实验设置的轨迹,通过runmapping.sh启动waypoint_save算法录制轨迹。

运动结束后,输入

./kill.sh

关闭SLAM算法和waypoint_save算法。

3、Rviz可视化结果

打开香橙派终端,输入

rviz2

进入rviz可视化界面。

根据脚本设置,录制的轨迹将自动保存在data文件夹下的prior_map文件夹中。输入

ls

可以查看当前文件夹中的文件。这里以文件名为001的包为例。在prior_map打开终端输入

ros2 bag play 001/

将001包中的消息载入rviz中。

在rviz界面中,点击Add——By topic—— 选择点云数据话题 —— 点击OK。

将rviz中的Fixed_Frame参数修改为odom。设置“decay time”(衰减时间)为100,以得到更加清晰稳定的点云数据。

等待一段时间后,可以显示出建图得到的完整点云。

作者:hyx  创建时间:2024-09-26 15:05
最后编辑:hyx  更新时间:2024-09-26 15:06