はじめに〜なぜこの記事を書こうと思ったか〜
今までロボット制御の開発プラットフォームというとROS、ROS2くらいしか知らなかったが、ROSだけでもROS#やIsaac Simなどフレームワーク・ミドルウェアは増えてきた。
備忘のため、この記事にまとめる。
1.ROS
一番有名な印象。各種モジュールはC++で基本書かれていて、Pythonで全体制御できる。
2.ROS2
ROSの後継プラットフォーム。ROS2での開発コンペなど出てきているので、本格的にROS(ROS1)からの移行が進んでいるようだ。
今後勉強する際は、ROS2をメインで勉強したい。
・ROS2 Foxy公式ドキュメント
3.Isaac SDK:
・NVIDIAが開発したロボティクス開発プラットフォーム
・C++とPythonのAPIを提供
・UnityプラグインでIsaacSimとの連携が可能
・AIと深層学習の統合に強み
・https://developer.nvidia.com/isaac/sim
・https://developer.nvidia.com/isaac/ros
4.OpenRTM
・コンポーネントベースのロボットソフトウェア開発プラットフォーム。
・RT(Robot Technology)コンポーネントと呼ばれるモジュール化された機能単位を組み合わせて、複雑なロボットシステムを構築可能。
・C++、Python、Javaなど複数のプログラミング言語をサポートしており
・https://github.com/OpenRTM
5.PyRobot:
・Pythonベースなのはありがたい。
・ROSと互換性があり、高レベルのPython APIを提供
・実機のロボットとシミュレーションの両方に対応
・公式ページhttps://pyrobot.org/
6.Rock (The Robot Construction Kit):
・C++とRubyで書かれたロボット制御フレームワーク
・コンポーネントベースのアーキテクチャを採用
・宇宙ロボティクスや惑星探査ミッションで使用されている
・GitHubリポジトリ: https://github.com/rock-core/base-types
・https://www.rock-robotics.org/
7.MRPT (Mobile Robot Programming Toolkit):
C++で書かれた、主に移動ロボットやコンピュータビジョンのためのライブラリ群
SLAM(同時位置推定と地図作成)、ナビゲーション、センサー処理などの機能を提供
豊富なドキュメントとチュートリアルがある
GitHubリポジトリ: https://github.com/MRPT/mrpt
8.YARP (Yet Another Robot Platform):
C++で書かれたオープンソースのロボット制御フレームワーク
モジュール性が高く、分散システムの構築に適している
iCub人型ロボットプロジェクトで広く使用されている
GitHubリポジトリ: https://github.com/robotology/yarp
9.MRPT (Mobile Robot Programming Toolkit):
C++で書かれた、主に移動ロボットやコンピュータビジョンのためのライブラリ群
SLAM(同時位置推定と地図作成)、ナビゲーション、センサー処理などの機能を提供
豊富なドキュメントとチュートリアルがある
GitHubリポジトリ: https://github.com/MRPT/mrpt