ROS 2.0 設計

«««< HEAD 這個網站是ROS 2.0設計理念的中文化網頁,旨在讓大家了解ROS 2.0的設計理念,並提供開發者努力的方向。 ROS 2.0的設計是要保存ROS 1.x版本的優良部份,並改進ROS1.x所沒有的功能。

如果你想看英文版的介紹,原本的網站在這

This site is repository of articles which are designed to inform and guide the ROS 2.0 design efforts. The goal of the ROS 2.0 project is to leverage what is great about ROS 1.x and improve what isn’t.

If you would like to contribute to this site, checkout the contribute page to learn how. If you would like to contribute to the ROS 2.0 project, see this page for more details.

The best mailing list for discussing these topics is ros-sig-ng-ros@googlegroups.com, the Special Interest Group on Next-Generation ROS mailing list. You can view the archives here.

文章列表

以下是目前已經撰寫完畢的文章,這些文章對於想學習並參與ROS 2.0開發的使用者,是很好的切入點。

Overview


為什麼要開發ROS 2.0?

這篇文章描述為什麼要對ROS的API做突破性修改,即ROS 2.0。


Stories driving the development

This article captures some stories which drive the direction of features in ROS.


The meta build system “ament”

This article describes the meta build system “ament”.


Changes between ROS 1 and ROS 2

This article provides an overview about the changes being made in ROS 2 compared to ROS 1.

Middleware


使用DDS來開發ROS

這篇文章討論如何使用DDS來開發ROS 2.0,列出這種作法的優缺點,並討論使用者經驗和API帶來的影響。我們也會針對我們實作的prototype “ros_dds”給一些總結意見,並探討其中潛藏的問題。


ROS 2 middleware interface

This article describes the rationale for using an abstract middleware interface between ROS and a specific middleware implementation. It will outline the targeted use cases as well as their requirements and constraints. Based on that the developed middleware interface is explained.

Interfaces


Interface definition

This article specifies the file format describing the data structures exchanged by ROS 2 components to interact with each other.


Mapping between ROS interface types and DDS IDL types

This article specifies the mapping between the ROS interface types and the DDS types.


Generated C++ interfaces

This article describes the generated C++ code for ROS 2 interfaces.


Generated Python interfaces

This article describes the generated Python code for ROS 2 interfaces.

Uncategorized


使用ZeroMQ跟相關的函式庫來開發ROS

這篇文章討論如何使用ZeroMQ跟其他的函式庫來開發ROS 2.0。此外,我們在OSRF(Open Source Robotic Foundation)使用ZeroMQ開發出的prototype也會在這篇文章中被討論。


RPC API design in ROS

This article is an exploration of possible design patterns for the next generation of ROS Remote Procedure Call interfaces. We focus here on specifying the user API and leave the implementation unspecified. It is expected that there are one or more RPC implementations which can be used, such as Apache Thrift, ROS RPC, or MsgPack.


Parameter API design in ROS

This article is proposed design for the interfaces for interacting with parameters in ROS 2.0. We focus here on specifying the system design and leave the implementation unspecified.


Introduction to Real-time Systems

This article is a brief survey of real-time computing requirements and methods to achieve real-time performance.


Proposal for Implementation of Real-time Systems in ROS 2

Proposal for a test-driven approach to the real-time performance requirement in ROS 2.


Clock and Time

This article describes the ROS primitives to support programming which can run both in real time as well as simulated time which may be faster or slower.


Topic and Service name mapping to DDS

This article describes the proposed mapping between ROS topic and service names to DDS topic and service names.


Migration guide from ROS 1

This article has been moved to https://github.com/ros2/ros2/wiki/Migration-Guide.


Topological Discovery and Communication Negotiation

This article lays out the logical components and possibilities within a discovery and transport negotiation system. This article was written to try and understand the different possibilities for how the middleware could be implemented.


Managed nodes

This article describes the concept of a node with a managed life cycle. It aims to document some of the options for supporting manage d-life cycle nodes in ROS 2. It has been written with consideration for the existing design of the ROS 2 C++ client library, and in particular the current design of executors.


ROS 2.0 Quality of Service policies

This article describes the approach to provide QoS (Quality of Service) policies for ROS 2.0.


ROS 2.0 Message Research

This article captures the research done in regards to the serialization component, including an overview of the current implementation in ROS 1.x and the alternatives for ROS 2.0.


Additional Resources