http://www.ros.org/

关于ROS About ROS http://www.ros.org/about-ros/

机器人操作系统(ROS)是用于编写机器人软件的灵活框架。目的在简化多种机器人平台之间创建复杂和鲁棒的机器人行为的任务量,它是工具、库和约定的集合。
为什么这么做?因为创建真正可靠和通用的机器人软件是很困难的。从机器人角度而言,任务和环境的多样性是问题的关键。处理这种多变的任务和环境是困难的,而且没有个人、实验室或研究机构希望独自完成这一切。
于是ROS就这样应运而生,从底层设计就考虑并鼓励协作式的机器人软件开发。例如,一个实验室中有精通于室内环境建图的专家,并构建出一套绘制地图的顶级系统。另外一组则有使用地图进行导航的专家,同时其他团队发现了在杂物中识别小目标的一种计算机视觉方法。ROS就是专门为这样的团队设计的,在彼此工作的基础之上协作设计开发机器人软件。

贡献者 Contributors http://www.ros.org/contributors/

历史 History http://www.ros.org/history/

学习ROS最重要的两个网址:

http://www.ros.org/    2 https://github.com/

为什么选择ROS? Why ROS?  http://www.ros.org/is-ros-for-me/

ROS是否适合我? Is ROS For Me?

ROS给大多数机器人项目和应用程序增加了价值,但你可能依然想问,“ROS是否适合我的应用特例呢?”为了能自己回答这个问题,并作决定,首先需要了解ROS的组成和功能等。

ROS的特色:

1 分布式模块化设计

2 充满活力的社区

3 没有限制的许可证

4 协作环境

ROS社区指标:http://wiki.ros.org/Metrics

ROS问答:http://answers.ros.org/questions/

核心模块 Core Components http://www.ros.org/core-components/

ROS的核心模块主要分为三个部分,如下图所示:

重要概念与链接:

Communications Infrastructure

At the lowest level, ROS offers a message passing interface that provides inter-process communication and is commonly referred to as a middleware.

The ROS middleware provides these facilities:

Robot-Specific Features

In addition to the core middleware components, ROS provides common robot-specific libraries and tools that will get your robot up and running quickly. Here are just a few of the robot-specific capabilities that ROS provides:

Tools

与其他库集成 Integration with Other Libraries http://www.ros.org/integration/

版本 Distributions http://wiki.ros.org/Distributions

ROS以字母顺序发布更新版本(B C D E F G H ),目前最新版为Kinetic。

推荐使用Indigo版本。

wiki中文版如下:

ROS (Robot Operating System, 机器人操作系统) 提供一系列程序库和工具以帮助软件开发者创建机器人应用软件。它提供了硬件抽象、设备驱动、函数库、可视化工具、消息传递和软件包管理等诸多功能。ROS遵循BSD开源许可协议。

ROS:

  • 安装

    • 在你的机器上安装ROS。

    入门

    • 学习ROS的相关概念、客户端函数库以及技术梗概等。

    教程

    • ROS手把手教程,提供每一步详细操作命令。

    贡献

    • 如何加入ROS社区,比如分享你的代码。

    支持

    • 遇到问题可以从这里寻求支持和帮助。

软件:

机器人/硬件:

出版物、课程以及活动:

  • 论文

    • 带开源代码的ROS相关论文。

    书籍

    • 出版书籍,包括文档、教程和开源代码等。

    课程

    • 使用或教授ROS的课程。

    活动

    • 历史活动和相关资料。

ROS中国:

  • 中文社区

    • 收集了ROS相关QQ群、论坛和博客专栏等各种社区资源。
  • ROS维基翻译

    • 志愿加入ROS维基中文翻译。

世界各地wiki镜像站点。

中文教程如下:

非初学者: 如果你已经很熟悉 ROS fuerte(要塞龟)或更早期版本的使用,而只是想使用在groovy(加岛象龟)hydro(渔龟)中开始采用的最新编译构建系统catkin,那你可以深入学习catkin教程。 但是我们仍然建议所有人学完整个“初级”教程以方便理解新增的功能特性。

如果你是Linux初学者:也许先学习一些有关linux命令行工具的快速使用教程会对你很有帮助,这里有篇好教程(英文)。

核心ROS教程

