原文(投稿日：2019/06/25)へのリンク

Facebookの主張によれば、ロボットオペレーティングシステム(ROS)上で高度な抽象化を提供するPyRobotを使用することによって、開発者は、ロボットの起動と実行を短時間で行うことが可能になる。

PyTorchと似た名称を持つ、FacebookのPython用マシンラーニングフレームワークであるPyRobotoは、ロボットプログラミングの分野において、PyTorchと同じ役割を果たすものだと、同社の科学者であるAbhinav Gupta、Saurabh Gupta両氏は言う。

PyRobotは、研究コミュニティがロボティクスのデータセット、アルゴリズム実装、モデルを簡単に使用できるようにすると同時に、ベンチマークの設定や動作の比較、成果の相互活用を支援します。

Facebookの科学者らは、PyRobotによって、ロボットのセットアップに必要な時間を数日から数時間にまで短縮できると主張している。ロボットプログラミングを難しいものしているのは、複数のロボットをサポートすることによって、一般的に複雑性が大きく増す点だ。事実、APIと利用可能な抽象化の違いのため、あるロボットプラットフォームのコードを別のロボットプラットフォームに移植することは容易ではない。そのため、PyRobotの目標のひとつは、ロボットを越えた(クロスロボット/cross-robot)抽象化を提供することにある。これにより、特定のロボットを対象とする場合でも、適切なロボットクラスをPyRobotoからインポートするだけで、それ以外のコードに手を加える必要はなくなる。

from pyrobot import Robot robot = Robot('locobot') target_joints = [ [0.400, 0.721, -0.471, -1.4, 0.920], [-0.675, 0, 0.23, 1, -0.70] ] robot.arm.go_home() for join in target_joints : robot.arm.set_joint_positions(joint, plan=False) robot.arm.go_home()

Facebookの科学者らによると、このアプローチの大きなメリットのひとつは、 LoCoBotなど低コストのロボットを使用して、ロックインされることなく、ロボットアプリケーションを開発できることである。これにより、ロボット群を展開して並行的に動作と学習を実施し、ソリューションを改善することが、より少ない費用で可能になる。

PyRobotは、パスの計画、前進運動や逆転運動などのために、関節の位置や速度、トルクを制御する抽象化を提供する。現時点ではLoCoBotとSawyerという、2つのロボットプラットフォームがサポートされている。PyRobotの成功と普及が、そのサポートするロボットプラットフォームを、FacebookとPyRobotコミュニティが首尾よく拡張できるか否かに大きく依存するであろうことは、想像に難くない。Facebookのロードマップ上で次にあるのはUniversal Robotsだが、Facebookはすでに、より多くのハードウェアのサポートを提供すべく、研究コミュニティの参加を呼びかけている。

クロスロボット開発に対するPyRobotのアプローチは、H-ROS SoMなどの促進するアプローチとは異なるものだ。H-ROSSoMは、モジュール式ロボット内への組み込むことで、統一的なプログラマブルインターフェースを提供することを目的としたモジュラリティスタックである。

AmazonとMicrosoftの両社が先日、自社製品の一部としてROSサポートを発表したことは注目に値する。Amazonは、ROSベースのアプリケーションを開発、テスト、デプロイするクラウドサービスであるAWS RoboMakerを導入した。一方のMicrosoftは、ROSをWindows 10に統合する作業を行っている。実際には、いずれのソリューションも、PyRobotとは異なる問題に対処するものであり、後者と同一に扱うべきものではない。