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. Gogs搭建教程-极易搭建的自助 Git 服务

    前言 最近在搭建自己的持续集成,网上非常多的教程都是使用的gitlab作为代码管理工具,但是gitlab非常重,而且吃配置,而gogs非常轻便简介,成为不二之选. 操作系统:Centos 7.0 一. ...

  2. jQuery中的for循环var与let的区别

    今天在写jQuery请求接口中发现一个问题: 在用AJAX发送请求中又嵌套了一个AJAX请求,发现在内层请求的success中对第一次success中的循环变量 i 无法获取,具体代码如下: $.aj ...

  3. [LeetCode] Valid Palindrome II 验证回文字符串之二

    Given a non-empty string s, you may delete at most one character. Judge whether you can make it a pa ...

  4. scrapy爬取数据进行数据库存储和本地存储

    今天记录下scrapy将数据存储到本地和数据库中,不是不会写,因为小编每次都写觉得都一样,所以记录下,以后直接用就可以了-^o^- 1.本地存储 设置pipel ines.py class Ak17P ...

  5. 11_Python的列表推导式_Python编程之路

    上一节我们结束了有关python的方法相关内容 这一节我们先来学习python的列表推导式 之前跟大家说过range方法的使用,在这里我就不做过多的解释了,如忘记了,请翻阅之前的介绍 列表推导式,是P ...

  6. [HAOI2007]分割矩阵

    题目描述 将一个a*b的数字矩阵进行如下分割:将原矩阵沿某一条直线分割成两个矩阵,再将生成的两个矩阵继续如此分割(当然也可以只分割其中的一个),这样分割了(n-1)次后,原矩阵被分割成了n个矩阵.(每 ...

  7. [NOI2005]寿司晚宴

    题目描述 为了庆祝NOI的成功开幕,主办方为大家准备了一场寿司晚宴.小G和小W作为参加NOI的选手,也被邀请参加了寿司晚宴. 在晚宴上,主办方为大家提供了n−1种不同的寿司,编号1,2,3,⋯,n-1 ...

  8. bzoj 5251: [2018多省省队联测]劈配

    Description 一年一度的综艺节目<中国新代码>又开始了. Zayid从小就梦想成为一名程序员,他觉得这是一个展示自己的舞台,于是他毫不犹豫地报名了. 题目描述 轻车熟路的Zayi ...

  9. NOIWC颓废记

    NOIWC大概就干了3件事情:吃.睡.浪. 吃: 目测绍兴一中的饭比二中的好吃多了,每天都有挺多的肉菜,还有一些甜品,而且是自助,不错的,但是一个不好的是排队时间太长了,于是我这么珍惜时间急着回宿舍的 ...

  10. django rest-framework 4.REST的认证和权限

    目前,我们的API对谁可以编辑或删除代码段没有任何限制.我们想要一些更先进的行为,以确保:(这段话抄自官网) 代码段始终与创建者相关联. 只有身份验证的用户可以创建片段. 只有片段的创建者可以更新或删 ...