TEAMZ
技術記事一覧へ戻る
技術記事2026-09-17

G1のみかん収穫に向けて、Blenderの木をIsaac Simへ

みかんの木を作り込んでも、それだけでロボットが収穫できるわけではありません。画像として自然に見えることと、手が触れたときに実や枝がどう動くかは、それぞれ確認が必要です。

チームゼットでは、Blenderで制作した木をIsaac Simへ持ち込み、G1による収穫を検証する環境を作っています。今回は木の外観調整、G1との静止表示、実1個の保持・解除・落下・接地までを確認しました。G1の手による収穫や、学習モデルによる自律動作はまだ実現していません。

まず、木1本の見た目を詰める

写真を参考に、果実の縦横比、枝の曲がり、葉の向きや間隔を調整しました。同じ形の葉を規則的に並べると、枚数を増やしても作り物らしさが残ります。BlenderのGUIで葉の縁や表面の変化量を調整し、手前の葉を直接仕上げて、接写と少し離れた構図で確認しました。

Blenderで描画したみかんの接写。CGの制作過程であり、写真やIsaac Simの描画ではありません。
Blenderで描画したみかんの接写。CGの制作過程であり、写真やIsaac Simの描画ではありません。

今回使用した木には葉5,305枚、果実168個があります。数の多さがリアリティを保証するわけではなく、葉の断面や葉脈、枝・ヘタの構造には簡略化が残っています。実際の園地を測量して再現したモデルでもありません。

背景の木と、触れる実を分ける

Blenderの修飾子を反映した形状をUSDへ書き出し、手前の木に背景14本を追加しました。背景は同じ形状の参照です。最初から全ての葉や実に物理を入れず、まず手前の実1個を動く物体にしました。

Isaac Sim上の農場とG1。静止表示の確認画面です。地面は検証用の平面で、収穫動作や写実的な農場の完成を示す画像ではありません。
Isaac Sim上の農場とG1。静止表示の確認画面です。地面は検証用の平面で、収穫動作や写実的な農場の完成を示す画像ではありません。

書き出したUSDの単位、対象位置、背景の参照、画像資産の参照先を独立した読み込みで確認しました。ただし、USDに形状が入ったことと、Blenderの質感が同じように再現されることは別です。上の2枚も描画環境や照明が異なります。

接続を外しても、実が落ちなかった

対象の実は中心高さ約1.04m、横幅約7.7cm。質量は仮に90gとしました。枝への接続を固定ジョイントで表し、2秒保持した後に接続を解除して、4秒間の落下と接地を調べました。実は凸包による衝突形状を使い、物理計算は120Hzです。

最初は、接続を解除しても実が空中に残りました。表示位置だけの問題かを切り分けるため、物理エンジン内部の位置も記録しましたが、こちらも動いていませんでした。

次に休止状態を調べると、実が休止したままでした。接続を解除した後に物理エンジンへ変更を反映し、実を明示的に起こす処理を追加したところ、重力による落下と接地を確認できました。

実1個の試験結果
2秒間の保持変位5mm未満の判定を通過
接続解除後の落下中心高さ約1.04mから約0.010mへ落下
地面付近での静止終盤の記録で高さの変化5mm未満

地面の高さは−0.02mです。中心が約0.010mで止まった結果は、このモデルの衝突形状によるもので、現物のみかんの接地を検証したものではありません。固定した1条件の試験であり、一般的な成功率も示していません。

撮影を伴う再試験で、解除後に落下する実。幹の手前を落ちる1個だけが動く対象です。接地の判定は物理エンジンの位置記録で確認しました。
撮影を伴う再試験で、解除後に落下する実。幹の手前を落ちる1個だけが動く対象です。接地の判定は物理エンジンの位置記録で確認しました。

この試験にはG1の手は参加していません。解除指令はハサミによる切断ではなく、果皮の変形・損傷や枝のしなりも未検証です。背景の木は数値試験中に非表示とし、枝葉にはまだ接触の物理を入れていません。実行環境はIsaac Sim 6.0.0-rc.59です。

手を近づけるだけでも、計算と実際に差が出る

固定基部のG1で、実の中心より手前11cmに掌の目標位置を置きました。関節の角度を逆算して動かした最初の試験では、掌の終点が目標から約5.2cmずれ、3cm以内という到達判定を通りませんでした。

そこで、物理エンジンで測った掌の位置を使い、目標との差を関節指令へ戻す補正を追加しました。補正後の終点誤差は約4.3mmで、同じ到達判定を通過しました。根元を固定した1配置での比較です。画像認識やVLAによる到達ではなく、シミュレータの既知の位置を使う制御です。実の把持や枝葉との干渉回避は、この試験に含めていません。

テレオペなしで、どう学習データを作るか

次に予定しているのは、シミュレータ内の既知の位置を使うスクリプト教師を作り、その成功動作を記録する方法です。先にG1の手が届くこと、接触して保持できること、切り離した後も運べることを確かめる必要があります。物体を手へ強制追従させた映像は、把持成功のデータにしません。

教師には実の正確な位置を使えます。一方、学習するモデルにはカメラ画像、関節状態、作業指示を入力します。正解の位置をモデルにも渡してしまうと、画像から対象を扱えるかを確かめられません。同じ時刻の画像・状態・次の指令を記録し、配置単位で学習用と評価用を分ける方針です。

比較用は動作模倣のACT、その後のVLA候補は既存のSmolVLAです。VLAは画像と言語から動作を出力するモデルで、今回の候補は LeRobotのSmolVLA公式資料を参照しています。基盤モデルをゼロから作るのではなく、収穫用データで追加学習します。データ形式はLeRobotDatasetを予定しています。

現時点で、農場用の成功データ収集、ACT学習、SmolVLAの追加学習は未実施です。ACTで動作を模倣できることと、言葉で対象を選べることも別です。同じ景色で「左の実」「右の実」と指示を変える評価まで必要になります。

次は、手と実の間を確かめる

以前の別の把持試験で使った円柱と、今回の約7.7cmの実では大きさも形状も異なります。過去の把持結果をそのまま収穫の実績にはできません。手前への到達に続き、手と実の接触、把持、切り離し、搬送へ進めます。実機での収穫は未検証です。

見た目の制作、物理の検証、教師データの収集、学習モデルの評価をつなぎ、どこで失敗したかを追える環境にすることが今回の取り組みです。

お問い合わせ