该学习笔记参考ROS官方wiki的内容,见:http://wiki.ros.org/ROS/Introduction

  1. 什么是ROS
    ROS的全称是Robot Operating System,即机器人操作系统,他能提供类似操作系统的一些功能:硬件抽象、底层设备控制、通用功能的实现、进程间消息传递和包管理等。
    同时提供了工具来获取、编译、编写并在不同计算机上运行代码。ROS不同于通用的操作系统Windows或Linux这些,他更像一个通用的机器人软件框架。
    ROS在运行时通过进程间的对等(Peer2Peer)网络通信使节点之间进行松耦合,ROS支持多种不同调用方式,包括基于服务(Service)的RPC方式通信(远程过程调用)、通过主题(Topic)进行异步数据流通信以及通过参数服务器(Parameter Server)进行数据存储,ROS不是一个实时框架,但是可以和实时代码进行集成。
  2. ROS的目标
    ROS的主要目标是为了代码共享和协作,本质是方便独立开发和代码重用。目标详述如下:
    • 轻薄(Thin):不会对main()函数进行封装,这样可以使ROS中使用的代码便于集成到其它软件框架中。
    • 不可知(agnostic)ROS库:合适的开发方式是使用干净的接口编写功能代码作为ROS库。
    • 语言无关:ROS框架可以在任何现代语言中实现,已经在Python,C++和LISP中实现,也有在Java和Lua中写的实验库。
    • 易于测试:ROS有内建的测试框架rostest便于进行测试。
    • 不同尺度:ROS也适合与大规模的实时系统和进程的开发。
  3. 操作系统
    ROS当前只支持基于Unix的操作系统,例如Linux和Mac OS,以后也有可能移植到Windows,但是现在还没有做这部分工作。

ROS学习笔记1-引言的更多相关文章

  1. ROS学习笔记七:在ROS中使用USB摄像头

    下面是一些USB摄像头的驱动(大多数摄像头都支持uvc标准): 1 使用软件库里的uvc-camera功能包 1.1 检查摄像头 lsusb ----------------------------- ...

  2. ROS学习笔记八:基于Qt搭建ROS开发环境

    1 前言 本文介绍一种Qt下进行ROS开发的完美方案,使用的是ros-industrial的Levi-Armstrong在2015年12月开发的一个Qt插件ros_qtc_plugin,这个插件使得Q ...

  3. tornado 学习笔记1 引言

    从事软件开发这行业也快5年啦,其实从事的工作也不完全是软件开发,软件开发只是我工作中的一部分.其中包括课题研究.信息化方案设计.软件开发.信息系统监理.项目管理等工作,比较杂乱.开发的软件比较多,但是 ...

  4. ROS学习笔记

    创建ros工作环境: mkdir -p ~/catkin_ws/src //建立项目目录,同时生成src文件夹 cd ~/catkin_ws/ //进入项目目录 catkin_make //编译项目, ...

  5. ROS学习笔记十二:使用gazebo在ROS中仿真

    想要在ROS系统中对我们的机器人进行仿真,需要使用gazebo. gazebo是一种适用于复杂室内多机器人和室外环境的仿真环境.它能够在三维环境中对多个机器人.传感器及物体进行仿真,产生实际传感器反馈 ...

  6. ROS学习笔记十:URDF详解

    Unified Robot Description Format,简称为URDF(标准化机器人描述格式),是一种用于描述机器人及其部分结构.关节.自由度等的XML格式文件. 一.URDF语法规范 参见 ...

  7. ROS学习笔记五:创建和使用ROS msg和srv

    1 msg和srv简介 1.1 msg文件 msg文件就是一个简单的text文件,其中每行有一个类型和名称,可用的类型如下: int8, int16, int32, int64 (plus uint* ...

  8. ROS学习笔记2-基本概念

    本笔记来源于:http://wiki.ros.org/ROS/Concepts ROS文件系统级别文件系统级别主要包含了你能在ROS的磁盘上遇到的资源,包括: 包(Packages):包是ROS中资源 ...

  9. ROS学习笔记(七)——节点

    NEW 1 #打开新的终端,以后不再注释$ sudo apt-get install ros-<distro>-ros-tutorials #下载一个教学用的仿真器$ roscore #运 ...

随机推荐

  1. Tornado项目简单创建

    Tornado是使用Python编写的一个强大的.可扩展的Web服务器.它在处理严峻的网络流量时表现得足够强健,但却在创建和编写时有着足够的轻量级,并能够被用在大量的应用和工具中. tornado技术 ...

  2. Codeforces Round #617 (Div. 3)

    A 题意:能否将数组里面的值用数组里面的值替换出一个和为奇数的数组 思路:1.和为奇数yes 2.和为偶数但有奇数yes 3.个数是奇数的,有奇数的yes 其他都是no 果然罚时全给了A #inclu ...

  3. 【STM32H7教程】第54章 STM32H7的LTDC应用之LCD电阻触摸和电容触摸

    完整教程下载地址:http://www.armbbs.cn/forum.php?mod=viewthread&tid=86980 第54章       STM32H7的LTDC应用之LCD电阻 ...

  4. 将网站转换为Web应用程序

    1.新建web应用程序,清除应用程序中默认生成的文件 2.将网站中的文件复制到web应用程序中 3.将网站的App_Code文件重命名 4.右键web应用程序,点击将转换为应用程序项目 5.添加引用 ...

  5. 03.使用私有构造方法或枚类实现 Singleton 属性

    前言 <Effective Java>中文第三版,是一本关于Java基础的书,这本书不止一次有人推荐我看.其中包括我很喜欢的博客园博主五月的仓颉,他曾在自己的博文<给Java程序猿们 ...

  6. Go安装gRPC

    grpc-go的官方安装命令 go get google.golang.org/grpc 无法正常使用. 我们可以用以下的命令替代,达到同样的效果 git clone https://github.c ...

  7. 4.ORM框架的查询

    创建表对应关系代码如下: from flask import Flask, render_template from flask_sqlalchemy import SQLAlchemy app=Fl ...

  8. 【代码总结】GD库中添加图片水印

    函数 getimagesize() bool imagecopymerge( resource dst_im, resource src_im, int dst_x, int dst_y, int s ...

  9. SSD boot test script for(if)循环

    ;Author : Bing Song ;// ;Usage: modify log drictory according to actual drictory gettime timestr &qu ...

  10. nginx的access的阶段的access模块、auth_basic模块、auth_request模块及satisfy指令介绍

    access 模块 示例从上向下匹配 location / { deny 192.168.1.1; allow 192.168.1.0/24; allow 10.1.1.0/16; allow 200 ...