Announcement

Unity AI 2021 インターンロボット工学で課題を克服する

ANTHONY NAVARRO / UNITY TECHNOLOGIESSenior Technical Product Manager
Sep 16, 2021|9 分
Unity AI 2021 インターンロボット工学で課題を克服する
このウェブページは、お客様の便宜のために機械翻訳されたものです。翻訳されたコンテンツの正確性や信頼性は保証いたしかねます。翻訳されたコンテンツの正確性について疑問をお持ちの場合は、ウェブページの公式な英語版をご覧ください。

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

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

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

Unity での逆運動学と制御
Jacob Platin さん(ロボット工学専攻、ペンシルバニア大学)

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

これらの機能を Unity に統合することは、線形代数学、物理学、微分積分学、コンピューターサイエンス、さらには微分積分学を学ぶための前提知識に関わるスキルをブラッシュアップしながら、最もユーザーにやさしい方法でソフトウェアをデザインするという、非常に大きな挑戦でした。また、VRの中でユーザーが立方体を動かし、それをロボットアームが追うというデモを作成し、産業用ロボットをVRでシミュレートすることについても学んだ。しかし、挑戦には大きなチャンスが伴う。Unityでロボティストを支援するための、このような基本的なコードをたったひとりで設計し、構築し、出荷できたことは、本当に光栄なことだった。社員が日々、自分の仕事を楽しみにしていて、常にやりがいを感じていることに気づくのは、信じられないほど稀なことだ!

マルチエージェントロボティクスシミュレーション
ティファニー・ヤウ(工学士トロント大学 ロボット工学
シモン・チャモロ(工学士シェルブルック大学 ロボット工学科
フローリング床を移動するグリーンロボットの3Dシミュレーション

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

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

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

Unityを使ったチャレンジングな人工知能プロジェクトで実社会の経験を積みたい方は、大学の採用ページをご覧ください。Unity Robotics Hubにあるデモやチュートリアルを見て、ご自宅で体験を始めることができます。