ROS 与激光雷达入门教程
说明:
本栏目介绍多款激光雷达的安装,使用
会收录的激光雷达包括:Neato XV-11、Hokuyo、RPLIDAR 、北醒、镭神等
ROS 与激光雷达入门教程-ROS 中使用激光雷达(Neato XV-11)
ROS 与激光雷达入门教程-ROS 中使用激光雷达(RPLIDAR)
ROS 与激光雷达入门教程-ROS 中使用激光雷达(hokuyo)
ROS 与激光雷达入门教程-激光雷达(neato xv-11)gmapping 构建地图
ROS 与激光雷达入门教程-激光雷达(Rplidar)gmapping 构建地图
ROS 与激光雷达入门教程-激光雷达(Hokuyo)gmapping 构建地图
目录:
参考:
公共
2D-slam 激光 slam: 开源代码的比较 HectorSLAM Gmapping KartoSLAM CoreSLAM LagoSLAM
Hokuyo
turtlebot 上 hokuyo UTM-30LX 激光扫描仪的添加及导航
Ros 中 2D_Slam 说明: turtlebot+kinect 改写成 turtlebot+laser(hokuyo)
激光测距仪 hokuyo-ug01 与 ros
ROS 中 Hokuyo_node 使用
hokuyo_node
turtlebot 上 hokuyo UTM-30LX 激光扫描仪的添加及导航
ROS 下使用 Hokuyo 和 AMCL 进行 P3dx 平台导航的实现
ROS 下用 gmapping 构建实验室地图的实现
RPLIDAR
tk1 刷机+ROS 安装+rplidar 安装和配置+turtlebot 安装和配置
ros 中 kobuki(turtlebot)+rplidar 跑 gmapping
turtlebot2+激光雷达
Neato XV-11
在 ROS 系统中使用 XV-11 Lidar 进行 SLAM
Neato XV-11 激光雷达利用 hector_slam 建图
ROS 与激光雷达入门教程-ROS 中使用激光雷达(Neato XV-11)
说明
介绍激光雷达(Neato XV-11)
介绍在 ROS 中使用激光雷达
激光雷达(Neato XV-11)
Neato XV-11 激光雷达主要来自 Neato 牌子的扫地机,多为二手。
激光雷达内部图示:
激光雷达安装图示:
数据参数:
o 串口通讯: 速率 115200 8N1
o 雷达每完整旋转一周会发送 90 个数据包
o 每个数据包中包含 4 个测量点的信息
o 每个数据包长度固定是 22 个字节
o
360°旋转一周共 1980 个字节,相当于每度会有一个距离数据.
雷达的数据包格式: [Data 0] [Data 1] [Data 2] [Data 3]
雷达的数据包分析:
o :0xFA,是固定格式表明数据包开始,可用来从数据流中分割数据包。
o :数据包的索引号,范围从 0xA0 到 0xF9 (总共 89 个包,每个包 4 个数据)。
o :有两个 speedL 和 speedH ,它们各一个字节,共同组成转速信息,大概是低 6bit 表示小数部分。
o :[ Data 0] 到 [Data 3] 是四组测量数据,其中每组测量数据分别由 4 个字节组成,如下:
o
o
o
byte 0 : # 距离信息的 0-7 位
byte 1 : <“invalid data” flag> <“strength warning” flag> # 错误信息标志位 , 警
告位, 距离信息 13-8 位 byte 2 : # 信号强度 0-7 位
byte 3 : # 讯号强度 8-15 位
距离信息的单位是 mm ,整个激光雷达的测量范围大概是 15cm 到 6m, 只需要把距离信息的两个字
节组装成一个整数即可(注意判断无效数据位为 0,如果为 1 意味是无效的数据,需丢弃)。
o :由两个字节组成的校验码,用来校验整个数据包是否正确
驱动安装前准备
假设本测试在 Ubuntu 14.04 + Indigo 下进行
激光雷达的驱动:https://github.com/ncnynl/xv_11_laser_driver
驱动安装
进入工作空间,下载代码,编译
$ cd ~/catkin_ws/src
$ git clone https://github.com/ncnynl/xv_11_laser_driver.git
$ cd ../
$ catkin_make
激光雷达配置
查看端口,采用指定端口方式。一般都是 ttyUSB0,查看端口方法:
$ ls /dev/ttyUSB*
/dev/ttyUSB0 /dev/ttyUSB1
配置端口,采用别名方式:
连接雷达后,查看雷达端口,获取 idVendor 和 idProduct 信息。ID 后面的数字 idVendor:idProduct
$ lsusb
Bus 001 Device 006: ID 138a:0011 Validity Sensors, Inc. VFS5011 Fingerprint Reader
新建 /etc/udev/rules.d/rplidar.rules 文件:(设置别名为 neatolaser,实际名称为:/dev/neatolaser)
KERNEL=="ttyUSB*", ATTRS{idVendor}=="138a", ATTRS{idProduct}=="0011", MODE:="0666", GROUP:
="dialout", SYMLINK+="neatolaser"
增加当前用户对串口的默认访问权限:
$ sudo usermod ‐a ‐G dialout 用户名
使 UDEV 配置生效:(使串口的默认访问权限生效,需要重启机器)
$ sudo service udev reload
$ sudo service udev restart
激光雷达测试
新开端口, 导入环境变量:
$ source ~/catkin_ws/devel/setup.bash
新开端口,启动 roscore
$ roscore
新开端口,测试使用的是版本 2,注意:不同版本数据格式有差异 。
$ rosrun xv_11_laser_driver neato_laser_publisher _port:=/dev/ttyUSB0 _firmware_version:=
2
或使用别名
$ rosrun xv_11_laser_driver neato_laser_publisher _port:=/dev/neatolaser _firmware_versio
n:=2
或利用 launch 启动, 修改端口
或用/dev/neatolaser
$ roslaunch xv_11_laser_driver neato.launch
打开 RVIZ
$ rosrun rviz rviz
修改 Global Options 的 Fixed Frame 为/neato_laser(手打),如图:
点击 Add,添加 LaserScan,可以看到点云数据,如果没看到,旋转雷达的开关,调整速度。
可能显示的点云很小,调整下大小 size(m)为 0.05,如图:
ROS 与激光雷达入门教程-激光雷达(neato xv-11)gmapping 构
建地图
说明
介绍激光雷达(neato xv-11)在 Turtlebot 平台上实现 gmapping 构建地图
参考
Turtlebot 入门教程-激光雷达(neato xv-11)gmapping 构建地图
ROS 与激光雷达入门教程-激光雷达(Rplidar)gmapping 构建地
图
说明
介绍激光雷达(Rplidar)在 Turtlebot 平台上实现 gmapping 构建地图
参考
Turtlebot 入门教程-激光雷达(Rplidar)gmapping 构建地图
ROS 与激光雷达入门教程-激光雷达(Hokuyo)gmapping 构建地
图
说明
介绍激光雷达(Hokuyo)在 Turtlebot 平台上实现 gmapping 构建地图
参考
Turtlebot 入门教程-激光雷达(Hokuyo)gmapping 构建地图
ROS 与激光雷达入门教程-ROS 中使用激光雷达(RPLIDAR)
说明
介绍激光雷达(RPLIDAR)
介绍在 ROS 中安装和测试
激光雷达(RPLIDAR)
RPLIDAR 是低成本的二维雷达解决方案,由 SlamTec 公司的 RoboPeak 团队开发。
它能扫描 360°,6 米半径的范围。
它适合用于构建地图,SLAM,和建立 3D 模型。