二 机器人界的安卓 -- ROS

从本章开始,为了提高游戏体验,读者需要开始自己动手了(实践出真知~)

接下来是你们需要面对的第一道坎---安装Linux系统,版本号14.04 或16.04

在你成为一个合格的机器人科研工作者之前,你还会安装无数次Linux的,所以不要慌,该来的迟早会来。

在继续往下读之前,请确保已经安装好linux系统,否则就算继续往下看也会索然无味。至于安装教程请自行百度(会自己解决问题才是研究最最重要的东西)

安装完Linux系统以后我们来开始安装ROS系统。

安装教程在这里:

14.04的用户对应的是indigo版本

http://wiki.ros.org/indigo/Installation/Ubuntu

16.04的用户对应的是kinetic版本

http://wiki.ros.org/kinetic/Installation/Ubuntu

只要跟着说明一步一步粘贴复制命令即可完成安装(请注意有些是选项内容,并不是所有命令都要粘贴运行一遍,对于不懂的地方可以百度一下“ROS 安装”,有大量中文资料,在此不展开说明)

需要注意的一点是,安装完以后记得在.bashrc上面加上 source /opt/ros/indigo/setup.bash 

然后另开一个终端 roscd 看看显示路径,如果是/opt/ros.....那就对了。

安装完以后我们需要先创建一个环境,具体步骤可以参照这里 http://wiki.ros.org/cn/ROS/Tutorials/ (对,是中文的哦,是不是特别激动? ) 在这里建议读者先自行完成初级和中级教程。

 

需要提醒的是,创建环境之前确保上面说的在bashrc上面的那句source已经加上, 创建完环境以后请把环境的路径也加在bashrc里面,所以你的bashrc应该包含以下内容

source /opt/ros/indigo/setup.bash

source /home/你的用户名/ros/indigo/devel/setup.bash (这是我的环境)

在这里我并不打算对ROS做详细的说明(因为展开的话真的可以写一本书),我只给出对ROS一个感性的认识,有兴趣的读者可以自行百度更多细节,不过可以确认的一件事是ROS只是一个工具,你不去用它的话永远也不会上手。

 

 

以ROS的标志做一个华丽丽的分界线。

ROS前身是斯坦福大学一个实验室开发的软件,后来由willow garage继承,对,就是上一章提到的开发PR2的willow garage,所以ROS很多例程都是以PR2为例子展开的,不仅如此,很多著名的开源软件比如OpenCV, PCL 都是由willow garage主导开发的,所以willow garage在我眼里是一个可以跟谷歌媲美的里程碑式的公司,遗憾的是它已经解散了,具体原因不得而知,我觉得有可能是由于他们理想过于庞大而且力求完全开源导致资金不足以支撑? :) 

总而言之, ROS在机器人界有着不可替代的地位。未来十年应该还是会继续处于主导地位。

说了这么久,那ROS到底是个什么东西?

刨去网上说的天花乱坠的什么文件系统,什么计算图的乱七八糟的概念。 ROS本质上是一个通信协议。做过嵌入式的同学都知道,两个模块间的通信需要一个协议,可以是I2C,可以是Ethercat。 而ROS就是这么一个东西,在ROS里面你创建了一堆功能独立的模块,如下图,我有三个模块,分别是方向盘模块(给角度),油门模块(给线速度),以及小车控制模块(根据角度和速度控制轮子)。在这里方向盘和油门分别发布(publish)一个话题(topic),它们发布的东西被存储到一个队列里面,里面的123对应的就是消息顺序,然后控制器就可以订阅(subscribe)这些消息然后做出相应控制。 这就是ROS教程的初级里面想要教会你们的东西

这么一看,其实ROS也没多少很复杂的概念嘛~~至于service和client机制也是类似的,而且这个机制应用远不如subscribe/publish机制多。

需要注意的是topic是可以被多个模块订阅的,但一般只能由一个节点发布(这也很好理解,如果由不同节点发布到同一个队列里面那就没法分清哪个消息是由谁发布的了对不?)

看到这里,相信你已经掌握了ROS的核心概念了--一个实时通信协议及系统。

为什么说ROS是机器人界的安卓呢?因为每个人自己写的独立模块(应用)都可以发不到社区上面供其他人使用或者后续开发,这对于科研人员来说简直是福音,因为省去了很多不必要的重复开发。当然这些应用一般不会是商业应用,只是一些研究级别的例如人脸识别,跟随。

当然也有很接近商业级别的应用,例如机器人SLAM跟导航。

我可以负责任地说,想知道一个机器人厂商的商品技术含量大概在哪个水平,只需要知道这个机器人是不是支持ROS就可以了。据我了解,国内好些机器人厂商使用的都是自己开发的小平台,只能实现某些特定功能,更有甚者是基于安卓平台开发的。当然这些一般只是娱乐机器人,说白了就是平板电脑加两三个电机。希望在未来几年里,真正用心做技术的国内机器人厂商会越来越多,最后可以处于世界领先地位。

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

himlen

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值