查看: 951|回复: 5

[教程] HCRbot 系列 9──控制 HCRbot 机器人绘制平面地图(SLAM)

[复制链接]
本帖最后由 jarvis_chan 于 2017-11-18 16:36 编辑

更新:大写加粗的心愿单!一键买齐核心元器件!http://www.dfrobot.com.cn/goods-1518.html

这是 HCRbot 机器人的第 9 篇,这一章节主要介绍如何控制 HCRbot 绘制室内平面地图来做 SLAM。前面 8 篇讲了那么多废话,这一章开始,终于到了激动人心检验自己劳动成果的时候了!

下面是目前已经写好的所有篇章链接:


通过上一篇章,相信你已经会远程控制 HCRbot 机器人运动了,这一章将会用到之前学过的知识,远程控制 HCRbot 机器人在房间内运动,同时 HCRbot 机器人根据传感器“看到”的场景,将房间内的地图绘制下来,为下一章自动导航做准备。
## 启动 HCRbot 机器人

请确保你已经学习了上一章节 【HCRbot 系列 7──启动 HCRbot 机器人】 章节相关内容,那么根据上一章节的内容启动 HCRbot 机器人吧。

## 运动控制

你可以使用键盘或者 Xbox Joystick 来控制 HCRbot 机器人绘制房间平面二维地图。

【Remote PC】 用 Xbox Joystick (Xbox 手柄)遥控 HCRbot 机器人运动建图(推荐):

[Shell] 纯文本查看 复制代码
roslaunch hcr_teleop xbox360_teleop.launch


当然,如果你没有 Xbox Joystick 的话,也可以用电脑上的键盘:

【Remote PC】 用键盘遥控 HCRbot 运动建图:

[Shell] 纯文本查看 复制代码
roslaunch hcr_teleop keyboard_teleop.launch


## 使用激光雷达 RPLIDAR 绘图

如果使用 RPLIDAR A1/A2 做房间平面地图绘制,请编辑 .bashrc 文件,修改 HCR_LASER_SENSOR 参数为 rplidar,如下图:

rplidar-bashrc-setting.png

【HCRbot 机器人】 ssh 进入 HCRbot 机器人,运行:

[Shell] 纯文本查看 复制代码
roslaunch hcr_nav hcr_laser_slam.launch


【Remote PC】 在远程主机上打开 Rviz 可视化界面:

[Shell] 纯文本查看 复制代码
roslaunch hcr_nav slam_view.launch


然后用键盘或者 Xbox Joystick 控制 HCRbot 运动,建图:

hcr-slam.png

【HCRbot 机器人】 ssh 进入 HCRbot 机器人,保存地图:

[Shell] 纯文本查看 复制代码
rosrun map_server map_saver -f ~/map


下面是演示效果:

HCRbot-slam-demo.gif

大家也可以访问下面的网址,查看视频版本,保证更加动感更加酷炫:

https://www.bilibili.com/video/av14986490/

## 使用 Xbox 360 Kinect 或 RealSense R200 摄像头建图

如果使用 Xbox 360 Kinect 做SLAM,请编辑 .bashrc 文件,修改 HCR_3D_SENSOR 参数为 kinect ,如下图:

kinect-bashrc-setting.png

如果使用 RealSense R200 做 SLAM,请编辑 .bashrc 文件,修改 HCR_3D_SENSOR 参数为 r200 即可,这里就不贴图了(我才不会告诉你是我忘记截图了呢)。

【HCRbot 机器人】 ssh 进入 HCRbot 机器人,运行:

[Shell] 纯文本查看 复制代码
roslaunch hcr_nav hcr_3dsensor_slam.launch


【Remote PC】 在远程主机上打开 Rviz 可视化界面:

[Shell] 纯文本查看 复制代码
roslaunch hcr_nav slam_view.launch


【HCRbot】 ssh 进入 HCRbot 机器人,保存地图:

[Shell] 纯文本查看 复制代码
rosrun map_server map_saver -f ~/map_3dsensor


最后的演示效果和激光雷达差不多,原谅我再次忘记拍视频了……

## 后记

你要是对 ROS 有一定了解,或者感兴趣的话,还可以试试 Hector Mapping 和 Google Cartographer 等各种绘制平面二维地图的算法~

如果有大神做好的话,欢迎在评论里po上步骤和演示视频哈~(实际上我又偷懒了哈哈哈)






胡秩通  高级技师

发表于 2017-11-20 18:44:57

厉害了!!!
回复 支持 反对

使用道具 举报

gray6666  中级技匠

发表于 2017-11-21 08:23:06

黑科技。。。。。。。。。。。
回复 支持 反对

使用道具 举报

#嘉诚欧巴#  见习技师

发表于 2017-11-23 09:50:10

膜拜一波。。。绘制地图的算法不简单!
回复 支持 反对

使用道具 举报

jarvis_chan  初级技匠
 楼主|

发表于 2017-11-23 12:55:07

#嘉诚欧巴# 发表于 2017-11-23 09:50
膜拜一波。。。绘制地图的算法不简单!

绘制地图的算法在ROS平台都有开源的~
回复 支持 反对

使用道具 举报

细颗粒物  高级技师

发表于 2017-11-24 07:40:50

厉害
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

为本项目制作心愿单
购买心愿单
心愿单 编辑
wifi气象站

硬件清单

btnicon
我也要做!
点击进入购买页面
上海智位机器人股份有限公司 沪ICP备09038501号-4

© 2013-2016 Comsenz Inc. Powered by Discuz! X3.4 Licensed

QQ