技术标签: 自动驾驶 机器学习 ROS 机器人操作系统 ROS 人工智能
ROS 是 Robot Operating System 的缩写,通常称为“机器人操作系统”。但它并不是一个真正的操作系统,而是一个面向机器人的开源的元操作系统(meta-operating system),提供类似传统操作系统的诸多功能:硬件抽象、底层设备控制、常用功能实现、进程间消息传递、程序包管理等。并且提供相关工具和库,用于获取、编译、编辑代码以及在多个计算机之间运行程序完成分布式计算。
本教程将介绍 ROS 的产生、发展、特点和安装方法,以及 ROS 的相关概念,并通过一些简单的示例演示如何使用 ROS 进行机器人项目开发。
ROS 为机器人软件开发带来的优势:
ROS 的首要设计目标是在机器人研发领域提高代码复用率。ROS 是一种分布式处理框架(又名 Nodes),这使可执行文件能被单独设计,并且在运行时松散耦合。这些过程可以封装到数据包(Packages)和堆栈(Stacks)中,以便于共享和分发。ROS 还支持代码库的联合系统,使得协作亦能被分发。这种从文件系统级别到社区一级的设计让独立地决定发展和实施工作成为可能。上述所有功能都能由 ROS 的基础工具实现。
为了实现“共享与协作”这一首要目标,人们制订了 ROS 架构中的其他支援性目标:
在 ROS 的计算图中,ROS 的 Master 以一个 name service 的方式工作。它给 ROS 的节点存储了 topics 和 service 的注册信息。Nodes 与 Master 通信从而报告它们的注册信息。当这些节点与 master 通信的时候,它们可以接收关于其他以注册节点的信息并且建立与其它以注册节点之间的联系。当这些注册信息改变时,Master 也会回馈这些节点,同时允许节点动态创建与新节点之间的连接。
ROS 节点之间的连接是直接的,Master 仅仅提供了查询信息,就像一个 DNS 服务器。节点订阅一个 topic 将会要求建立一个与发布该 topics 的节点的连接,并且将会在同意连接协议的基础上建立该连接。ROS 里面使用最广的连接协议是 TCPROS,这个协议使用标准的 TCP/IP 接口。
这样的架构允许解耦操作(decoupled operation),通过这种方式大型或是更为复杂的系统得以建立,其中 names 方式是一种行之有效的手段。names 方式在 ROS 系统中扮演极为重要的角色:topics, services, and parameters 都有各自的 names。每一个 ROS 客户端库都支持重命名,这等同于,每一个编译成功的程序能够以另一种形似【名字】运行。
ROS 通信接口正在成为机器人软件互操作的事实标准。也就是说,绝大部分最新的硬件驱动和最前沿的算法实现都可以在 ROS 中找到。例如,在 ROS 的官方网页 上有着大量的开源软件库,这些软件使用 ROS 通用接口,从而避免为了集成它们而重新开发新的接口程序。
ROS 操作方便、功能强大,特别适用于机器人这种多节点多任务的复杂场景。自 2010 年诞生以来,ROS 就受到了学术界和工业界的欢迎,如今已经广泛应用于机械臂、移动底盘、无人机等许多种类的机器人上。这些机器人可以是自主的、半自主的、遥控的。
覆盖类人机器人、工业机器人、服务机器人、医疗机器人、娱乐机器人、康复机器人、群体机器人、无人机、无人车、无人艇、微纳米机器人…
文章浏览阅读703次。PMO对于项目外包管理的工作,主要包括外包人员账号及权限管理,以及外包费用管控。外包人员账号及权限管理梳理外包人员需使用的系统,按照权限最小化原则,仅开通必需系统账号。常用行政类系统,一般包括考勤、门禁、公司餐饮、上网认证、VPN。默认开通清单,需多方沟通确认,涉及应用系统产品经理、外包人员所在项目的项目经理、信息安全稽核人,提前制定好规则,超出规则的系统账号申请,走特权账号审批流程。同时..._pmo账号
文章浏览阅读77次。运算符重载相关知识_运算符重载
文章浏览阅读7.6k次。// JavaScript Document//*********************************************************************************************/// 文件名:jquery.plugin_costom.js// 功能:用于存储自定义的jquery 插件// addby: zc 2011-15-19//**************************************************_模拟selelct下拉菜单
文章浏览阅读304次。今日,部分型号的华为手机迎来了EMUI10更新,本次更新亮点颇多,尤其是能够实现手机和笔记本之间自然交互与协同的“多屏协同”功能,堪称本次更新的最大亮点之一。与此同时,华为终端官方微博宣布了一条好消息:手机升级EMUI10后,配合MateBook系列笔记本,即可体验多屏协同功能,除了华为Mate30系列之外,更多支持该功能的机型也已经在路上。作为华为最新的EMUI版本,EMUI10首次将分布式技术..._linux 多平协同
文章浏览阅读269次。_cat以下所有请求使用GET方式发送/_cat/nodes查看所有节点http://192.168.2.190:9200/_cat/nodes/_cat/health查看ES健康状况http://192.168.2.190:9200/_cat/health/_cat/master查看主节点信息http://192.168.2.190:9200/_cat/master/_cat/indicies查看所有索引,也就是mysql中的show databases_elasticsearch response
文章浏览阅读906次,点赞3次,收藏9次。java+mysql小程序_学生信息管理系统mysql可视化
文章浏览阅读3.5k次,点赞10次,收藏37次。转载自:https://www.cnblogs.com/VersionP1/p/7779251.html,作者:FunnyOne常用校验码(奇偶校验码、海明校验码、CRC校验码)一、奇偶校验码二、海明校验码三、CRC校验码 计算机系统运行时,各个部之间要进行数据交换.交换的过程中,会有发生误码的可能(即0变成1或1变成0),由于计算机的储存是通过二进制代码来实现的的,误码..._常见的检验码有哪些类型
文章浏览阅读9.2k次,点赞8次,收藏41次。PyTorch在自定义变量及其初始化方法:self.fuse_weight_1 = torch.nn.Parameter(torch.FloatTensor(1), requires_grad=True)self.fuse_weight_1.data.fill_(0.25)如上是定义一个可学习的标量。也可以定义一个可学习的矩阵:self.fuse_weight_1 = torch..._torch 权重初始化方案
文章浏览阅读603次。DDOS 不是一种攻击,而是一大类攻击的总称。它有几十种类型,新的攻击方法还在不断发明出来。网站运行的各个环节,都可以是攻击目标。只要把一个环节攻破,使得整个流程跑不起来,拒绝任何类型服务,就达到了瘫痪服务的目的。其中,比较常见的一种攻击是 cc 攻击。它就是简单粗暴地送来大量正常的请求,超出服务器的最大承受量,导致宕机。什么是DOS和DDOS?要了解DDOS攻击是什么,首先要了..._ddos,是指分布反射式拒绝服务
文章浏览阅读479次。 RAC 特殊问题和实战经验(五)共享存储在需要将一个 LUN (逻辑单元号)映射给多个节点、为集群提供一个共享的存储卷时,同一个存储 LUN 在各个主机端的 LUNID 必须是相同的。比如: (一) 在为多个 ESX 节点创建一个 VMFS 卷的时候(二) 在双机 HA 集群创建共享存储的时候时间一致性集群模式下..._oracle rac database
文章浏览阅读1.6k次。有的时候,经常有自己需要的程序,官方并没有提供添加开机启动的方法,但我们却需要让他们开机启动(比如探针类、飞机类、服务类程序等)。是可以使用这个,但不是所有的系统都有 rc.local。今天介绍一个简单的方法,实现将自己需要的程序添加到开机启动项中,并使其在系统启动后自动执行。的,也就是在所有的开机启动项中,Provides不能有任何同名冲突。需要执行的命令,按照正常的Bash Shell书写方式书写即可。那么,还有一个问题:那就是如何删除我们刚才创建的开机启动项呢?的开机启动项,并要求其在开机时在。_debian12 添加开机启动
文章浏览阅读590次。标题:兴奋之余,我们该做些什么?关键词:析构函数的应用内容A. 一句话概括今日目标完成情况(a)巩固10.4 100%(b)学习10.5、10.6 50%(非常惭愧,只完成了一半的任务量。确实是眼睛都睁不开了)B.具体内容 今天学习了10.5实际意义的析构函数,这个实例学的我是头昏脑胀。理解并且写完之后再一次发现编程之后找错误真是最痛苦又最幸福的事情。因为很认真地对_鈥渧oid robot::set(char