赞
踩
ROS诞生背景
机器人是一种高度复杂的系统性实现,机器人设计包含了机械加工、机械结构设计、硬件设计、嵌入式软件设计、上层软件设计…是各种硬件与软件集成,甚至可以说机器人系统是当今工业体系的集大成者。
机器人体系是相当庞大的,其复杂度之高,以至于没有任何个人、组织甚至公司能够独立完成系统性的机器人研发工作。
一种更合适的策略是:让机器人研发者专注于自己擅长的领域,其他模块则直接复用相关领域更专业研发团队的实现,当然自身的研究也可以被他人继续复用。这种基于"复用"的分工协作,遵循了不重复发明轮子的原则,显然是可以大大提高机器人的研发效率的,尤其是随着机器人硬件越来越丰富,软件库越来越庞大,这种复用性和模块化开发需求也愈发强烈。
在此大背景下,于 2007 年,一家名为 柳树车库(Willow Garage) 的机器人公司发布了 ROS(机器人操作系统),ROS是一套机器人通用软件框架,可以提升功能模块的复用性,并且随着该系统的不断迭代与完善,如今 ROS 已经成为机器人领域的事实标准。
ROS全称Robot Operating System(机器人操作系统)
ROS是适用于机器人的开源元操作系统;
ROS集成了大量的工具,库,协议,提供类似OS所提供的功能,简化对机器人的控制;
还提供了用于在多台计算机上获取,构建,编写和运行代码的工具和库,ROS在某些方面类似于“机器人框架”;
ROS设计者将ROS表述为“ROS = Plumbing + Tools + Capabilities + Ecosystem”,即ROS是通讯机制、工具软件包、机器人高层技能以及机器人生态系统的集合体。
机器人开发的分工思想,实现了不同研发团队间的共享和协作,提升了机器人的研发效率,为了服务“ 分工”,ROS主要设计了如下目标:
ROS是一个由来已久、贡献者众多的大型软件项目。在ROS诞生之前,很多学者认为,机器人研究需要一个开放式的协作框架,并且已经有不少类似的项目致力于实现这样的框架。在这些工作中,斯坦福大学在2000年年中开展了一系列相关研究项目,如斯坦福人工智能机器人(STandford AI Robot, STAIR)项目、个人机器人(Personal Robots, PR)项目等,在上述项目中,在研究具有代表性、集成式人工智能系统的过程中,创立了用于室内场景的高灵活性、动态软件系统,其可以用于机器人学研究。
2007年,柳树车库(Willow Garage)提供了大量资源,用于将斯坦福大学机器人项目中的软件系统进行扩展与完善,同时,在无数研究人员的共同努力下,ROS的核心思想和基本软件包逐渐得到完善。
ROS的发行版本(ROS distribution) 指ROS软件包的版本,其与Linux的发行版本(如Ubuntu)的概念类似。推出ROS发行版本的目的在于使开发人员可以使用相对稳定的代码库,直到其准备好将所有内容进行版本升级为止。因此,每个发行版本推出后,ROS开发者通常仅对这一版本的bug进行修复,同时提供少量针对核心软件包的改进。
版本特点: 按照英文字母顺序命名,ROS 目前已经发布了ROS1 的终极版本: noetic,并建议后期过渡至 ROS2 版本。noetic 版本之前默认使用的是 Python2,noetic 支持 Python3。
建议版本: noetic 或 melodic 或 kinetic
我使用的是 ROS 版本是 Melodic,那么可以在 ubuntu18.04、Mac 或 windows10 系统上安装,虽然一般用户平时使用的操作系统以windows居多,但是ROS之前的版本基本都不支持windows,所以当前我们选用的操作系统是 ubuntu,以方便向历史版本过渡。ubuntu安装常用方式有两种:
实体机安装 ubuntu (较为常用的是使用双系统,windows 与 ubuntu 并存);
虚拟机安装 ubuntu。
两种方式比较,各有优缺点:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。