1、HCRbot Introduction

贤言序语
Jul 10, 2017 · 4 min read

这是 HCRbot 系列的第一篇,从这篇开始将从各个模块分别介绍 HCRbot 机器人的搭建与使用。

缘起

看到 turtlebot 3 快要上市了,本来想买一个玩玩,但是一看要至少9月份才能拿到,以及价格……算了玩不起……

但是心里实在痒痒,怎么办呢?看了下实验室的装备:DFRobot HCR移动机器人平台Raspberry Pi 3SLAMTEC RPLIDAR A2激光雷达Xbox 360 KinectIntel RealSense R200,为啥不自己撸一个 “turtlebot 3” 玩玩呢!于是,HCR 版的 turtlebot:HCRbot 正式诞生!

hcr-ros-frontage

简介

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

ROS

本文默认读者有一定的 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 应该也是可以实现这个项目的。

openc

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

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

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

参考

贤言序语

Written by

这是贤言序语的个人博客

Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch
Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore
Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade