SLAM雷达小车学习记录

本文详细记录了从零开始使用Ubuntu作为操作系统,安装ROS,配置激光雷达,处理串口通信,安装GMapping和amcl等工具,以及如何保存和调用地图的过程,旨在解决SLAM小车开发中的常见问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近从零开始学习做一台SLAM激光雷达小车,遇到了很多问题,看了很多博主的文章,有些方法记不太清,所以想自己写个文章记录一下

Ubuntu安装

首先是安装ubuntu系统,使用虚拟机或者树莓派,我安装的是Ubuntu20.04

虚拟机安装方法指路VMware虚拟机安装Ubuntu20.04详细图文教程

树莓派安装方法指路树莓派安装ubuntu20.04、图形桌面、ROS笔记

ssh连接我使用的是vscode,没有遇到什么问题,这个教程很多

ros安装

这一部分可以参考ROS官方教程

我推荐这个教程1.2.4 安装 ROS · Autolabor-ROS机器人入门课程《ROS理论与实践》零基础教程

测试的话roscore就可以了,还可以跑个小乌龟

激光雷达

激光雷达读取数据需要USB转TTL驱动(一般ubuntu自带)和雷达的功能包(买雷达会给吧)

下面写几个常用的功能

创建工作空间

创建ROS工作空间指路ubuntu20.04安装ros noetic以及创建ros工作空间catkin_ws

最后要打开.bashrc文件

cd ~
gedit .bashrc

来到文件最底部,看到以下两行就成功了

串口别名设置

串口别名设置指路在ubuntu系统下给串口起别名

查看已连接的usb设备

lsusb

这个CP210x就是激光雷达

查看串口名

ll /dev/|grep ttyUSB

这个ttyUSB0就是默认的串口名,下面那个wheeltec_lidar是我自己创建的别名

启动雷达

roslaunch lslidar_driver lslidar_serial.launch

这个是我自己买的雷达的启动代码,运行自己的雷达的launch文件就好

在雷达的launch文件按中可以查看雷达的相关信息,包括发布的话题,正常的话这个时候就可以通过rviz查看雷达的点云图像了

话题相关

写几个常用的rostopic命令

rostopic list

列出当前所有的话题列表

rostopic info [topic name]

显示某个话题的消息类型、发布者和订阅者

rostopic echo [topic name]

查看某个话题的具体信息

rosnode list

列出当前正在运行的节点

建图

安装gmapping

rivz软件一般ros自带,打开新终端输入rviz即可查看

gmapping需要根据自己的ros版本下载,roscore可以查看ros版本信息,我是noetic

安装方法如下

sudo apt install ros-noetic-gazebo-ros-pkgs ros-noetic-gazebo-ros-control
sudo apt-get install ros-noetic-turtlebot-*
sudo apt install ros-noetic-gmapping

关于gmapping算法还有一篇不错的文章,指路保姆级Gmapping算法介绍到复现

tf转换问题

gmapping程序需要订scan和tf两个话题,前者是激光雷达数据,后者是坐标系转换参数。因为我只有一个激光雷达,没有里程计,因此是没有直接的tf话题的,所以tf转换是走不通的,具体查看tf转换的指令如下

rosrun rqt_tf_tree rqt_tf_tree

无里程计建图需要用到功能包laser_scan_matcher,援引相关文章的介绍,laser_scan_matcher 功能包是增量激光扫描配准工具,该软件包允许扫描连续的sensor_msgs/LaserScan消息之间的匹配,并将估计的激光位置发布为geometry_msgs/Pose2D或tf变换。该包可以在没有其他传感器提供的任何测距估计的情况下使用,因此,它可以作为独立的里程计算器估算器。

GitHub - CCNYRoboticsLab/scan_tools: ROS Laser scan tools下载功能包,复制到ros工作区的src文件夹中,进行编译

catkin_make

通常会出现没有csm的报错,这时下载一下

sudo apt install ros-noetic-csm

之后要修改launch文件,有一篇非常好的文章 

文章链接ROS:激光雷达+laser_scan_matcher 运行gmapping

此时可以实现建图,判断自身位置和姿态

roslaunch  laser_scan_matcher demo_gmapping.launch

保存和调用地图

需要用到map_server功能包

下载功能包

sudo apt-get install ros-noetic-map-server

这个功能包可以保存和发布地图,地图会保存为一个pgm文件和一个yaml文件,前者是地图的图片文件,后者用于描述地图信息

保存地图

rosrun   map_server   map_saver -f  file_name

调用地图

rosrun map_server map_server file_name.yaml

定位

amcl功能在navigation功能包中

下载功能包

sudo apt-get install ros-noetic-navigation

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值