初级

  1. 安装并配置ROS环境

    本教程详细描述了ROS的安装与环境配置。

  2. ROS文件系统介绍

    本教程介绍ROS文件系统概念,包括命令行工具roscd、rosls和rospack的使用。

  3. 创建ROS程序包

    本教程介绍如何使用roscreate-pkgcatkin创建一个新程序包,并使用rospack查看程序包的依赖关系。

  4. 编译ROS程序包

    本教程介绍ROS程序包的编译方法

  5. 理解 ROS节点

    本教程主要介绍 ROS 图(graph)概念 并讨论roscorerosnode和 rosrun 命令行工具的使用。

  6. 理解ROS话题

    本教程介绍ROS话题(topics)以及如何使用rostopic 和 rxplot 命令行工具。

  7. 理解ROS服务和参数

    本教程介绍了ROS 服务和参数的知识,以及命令行工具rosservice 和 rosparam的使用方法。

  8. 使用 rqt_console 和 roslaunch

    本教程介绍如何使用rqt_consolerqt_logger_level进行调试,以及如何使用roslaunch同时运行多个节点。早期版本中的rqt工具并不完善,因此,如果你使用的是“ROS fuerte”或更早期的版本,请同时参考这个页面学习使用老版本的“rx”工具。

  9. 使用rosed编辑ROS中的文件

    本教程将展示如何使用rosed来简化编辑过程。

  10. 创建ROS消息和ROS服务

    本教程详细介绍如何创建并编译ROS消息和服务,以及rosmsg, rossrv和roscp命令行工具的使用。

  11. 编写简单的消息发布器和订阅器 (C++)

    本教程将介绍如何编写C++的发布器节点和订阅器节点。

  12. 写一个简单的消息发布器和订阅器 (Python)

    本教程将通过Python编写一个发布器节点和订阅器节点。

  13. 测试消息发布器和订阅器

    本教程将测试上一教程所写的消息发布器和订阅器。

  14. 编写简单的Service和Client (C++)

    本教程介绍如何用C++编写Service和Client节点。

  15. 编写简单的Service和Client (Python)

    本教程介绍如何用Python编写Service和Client节点。

  16. 测试简单的Service和Client

    本教程将测试之前所写的Service和Client。

  17. 录制与回放数据

    本教程将教你如何将ROS系统运行过程中的数据录制到一个.bag文件中,然后通过回放数据来重现相似的运行过程。

  18. roswtf入门

    本教程介绍了roswtf工具的基本使用方法。

  19. 探索ROS维基

    本教程介绍了ROS维基(wiki.ros.org)的组织结构以及使用方法。同时讲解了如何才能从ROS维基中找到你需要的信息。

  20. 接下来做什么?

    本教程将讨论获取更多知识的途径,以帮助你更好地使用ROS搭建真实或虚拟机器人。

现在你已经完成了初级教程的学习,请回答这个 问卷来检验一下自己的学习效果。

中级

大多数客户端API的使用教程可以在相关程序包(roscpprospyroslisp)中找到。

  1. 手动创建ROS package

    本教程将展示如何手动创建ROS package

  2. 管理系统依赖项

    本教程将展示如何使用rosdep安装系统依赖项.

  3. Roslaunch在大型项目中的使用技巧

    本教程主要介绍roslaunch在大型项目中的使用技巧。重点关注如何构建launch文件使得它能够在不同的情况下重复利用。我们将使用 2dnav_pr2 package作为学习案例。

  4. ROS在多机器人上的使用

    本教程将展示如何在两台机器上使用ROS系统,详述了使用ROS_MASTER_URI来配置多台机器使用同一个master。

  5. 自定义消息

    本教程将展示如何使用ROS Message Description Language来定义你自己的消息类型.

  6. 在python中使用C++类

    本教程阐述一种在python中使用C++类的方法。

  7. 如何编写教程

    (概述:)本教程介绍在编辑ros.org维基时可以用到的模板和宏定义,并附有示例以供参考。

ROS标准

外部ROS资源

外部教程

外部研讨会或课件

在机器人上运行ROS

其它ROS函数库教程

提供ROS接口的函数库教程

之前的ROS博客主要是学习心得等,比较浅显,以后重点将结合应用制作教案,课件并分析源码等。

