http://mc.dfrobot.com.cn/thread-26938-1-1.html
更新:大写加粗的心愿单!一键买齐所有元器件!http://www.dfrobot.com.cn/goods-1518.html
这是 HCRbot 机器人系列的第一篇,从这篇开始将从各个模块分别介绍 HCRbot 机器人的搭建与使用。
说实话,这是很早就开始在写的系列,但是由于整个系统比较复杂,前期调试搭建花了很多时间,还有很多不完善的地方,大家轻喷。接下来,我有时间会慢慢把这个系列写完。
其实这个系列最早是在我的 Medium 上发表的,现在打算在 DFRobot 论坛上也同步发表吧,毕竟这个系列 DFRobot 的东西给我我很多帮助,也算是回馈吧。
大家也可以关注我的 Medium:https://medium.com/@xyxy
本系列所有源代码都开源在我的 GitHub 上,大家可以免费下载,感兴趣的同学也可以帮我一起完善:https://github.com/chenzhongxian/hcr_ros
为了吸引大家的兴趣,先放几个演示视频吧:
HCRbot SLAM Demo
HCRbot Navigation Demo
HCRbot 3D SLAM Demo
## 缘起
看到 turtlebot 3 快要上市了,本来想买一个玩玩,但是一看要至少9月份才能拿到,以及价格……算了玩不起……
但是心里实在痒痒,怎么办呢?看了下实验室的装备:DFRobot HCR移动机器人平台、Raspberry Pi 3、SLAMTEC RPLIDAR A2激光雷达、Xbox 360 Kinect、Intel RealSense R200,为啥不自己撸一个 “turtlebot 3” 玩玩呢!于是,HCR 版的 turtlebot:HCRbot 正式诞生!
## 简介
本项目借鉴了很多 turtlebot 3 上的内容,包括整体采用模块化设计的思想,上位机采用 ROS 框架驱动,底层采用 OpenCR 来驱动。对,你没看错,OpenCR 还没上市了,可是谁叫它开源呢,谁叫我们有万能的淘宝呢!
### ROS
HCRbot 这个系列文章希望读者有一定的 ROS 基础,不然越到后面可能越会一头雾水看不懂。所以如果不知道 ROS,请出门左拐,去 ROS官网:www.ros.rog 学习一下 ROS 的入门教程。官网 wiki 是最好的教程。
### 模块化
由于 DFRobot HCR 本身就是一个开源项目开发平台,有很高的兼容性,包括 Kinect 1代支架等,再加上上面有很多定位孔,我们稍加改装,就能满足很多传感器的安装需求。
那么模块化就是说,我们可以根据自己的需求,安装不同的传感器,以及可以选择每个传感器的安装位置。本项目为了尽可能满足模块化的需求,在代码上尽量留出接口,具体后面相应章节会有说明。
ROS 中,比较重要的一个部分就是机器人的建模,也就是URDF模型。URDF模型可以方便的让我们在远程电脑上看到机器人的运动状态,以及机器人各部分的坐标关系。由于我手头没有 HCR 的三维模型,所以这部份也就尽可能简化了,只是象征性的画了个橙色的圆盘代表 HCR 了。
这样做也有个好处,不是说要满足不同的传感器安装需求嘛?那每个人的安装位置不同,我也没法按照统一的标准来画啊,所以这里也就偷个懒了。大家根据自己传感器的安装位置,在 ROS 相应的传感器驱动文件里手动通过 tf 工具中的 static_transform_publisher 来发布就行了。一下子讲的有点多,别急别急,下文都会详细介绍。
### OpenCR
OpenCR 是大名鼎鼎的 ROBOTIS 公司出的,专门用来控制 turtlebot 3 底层驱动的开发板,支持 Arduino IDE 开发。ROBOTIS 这个公司,我相信你可能听说过他家的电机,几乎全世界最好的机器人项目都在用他们的电机,但你90%一定没用过他们的电机,因为实在太贵了……
关于这块板子,具体介绍,看他们 GitHub 上的 wiki 就好了。如果手里没有这块板子,Arduino Mega 应该也是可以实现这个项目的。
由于本人喜欢玩新鲜的事务,加上 OpenCR 对 ROS 的支持较好,我只要稍微改一改底层驱动,就可以控制 HCRbot 了。所以我很早淘宝入手了一块玩玩,但是不建议大家现在买,因为现在太贵了,而且淘宝卖家的焊接工艺实在太差了,很多地方没焊好,幸好我提前做了一些检测,不然可能烧掉我整个系统。问了 ROBOTIS 中国的一家代理商,据说之后 OpenCR 会单独上市,到时候大家再去买好了。
至于 Arduino Mega 怎么与 ROS 系统对接,大家可以网上去查查,有很多类似的教程,或许我有空会专门再写这方面的教程吧(flag先立起来)。
## 整体系统架构
HCRbot 的整体系统架构如下图所示:
好了废话终于讲完了,下面正式进入详细介绍章节。
## 参考
- Turtlebot 3 wiki:http://turtlebot3.readthedocs.io/en/latest/index.html
- OpenCR wiki:https://github.com/ROBOTIS-GIT/OpenCR/wiki
- DFRobot HCR移动机器人平台:http://www.dfrobot.com.cn/goods-442.html
## 更新
下面是目前已经写好的所有篇章链接:
- HCRbot 系列 1──HCRbot 机器人简介:http://mc.dfrobot.com.cn/thread-26938-1-1.html
- HCRbot 系列 2──HCRbot 硬件介绍与设置:http://mc.dfrobot.com.cn/thread-26939-1-1.html
- HCRbot 系列 3──HCRbot 上位机 PC 端软件设置:http://mc.dfrobot.com.cn/thread-26975-1-1.html
- HCRbot 系列 4──HCRbot下位机设置(树莓派版):http://mc.dfrobot.com.cn/thread-27020-1-1.html
- HCRbot 系列 5──HCRbot下位机设置(Odroid XU4版):http://mc.dfrobot.com.cn/thread-27161-1-1.html
- HCRbot 系列 6──HCRbot 底层驱动 OpenCR 设置:http://mc.dfrobot.com.cn/thread-27296-1-1.html
- HCRbot 系列 7──启动 HCRbot 机器人:http://mc.dfrobot.com.cn/thread-28248-1-1.html
- HCRbot 系列 8──远程控制 HCRbot 机器人:http://mc.dfrobot.com.cn/thread-29354-1-1.html
未完待续……