<meta name="keywords" content="庄家克星时时彩,机械人,操作系统,ROS" />

机械人操作系统ROS详细简介

宣布时间:2013年06月06日 21:06    宣布者:1046235000
要害词: 机械人 , 操作系统 , ROS
  ROS(机械人操作系统,RobotOperatingSystem),是专为机械人软件开发所设计出来的一套电脑操作系统架构。它是一个开源的元级操作系统(后操作系统),供应类似于操作系统的服务,网罗硬件笼统形貌、底层驱动法式模范模范治理、共用功效的推行、法式模范模范间新闻转达、法式模范模范刊行担保理,它也供应一些工具和库用于取得、培植、编写和推行多机融合的法式模范模范。
  ROS的运转架构是一种应用ROS通讯模块完成模块间P2P的松耦合的群集毗连的处置赏罚赏罚架构,它推行若干种类型的通讯,网罗基于服务的同步RPC(远程历程挪用)通讯、基于Topic的异步数据流通讯,尚有参数服务器上的数据存储。
  生长目的
  ROS的主要设计目的是在机械人研发领域前进代码复用率。ROS是一种漫衍式处置赏罚赏罚框架(别号Nodes)。这使可推行文件能被伶仃设计,而且在运转时松懈耦合。这些历程可以封装到数据包(Packages)和客栈(Stacks)中,以便于共享和分发。ROS还支持代码库的联络系统。使得协作亦能被分发。这类从文件系统级别到社区一级的设计让自力地决议生长和实验使命成为能够。上述所有功效都能由ROS的基础工具完成。
  为了完成“共享与协作”这一主要目的,人们制订了ROS架构中的其他支援性目的:
  “轻盈”:ROS是设计得尽能够便利简朴单纯。您不用替换主框架与系统,由于ROS编写的代码可以用于其他机械人软件框架中。毫无疑问的,ROS更容易于集成与其他机械人软件框架。现实上ROS已完成与OpenRAVE、Orocos和Player的整合。
  ROS-agnostic库:【agnostic:弗成知论】建议的开发模子是应用clear的函数接口誊录ROS-agnostic库。
  语言自力性:ROS框架很容易在任何编程语言中推行。我们曾经能在Python和C++中顺遂运转,同时添加有Lisp、Octave和Java语言库。
  测试质朴:ROS有一个内建的单元/组合集测试框架,称为“rostest”。这使得集成调试和分化调试很容易。
  扩年夜性:ROS合适于年夜型实时系统与年夜型的系统开发项目。

  ROS的看法
  ROS有三个条理的看法:划分为Filesystemlevel,Computationgraphlevel,和Communicationlevel。以下内容详细的总结了这些条理及看法。除这三个条理的看法,ROS也界说了两种称谓--Package资源称谓和Graph资源称谓。异常会在以下内容中提及。
  ROS的FilesystemLevel
  文件系统层看法就是你在碟片外面遇到的资源,例如:
  Packages:ROS的基本组织,可以网罗随便任性名堂文件。一个Package可以网罗ROS推行时处置赏罚赏罚的文件(nodes),一个ROS的依附库,一个数据荟萃,装备文件或一些有用的文件在一起。
  Manifests:Manifests(manifest.xml)供应关于Package元数据,网罗它的允许信息和Package之间依附关系,和语言特点信息像编译旗帜(编译优化参数)。
  Stacks:Stacks是Packages的荟萃,它供应一个完全的功效,像“navigationstack”Stack与版本号联系关系,同时也是若何刊行ROS软件要领的要害。
  ManifestStackManifests:Stackmanifests(stack.xml)供应关于Stack元数据,网罗它的允许信息和Stack之间依附关系。
  Message(msg)types:信息形貌,职位在蹊径:my_package/msg/MyMessageType.msg,界说数据类型在ROS的messagesROS外面。
  Service(srv)types:服务形貌,职位在蹊径:my_package/srv/MyServiceType.srv,界说这个要求和照顾的数据结构在ROSservices外面。
  ROS的ComputationGraphLevel
  ComputationGraphLevel(盘算图)就是用ROS的P2P(peer-to-peer群集传输协定)群集集中处置赏罚赏罚所有的数据。基本的ComputationGraph的看法网罗Node,Master,ParameterSever,messages,services,topics,和bags,以上所有的这些都以不合的要领给Graph传输数据。

  Nodes:Nodes(节点)是一系列运转中的法式模范模范。ROS被设计成在一定颗粒度下的模块化系统。一个机械人控制系统通常网罗许多Nodes。好比一个Node控制激光雷达,一个Node控制车轮马达,一个Node处置赏罚赏罚定位,一个Node推行蹊径妄图,另外一个供应图形化界面等等。一个ROS节点是由LibrariesROSclientlibrary写成的,例如roscpp和rospy.
  Master:ROSMaster供应了挂号列表和对其他盘算图的查找。没有Master,节点将没法找到其他节点,交流新闻或挪用服务。
  ServerParameterServer:参数服务器使数据凭证钥匙的要领存储。现在,参数服务器是掌管的组成部门。
  Messages:节点之间经由历程messages来转达新闻。一个message是一个质朴的数据结构,网罗一些归类界说的区。支持尺度的原始数据类型(整数、浮点数、布尔数,等)和原始数组类型。message可以网罗随便任性的嵌套结构和数组(很类似于C语言的结构structs)
  Topics:Messages以一种宣布/订阅的要领转达。一个node可以在一个给定的topic中宣布新闻。Topic是一个name被用于形貌新闻内容。一个node针对某个topic关注与订阅特定类型的数据。能够同时有多个node宣布或许订阅统一个topic的新闻;也能够或许有一个topic同时宣布或订阅多个topic。全体上,宣布者和订阅者不明确相互的存在。主要的看法在于将信息的宣布者和需求者解耦、划分。逻辑上,topic可以看作是一个严酷尺度化的新闻bus。每个bus有一个名字,每个node都可以毗连到bus发送和吸收切合尺度类型的新闻。
  Services:宣布/订阅模子是很无邪的通讯形式,然则多对多,单向传输关于漫衍式系统中经常须要的“请求/回应”式的交互来讲着实不合适。是以,“请求/回应”是经由历程services来完成的。这类通讯的界说是一种成对的新闻:一个用于请求,一个用于回应。假定一个节点供应了一个服务供应下一个name和客户应用服务发送请求新闻并期待回复。ROS的客户库通常以一种远程挪用的要领供应这样的交互。
  Bags:Bags是一莳名堂,用于存储和播放ROS新闻。关于贮存数据来讲Bags是一种很主要的机制。例如传感器数据很难群集但倒是开发与测试中必须的。
  在ROS的盘算图中,ROS的Master以一个nameservice的要领使命。它给ROS的节点存储了topics和service的注册信息。Nodes与Master通讯从而申报它们的注册信息。当这些节点与master通讯的时间,它们可以吸收关于其他以注册节点的信息而且培植与其它以注册节点之间的联系。当这些注册信息改变时Master也会回馈这些节点,同时允许节点静态培植与新节点之间的毗连。

  节点之间的毗连是直接的;Master仅仅供应了查询信息,就像一个DNS服务器。节点订阅一个topic将会请求培植一个与宣布该topics的节点的毗连,而且将会在赞成毗连协定的基础上培植该毗连。ROS外面应用最广的毗连协定是TCPROS,这个协定应用尺度的TCP/IP接口。
  这样的架构允许脱钩使命(decoupledoperation),经由历程这类要领年夜型或是越发严重年夜的系统得以培植,其中names要领是一种卓有成效的手段。names要领在ROS系统中饰演极端主要的角色:topics,services,andparameters都有各自的names。每个ROS客户端库都支稳重命名,这分歧于,每个编译告成的法式模范模范能够以此外一种形似【名字】运转。
  例如,为了控制一个北阳激光测距仪(Hokuyolaserrange-finder),我们可以启动这个hokuyo_node驱动,这个驱动可以授予激光仪阻拦对话而且在"扫描"topic下可以宣布sensor_msgs/LaserScan的信息。为了处置赏罚赏罚数据,我们或许会写一个应用laser_filters的node来订阅"扫描"topic的信息。订阅以后,我们的过滤器将会自动泉源吸收激光仪的信息。重视双方是若何脱钩使命的。所有的hokuyo_node的节点都邑完成宣布"扫描",不须要知道能否有节点被订阅了。所有的过滤器都邑完成"扫描"的订阅,岂论知道照样不知道能否有节点在宣布"扫描"。在不激起任何弱点的情形下,这两个nodes可以任何的序次启动,终止,或许重启。
  以后我们或许会给我们的机械人加入另外一个激光器,这会招致我们重新设置我们的系统。我们所须要做的就是重新映照曾经应用过的names。当我们泉源我们的第一个hokuyo_node时,我们可以说它用base_scan取代了映照扫描,而且和我们的过滤器节点做类似的事。现在,这些节点将会用base_scan的topic来通讯从而取代,而且将不再监听"扫描"topic的信息。然后我们便可以为我们的新激光测距仪启动另外一个hokuyo_node。(ROS社区)
