171
Help us understand the problem. What are the problem?

posted at

updated at

ROS2導入&レクチャー

主に研究室の学生教育用して作成する.
このページは全体の構成をあらわし,各所へのリンク集とする.
ソースコードをのせ行指定での説明(〇行目は~という意味,みたいな説明)をしているので"Qiitaをより便利にするChrome拡張機能をつくりました"を見ながら拡張機能を入れて行表示できるようにしておくと見やすいかも.

公式チュートリアル

公式チュートリアルがROSのそれと同レベルになり,「これやっとけば大丈夫」になった.特に概念を理解するためのgifが非常によいので,公式チュートリアルのBeginner: CLI Toolsくらいは一読することをすすめる.

本ページと関連ページ

本ページは,ROS2はじめての人が順々に勉強していくことを想定している.または,気になって調べた情報を個別にまとめたものでもある.特に初級に書かれているものは学習途中のもので,最終的には[コンポーネント](#中級 : 共有ライブラリとコンポーネントについて)を作成・利用できるようになればよい...ですね.

ここ異なるテーマで書いた情報庫は以下の通り.

更新履歴

2022/07/28:環境にHumble Hawksbillを追加
2021/09/22:中級ROS2におけるメッセージ -common_interfacesの活用を追加
2021/09/04:初級ROS2における時間管理・Rate系とTimer系に「時間管理について」(ROSTimeに関する少し詳しい内容)を追記.
2021/09/04:[中級 : 共有ライブラリとコンポーネントについて](#中級 : 共有ライブラリとコンポーネントについて)にてコンポーネントの説明をROS2におけるコンポーネントの作成ROS2のコンポーネントの利用に分離
2021/09/04:[中級 : 共有ライブラリとコンポーネントについて](#中級 : 共有ライブラリとコンポーネントについて)を作成

対象

対象読者

  • 学部学生(B3)
    • ROSの存在を知らず,C++言語の知識も不定
  • 学部学生(B4)
  • 大学院生(M1,M2)
    • ROSを用いた研究を遂行中

いずれもROS2は知らない学生を対象とする.

環境

それぞれの違い・変更点はDistributionsを参考のこと.結構重要.

以前使用していたもの - ROS2 Eloquent Elusor - 2020/11月までサポート - 2020/1月より使用開始 - for 18.04 LTS - ROS2 Dashing Diademata - 2021/5月までサポート - 2019年6月より使用開始 - for 18.04 LTS - サブ - [Ubuntu 20.04 on Raspberry Pi 3/4](https://qiita.com/NeK/items/a16cbc33dd3195226940) - Ubuntu Serverで十分 - [Ubuntu Desktop 18.04 LTS on Raspberry Pi 3B/3B+](https://qiita.com/NeK/items/849c6d1e05fb05314fc6)

知っといてほしい知識

詳しくは習うより慣れよ.ただ「見たことある」くらいにはしておいてもらい,「どんなものか」という概要を知り自学出来るようになっておいてもらえればよい.

Contents

ROS2情報

  • なぜROSか
  • ROS/ROS2の特徴:メッセージを使った分散処理

ROS2設定

管理者向け

一般ユーザ向け

ROS2レクチャー

それぞれの項目に対して以下を目標に作成

  • 読むのに5分以内
  • やるのに15分以内
  • 入り組んだ話は後に.
    • ただ,すぐに読めるようにリンクで対処

初級

  • 初級 -ROS1 Style-
    • ROS風の書き方.クラスを極力使わない書き方で,とりあえずこちらから?
  • 初級 -class style-
    • クラス化したnodeを使用した書き方.ROS2で推奨するコーディングスタイルへの第一歩.
  • 内容
    1. ROS2に関する基本情報
    • ROS2プロジェクトの作成
    • ROS2の最小構成プログラム
    • ROS2のpublisher/subscriber概要
    • ROS2の最小構成subscriber
    • ROS2における時間管理・Rate系とTimer系
    • ROS2の最小構成publisher
    • ROS2独自メッセージの作成
    • 独自メッセージを用いたROS2 publisher/subscriber
    • ROS2の最小構成service/client
    • ROS2の最小構成parameter
    • YAMLファイルによるROS2のパラメータ設定

中級 : 共有ライブラリとコンポーネントについて

初級では分かりやすさから「ROS1 style」と「class style」の二種類の方法で説明した.実用的にはコンポーネントを作成し使用する.
コンポーネントについては,classでのnode作成(初級のclass style)し,それを共有ライブラリ化,共有ライブラリをコンポーネント化する流れで説明する.
コンポーネントは共有ライブラリとしても使用できるので,とりあえずコンポーネント化しておけばよい.

中級その他

応用

まとめた一般的な情報

future work

参考

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Sign upLogin
171
Help us understand the problem. What are the problem?