ROS入门与熟悉

一、ROS简介

1. 什么是ROS

  • ROS(机器人操作系统,Robot Operating System),是专为机器人软体开发所设计出来的一套电脑作业系统架构。它是一个开源的元级操作系统(后操作系统),提供类似于操作系统的服务,包括硬件抽象描述、底层驱动程序管理、共用功能的执行、程序间消息传递、程序发行包管理,它也提供一些工具和库用于获取、建立、编写和执行多机融合的程序。ROS主要组件包括ROS MasterROS NodeROS Service三种。

  • 在某些方面ROS相当于一种“机器人框架(robot frameworks)”类似的“机器人框架”有:PlayerYARPOrocosCARMENOrcaMOOSMicrosoft Robotics Studio

  • ROS的运行架构是一种使用ROS通信模块实现模块间P2P的松耦合的网络连接的处理架构,它执行若干种类型的通讯,包括:
    ①基于服务的同步RPC(远程过程调用)通讯;
    ②基于Topic的异步数据流通讯,还有参数服务器上的数据存储。

  • ROS并不是一个实时的框架,但ROS可以嵌入实时程序。Willow Garage的PR2机器人使用了一种叫做pr2_etherCAT的系统来实时发送或接收ROS消息。ROS也可以与Orocos实时工具包无缝集成。

  • ROS是一个适用于机器人编程的框架,这个框架把原本松散的零部件耦合在了一起,为他们提供了通信架构。ROS虽然叫做操作系统,但并非WindowsMac那样通常意义的操作系统,它只是连接了操作系统和你开发的ROS应用程序,所以它也算是一个中间件,基于ROS的应用程序之间建立起了沟通的桥梁,所以也是运行在Linux上的运行时环境,在这个环境上,机器人的感知、决策、控制算法可以更好的组织和运行。

2. ROS起源与发展

  • 本世纪开始,关于人工智能的研究进入了大发展阶段,包括全方位的具体的 AI ,例如斯坦福大学人工智能实验室STAIR(Stanford Artificial Intelligence Robot)项目,该项目组创建了灵活的、动态的软件系统的原型,用于机器人技术。

  • 在2007年,机器人公司Willow Garage和该项目组合作,他们十分具有前瞻性的,提供了大量资源进一步扩展了这些概念,经过具体的研究测试实现之后,无数的研究人员将他们的专业性研究贡献到ROS核心概念和其基础软件包,这期间积累了众多的科学研究成果,ROS的核心思想和基本软件包逐渐得到完善。

  • ROS软件的开发自始至终采用开放的BSD协议,在机器人技术研究领域逐渐成为一个被广泛使用的平台。

  • Willow Garage公司和斯坦福大学人工智能实验室合作以后,在2009年初推出 ROS0.4,这是一个测试版的 ROS,现在所用的系统框架在这个版本正式开启了 ROS 的发展成熟之路。

  • 2010年Willow Garage公司发布了开源机器人操作系统ROS。

  • 2011TurtleBot发布。

  • 2012第一届ROScon

  • 2013OSRF接管。

  • 2014ROS Indigo发布。

  • 2016ROS Kinetic发布。

  • 2017ROS 2.0 Ardent发布。

3. ROS的意义

  • ROS的发展逐渐的趋于成熟,近年来也逐步是面对着Ubuntu的更新而更新,这说明ROS已经初步进入一种稳定的发展状态,每年进行一次更新的频率同时还保留着长期支持的版本,这使得ROS在稳步的前进发展同时,也有着开拓创新的方向。目前越来越多的机器人、无人机甚至无人车都开始采用ROS作为开发平台,尽管ROS在实用方面目前还存在一些限制,但前途非常光明。

  • 总体来说,ROS更适合科研和开源用户使用,如果在工业场景应用(例如无人驾驶)还需要做优化和定制。

  • ROS为我们开发机器人带来了许多方便,也确实存在一些问题:
    优点:
    提供框架、工具和功能,方便移植,庞大的用户群体,免费开源。
    缺点:
    通信实时性能有限,系统稳定性尚不满足工业级要求,安全性上没有防护措施。

二、Ubuntu18.04安装ROS Melodic

  • 具体按照下面链接完成就好,只有一点需要注意:
    修改 20-default.list 文件时如果按照命令打开文件时为空文件,则说明打开错误需要删除解压的包,直接在压缩包里修改再解压,如图:
    在这里插入图片描述
    之后修改其他文件直接用命令即可。

链接: Ubuntu18.04安装ROS Melodic.

  • 运行小乌龟的图:
    在这里插入图片描述

三、参考资料

关于机器人操作系统(ROS)学习前须知二三.
ROS学习:什么是ROS?.

猜你喜欢

转载自blog.csdn.net/qq_48008050/article/details/114284409
今日推荐