1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

GPU なし headless 環境で Gazebo Harmonic の RTF を改善する(0.0015 → 0.978)

1
Posted at

前提

SkyWay x ROS 2 クックブックを参考に、Azure VM(GPU なし)上で Gazebo Harmonic を headless で起動し、TurtleBot3 のカメラ映像を SkyWay 経由でブラウザに配信するデモを構築中に遭遇した問題です。

環境

  • Gazebo Harmonic(headless: -s フラグ)
  • ROS 2 Jazzy
  • Azure VM Standard_D4s_v3(4 vCPU / GPU なし)
  • Docker コンテナ上で実行
  • ロボットモデル: TurtleBot3 Burger(デフォルト)

現象

Gazebo を headless で起動したところ、Real-Time Factor(RTF)が 0.0015(実時間の 0.15%)。カメラトピックにメッセージが流れず、映像が届かない。

gz stats
# real_time_factor: 0.0015

試したこと: VM スケールアップ

VM を D4s_v3(4 vCPU)→ D16s_v3(16 vCPU)にスケールアップ。

結果: RTF 0.0015 → 0.0023。ほぼ変わらず。

原因

TurtleBot3 デフォルトモデルの wideanglecamera センサー。このカメラタイプは内部でキューブマップ(6 面レンダリング)を行うため、GPU なしの CPU-only 環境では処理が追いつかない。Ogre2 のレンダリングは GPU 前提の設計なので、CPU コアを増やしても効果が薄い。

解決

TurtleBot3 の model.sdf をコピーして軽量版を作成し、volume mount でデフォルトモデルを差し替えた。主な変更点はカメラセンサーの種類とフレームレートの削減。

パラメータ デフォルト 軽量版
カメラタイプ wideanglecamera(キューブマップ) camera(通常レンダリング)
解像度 320x240 160x120
フレームレート 30 FPS 1 Hz
LiDAR 5 Hz 1 Hz
IMU 200 Hz 50 Hz
# docker-compose.yml での差し替え
volumes:
  - ./models/turtlebot3_burger_cam/model.sdf:/root/turtlebot3_ws/install/turtlebot3_gazebo/share/turtlebot3_gazebo/models/turtlebot3_burger_cam/model.sdf:ro

結果: RTF 0.0015 → 0.978。VM スケールアップより 600 倍以上の効果。

まとめ

GPU なしの headless 環境で Gazebo を動かすなら、まず疑うべきはセンサーの重さ。wideanglecameracamera への変更とフレームレート・解像度の削減が最も効果的だった。

参考

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?