[转载] ros (机器人操作系统)
1608 查看
5 回复
 楼主 | 发布于 2017-10-13 | 只看楼主
分享到:
ROS(Robot Operating System)是一个机器人软件平台,它能为异质计算机集群提供类似操作系统的功
ROS图标ROS图标
能。ROS的前身是斯坦福人工智能实验室为了支持斯坦福智能机器人STAIR而建立的交换庭(switchyard)项目。到2008年,主要由威楼加拉吉继续该项目的研发。
ROS提供一些标准操作系统服务,例如硬件抽象,底层设备控制,常用功能实现,进程间消息以及数据包管理。ROS是基于一种图状架构,从而不同节点的进程能接受,发布,聚合各种信息(例如传感,控制,状态,规划等等)。目前ROS主要支持Ubuntu。
ROS可以分成两层,低层是上面描述的操作系统层,高层则是广大用户群贡献的实现不同功能的各种软件包,例如定位绘图,行动规划,感知,模拟等等。
ROS(低层)使用BSD许可证,所有是开源软件,并能免费用于研究和商业用途。而高层的用户提供的包则可以使用很多种不同的许可证。
* ROS wiki的解释:
ROS(Robot Operating System,下文简称“ROS”)是一个适用于机器人的开源的元操作系统。它提供了操作系统应有的服务,包括硬件抽象,底层设备控制,常用函数的实现,进程间消息传递,以及包管理。它也提供用于获取、编译、编写、和跨计算机运行代码所需的工具和库函数。
ROS 的主要目标是为机器人研究和开发提供代码复用的支持。ROS是一个分布式的进程(也就是“节点”)框架,这些进程被封装在易于被分享和发布的程序包和功能包中。ROS也支持一种类似于代码储存库的联合系统,这个系统也可以实现工程的协作及发布。这个设计可以使一个工程的开发和实现从文件系统到用户接口完全独立决策(不受ROS限制)。同时,所有的工程都可以被ROS的基础工具整合在一起。
* Brian Gerkey的网上留言:
我通常这样解释ROS:
1. 通道:ROS提供了一种发布-订阅式的通信框架用以简单、快速地构建分布式计算系。
2. 工具:ROS提供了大量的工具组合用以配置、启动、自检、调试、可视化、登录、测试、终止分布式计算系统。
3. 强大的库:ROS提供了广泛的库文件实现以机动性、操作控制、感知为主的机器人功能。
4. 生态系统:ROS的支持与发展依托着一个强大的社区。ros.org尤其关注兼容性和支持文档,提供了一套“一站式”的方案使得用户得以搜索并学习来自全球开发者数以千计的ROS程序包。
* 摘自《ROS by Example》的解释:
ROS的首要目标是提供一套统一的开源程序框架,用以在多样化的现实世界与仿真环境中实现对机器人的控制。
* 关于ROS的“通道(plumbing)”(摘自《ROS by Example》
ROS的核心是节点(node)。节点是一小段用Python或C++写成的程序,用来执行某个相对简单的任务或进程。多个节点之间互相传递信息(message),并可以独立控制启动或终止。某一节点可以面向其它节点针对特定标题(topic)发布信息或提供服务(service)。
例如:现有以节点将传感器读数传递至机器人控制器,在“/head_sonar标题“下存在一条信息包含有变量值“0.5“,即意味着传感器检测到的当前物体距离为0.5米。任何一个想要知道该传感器读数的节点都只要订阅(subscribe)/head_sonar标题即可。为了便于使用该读数,针对该订阅者的节点会定义一个回调函数,每当有新的信息传递到订阅者标题时,即执行该函数。上述流程的运行频率取决于发布者节点(publisher node)更新信息的频率。
此外,节点还可以用来定义一个或多个服务(service)。ROS中服务的作用是在接收到来自其它节点的请求时回复该节点或执行某项任务。例如:控制LED灯的开关是一个服务;移动机器人在给定起始和目标位置的条件下返回导航路线规划也是一个服务。
(0 ) (0 )

机器人大赛 智能机器人 四足机器人 探险机器人 救援机器人

回复 举报

楼主 | 回复于 2017-10-13 沙发

(0 )
评论 (0) 举报

楼主 | 回复于 2017-10-13 2#

麻省理工学院的一个机器人研究小组近日开发出了一种自主机器人,通过多种传感器的结合使用以及先进的机器学习技术,使得即使在拥挤的地区,机器人也能很好地遵守(人类)社会规范。这种自主式的轮式机器人为未来的全自动送货机器人,甚至是能够在繁忙的街道上灵活自主行驶的智能个人辅助机动设备,提供了很好的指导方向。


一直以来,机器人在人群密集地区的自主移动是机器人研究者们的热点研究方向。如果机器人能够在我们之间自由移动,那么它们就能自主开展各种日常活动。这种在人群中自主移动的能力对于机器人是项很重要的功能,因为这样他们不仅能够理解环境并对自己进行导航,而且机器人能够预测并且指导我们的生活。但前提是机器人必须知道它在哪里,我们在哪里,并且能够规划一条路线进而执行它选择的路径。


以前研究者们试图让机器人在人类拥挤的地方自主航行的尝试均遭到了不同程度的挫折。例如,基于轨迹的方法,机器人根据传感器数据预测一个人将走到哪里。这种方法存在一个很严重的问题:机器人必须在不断变化的环境中收集数据,并弄清楚它的下一步行动是什么。这常常会导致反复的停止/启动运动。


另一种方法是用一种简单的反应方法来管理机器人,它使用几何和物理规则来规划路线并避免碰撞。当一个人直线行走的时候,这是很好的,但是人类是不可预测的生物,倾向于突然改变方向,这可能导致人和机器人同时走向同一个地方并发生碰撞。


02

(0 )
评论 (0) 举报

楼主 | 回复于 2017-10-13 3#

MIT的研究团队尝试利用强化学习技术(reinforced learning)教会他们的机器人buddy在人群中导航的本事。在基本层面上,这个方法通过计算机计算模拟一个有一些以不同速度和轨迹运动的物体(模拟真实环境中的人)的场景,将机器人放置在这个模拟的场景中训练学习模拟人的行走规律。


模拟器还能用于教会机器人在导航时遵守环境中的一些社会规范,诸如走路要靠右走,将自身速度控制在1.2米每秒的一般行人步伐速度。当机器人在真实世界中面对一屋子人的时候,它会识别出在训练中遇到的某些特定的场景,然后根据相应的行人规则来应对这些场景。


在计算机领域之外,MIT的研究者们把他们的机器人描述为是一个“膝盖高并有轮子的亭子”。它装备有一系列传感器,包括网络摄像机,深度传感器和一个高分辨率的雷达传感器来帮助机器人感知周围环境,并利用一些开源算法来实现自我定位。


 这些传感器每隔0.1秒扫描一次机器人周围的环境,这使得机器人具备了感知动态环境的能力并在前往目的地的时候灵活地调整自己的路径而无需停下来计算规划自己的最优移动方向。


“我们并没有在一开始就计算规划好前往目标的一整条路径——因为这毫无意义,特别是当你假设世界是不断变化的时候,”这项研究的论文合作者之一的研究生Michael Everett说道,”我们只看我们当前看到的,然后选择一个速度前进,每0.1秒再扫描一次周围的环境,计算出另一个速度,再继续以新的速度前进。利用这种方式,我们认为我们的机器人看起来会会更加自然,并且还能预测出人们在做什么。”

03

科学家们将他们的机器人与增强学习技术结合在一起,并前往麻省理工的Stata中心进行了一系列的物理测试。机器人成功地在一条蜿蜒的,充满行人的走廊上完成了长达20分钟的行走,而没有撞到任何一个人。


Everett说:“我们想把他带到一个人们日常生活的地方,大家做着各种各样的事,例如去上课,去吃饭等等,通过这些,我们想证明我们的机器人性能足够鲁棒,能应对所有的这些情况。”他补充到:“有一次,机器人面对的场景甚至有一个观光团,但机器人完美的避开了他们”。


该团队计划继续并扩大其研究,并测试机器人在行人环境中行走的情况。这可能需要制定一套新的行为规则。


有些人可能会对让机器人在人们中间行走的想法感到一些担忧,但是大部分人认为麻省理工的最新机器人研究对人类几乎没有什么威胁。如果这项技术与麻省理工的猎豹设计相结合,并由IBM Watson超级计算机提供计算能力,创造出某种半人半马机器人,那么就可能需要担心了。


下个月MIT将在IEEE 智能机器人和系统会议上发表一篇详细介绍这项研究的论文(https://arxiv.org/pdf/1703.08862.pdf)。


(0 )
评论 (0) 举报

楼主 | 回复于 2017-10-13 4#

https://mp.weixin.qq.com/s/eZLNUAjokbi3AdhIVH6gCQ转发出处
(0 )
评论 (0) 举报

楼主 | 回复于 2017-10-13 5#

这个麻省理工这个主要是slam算法,ros系统有这个算法集成
(0 )
评论 (0) 举报
  • 发表回复
    0/3000





    举报

    请选择举报类别

    • 广告垃圾
    • 违规内容
    • 恶意灌水
    • 重复发帖

    全部板块

    返回顶部