👌

ROS2備忘録(1)

2022/06/18に公開

この記事ではROS2(Robot Operating System)について簡単なるべく短い言葉で知識の共有をします。

ROS2とは


  • ROSとは[1],Robot Operating System(ロボットオペレーティングシステム)の事。
  • ロボット開発に必要なライブラリやツールが入ってるパッケージ。
  • ハードウェアやデバイスドライバ,通信などの部分が抽象化されていて便利。
  • GithubなどにROSコミュニティが形成されていてエコシステムがある。
  • ROS1からROS2は,通信のクオリティや複数台ロボットへの対応等の違いがある。
  • 要は通信ライブラリ

ROS2の基本的な概念


- 通信方式はDDS(Data Distribution Service)のUDP
- 基本的なクラサバモデルで扱える
- 一つ一つの処理はノードという形で記述できる→わかりやすい概念図
- トピック通信は1体多の非同期通信でメッセージを通信は1体1の同期通信
- 自分で作ったノード間をトピックを介して通信を行う
- データの送り手をPublisher、受け手をSubscriberという。
- データそのものはメッセージという。
- 主にC++とPythonで開発が行える。opencvなどもシステムに簡単に組み込むことが可能。
- 他にも、javaであったりElixirなどで開発が行える。(詳しくはROS2のプロトコルスタックを参照)

まとめ


今回は、自身の備忘録としてROS2の重要な概念をおさらいしました。次回は、簡単なpub/sub通信をROS2クライアントライブラリRCLPYを使って実装してみたいと思います。

その他

何故ROSなんか使わないといけないんやと思った方はこちらへ→次世代ロボットフレームワークROS2の紹介

参考文献


脚注
  1. ROSとは/ROS2とは|ロボット基礎技術 ↩︎

Discussion