HCRbot 系列 1──HCRbot 机器人简介

2017-08-2052.9万
精华项目
AI 快速预览详细 收起
HCRbot 机器人系列的第一篇介绍了 HCRbot 机器人的搭建与使用。该机器人基于 DFRobot HCR 移动平台,采用模块化设计,支持多种传感器安装。上位机采用 ROS 框架驱动,底层采用 OpenCR 控制。项目借鉴了 turtlebot 3 的设计理念,适合有一定 ROS 基础的用户。通过模块化设计,用户可以根据需求选择不同的传感器,并通过 ROS 和 OpenCR 进行驱动。
更新:大写加粗的心愿单!一键买齐所有元器件!


https://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 正式诞生!

HCRbot 系列 1──HCRbot 机器人简介图3



# 简介 #


本项目借鉴了很多 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 应该也是可以实现这个项目的。
HCRbot 系列 1──HCRbot 机器人简介图2


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

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


# 整体系统架构 #


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

HCRbot 系列 1──HCRbot 机器人简介图1


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


# 参考 #




创作许可协议

本项目采用 None(不开放任何权利,保留所有权利) 进行许可。

评论(7)
FrankAbe
FrankAbe
老哥能用jetson Nano代替Odroid XU4吗?
20060606
20060606
这个平台载重多少
哥布林攻城锤
哥布林攻城锤
如果屋子里有运动的物体(例如人走来走去)会怎样?作者有没有相关实验?
铁熊
铁熊
作者
回复哥布林攻城锤
可以识别的,ROS很强大的
哥布林攻城锤
哥布林攻城锤回复铁熊
但无法在构建的3D模型中识别出人或者运动物体对吧?
共3条回复,已加载2条,点击查看更多共3条回复,已加载全部
Angleo
Angleo
我擦了, 这个太帅了!
好期待 3D SLAM, 是TK1做的吗?
铁熊
铁熊
作者
回复Angleo
我是用 Odroid XU4 做的,TK1 应该也是没有问题的,ROS 包应该是兼容的。不过 TK1 最高只能装 ROS Indigo 版本,我的是 ROS Kinetic 版本。
shuistorm
shuistorm
赞一个大神,好想也捋起袖子干一个
hnyzcj
hnyzcj
Forgotten
Forgotten
前排围观大神
- 没有更多了 -