查看: 9075|回复: 9

[教程] HCRbot 系列 1──HCRbot 机器人简介

[复制链接]
更新:大写加粗的心愿单!一键买齐所有元器件!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 3SLAMTEC RPLIDAR A2激光雷达Intel RealSense R200,为啥不自己撸一个 “turtlebot 3” 玩玩呢!于是,HCR 版的 turtlebot:HCRbot 正式诞生!

hcr-ros-frontage.jpg

## 简介

本项目借鉴了很多 turtlebot 3 上的内容,包括整体采用模块化设计的思想,上位机采用 ROS 框架驱动,底层采用 OpenCR 来驱动。对,你没看错,OpenCR 还没上市了,可是谁叫它开源呢,谁叫我们有万能的淘宝呢!

### ROS

HCRbot 这个系列文章希望读者有一定的 ROS 基础,不然越到后面可能越会一头雾水看不懂。所以如果不知道 ROS,请出门左拐,去ROS官网学习一下 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.png

由于本人喜欢玩新鲜的事务,加上 OpenCR 对 ROS 的支持较好,我只要稍微改一改底层驱动,就可以控制 HCRbot 了。所以我很早淘宝入手了一块玩玩,但是不建议大家现在买,因为现在太贵了,而且淘宝卖家的焊接工艺实在太差了,很多地方没焊好,幸好我提前做了一些检测,不然可能烧掉我整个系统。问了 ROBOTIS 中国的一家代理商,据说之后 OpenCR 会单独上市,到时候大家再去买好了。

至于 Arduino Mega 怎么与 ROS 系统对接,大家可以网上去查查,有很多类似的教程,或许我有空会专门再写这方面的教程吧(flag先立起来)。

## 整体系统架构

HCRbot 的整体系统架构如下图所示:

HCRbot-system-architecture.png

好了废话终于讲完了,下面正式进入详细介绍章节。

## 参考


## 更新

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


未完待续……




Forgotten  版主

发表于 2017-8-20 21:45:23

前排围观大神
回复 支持 反对

使用道具 举报

hnyzcj  超级版主

发表于 2017-8-21 07:50:42

回复 支持 反对

使用道具 举报

shuistorm  见习技师

发表于 2017-8-25 15:02:11

赞一个大神,好想也捋起袖子干一个
回复 支持 反对

使用道具 举报

Angelo  初级技匠

发表于 2017-9-6 19:16:30

我擦了, 这个太帅了!
好期待 3D SLAM,  是TK1做的吗?
回复 支持 反对

使用道具 举报

jarvis_chan  版主
 楼主|

发表于 2017-9-6 19:31:58

Angelo 发表于 2017-9-6 19:16
我擦了, 这个太帅了!
好期待 3D SLAM,  是TK1做的吗?

我是用 Odroid XU4 做的,TK1 应该也是没有问题的,ROS 包应该是兼容的。不过 TK1 最高只能装 ROS Indigo 版本,我的是 ROS Kinetic 版本。
回复 支持 反对

使用道具 举报

哥布林攻城锤  学徒

发表于 2017-10-19 15:50:23

如果屋子里有运动的物体(例如人走来走去)会怎样?作者有没有相关实验?
回复 支持 反对

使用道具 举报

jarvis_chan  版主
 楼主|

发表于 2017-10-19 22:07:32

哥布林攻城锤 发表于 2017-10-19 15:50
如果屋子里有运动的物体(例如人走来走去)会怎样?作者有没有相关实验? ...

会自动避开
回复 支持 反对

使用道具 举报

哥布林攻城锤  学徒

发表于 2017-10-22 20:03:00


但无法在构建的3D模型中识别出人或者运动物体对吧?
回复 支持 反对

使用道具 举报

jarvis_chan  版主
 楼主|

发表于 2017-10-22 22:04:52

哥布林攻城锤 发表于 2017-10-22 20:03
但无法在构建的3D模型中识别出人或者运动物体对吧?

可以识别的,ROS很强大的
回复 支持 反对

使用道具 举报

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

本版积分规则

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

硬件清单

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

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

mail