Robotics
RealSense D4xx の USB リンク速度確認と帯域の目安
lsusb -t / sysfs speed で 480 Mbps (USB 2.0) か 5000 Mbps (USB 3) かを確かめる方法、プロファイル別の必要帯域、USB 2.0 で起きる症状 (フレーム落ち・VIDIOC_QBUF 失敗・ジッタ)
要点: D4xx は USB 3 (5 Gbps) 前提。USB 2.0 (480 Mbps) で繋がると 640x480@15 の color+depth (約 18 MB/s) が上限近くになり、@30 や 848x480 は破綻する。cat /sys/bus/usb/devices/<dev>/speed が 480 なら配線 (ケーブル/ポート) が USB 2.0 になっている。
確認
lsusb -t # Class=Video, Driver=uvcvideo の行の末尾が 480M か 5000M か
for d in /sys/bus/usb/devices/*; do
grep -q 8086 $d/idVendor 2>/dev/null && echo "$(basename $d) $(cat $d/product) $(cat $d/speed) Mbps"
done
journalctl -k --since -2h | grep -iE "usb.*(disconnect|reset|bandwidth)" # 再接続・帯域不足の記録USB 3 ハブは 2.0 側と 3.0 側の 2 デバイスとして見える。3.0 側 (10000M / 5000M のハブ) の下にカメラが無く、2.0 側 (480M) の下に居るなら、カメラ〜ハブ間のケーブルかポートが 2.0 になっている。
必要帯域 (無圧縮、非同期転送のオーバーヘッド前)
| プロファイル | color YUYV (2 B/px) | depth Z16 (2 B/px) | 合計 |
|---|---|---|---|
| 640x480 @15 | 9.2 MB/s | 9.2 MB/s | 18.4 MB/s (147 Mbps) |
| 640x480 @30 | 18.4 MB/s | 18.4 MB/s | 36.9 MB/s (295 Mbps) |
| 848x480 @30 | 24.4 MB/s | 24.4 MB/s | 48.8 MB/s (391 Mbps) |
| 1280x720 @30 | 55 MB/s | 55 MB/s | 110 MB/s (885 Mbps) |
USB 2.0 の実効は 35〜40 MB/s (280〜320 Mbps)。640x480@30 で上限、848x480@30 は不可。USB 3.0 (5 Gbps、実効 300〜400 MB/s) なら全プロファイルが入る。
USB 2.0 で出る症状
- 起動時
VIDIOC_QBUF失敗、ストリームが開かない (高プロファイル) - フレーム間隔のジッタ (公称 66 ms に対し 9〜235 ms)、撮像→受信遅延が 0.1〜0.6 s でばらつく
- 頻繫な
USB disconnect(バスパワーのハブで電力不足が重なると増える。D455 は最大 約 700 mA)
対処
- USB 3.x データ対応ケーブル (SuperSpeed 線あり) を使う。USB-C ケーブルは充電専用 (2.0) が多いので "USB 3.x Gen1/2" 明記のもの
- USB 3 ポート (青、SS 表記) またはセルフパワーの USB 3 ハブに接続
- 接続後に
speedが 5000 になっているか再確認
最終更新: