目标
- 了解什么是SLAM
- 实现SLAM功能
内容
SLAM简介
SLAM(Simultaneous Localization and Mapping),同步定位与地图构建,最早在机器人领域提出,它指的是:机器人从未知环境的未知地点出发,在运动过程中通过重复观测到的环境特征定位自身位置和姿态,再根据自身位置构建周围环境的增量式地图,从而达到同时定位和地图构建的目的。
本实验的机器人选用Livox_Mid-360激光雷达系统。
激光雷达通过连续扫描环境,收集大量数据点,对收集到的数据点进行处理后,生成点云数据,并利用处理后的数据构建环境的地图。此外,为了后续进行机器人在未知环境中的导航功能,SLAM算法将实时融合激光雷达数据与地图,进行定位和建图。
1、SSH远程连接
为了方便远程控制机器人,我们在电脑端用SSH连接机器人上位机端,这样只需要在笔记本电脑上操作,就可以直接控制机器人。
打开机器人电源和上位机电源,并确保上位机端和个人PC端连接在同一局域网下。同时按下键盘组合键“Ctrl + Alt + T”启动上位机终端,打开终端输入
ifconfig
记住机器人的IP地址。
进行SSH远程连接,在电脑端启动终端,输入
输入密码“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:06