Chinaunix首页 | 论坛 | 博客
  • 博客访问: 272824
  • 博文数量: 77
  • 博客积分: 773
  • 博客等级: 军士长
  • 技术积分: 769
  • 用 户 组: 普通用户
  • 注册时间: 2011-09-24 23:52
个人简介

victory for prepared

文章分类

全部博文(77)

文章存档

2022年(2)

2021年(1)

2018年(8)

2017年(3)

2016年(20)

2015年(12)

2013年(5)

2012年(25)

2011年(1)

我的朋友

分类: LINUX

2016-01-14 16:51:24

ROS - Robot operation system, 英文的缩写是这样的. 意思就是一个操作系统, 但是我的感觉是这个东西不怎么像操作系统.
首先, 操作系统应该是电脑从开机到关机一直运行的那个程序. 但是ros是在进入ubuntu之后启动的. 这样的话感觉很像一个应用程序.
其次, 操作系统的另一个重要作用是分配资源, 驱动程序是硬件的抽象, 也资源的分配以及分配方式, 运行在内核状态. 那么问题来了, ros下使用的那些电机, 传感器, 他们的驱动是怎么工作的呢?
在使用ROS时, 比如我要运行turtlesim, 在没有启动roscore的情况下, 将无法运行. 说明turtlesim是基于roscore才可以运行的. 从这个角度看来, ros中的各个节点的运行都需要roscore. 其他所有的程序都是运行在roscore的基础之上. 那么这样理解的话, ROSCORE的确充当了操作系统的角色.
现在还存在的问题就是传感器中的数据是如何进入上层的节点

以下内容更新于2016年1月26日
经过一段时间的学习,对ROS又有了一些新的认识。roscore在wiki上的解释是三个命令的组合命令,roscore会启动Master,rosout,parameter三个进程。Master就是实际上的ros“系统”,实际上是linux中的一个进程。但是这个进程的特殊之处在于,其他的进程要基于该进程进行。每一个rosrun启动的node首先要做的事情就是去Master那里去报到,留下一下自己的信息。之后如果有其他的节点需要跟某个节点通信也会找到Master,Master会查询已有的node信息库,然后介绍两个节点认识连接及进行数据交换。可以看出整个系统的层次是
    node1 node2 noden
                Master                  其他linux进程
                      linux内核
                      驱动程序
                  内存  硬盘 键盘鼠标等硬件
阅读(1042) | 评论(0) | 转发(0) |
0

上一篇:Linux内核升级方法

下一篇:[2] launch文件

给主人留下些什么吧!~~