ROS学习:什么是ROS?

前段时间开始接触和学习ROS , 特此纪录,希望能学有所成吧。

ROS起源与发展

  • 本世纪开始,关于人工智能的研究进入了大发展阶段,包括全方位的具体的 AI ,例如斯坦福大学人工智能实验室STAIR(Stanford Artificial Intelligence Robot)项目,该项目组创建了灵活的、动态的软件系统的原型,用于机器人技术。
  • 在2007年,机器人公司Willow Garage和该项目组合作,他们十分具有前瞻性的,提供了大量资源进一步扩展了这些概念,经过具体的研究测试实现之后,无数的研究人员将他们的专业性研究贡献到ROS核心概念和其基础软件包,这期间积累了众多的科学研究成果。
  • ROS软件的开发自始至终采用开放的BSD协议,在机器人技术研究领域逐渐成为一个被广泛使用的平台。
  • Willow Garage公司和斯坦福大学人工智能实验室合作以后,在2009年初推出 ROS0.4,这是一个测试版的 ROS,现在所用的系统框架在这个版本正式开启了 ROS 的发展成熟之路。

ROS到底是什么?

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

ROS的特点

  • ROS具有这些特点:
  • 分布式点对点
    • ROS采用了分布式的框架。通过点对点的设计让机器人的进程可以分别运行,便于模块 化的修改和定制,提高了系统的容错能力。
  • 多种语言支持
    • ROS支持多种编程语言。C++、Pyhton和已经在ROS中实现编译,是目前应用最广的 ROS开发语言,Lisp、C#、Java等语言的测试库也已经实现。为了支持多语言编程, ROS采用了一种语言中立的接口定义语言来实现各模块之间消息传送。通俗的理解就 是,ROS的通信格式和用哪种编程语言来写无关,它使用的是自身定义的一套通信接 口。
  • 开源社区
    • ROS具有一个庞大的社区ROS-WIKI(http://wiki.ros.org/),这个网站将会始终伴随着你 ROS开发,无论是查阅功能包的参数、搜索问题还是。当前使用ROS开发的软件包已经 达到数千万个,相关的机器人已经多达上千款。此外,ROS遵从BSD协议,对个人和商 业应用及修改完全免费。这也促进了ROS的流行。

ROS优缺点

ROS为我们开发机器人带来了许多方便,然而它也确实存在一些问题:

  • 优点:
    *提供框架、工具和功能
    *方便移植
    • 庞大的用户群体
    • 免费开源
  • 缺点:
  • 通信实时性能有限
  • 系统稳定性尚不满足工业级要求
  • 安全性上没有防护措施

总体来说,ROS更适合科研和开源用户使用,如果在工业场景应用(例如无人驾驶)还需要 做优化和定制。 为了解决实际应用的问题,ROS2.0做了很大的改进,目前正在开发之中,未来表现如何值得期待。

=================================================================
本文作为笔记查阅之用,无涉其他用途。

你可能感兴趣的:(ROS学习)