Unity を検索

2021 年の Unity AI でのインターン報告:ロボット工学で課題を解決する

2021年9月16日 カテゴリ: 製造業 | 9 分 で読めます
Blue robotics arm
Blue robotics arm
シェア

AI@Unity では、ロボット工学、コンピュータビジョン、機械学習の分野における素晴らしい研究や製品に取り組んでいます。今夏、Unity にやってきたインターン生は、実際の製品に影響を与える AI プロジェクトに取り組みました。

ロボットの高性能化、およびロボットに与えるタスクの複雑化に伴い、シミュレーションに対するニーズが高まっています。シミュレーションは、テストする必要のあるすべてのシナリオに対応した物理的なロボットを用意する必要がないため、シミュレーションを大規模に行うことが可能です。また、開発中に特定のタスク、特にロボットが配備が完了するまで実行できないタスクに関する開発とテストをすることも可能です。Unity Robotics チームは、Unity エンジンのパワー、また Unity の持つアセットや統合のしやすさを活かし、ロボット工学のシミュレーションを可能にすることに注力しています。また、シミュレーション能力を拡張するロボット工学に特化したツールやパッケージの構築も並行して行っています。Unity Robotics Hub には、デモ、チュートリアル、パッケージが用意されており、すぐにロボットのシミュレーションを始めることができるようになっています。

2021 年の夏、Unity にやってきたインターン生は熱心に働き、Unity の活動に貴重な貢献をしてくれました。以下のセクションでは、インターン生たちのプロジェクトや経験についてご紹介します。

Unity での逆運動学と制御

Jacob Platin さん(ロボット工学専攻、ペンシルバニア大学)

逆運動学は、READY Robotics のような顧客には欠かせない。上の画像は同社制作のシーンのもの。

今年の夏は、ロボットチームの一員として、逆運動学とロボットコントローラーを Unity に統合するという素晴らしい機会に恵まれました。ユーザーがロボット、特にロボットアームのシミュレーションを行う必要がある場合、本物のロボットを制御するのと同じ、または類似した API を使ってロボットを制御する必要があります。これらのAPIはロボットコントローラーと呼ばれ、ロボットをある位置から別の位置に移動させたり、(関節空間内で)単一の関節を移動させたり、さらにはロボットを円運動させたりするなど、さまざまな機能を提供します。ロボットコントローラーは、主に関節空間の中で動作します。つまり、コマンドは各関節が目標とする角度として与えられます。しかし、人間が気にするのは、エンドエフェクターの直交座標系(3D 世界の X、Y、Z 座標)での位置と向きだけです。このように、逆運動学の目的は、デカルト空間における任意の位置と姿勢に対応する関節の角度を決定することです。逆運動学は、ロボット工学者が使うツールキットの重要な部分であるため、このパッケージによって、Unity はロボット工学のシミュレーションプラットフォームとして、より高性能で使いやすいものになります。 

これらの機能を Unity に統合することは、線形代数学、物理学、微分積分学、コンピューターサイエンス、さらには微分積分学を学ぶための前提知識に関わるスキルをブラッシュアップしながら、最もユーザーにやさしい方法でソフトウェアをデザインするという、非常に大きな挑戦でした。また、ユーザーが VR 内でキューブを動かし、それをロボットアームが追いかけるというデモの制作を通して、産業用ロボットの VR シミュレーションについて学びました。しかし、挑戦には大きなチャンスが伴います。Unity でロボット工学者に役立つ基礎的なコードをたった 1 人で設計、構築、そして製品として世に出すまでの過程を経験できたことは、本当に名誉なことでした。毎日の仕事を楽しみにし、日々挑戦し続けている姿勢で会社で働く人を見ることは信じられないほど稀ですが、私は幸運にも Unity でそのような経験を積むことができました。

マルチエージェントロボティクスシミュレーション

Tiffany Yau さん(学士(工学)、ロボット工学、トロント大学)

Simon Chamorro さん(学士(工学)、ロボット工学、シャーブルック大学)

3D simulation of a green robot moving around a wood floor

産業用アプリケーションでは、異なる能力に特化した複数のロボットが協調して複雑な作業を行う必要があります。このプロジェクトでは、Unity エディターとロボット工学シミュレーションパッケージ、ROS 2 を用いて、複数のロボット間の連携を実現し、倉庫内での対象物を探索して運ぶタスクを実行する様子を紹介しています。このデモンストレーションは、このようなマルチエージェントシミュレーションを行うことが難しい場合に、他のロボットシミュレーションツールと比較して、Unity を使うことの利点を強調するものです。このシミュレーションには、Findbot と Ferrybot と呼ばれる 2 種類のロボットが配置されています。複数の Findbot が機械学習を用いて倉庫内の対象となるキューブを見つけ出し、1 台の Ferrybot がそのキューブのところまで移動し、ピックアップして、指定された場所でドロップオフを行うというものです。これを実現するために、Findbot にはキューブを検出するためのカメラが、Ferrybot にはキューブを持ち上げるためのロボットアームが搭載されています。このサンプルプロジェクトは、Unity のロボット工学向けツールを自分のシミュレーションで使用したいと考えているロボット開発者や研究者にとって有益なものとなるでしょう。 

全体としては、様々な Unity のパッケージを使用し、プロジェクトに統合することができたので、とても良い経験になりました。たとえば、ポーズ推定モデルを学習するためのデータ収集には、Computer Vision の Perception Package を使用しました。また、キューブを拾うために Ferrybot に逆運動学のパッケージ(上記の Jacob さんのプロジェクトで紹介されています)を使用しました。並行して開発されているプロジェクトに参加することも大きなチャレンジでしたが、コラボレーションやコミュニケーションについて学ぶ良い機会となりました。また、私たちのプロジェクトが、ROSCon 2021 ワークショップの準備に使われることを知って、非常にやりがいを感じています。

私たちのチームに参加しましょう

Unity を使って挑戦的な人工知能プロジェクトに取り組み、実社会での経験を積むことに興味がある方は、大学生向けの採用ページをご覧ください。Unity Robotics Hub のデモやチュートリアルを見て、自宅で自分の届けたい体験を作り始めることができます。

2021年9月16日 カテゴリ: 製造業 | 9 分 で読めます