迎接分享本文,转载请生涯出处:http://badahub.com/thread-116126-1-1.html     【打印本页】
yuhuikeji 揭晓于 2015-12-23 22:46:23
谢谢分享!!!!!!!
bijinyi 揭晓于 2017-9-8 17:50:37
学习了!!!!!!!!!!
nudt_dhl 揭晓于 2017-11-23 09:46:19
学习!
您须要登录后才可以揭晓议论 登录 | 急速注册

厂商推荐

相关文章

相关视频演示

关于我们  -  服务条目  -  应用指南  -  站点舆图  -  友谊链接  -  联系我们
庄家克星时时彩-时时彩qq群-时时彩平台推荐 © 版权所有   | 京公网安备110108881021702
回顶部
幸运五张-幸运五张规则-掌联幸运五张安卓版 捕鱼达人3-捕鱼达人3无限金币免费版 北京pk10-北京pk10新凤凰-凤凰pk10预测 安徽福彩网-安徽福彩快3网上购买 888棋牌游戏-盛大娱乐棋牌平台-棋牌电玩城送彩金 助赢时时彩-韩国时时彩助赢-韩国时时彩助赢计划 亿酷棋牌-象棋棋牌-棋牌游戏娱乐下载 北京pk10开奖-pk10赛车群-pk10开奖首选网上手游 qq捕鱼大亨-千炮捕鱼-qq游戏捕鱼大亨 时时彩后二-时时彩后二技巧-时时彩后二计划 开心棋牌-娱乐棋牌送救济金-四方棋牌送救济金 11选5软件-快赢11选5软件-11选5玩法 波克棋牌-现金牛牛棋牌-亲朋棋牌游戏手游 亲朋棋牌-舟山99棋牌-唐朝电玩城棋牌 天逸时时彩-时时彩开奖结果-时时彩全天计划稳赢版