SO-101 失敗から学ぶアームを作る Log#2 | 2TBの外付けSSDを、学習データの定位置にする

模倣学習を本格的に回す前に、生成されるデータの置き場所を決めておきたかった。テレオペで集めるエピソード、手首カメラの録画、学習のチェックポイント。これらは意識して一箇所に集めないと、Macのあちこちに散らばる。あとで「あのデータどこいった」を探す時間ほど無駄なものはない。

ところがその器を用意しようとしたら、Macのディスクが先に悲鳴を上げていた。少し前まで90GBほど余裕があった空き容量が、30GB、そして20GBまで削れていた。整理は「何が容量を食っているのか」を突き止めるところから始まった。器を作る話は、結局そのまま「データをどこに置くか」という模倣学習の前準備につながっていく。

どこから容量を調べるか

ストレージの内訳は「システム設定 → 一般 → ストレージ」でも大まかには見える。ただし「システムデータ」が肥大化していると詳細が分からない。フォルダ単位で容量をサイズ順に把握するなら、ターミナルの du が一番速い。

ホーム直下を容量順に並べた。

du -sh ~/* | sort -rh | head -20

出力。Operation not permitted の行は、macOS の保護機能(SIP)が読み取りを拒否しているシステム領域で、ノイズとして無視してよい。

du: /Users/shimazueiichi/Library/Application Support/CallHistoryTransactions: Operation not permitted
du: /Users/shimazueiichi/Library/Application Support/CloudDocs: Operation not permitted
du: /Users/shimazueiichi/Library/Application Support/com.apple.sharedfilelist: Operation not permitted
(中略せず以降も同様の Operation not permitted がシステム領域に対して多数続く)
254G	/Users/shimazueiichi/Library
 12G	/Users/shimazueiichi/Robotics_UX
4.0G	/Users/shimazueiichi/Documents
1.6G	/Users/shimazueiichi/Pictures
946M	/Users/shimazueiichi/r2r2r-scripts
373M	/Users/shimazueiichi/Music
310M	/Users/shimazueiichi/Applications
284M	/Users/shimazueiichi/Downloads
 94M	/Users/shimazueiichi/marketing-analysis
 16M	/Users/shimazueiichi/Projects
 12M	/Users/shimazueiichi/Desktop
 11M	/Users/shimazueiichi/r2r2r-content
740K	/Users/shimazueiichi/Creative Cloud Files  costomer.oishikutaberulabo@gmail.com 476D6D985CA84F400A495FE2@AdobeID
276K	/Users/shimazueiichi/Movies
164K	/Users/shimazueiichi/adaptdesign-os
 84K	/Users/shimazueiichi/style_samples
4.0K	/Users/shimazueiichi/mecharm_daemon.log
  0B	/Users/shimazueiichi/review.md
  0B	/Users/shimazueiichi/Public
  0B	/Users/shimazueiichi/OneDrive

Library だけで 254GB。突出している。次はこの中身を掘る。2>/dev/null を付けると権限エラーのノイズが消える。

du -sh ~/Library/* 2>/dev/null | sort -rh | head -20
131G /Users/shimazueiichi/Library/Containers
 67G /Users/shimazueiichi/Library/Mobile Documents
 46G /Users/shimazueiichi/Library/Application Support
5.0G /Users/shimazueiichi/Library/Preferences
1.9G /Users/shimazueiichi/Library/Unity
1.8G /Users/shimazueiichi/Library/Caches
1.6G /Users/shimazueiichi/Library/Group Containers
1.1G /Users/shimazueiichi/Library/Logs
581M /Users/shimazueiichi/Library/ScreenRecordings
201M /Users/shimazueiichi/Library/Fonts
168M /Users/shimazueiichi/Library/Python
158M /Users/shimazueiichi/Library/HTTPStorages
 62M /Users/shimazueiichi/Library/Photos
 55M /Users/shimazueiichi/Library/WebKit
 54M /Users/shimazueiichi/Library/Keychains
 14M /Users/shimazueiichi/Library/Google
6.1M /Users/shimazueiichi/Library/MediaAnalysis
5.9M /Users/shimazueiichi/Library/Finance
5.3M /Users/shimazueiichi/Library/Fonts (Removed)
5.3M /Users/shimazueiichi/Library/Accessibility

Containers 131GB、Mobile Documents 67GB、Application Support 46GB。この三つで大半を占めている。Mobile Documents は iCloud Drive のローカル実体だ。この時点では、まだ本当の原因に気づいていない。

最初の容疑者は当たっていた、が原因ではなかった

Containers の中を掘る。

du -sh ~/Library/Containers/* 2>/dev/null | sort -rh | head -10
 80G /Users/shimazueiichi/Library/Containers/com.amazon.Lassen
 42G /Users/shimazueiichi/Library/Containers/com.amazon.Kindle
4.8G /Users/shimazueiichi/Library/Containers/com.docker.docker
958M /Users/shimazueiichi/Library/Containers/com.apple.AMPArtworkAgent
615M /Users/shimazueiichi/Library/Containers/com.tinyspeck.slackmacgap
467M /Users/shimazueiichi/Library/Containers/com.microsoft.teams2
397M /Users/shimazueiichi/Library/Containers/com.apple.geod
341M /Users/shimazueiichi/Library/Containers/com.facebook.archon
192M /Users/shimazueiichi/Library/Containers/com.apple.mediaanalysisd
106M /Users/shimazueiichi/Library/Containers/jp.naver.line.mac

Kindle が二つ(新アプリ Lassen と旧アプリ Kindle)で合計 122GB。ダウンロード済みの書籍データだ。Amazon のクラウドに本体は残っているので、ローカルから消しても失うものはない。読みたいときに再ダウンロードすればいい。

ターミナルから削除を試みた。

rm -rf ~/Library/Containers/com.amazon.Kindle
rm -rf ~/Library/Containers/com.amazon.Lassen
rm: /Users/shimazueiichi/Library/Containers/com.amazon.Kindle/.com.apple.containermanagerd.metadata.plist: Operation not permitted
rm: /Users/shimazueiichi/Library/Containers/com.amazon.Kindle: Operation not permitted
rm: /Users/shimazueiichi/Library/Containers/com.amazon.Lassen/.com.apple.containermanagerd.metadata.plist: Operation not permitted
rm: /Users/shimazueiichi/Library/Containers/com.amazon.Lassen/Data/Library/eBooks/B010NPJB0G: Directory not empty
rm: /Users/shimazueiichi/Library/Containers/com.amazon.Lassen/Data/Library/eBooks: Directory not empty
rm: /Users/shimazueiichi/Library/Containers/com.amazon.Lassen/Data/Library: Directory not empty
rm: /Users/shimazueiichi/Library/Containers/com.amazon.Lassen/Data: Directory not empty
rm: /Users/shimazueiichi/Library/Containers/com.amazon.Lassen: Operation not permitted

管理ファイルと一部のフォルダの「ガワ」は SIP に守られて残ったが、中身の書籍データはほぼ削除できた。この時点で空き容量は 146.88GB まで回復した。30GB から 117GB ぶん戻った計算になる。一度はこれで解決したと思った。

消しても、また埋まる

数時間後、空き容量を見ると 23GB まで減っていた。約 124GB が消えていた。空けたぶんとほぼ同じ量が、何かによって書き戻されている。これは異常な速度だ。

最初に疑ったのは「Kindle が全書籍を自動再ダウンロードしている」。削除した直後にアプリが起動していれば、ライブラリ同期で消したぶんを取り戻しに行く。だが Kindle のフォルダを再確認すると、その線は消えた。

du -sh ~/Library/Containers/com.amazon.Lassen 2>/dev/null
du -sh ~/Library/Containers/com.amazon.Kindle 2>/dev/null
tmutil listlocalsnapshots /
 57M /Users/shimazueiichi/Library/Containers/com.amazon.Lassen
 32K /Users/shimazueiichi/Library/Containers/com.amazon.Kindle
Snapshots for disk /:

Kindle は 57MB のまま。再ダウンロードしていない。Time Machine のローカルスナップショットもゼロ。容疑者が二つとも消えた。別の何かが 124GB を書き込んでいる。

巨大ファイルを直接探しに行く。ディスク全体から「1GB 超かつ 24 時間以内に更新」のファイルを列挙する。

sudo find / -xdev -type f -size +1G -mtime -1 -exec ls -lh {} \; 2>/dev/null
-rw-------  1 shimazueiichi  staff   4.0G  6月 12 12:09 /System/Volumes/Data/Users/shimazueiichi/Library/Application Support/Google/Chrome/OptGuideOnDeviceModel/2025.8.8.1141/weights.bin
-rw-------  1 shimazueiichi  staff   4.0G  6月 12 12:09 /Users/shimazueiichi/Library/Application Support/Google/Chrome/OptGuideOnDeviceModel/2025.8.8.1141/weights.bin

出てきたのは Chrome の内蔵 AI モデル 4GB が一つだけ(二行は同じファイルが二つのパス表記で見えているだけ)。「巨大ファイルが大量に書き込まれた」説は消えた。残る可能性は、小さいファイルの大量書き込みか、表示のからくりのどちらか。

実数と iCloud の容量を突き合わせる。

df -h /System/Volumes/Data
du -sh ~/Library/Mobile\ Documents 2>/dev/null
Filesystem      Size    Used   Avail Capacity iused ifree %iused  Mounted on
/dev/disk3s5   460Gi   415Gi    20Gi    96%    1.7M  207M    1%   /System/Volumes/Data
182G /Users/shimazueiichi/Library/Mobile Documents

ここで原因が確定した。Mobile Documents(iCloud Drive のローカル実体)が、午前の 67GB から 182GB に膨らんでいた。増加分の約 115GB は、消えた容量とほぼ一致する。

原因は iCloud の設定だった

iCloud Drive の設定を開くと、「Mac ストレージを最適化」がオフになっていた。この設定の説明文はこうだ。「十分な空き領域があるときは、iCloud Drive の内容がすべてこの Mac に保存されます。空き領域が足りなくなると、古い書類は iCloud にのみ保存されます」。

オフだと、macOS は iCloud 上の全データ(このアカウントでは 473.3GB)を Mac にすべて置こうとし続ける。Mac のディスクは 460GB しかない。物理的に入りきらない。Kindle を消して空きができた瞬間、iCloud が「空いた、ローカルに戻そう」と判断して再ダウンロードを始めた。これが数時間で 124GB が消えたからくりだった。操作のミスではなく、設定とディスク容量の不整合が招いた挙動だ。

対処はトグル一つ。「Mac ストレージを最適化」をオンにする。オンにすると、空きが足りないとき OS が自動で古いファイルのローカル実体を消してクラウド参照に切り替える。埋め戻しの綱引きが止まる。

ここで一つ整理しておくと、iPhone のバックアップや iCloud 写真は Apple のサーバー上にあり、Mac のディスクは消費していない。Mac の 182GB を占めていたのは iCloud Drive のローカルコピーだけ。つまりクラウドの中身を消す必要はなく、ローカルコピーを減らせばいい。クラウド側は無傷で残る。

iCloud Drive の内訳を掘ると、ほぼ全てがデスクトップ同期分だった。

du -sh ~/Library/Mobile\ Documents/com~apple~CloudDocs/* 2>/dev/null | sort -rh | head -15
181G /Users/shimazueiichi/Library/Mobile Documents/com~apple~CloudDocs/デスクトップ
1.1G /Users/shimazueiichi/Library/Mobile Documents/com~apple~CloudDocs/マンガ
 22M /Users/shimazueiichi/Library/Mobile Documents/com~apple~CloudDocs/Downloads
1.1M /Users/shimazueiichi/Library/Mobile Documents/com~apple~CloudDocs/PixelsToMotors
344K /Users/shimazueiichi/Library/Mobile Documents/com~apple~CloudDocs/6.3
8.0K /Users/shimazueiichi/Library/Mobile Documents/com~apple~CloudDocs/動画
  0B /Users/shimazueiichi/Library/Mobile Documents/com~apple~CloudDocs/Documents
  0B /Users/shimazueiichi/Library/Mobile Documents/com~apple~CloudDocs/Desktop

デスクトップに過去案件のアーカイブが積み上がっていた。「Mac ストレージを最適化」をオンにすると、OS が自動でローカル実体をパージしはじめ、空き容量は 200GB 前後で安定した。これで器を作る前提条件が整った。

SSD が届いた。でも緊急退避はいらなくなった

当初の計画では、2TB の外付け SSD(KIOXIA)に過去案件 150GB ぶんを緊急退避させて空きを作るつもりだった。だが最適化をオンにしただけで空きは 200GB まで戻り、緊急退避そのものが不要になった。

ここで SSD の役割を組み替えた。緊急退避の受け皿ではなく、これから始める模倣学習のデータの定位置にする。学習データが散らかる前に、最初から置き場所を一箇所に決めておく。器を作る話に戻ってきた。

SSD は exFAT のまま使う。学習データを Mac 以外でも参照したいからだ。exFAT には後述の癖があるが、ポータビリティを優先した。

コードと生成物を分ける

保存設計の大原則を先に決めた。コードはMacローカルに置いて git で管理する。学習データや生成物は SSD に置いて git では管理しない。

種類

置き場所

管理方法

コード・設定(.py / yaml / SKILL.md / config)

Mac ローカル ~/r2r2r-scripts/

git(GitHub で履歴管理)

学習データ・生成物(dataset / 録画 / checkpoint / log)

SSD /Volumes/KIOXIA/r2r2r-data/

git 管理しない(重い・再生成可能)

理由は三つ。コードを SSD に置くと、SSD を外したら作業できなくなり git 運用も崩れる。学習データを Mac 内蔵に置くと、すぐディスクが溢れる。これは今回身をもって確認した。そしてこの線引きを最初に固定しておけば、後で両者が混ざらない。

SSD にフォルダ構造を作る。命名は既存の流儀(run_{NNNN}_{description} など)に揃え、LeRobot のデータセット慣習も踏まえた。

mkdir -p "/Volumes/KIOXIA/r2r2r-data/datasets"
mkdir -p "/Volumes/KIOXIA/r2r2r-data/recordings"
mkdir -p "/Volumes/KIOXIA/r2r2r-data/runs"
mkdir -p "/Volumes/KIOXIA/r2r2r-data/checkpoints"
mkdir -p "/Volumes/KIOXIA/r2r2r-data/fk_tables"
mkdir -p "/Volumes/KIOXIA/r2r2r-data/archive"
ls -la "/Volumes/KIOXIA/r2r2r-data/"
total 8192
drwx------  1 shimazueiichi  staff  524288  6月 13 15:56 .
drwx------  1 shimazueiichi  staff  524288  1月  1  1970 ..
drwx------  1 shimazueiichi  staff  524288  6月 13 15:56 archive
drwx------  1 shimazueiichi  staff  524288  6月 13 15:56 checkpoints
drwx------  1 shimazueiichi  staff  524288  6月 13 15:56 datasets
drwx------  1 shimazueiichi  staff  524288  6月 13 15:56 fk_tables
drwx------  1 shimazueiichi  staff  524288  6月 13 15:56 recordings

それぞれの役割はこうだ。datasets/ は LeRobot 形式のテレオペ収集データで、学習の入力。タスク単位でフォルダを切り、単腕から双腕への段階移行に合わせて single / dual を名前に含める。recordings/ は手首カメラの生録画素材(wrist.mp4 と同期した frames.jsonl)。runs/ は学習 run 一回ぶんを一フォルダにまとめ、config・checkpoint・eval・log を同梱して後から再現できる単位にする。checkpoints/ は runs の中から本番推論に使うモデルだけを昇格コピーする場所。fk_tables/ は mechArm 由来の大物 CSV のバックアップ置き場(Mac 側が正、ここは退避コピーのみ)。archive/ は旧データの退避先。

SSD が抜けても、中途半端なデータを作らない

SSD はアームを使うあいだは常に挿しておく運用にする。だが挿しっぱなしでも、スリープや再起動でマウントが外れることがある。学習スクリプトが出力先を見失ったまま走ると、中途半端なデータを書き損じる。それを防ぐため、学習・録画スクリプトの冒頭で必ずマウントを確認し、未接続なら安全に止める関数を共通化することにした。

from pathlib import Path
import sys

SSD_ROOT = Path("/Volumes/KIOXIA/r2r2r-data")

def ensure_ssd_mounted():
    """SSD 未マウント時は安全に停止。学習データの取りこぼしを防ぐ。"""
    if not SSD_ROOT.exists():
        sys.stderr.write(
            f"[ERROR] SSD not mounted: {SSD_ROOT}\n"
            f"KIOXIA を接続してから再実行してください。\n"
        )
        sys.exit(1)
    return SSD_ROOT

この ensure_ssd_mounted() をスクリプトの最初に必ず呼ぶというルールにしておけば、SSD が抜けた状態でうっかり走らせても、データを作らずに止まる。実装は Claude Code に渡すときの共通仕様にする。

mechArm のログを SSD へ退避する

最初のデータ移送として、前シリーズ(mechArm の動的追従)の実機ログを archive/ に退避した。前シリーズは完了済みなので、新シリーズの SO-101 データとは混ぜず archive に置く。

対象は 87MB と軽い。コピーには rsync を使う。exFAT は Unix のファイル権限を持てないため、権限保持を試みると警告が大量に出る。--no-perms --no-owner --no-group で権限の保持をやめ、--modify-window=1 で exFAT の粗い時刻精度(2秒単位)に合わせる。

rsync -rtv --progress --no-perms --no-owner --no-group --modify-window=1 \
  ~/r2r2r-scripts/dynamic_tracking_limits/logs/ \
  "/Volumes/KIOXIA/r2r2r-data/archive/mecharm_dynamic_tracking/logs/"

転送ログ全量。

Transfer starting: 222 files
./
.DS_Store
           6148 100%    5.16MB/s   00:00:00 (xfer#1, to-check=1/222)
place_capture_20260521_150159_side_1.png
        2325266 100%  138.40MB/s   00:00:00 (xfer#2, to-check=2/222)
place_capture_20260521_150159_side_2.png
        2355391 100%  156.14MB/s   00:00:00 (xfer#3, to-check=3/222)
place_capture_20260521_150159_side_3.png
        2373213 100%  147.17MB/s   00:00:00 (xfer#4, to-check=4/222)
place_capture_20260521_150159_side_4.png
        2398938 100%  142.59MB/s   00:00:00 (xfer#5, to-check=5/222)
place_capture_20260521_150159_side_5.png
        2426581 100%  156.71MB/s   00:00:00 (xfer#6, to-check=6/222)
place_capture_20260521_150159_top_1.png
        2275672 100%  160.11MB/s   00:00:00 (xfer#7, to-check=7/222)
place_capture_20260521_150159_top_2.png
        2271614 100%  153.11MB/s   00:00:00 (xfer#8, to-check=8/222)
place_capture_20260521_150159_top_3.png
        2274670 100%  156.21MB/s   00:00:00 (xfer#9, to-check=9/222)
place_capture_20260521_150159_top_4.png
        2274027 100%  160.63MB/s   00:00:00 (xfer#10, to-check=10/222)
place_capture_20260521_150159_top_5.png
        2273919 100%  151.53MB/s   00:00:00 (xfer#11, to-check=11/222)
j0_sweep/
j0_sweep/.DS_Store
          16388 100%    9.30MB/s   00:00:00 (xfer#12, to-check=13/222)
j0_sweep/j0_pick_sweep20_01.json
           1389 100%    5.28MB/s   00:00:00 (xfer#13, to-check=14/222)
j0_sweep/j0_pick_sweep20_02.json
           1389 100%    6.28MB/s   00:00:00 (xfer#14, to-check=15/222)
j0_sweep/j0_pick_sweep20_03.json
           1882 100%   10.26MB/s   00:00:00 (xfer#15, to-check=16/222)
j0_sweep/j0_sweep_approach_pick_01.json
            627 100%    3.25MB/s   00:00:00 (xfer#16, to-check=17/222)
j0_sweep/j0_sweep_approach_pick_02.json
           2265 100% 1000.91KB/s   00:00:00 (xfer#17, to-check=18/222)
j0_sweep/j0_sweep_approach_pick_03.json
            898 100%    3.84MB/s   00:00:00 (xfer#18, to-check=19/222)
j0_sweep/j0_sweep_approach_pick_04.json
           2250 100%  845.74KB/s   00:00:00 (xfer#19, to-check=20/222)
j0_sweep/j0_sweep_approach_pick_05.json
           1606 100%    1.13MB/s   00:00:00 (xfer#20, to-check=21/222)
j0_sweep/j0_sweep_approach_pick_06.json
           2626 100%  939.31KB/s   00:00:00 (xfer#21, to-check=22/222)
j0_sweep/j0_sweep_approach_pick_07.json
           5306 100%    1.82MB/s   00:00:00 (xfer#22, to-check=23/222)
j0_sweep/j0_sweep_approach_pick_08.json
            899 100%  662.05KB/s   00:00:00 (xfer#23, to-check=24/222)
j0_sweep/j0_sweep_approach_place_01.json
            611 100%    2.39MB/s   00:00:00 (xfer#24, to-check=25/222)
j0_sweep/j0_sweep_approach_place_02.json
           8188 100%    2.05MB/s   00:00:00 (xfer#25, to-check=26/222)
j0_sweep/j0_sweep_approach_place_03.json
           2838 100%   11.92MB/s   00:00:00 (xfer#26, to-check=27/222)
j0_sweep/j0_sweep_approach_place_04.json
           8060 100%    2.64MB/s   00:00:00 (xfer#27, to-check=28/222)
j0_sweep/j0_sweep_pick_01.json
            545 100%    1.84MB/s   00:00:00 (xfer#28, to-check=29/222)
j0_sweep/j0_sweep_pick_02.json
            545 100%    2.70MB/s   00:00:00 (xfer#29, to-check=30/222)
j0_sweep/j0_sweep_pick_03.json
            545 100%    2.89MB/s   00:00:00 (xfer#30, to-check=31/222)
j0_sweep/j0_sweep_pick_04.json
            545 100%    3.13MB/s   00:00:00 (xfer#31, to-check=32/222)
j0_sweep/j0_sweep_pick_05.json
            545 100%    2.97MB/s   00:00:00 (xfer#32, to-check=33/222)
j0_sweep/j0_sweep_pick_06.json
            545 100%    3.47MB/s   00:00:00 (xfer#33, to-check=34/222)
j0_sweep/j0_sweep_pick_07.json
            570 100%    3.05MB/s   00:00:00 (xfer#34, to-check=35/222)
j0_sweep/j0_sweep_pick_08.json
            987 100%    5.57MB/s   00:00:00 (xfer#35, to-check=36/222)
j0_sweep/j0_sweep_pick_09.json
            960 100%    5.52MB/s   00:00:00 (xfer#36, to-check=37/222)
j0_sweep/j0_sweep_pick_10.json
            959 100%  760.22KB/s   00:00:00 (xfer#37, to-check=38/222)
j0_sweep/j0_sweep_pick_11.json
            958 100%  274.19KB/s   00:00:00 (xfer#38, to-check=39/222)
j0_sweep/j0_sweep_pick_12.json
            625 100%  430.47KB/s   00:00:00 (xfer#39, to-check=40/222)
j0_sweep/j0_sweep_pick_13.json
            964 100%  347.37KB/s   00:00:00 (xfer#40, to-check=41/222)
j0_sweep/j0_sweep_pick_14.json
            625 100%  435.67KB/s   00:00:00 (xfer#41, to-check=42/222)
j0_sweep/j0_sweep_pick_15.json
            625 100%    1.72MB/s   00:00:00 (xfer#42, to-check=43/222)
j0_sweep/j0_sweep_pick_16.json
            625 100%  539.17KB/s   00:00:00 (xfer#43, to-check=44/222)
j0_sweep/j0_sweep_pick_17.json
            625 100%  441.68KB/s   00:00:00 (xfer#44, to-check=45/222)
j0_sweep/j0_sweep_pick_18.json
            957 100%  672.36KB/s   00:00:00 (xfer#45, to-check=46/222)
j0_sweep/j0_sweep_pick_19.json
           7208 100%  641.90KB/s   00:00:00 (xfer#46, to-check=47/222)
j0_sweep/j0_sweep_pick_20.json
            950 100%    3.94MB/s   00:00:00 (xfer#47, to-check=48/222)
j0_sweep/j0_sweep_pick_simple_01.json
           1738 100%   10.97MB/s   00:00:00 (xfer#48, to-check=49/222)
j0_sweep/j0_sweep_pick_simple_02.json
           5996 100%    2.22MB/s   00:00:00 (xfer#49, to-check=50/222)
j0_sweep/j0_sweep_place_01.json
            964 100%  671.86KB/s   00:00:00 (xfer#50, to-check=51/222)
j0_sweep/j0_sweep_place_02.json
            974 100%    3.14MB/s   00:00:00 (xfer#51, to-check=52/222)
j0_sweep/j0_pick_sweep20_01_frames/
j0_sweep/j0_pick_sweep20_02_frames/
j0_sweep/j0_pick_sweep20_03_frames/
j0_sweep/j0_sweep_approach_pick_01_frames/
j0_sweep/j0_sweep_approach_pick_02_frames/
j0_sweep/j0_sweep_approach_pick_02_frames/j0_+000.0.jpg
         500701 100%   74.00MB/s   00:00:00 (xfer#52, to-check=58/222)
j0_sweep/j0_sweep_approach_pick_02_frames/j0_+005.0.jpg
         507141 100%  110.90MB/s   00:00:00 (xfer#53, to-check=59/222)
j0_sweep/j0_sweep_approach_pick_02_frames/j0_+010.0.jpg
         517945 100%  120.16MB/s   00:00:00 (xfer#54, to-check=60/222)
j0_sweep/j0_sweep_approach_pick_02_frames/j0_-005.0.jpg
         509322 100%  116.20MB/s   00:00:00 (xfer#55, to-check=61/222)
j0_sweep/j0_sweep_approach_pick_02_frames/j0_-010.0.jpg
         505191 100%  117.08MB/s   00:00:00 (xfer#56, to-check=62/222)
j0_sweep/j0_sweep_approach_pick_03_frames/
j0_sweep/j0_sweep_approach_pick_03_frames/j0_+000.0.jpg
         507105 100%  116.56MB/s   00:00:00 (xfer#57, to-check=64/222)
j0_sweep/j0_sweep_approach_pick_04_frames/
j0_sweep/j0_sweep_approach_pick_04_frames/j0_+000.0.jpg
         505052 100%  115.31MB/s   00:00:00 (xfer#58, to-check=66/222)
j0_sweep/j0_sweep_approach_pick_04_frames/j0_+005.0.jpg
         513782 100%  115.83MB/s   00:00:00 (xfer#59, to-check=67/222)
j0_sweep/j0_sweep_approach_pick_04_frames/j0_+010.0.jpg
         516752 100%  105.37MB/s   00:00:00 (xfer#60, to-check=68/222)
j0_sweep/j0_sweep_approach_pick_04_frames/j0_-005.0.jpg
         510576 100%  118.59MB/s   00:00:00 (xfer#61, to-check=69/222)
j0_sweep/j0_sweep_approach_pick_04_frames/j0_-010.0.jpg
         512981 100%  113.06MB/s   00:00:00 (xfer#62, to-check=70/222)
j0_sweep/j0_sweep_approach_pick_05_frames/
j0_sweep/j0_sweep_approach_pick_05_frames/j0_-124.3.jpg
         516126 100%  108.13MB/s   00:00:00 (xfer#63, to-check=72/222)
j0_sweep/j0_sweep_approach_pick_05_frames/j0_-140.2.jpg
         553669 100%  107.02MB/s   00:00:00 (xfer#64, to-check=73/222)
j0_sweep/j0_sweep_approach_pick_05_frames/j0_-156.0.jpg
         575937 100%   91.54MB/s   00:00:00 (xfer#65, to-check=74/222)
j0_sweep/j0_sweep_approach_pick_06_frames/
j0_sweep/j0_sweep_approach_pick_06_frames/j0_-076.8.jpg
         575189 100%  119.09MB/s   00:00:00 (xfer#66, to-check=76/222)
j0_sweep/j0_sweep_approach_pick_06_frames/j0_-092.6.jpg
         564539 100%  111.28MB/s   00:00:00 (xfer#67, to-check=77/222)
j0_sweep/j0_sweep_approach_pick_06_frames/j0_-108.5.jpg
         593123 100%  126.77MB/s   00:00:00 (xfer#68, to-check=78/222)
j0_sweep/j0_sweep_approach_pick_06_frames/j0_-124.3.jpg
         595413 100%  112.42MB/s   00:00:00 (xfer#69, to-check=79/222)
j0_sweep/j0_sweep_approach_pick_06_frames/j0_-140.2.jpg
         588852 100%  112.83MB/s   00:00:00 (xfer#70, to-check=80/222)
j0_sweep/j0_sweep_approach_pick_06_frames/j0_-156.0.jpg
         585771 100%  115.49MB/s   00:00:00 (xfer#71, to-check=81/222)
j0_sweep/j0_sweep_approach_pick_07_frames/
j0_sweep/j0_sweep_approach_pick_07_frames/j0_+002.5.jpg
         521883 100%  115.77MB/s   00:00:00 (xfer#72, to-check=83/222)
j0_sweep/j0_sweep_approach_pick_07_frames/j0_+018.4.jpg
         531673 100%  118.74MB/s   00:00:00 (xfer#73, to-check=84/222)
j0_sweep/j0_sweep_approach_pick_07_frames/j0_+034.2.jpg
         538704 100%  111.61MB/s   00:00:00 (xfer#74, to-check=85/222)
j0_sweep/j0_sweep_approach_pick_07_frames/j0_+050.0.jpg
         549004 100%  117.23MB/s   00:00:00 (xfer#75, to-check=86/222)
j0_sweep/j0_sweep_approach_pick_07_frames/j0_+065.9.jpg
         553890 100%   94.45MB/s   00:00:00 (xfer#76, to-check=87/222)
j0_sweep/j0_sweep_approach_pick_07_frames/j0_+081.8.jpg
         562145 100%  118.12MB/s   00:00:00 (xfer#77, to-check=88/222)
j0_sweep/j0_sweep_approach_pick_07_frames/j0_+097.6.jpg
         576177 100%   87.40MB/s   00:00:00 (xfer#78, to-check=89/222)
j0_sweep/j0_sweep_approach_pick_07_frames/j0_+113.5.jpg
         592648 100%  131.56MB/s   00:00:00 (xfer#79, to-check=90/222)
j0_sweep/j0_sweep_approach_pick_07_frames/j0_+129.3.jpg
         593744 100%  116.36MB/s   00:00:00 (xfer#80, to-check=91/222)
j0_sweep/j0_sweep_approach_pick_07_frames/j0_+145.2.jpg
         588721 100%  115.76MB/s   00:00:00 (xfer#81, to-check=92/222)
j0_sweep/j0_sweep_approach_pick_07_frames/j0_-013.3.jpg
         530026 100%  117.31MB/s   00:00:00 (xfer#82, to-check=93/222)
j0_sweep/j0_sweep_approach_pick_07_frames/j0_-029.2.jpg
         542877 100%  114.60MB/s   00:00:00 (xfer#83, to-check=94/222)
j0_sweep/j0_sweep_approach_pick_07_frames/j0_-045.0.jpg
         546823 100%  118.33MB/s   00:00:00 (xfer#84, to-check=95/222)
j0_sweep/j0_sweep_approach_pick_07_frames/j0_-060.9.jpg
         560585 100%  110.66MB/s   00:00:00 (xfer#85, to-check=96/222)
j0_sweep/j0_sweep_approach_pick_08_frames/
j0_sweep/j0_sweep_approach_pick_08_frames/j0_+000.0.jpg
         522511 100%  117.28MB/s   00:00:00 (xfer#86, to-check=98/222)
j0_sweep/j0_sweep_approach_place_01_frames/
j0_sweep/j0_sweep_approach_place_02_frames/
j0_sweep/j0_sweep_approach_place_02_frames/j0_+004.5.jpg
         518544 100%  116.30MB/s   00:00:00 (xfer#87, to-check=101/222)
j0_sweep/j0_sweep_approach_place_02_frames/j0_+013.4.jpg
         523772 100%  119.13MB/s   00:00:00 (xfer#88, to-check=102/222)
j0_sweep/j0_sweep_approach_place_02_frames/j0_+022.4.jpg
         521956 100%  119.54MB/s   00:00:00 (xfer#89, to-check=103/222)
j0_sweep/j0_sweep_approach_place_02_frames/j0_+031.3.jpg
         521353 100%  122.95MB/s   00:00:00 (xfer#90, to-check=104/222)
j0_sweep/j0_sweep_approach_place_02_frames/j0_+040.3.jpg
         528734 100%  109.53MB/s   00:00:00 (xfer#91, to-check=105/222)
j0_sweep/j0_sweep_approach_place_02_frames/j0_+049.2.jpg
         534333 100%  114.30MB/s   00:00:00 (xfer#92, to-check=106/222)
j0_sweep/j0_sweep_approach_place_02_frames/j0_+058.2.jpg
         537059 100%  117.60MB/s   00:00:00 (xfer#93, to-check=107/222)
j0_sweep/j0_sweep_approach_place_02_frames/j0_+067.1.jpg
         560594 100%  119.61MB/s   00:00:00 (xfer#94, to-check=108/222)
j0_sweep/j0_sweep_approach_place_02_frames/j0_+076.1.jpg
         564307 100%  127.46MB/s   00:00:00 (xfer#95, to-check=109/222)
j0_sweep/j0_sweep_approach_place_02_frames/j0_+085.0.jpg
         572098 100%  124.71MB/s   00:00:00 (xfer#96, to-check=110/222)
j0_sweep/j0_sweep_approach_place_02_frames/j0_-004.5.jpg
         521541 100%  116.73MB/s   00:00:00 (xfer#97, to-check=111/222)
j0_sweep/j0_sweep_approach_place_02_frames/j0_-013.4.jpg
         531611 100%  121.96MB/s   00:00:00 (xfer#98, to-check=112/222)
j0_sweep/j0_sweep_approach_place_02_frames/j0_-022.4.jpg
         537873 100%  112.61MB/s   00:00:00 (xfer#99, to-check=113/222)
j0_sweep/j0_sweep_approach_place_02_frames/j0_-031.3.jpg
         541243 100%  115.50MB/s   00:00:00 (xfer#100, to-check=114/222)
j0_sweep/j0_sweep_approach_place_02_frames/j0_-040.3.jpg
         535780 100%  115.44MB/s   00:00:00 (xfer#101, to-check=115/222)
j0_sweep/j0_sweep_approach_place_02_frames/j0_-049.2.jpg
         544951 100%  122.83MB/s   00:00:00 (xfer#102, to-check=116/222)
j0_sweep/j0_sweep_approach_place_02_frames/j0_-058.2.jpg
         565990 100%  123.49MB/s   00:00:00 (xfer#103, to-check=117/222)
j0_sweep/j0_sweep_approach_place_02_frames/j0_-067.1.jpg
         570401 100%  118.77MB/s   00:00:00 (xfer#104, to-check=118/222)
j0_sweep/j0_sweep_approach_place_02_frames/j0_-076.1.jpg
         571347 100%  119.78MB/s   00:00:00 (xfer#105, to-check=119/222)
j0_sweep/j0_sweep_approach_place_02_frames/j0_-085.0.jpg
         573084 100%  116.51MB/s   00:00:00 (xfer#106, to-check=120/222)
j0_sweep/j0_sweep_approach_place_03_frames/
j0_sweep/j0_sweep_approach_place_03_frames/j0_-040.3.jpg
         530248 100%   99.08MB/s   00:00:00 (xfer#107, to-check=122/222)
j0_sweep/j0_sweep_approach_place_03_frames/j0_-049.2.jpg
         546405 100%  115.64MB/s   00:00:00 (xfer#108, to-check=123/222)
j0_sweep/j0_sweep_approach_place_03_frames/j0_-058.2.jpg
         553147 100%  118.23MB/s   00:00:00 (xfer#109, to-check=124/222)
j0_sweep/j0_sweep_approach_place_03_frames/j0_-067.1.jpg
         554830 100%  117.71MB/s   00:00:00 (xfer#110, to-check=125/222)
j0_sweep/j0_sweep_approach_place_03_frames/j0_-076.1.jpg
         555660 100%  114.08MB/s   00:00:00 (xfer#111, to-check=126/222)
j0_sweep/j0_sweep_approach_place_03_frames/j0_-085.0.jpg
         559505 100%  121.49MB/s   00:00:00 (xfer#112, to-check=127/222)
j0_sweep/j0_sweep_approach_place_04_frames/
j0_sweep/j0_sweep_approach_place_04_frames/j0_+004.5.jpg
         521791 100%  113.90MB/s   00:00:00 (xfer#113, to-check=129/222)
j0_sweep/j0_sweep_approach_place_04_frames/j0_+013.4.jpg
         523940 100%  108.64MB/s   00:00:00 (xfer#114, to-check=130/222)
j0_sweep/j0_sweep_approach_place_04_frames/j0_+022.4.jpg
         527038 100%   80.37MB/s   00:00:00 (xfer#115, to-check=131/222)
j0_sweep/j0_sweep_approach_place_04_frames/j0_+031.3.jpg
         526592 100%  117.75MB/s   00:00:00 (xfer#116, to-check=132/222)
j0_sweep/j0_sweep_approach_place_04_frames/j0_+040.3.jpg
         530026 100%  108.57MB/s   00:00:00 (xfer#117, to-check=133/222)
j0_sweep/j0_sweep_approach_place_04_frames/j0_+049.2.jpg
         540268 100%  110.09MB/s   00:00:00 (xfer#118, to-check=134/222)
j0_sweep/j0_sweep_approach_place_04_frames/j0_+058.2.jpg
         546636 100%  114.32MB/s   00:00:00 (xfer#119, to-check=135/222)
j0_sweep/j0_sweep_approach_place_04_frames/j0_+067.1.jpg
         548365 100%   73.17MB/s   00:00:00 (xfer#120, to-check=136/222)
j0_sweep/j0_sweep_approach_place_04_frames/j0_+076.1.jpg
         547450 100%   71.68MB/s   00:00:00 (xfer#121, to-check=137/222)
j0_sweep/j0_sweep_approach_place_04_frames/j0_+085.0.jpg
         557043 100%   68.25MB/s   00:00:00 (xfer#122, to-check=138/222)
j0_sweep/j0_sweep_approach_place_04_frames/j0_-004.5.jpg
         518226 100%   66.40MB/s   00:00:00 (xfer#123, to-check=139/222)
j0_sweep/j0_sweep_approach_place_04_frames/j0_-013.4.jpg
         526511 100%   72.53MB/s   00:00:00 (xfer#124, to-check=140/222)
j0_sweep/j0_sweep_approach_place_04_frames/j0_-022.4.jpg
         533290 100%   78.94MB/s   00:00:00 (xfer#125, to-check=141/222)
j0_sweep/j0_sweep_approach_place_04_frames/j0_-031.3.jpg
         537442 100%   77.82MB/s   00:00:00 (xfer#126, to-check=142/222)
j0_sweep/j0_sweep_approach_place_04_frames/j0_-040.3.jpg
         539855 100%   75.26MB/s   00:00:00 (xfer#127, to-check=143/222)
j0_sweep/j0_sweep_approach_place_04_frames/j0_-049.2.jpg
         535558 100%   68.10MB/s   00:00:00 (xfer#128, to-check=144/222)
j0_sweep/j0_sweep_approach_place_04_frames/j0_-058.2.jpg
         550641 100%   76.45MB/s   00:00:00 (xfer#129, to-check=145/222)
j0_sweep/j0_sweep_approach_place_04_frames/j0_-067.1.jpg
         555077 100%   79.22MB/s   00:00:00 (xfer#130, to-check=146/222)
j0_sweep/j0_sweep_approach_place_04_frames/j0_-076.1.jpg
         555490 100%   74.72MB/s   00:00:00 (xfer#131, to-check=147/222)
j0_sweep/j0_sweep_approach_place_04_frames/j0_-085.0.jpg
         552887 100%   80.78MB/s   00:00:00 (xfer#132, to-check=148/222)
j0_sweep/j0_sweep_pick_01_frames/
j0_sweep/j0_sweep_pick_02_frames/
j0_sweep/j0_sweep_pick_03_frames/
j0_sweep/j0_sweep_pick_04_frames/
j0_sweep/j0_sweep_pick_05_frames/
j0_sweep/j0_sweep_pick_06_frames/
j0_sweep/j0_sweep_pick_07_frames/
j0_sweep/j0_sweep_pick_08_frames/
j0_sweep/j0_sweep_pick_08_frames/j0_-037.0.jpg
         530112 100%   62.75MB/s   00:00:00 (xfer#133, to-check=157/222)
j0_sweep/j0_sweep_pick_09_frames/
j0_sweep/j0_sweep_pick_09_frames/j0_-000.1.jpg
         400603 100%   58.45MB/s   00:00:00 (xfer#134, to-check=159/222)
j0_sweep/j0_sweep_pick_10_frames/
j0_sweep/j0_sweep_pick_10_frames/j0_-000.1.jpg
         387037 100%   64.09MB/s   00:00:00 (xfer#135, to-check=161/222)
j0_sweep/j0_sweep_pick_11_frames/
j0_sweep/j0_sweep_pick_11_frames/j0_-000.1.jpg
         377273 100%   66.73MB/s   00:00:00 (xfer#136, to-check=163/222)
j0_sweep/j0_sweep_pick_12_frames/
j0_sweep/j0_sweep_pick_13_frames/
j0_sweep/j0_sweep_pick_13_frames/j0_-035.0.jpg
         464758 100%   70.54MB/s   00:00:00 (xfer#137, to-check=166/222)
j0_sweep/j0_sweep_pick_14_frames/
j0_sweep/j0_sweep_pick_15_frames/
j0_sweep/j0_sweep_pick_16_frames/
j0_sweep/j0_sweep_pick_17_frames/
j0_sweep/j0_sweep_pick_18_frames/
j0_sweep/j0_sweep_pick_18_frames/j0_-036.0.jpg
         530909 100%   61.38MB/s   00:00:00 (xfer#138, to-check=172/222)
j0_sweep/j0_sweep_pick_19_frames/
j0_sweep/j0_sweep_pick_19_frames/j0_+004.5.jpg
         497849 100%   67.25MB/s   00:00:00 (xfer#139, to-check=174/222)
j0_sweep/j0_sweep_pick_19_frames/j0_+013.4.jpg
         505795 100%   65.26MB/s   00:00:00 (xfer#140, to-check=175/222)
j0_sweep/j0_sweep_pick_19_frames/j0_+022.4.jpg
         508934 100%   66.84MB/s   00:00:00 (xfer#141, to-check=176/222)
j0_sweep/j0_sweep_pick_19_frames/j0_+031.4.jpg
         511026 100%  100.45MB/s   00:00:00 (xfer#142, to-check=177/222)
j0_sweep/j0_sweep_pick_19_frames/j0_+040.3.jpg
         513228 100%  108.03MB/s   00:00:00 (xfer#143, to-check=178/222)
j0_sweep/j0_sweep_pick_19_frames/j0_+049.2.jpg
         518742 100%  116.70MB/s   00:00:00 (xfer#144, to-check=179/222)
j0_sweep/j0_sweep_pick_19_frames/j0_+058.2.jpg
         521960 100%  121.62MB/s   00:00:00 (xfer#145, to-check=180/222)
j0_sweep/j0_sweep_pick_19_frames/j0_+067.2.jpg
         522415 100%   71.59MB/s   00:00:00 (xfer#146, to-check=181/222)
j0_sweep/j0_sweep_pick_19_frames/j0_-004.5.jpg
         498340 100%   80.14MB/s   00:00:00 (xfer#147, to-check=182/222)
j0_sweep/j0_sweep_pick_19_frames/j0_-013.4.jpg
         499733 100%   78.78MB/s   00:00:00 (xfer#148, to-check=183/222)
j0_sweep/j0_sweep_pick_19_frames/j0_-022.4.jpg
         505509 100%   70.14MB/s   00:00:00 (xfer#149, to-check=184/222)
j0_sweep/j0_sweep_pick_19_frames/j0_-031.3.jpg
         509026 100%   68.84MB/s   00:00:00 (xfer#150, to-check=185/222)
j0_sweep/j0_sweep_pick_19_frames/j0_-040.2.jpg
         497250 100%   55.11MB/s   00:00:00 (xfer#151, to-check=186/222)
j0_sweep/j0_sweep_pick_19_frames/j0_-049.2.jpg
         495055 100%  119.77MB/s   00:00:00 (xfer#152, to-check=187/222)
j0_sweep/j0_sweep_pick_19_frames/j0_-058.1.jpg
         515178 100%  121.43MB/s   00:00:00 (xfer#153, to-check=188/222)
j0_sweep/j0_sweep_pick_19_frames/j0_-067.1.jpg
         526769 100%  118.40MB/s   00:00:00 (xfer#154, to-check=189/222)
j0_sweep/j0_sweep_pick_19_frames/j0_-076.0.jpg
         518580 100%   73.91MB/s   00:00:00 (xfer#155, to-check=190/222)
j0_sweep/j0_sweep_pick_19_frames/j0_-085.0.jpg
         546480 100%   62.93MB/s   00:00:00 (xfer#156, to-check=191/222)
j0_sweep/j0_sweep_pick_20_frames/
j0_sweep/j0_sweep_pick_20_frames/j0_+076.1.jpg
         520680 100%   63.44MB/s   00:00:00 (xfer#157, to-check=193/222)
j0_sweep/j0_sweep_pick_simple_01_frames/
j0_sweep/j0_sweep_pick_simple_01_frames/j0_-058.2.jpg
         449060 100%   56.90MB/s   00:00:00 (xfer#158, to-check=195/222)
j0_sweep/j0_sweep_pick_simple_01_frames/j0_-067.1.jpg
         448850 100%   56.97MB/s   00:00:00 (xfer#159, to-check=196/222)
j0_sweep/j0_sweep_pick_simple_01_frames/j0_-076.1.jpg
         449055 100%   36.87MB/s   00:00:00 (xfer#160, to-check=197/222)
j0_sweep/j0_sweep_pick_simple_01_frames/j0_-085.0.jpg
         448898 100%   93.70MB/s   00:00:00 (xfer#161, to-check=198/222)
j0_sweep/j0_sweep_pick_simple_02_frames/
j0_sweep/j0_sweep_pick_simple_02_frames/j0_+004.5.jpg
         466212 100%  104.12MB/s   00:00:00 (xfer#162, to-check=200/222)
j0_sweep/j0_sweep_pick_simple_02_frames/j0_+013.4.jpg
         466080 100%  106.24MB/s   00:00:00 (xfer#163, to-check=201/222)
j0_sweep/j0_sweep_pick_simple_02_frames/j0_+022.4.jpg
         466801 100%  115.30MB/s   00:00:00 (xfer#164, to-check=202/222)
j0_sweep/j0_sweep_pick_simple_02_frames/j0_+031.3.jpg
         471973 100%   73.02MB/s   00:00:00 (xfer#165, to-check=203/222)
j0_sweep/j0_sweep_pick_simple_02_frames/j0_+040.3.jpg
         465628 100%  108.23MB/s   00:00:00 (xfer#166, to-check=204/222)
j0_sweep/j0_sweep_pick_simple_02_frames/j0_+049.2.jpg
         464771 100%   70.59MB/s   00:00:00 (xfer#167, to-check=205/222)
j0_sweep/j0_sweep_pick_simple_02_frames/j0_+058.2.jpg
         465543 100%   74.63MB/s   00:00:00 (xfer#168, to-check=206/222)
j0_sweep/j0_sweep_pick_simple_02_frames/j0_+067.1.jpg
         465341 100%   61.26MB/s   00:00:00 (xfer#169, to-check=207/222)
j0_sweep/j0_sweep_pick_simple_02_frames/j0_-004.5.jpg
         466572 100%   38.15MB/s   00:00:00 (xfer#170, to-check=208/222)
j0_sweep/j0_sweep_pick_simple_02_frames/j0_-013.4.jpg
         471516 100%  117.68MB/s   00:00:00 (xfer#171, to-check=209/222)
j0_sweep/j0_sweep_pick_simple_02_frames/j0_-022.4.jpg
         472916 100%  117.63MB/s   00:00:00 (xfer#172, to-check=210/222)
j0_sweep/j0_sweep_pick_simple_02_frames/j0_-031.3.jpg
         466449 100%  103.55MB/s   00:00:00 (xfer#173, to-check=211/222)
j0_sweep/j0_sweep_pick_simple_02_frames/j0_-040.3.jpg
         466442 100%  104.89MB/s   00:00:00 (xfer#174, to-check=212/222)
j0_sweep/j0_sweep_pick_simple_02_frames/j0_-049.2.jpg
         472920 100%  103.16MB/s   00:00:00 (xfer#175, to-check=213/222)
j0_sweep/j0_sweep_pick_simple_02_frames/j0_-058.2.jpg
         465976 100%  118.06MB/s   00:00:00 (xfer#176, to-check=214/222)
j0_sweep/j0_sweep_pick_simple_02_frames/j0_-067.1.jpg
         465122 100%   60.26MB/s   00:00:00 (xfer#177, to-check=215/222)
j0_sweep/j0_sweep_pick_simple_02_frames/j0_-076.1.jpg
         465768 100%   58.83MB/s   00:00:00 (xfer#178, to-check=216/222)
j0_sweep/j0_sweep_pick_simple_02_frames/j0_-085.0.jpg
         455622 100%   61.48MB/s   00:00:00 (xfer#179, to-check=217/222)
j0_sweep/j0_sweep_place_01_frames/
j0_sweep/j0_sweep_place_01_frames/j0_+004.5.jpg
         537491 100%   58.27MB/s   00:00:00 (xfer#180, to-check=219/222)
j0_sweep/j0_sweep_place_02_frames/
j0_sweep/j0_sweep_place_02_frames/j0_-085.0.jpg
         571114 100%   66.14MB/s   00:00:00 (xfer#181, to-check=221/222)

sent 91122895 bytes  received 4248 bytes  76059713 bytes/sec
total size is 91089672  speedup is 1.00

コピーが完全かどうかは、サイズではなくファイル数で判定する。

du -sh ~/r2r2r-scripts/dynamic_tracking_limits/logs
du -sh "/Volumes/KIOXIA/r2r2r-data/archive/mecharm_dynamic_tracking/logs"
find ~/r2r2r-scripts/dynamic_tracking_limits/logs -type f | wc -l
find "/Volumes/KIOXIA/r2r2r-data/archive/mecharm_dynamic_tracking/logs" -type f | wc -l
 87M	/Users/shimazueiichi/r2r2r-scripts/dynamic_tracking_limits/logs
164M	/Volumes/KIOXIA/r2r2r-data/archive/mecharm_dynamic_tracking/logs
     181
     181

ファイル数は 181 個で一致。コピーは完全だ。サイズが 87MB と 164MB でずれているのは、exFAT のブロックサイズ(割り当て単位)が APFS より大きく、小さいファイルでも一定サイズのブロックを丸ごと使うため。JSON や小さい JPG が大量にあると見かけのサイズが膨らむ。中身のデータは同一で、ファイル数の一致が信頼できる判断基準になる。rsync の末尾も total size 91089672 speedup 1.00 で全ファイル転送済みを示している。

何が残ったか

データを生む前に、データの定位置を決めた。コードは Mac で git、生成物は SSD。学習・録画スクリプトは SSD のマウントを確認してから動く。前シリーズの実機ログは archive に退避して、新シリーズのデータと混ざらない場所に置いた。

模倣学習は、回し始めるとデータが指数的に増える。テレオペのエピソード、録画、チェックポイント。そのとき置き場所が決まっていなければ、半年後に同じディスク逼迫を繰り返すことになる。今回の空き容量の逼迫は、その予行演習でもあった。器を先に用意してから、中身を入れていく。