jarvis_chan 发表于 2017-11-18 16:36:59

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

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

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

- HCRbot 系列 1──HCRbot 机器人简介:https://mc.dfrobot.com.cn/thread-26938-1-1.html
- HCRbot 系列 2──HCRbot 硬件介绍与设置:https://mc.dfrobot.com.cn/thread-26939-1-1.html
- HCRbot 系列 3──HCRbot 上位机 PC 端软件设置:https://mc.dfrobot.com.cn/thread-26975-1-1.html
- HCRbot 系列 4──HCRbot下位机设置(树莓派版):https://mc.dfrobot.com.cn/thread-27020-1-1.html
- HCRbot 系列 5──HCRbot下位机设置(Odroid XU4版):https://mc.dfrobot.com.cn/thread-27161-1-1.html
- HCRbot 系列 6──HCRbot 底层驱动 OpenCR 设置:https://mc.dfrobot.com.cn/thread-27296-1-1.html
- HCRbot 系列 7──启动 HCRbot 机器人:https://mc.dfrobot.com.cn/thread-28248-1-1.html
- HCRbot 系列 8──远程控制 HCRbot 机器人:https://mc.dfrobot.com.cn/thread-29354-1-1.html

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

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

## 运动控制

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

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

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

【Remote PC】 用键盘遥控 HCRbot 运动建图:
`roslaunch hcr_teleop keyboard_teleop.launch`

## 使用激光雷达 RPLIDAR 绘图

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



【HCRbot 机器人】 ssh 进入 HCRbot 机器人,运行:
`roslaunch hcr_nav hcr_laser_slam.launch`

【Remote PC】 在远程主机上打开 Rviz 可视化界面:
`roslaunch hcr_nav slam_view.launch`

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


【HCRbot 机器人】 ssh 进入 HCRbot 机器人,保存地图:
`rosrun map_server map_saver -f ~/map`

下面是演示效果:

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

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

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

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

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

【HCRbot 机器人】 ssh 进入 HCRbot 机器人,运行:
`roslaunch hcr_nav hcr_3dsensor_slam.launch`

【Remote PC】 在远程主机上打开 Rviz 可视化界面:
`roslaunch hcr_nav slam_view.launch`

【HCRbot】 ssh 进入 HCRbot 机器人,保存地图:
`rosrun map_server map_saver -f ~/map_3dsensor`

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

## 后记

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

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

胡秩通 发表于 2017-11-20 18:44:57

厉害了!!!{:5_159:}

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

厉害

王正尧 发表于 2018-1-31 20:18:38

666厉害啦厉害啦厉害啦厉害啦666

liqi5230 发表于 2018-2-15 19:25:19

jarvis_chan 发表于 2017-11-18 16:36
更新:大写加粗的心愿单!一键买齐核心元器件!https://www.dfrobot.com.cn/goods-1518.html

这是 HCRbot...
东西很棒学习了

2363865990 发表于 2018-3-25 20:40:32

学习了!!!非常厉害!!!!

Rich666 发表于 2019-7-16 16:42:31

666666666666
页: [1]
查看完整版本: HCRbot 系列 9──控制 HCRbot 机器人绘制平面地图(SLAM)