快速了解 Robot Operating System(ROS) 机器人操作系统的更多相关文章

  1. Robot Operating System (ROS)学习笔记---创建简单的机器人模型smartcar

    搭建环境:XMWare  Ubuntu14.04  ROS(indigo) 转载自古月居  转载连接:http://www.guyuehome.com/243 一.创建硬件描述包 已创建catkin_ ...

  2. Robot Operating System (ROS)学习笔记3---键盘控制

    搭建环境:XMWare  Ubuntu14.04  ROS(indigo) 转载自古月居  转载连接:http://www.guyuehome.com/253 一.创建控制包 catkin_creat ...

  3. Robot Operating System (ROS)学习笔记2---使用smartcar进行仿真

    搭建环境:XMWare  Ubuntu14.04  ROS(indigo) 转载自古月居  转载连接:http://www.guyuehome.com/248 一.模型完善 文件夹urdf下,创建ga ...

  4. Robot Operating System (ROS)学习笔记4---语音控制

    搭建环境:XMWare  Ubuntu14.04  ROS(indigo) 转载自古月居  转载连接:http://www.guyuehome.com/260 一.语音识别包 1.安装         ...

  5. ROS机器人操作系统相关书籍、资料和学习路径

    作者:Top Liu链接:https://zhuanlan.zhihu.com/p/30391098来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处. 本文是易科机器人实验 ...

  6. ROS是Robot Operating System

    ROS是Robot Operating System 机器人操作系统ROS | 简介篇   同样,从个人微信公众号Nao(ID:qRobotics)搬运. 前言 先放一个ROS Industrial一 ...

  7. ROSCon 2016视频和幻灯片发布 ROS机器人操作系统重要参考资料

    ROSCon 2016视频和幻灯片发布 By Tully Foote on 十月19,2016 7:28 AM 全部PPT下载地址:http://pan.baidu.com/s/1gf2sn2F RO ...

  8. 【2017.10.13 ROS机器人操作系统】ROS系统常用术语及资源

    ROS机器人操作系统是一种后操作系统,提供了类似于软件开发中使用到的中间件的功能. ROS: Robot Operating System 机器人操作系统 Package: 功能包 Stack: 功能 ...

  9. Learning Roadmap of Robotic Operating System (ROS)

    ROS Wiki: http://wiki.ros.org/ Robots Using ROS Textbooks: A Gentle Introduction to ROS Learning ROS ...

随机推荐

  1. 是否可能两个ETH私钥对应同一个地址

    原提问在这里. 笔者在使用到neon-js中的私钥生成方法时发现其使用了getRandomValues方法来生成64字符长度的私钥,进而考虑到其随机性,若是调用足够多次,依然有可能生成两个完全一样的私 ...

  2. java小白设计模式之观察者模式

    观察者模式: 对象之间多对一依赖的一种设计方案,被依赖对象为Subject(一),依赖对象为Observer(多),Subject通知Observer变化直接代码: package com.wz.tw ...

  3. [HNOI 2017]影魔

    Description 题库链接 给你一段长度为 \(n\) 的序列 \(K\) . \(m\) 组询问,每次给定左右端点 \(l,r\) .求出满足区间内下述贡献和. 如果一个区间的两个端点是这一个 ...

  4. bzoj 4830: [Hnoi2017]抛硬币

    Description 小A和小B是一对好朋友,他们经常一起愉快的玩耍.最近小B沉迷于**师手游,天天刷本,根本无心搞学习.但是 已经入坑了几个月,却一次都没有抽到SSR,让他非常怀疑人生.勤勉的小A ...

  5. bzoj1272 Gate Of Babylon

    [问题描述] [输入格式] [输出格式] [样例输入] 2 1 10 13 3 [样例输出] 12 [样例说明] [数据范围] 先容斥,考虑枚举哪些条件强制不满足,即直接选出b[i]+1件宝具 假设强 ...

  6. 【NOIP2013】华容道 广搜+spfa

    题目描述 [问题描述] 小 B 最近迷上了华容道,可是他总是要花很长的时间才能完成一次.于是,他想到用编程来完成华容道:给定一种局面, 华容道是否根本就无法完成,如果能完成, 最少需要多少时间. 小 ...

  7. [bzoj4908][BeiJing2017]开车

    来自FallDream的博客,未经允许,请勿转载,谢谢. 你有n辆车,分别a1, a2, ..., an位置和n个加油站,分别在b1, b2, ... ,bn .每个加油站只能支持一辆车的加油,所以你 ...

  8. ssh远程登陆

    ssh远程登录命令简单实例   ssh命令用于远程登录上Linux主机.   常用格式:ssh [-l login_name] [-p port] [user@]hostname 更详细的可以用ssh ...

  9. Unix文件系统的主要特点是什么?

    1.  树型层次结构 2.  可安装拆卸的文件系统 3.  文件是无结构的字符流式文件 4.  Unix文件系统吧外部设备和文件目录作为文件处理

  10. width:100vh有感而发

    在看一个网页的代码是看到 width:100vh  纳尼...这这我怎么没有见过,这是个什么属性,随之有看到 min-height:calc(100vh + 51px);这尼玛又是怎么用的.... 感 ...