👌
ROS2備忘録(1)
この記事では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の紹介
Discussion