| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 人工智能 -> 初识ROS -> 正文阅读 |
|
[人工智能]初识ROS |
??需要用到ROS,就来学学ROS。作为小白一个,文章难免出错,请各位海涵。帮我多多指错。这篇文章的目的是让新手对于ROS有个简单的认识,讲的基本都是概念上的东西。希望这篇文章能够解释清楚以下几个问题: 1.ROS是什么/ROS能干什么???ROS全称是Robot Operating System,也就是机器人操作系统。从字面上就知道是帮助我们操作机器人的。但和Linux这种底层的os不同,ROS是基于底层os的,也就是在Linux之上,可以理解成在Linux之上做了封装以便于可以直接调用那些用于操作机器人的各种包。ROS的有几个版本,对应的也有不同的Linux环境(网上一查都有,不是重点,在此不再赘述。不过笔者用的是kinetic对应的就是ubuntu16.04啦~)。 ??对于ROS能干什么?其实我觉得就是用来开发机器人吧。现在各种机器人无论是UAV、UGV其实都是基于ROS上在做开发滴。要想让robot做点儿个性化的事情,ROS应该是要学滴。而且ROS现在已经被认定为了一个标准(好消息:开源!)。 2.ROS的基础结构是什么???先不关与ROS具体有什么,先从宏观上给它打个样儿。ROS的体系结构大致有三部分:ROS文件系统、ROS计算图、ROS社区 3.ROS概念解释(按照结构划分说了)package(功能包)??package其实可以算组织ROS代码的一个基本单位。ROS中package更多指的是代码包。如果说最大的应该算workspace(工作空间),工作空间内包括代码空间(src),编译空间(build),开发空间(devel,保存编译完的包),安装空间(install)。package也就是代码空间下的一个基本单位。一个应用对应于一个package。ROS利用package实现模块性和复用性 manifest??全称叫package manifest,为package之间提供依赖性。其中保存的是package的一些基本信息:版本、维护者、依赖选项、编译标志等等。落实到具体文件就是package里面那个package.xml metapackage(元功能包)??metapackage是比package高一个级别的概念,是package的集合。以前也叫stack,现在以及废弃 metapackage manifest??这个比manifest高一个级别,功能类似于manifest,只不过是针对于metapackage node(节点)??ROS整体上是一个分布式的架构,也就是有很多个节点组成。或许也可以说成ROS的基本动作执行单位,可以为节点分配任务。 message(消息)/topic(主题)??message就对应于消息传递,但消息不能直接就传过去。要借助载体:也就是topic。如果一个节点想发送消息,就要选择一个topic(这个topic可以是自己创造的或者是别人创造的),选topic发message这个动作就是pulish(发布)。如果想接受消息,也要通过topic。而这个动作叫做subscribe(订阅)。 server(服务)??server对应于服务调用,不过server受众小一点儿。单指两个节点之间。服务调用的流程是:client节点发送request给server节点,server节点执行处理后,发送response给client节点 master(节点管理器)??节点多了总要有个头儿,master就是负责管理所有节点。它会掌管与各个节点之间有关的topic、service信息列表。虽然说有管理者,但通信时消息直接从发布节点到订阅节点,中间不经过节点管理器。ROS参数服务器是节点管理器的一部分,所有节点都可访问修改数据(数据/配置信息)。所有例子中先rescore一下,启动的就是master. bag(消息记录包)??一个包是ROS中用于存储ROS 消息数据的文件格式。即保存和回放ROS消息数据的文件格式。包的扩展名为.bag。个人感觉这个存在感不是很强,不了解就不介绍了~ ??这里解释一个例子:判断ros是否安装成功都会使用一个小乌龟移动的例子,那为什么小海龟可以移动呢?这个过程是这样的: 参考资料: ROS入门学习 - coding-for-self - 博客园(cnblogs.com) 因作者水平有限,如果错误之处,请在下方评论区指出,谢谢! |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/27 6:30:46- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |