2025年9月4日 星期四

ROS2 for gzserver , gzclient

 下面是 Gazebo Classicgzserver / gzclient 常用指令精簡表(不含新一代 gz sim):

gzserver(物理模擬伺服器)

  • 啟動空世界(純伺服器,無 GUI)
    gzserver /usr/share/gazebo-11/worlds/empty.world

  • 詳細輸出(除錯)
    gzserver --verbose <world.sdf|world>

  • 開始時暫停
    gzserver --pause <world>

  • 設定隨機種子(重現性)
    gzserver --seed <int> <world>

  • 只跑 N 個 step 後退出(批次/測試)
    gzserver --iters <N> <world>

  • 載入「伺服器插件」(e.g., ROS 工廠/控制)
    gzserver -s libgazebo_ros_factory.so <world>
    gzserver -s libgazebo_ros_init.so <world>

  • 顯示說明 / 版本
    gzserver --help gzserver --version

gzclient(圖形介面客戶端)

  • 連線到已啟動的 gzserver
    gzclient

  • 詳細輸出
    gzclient --verbose

  • 載入「GUI 插件」(面板/工具)
    gzclient -g libgazebo_gui_overlay.so

  • 說明 / 版本
    gzclient --help gzclient --version

常見啟動樣板

  • 伺服器與客戶端分開:

    export ALSOFT_DRIVERS=null # 避免 ALSA 音效錯誤(可選) gzserver /usr/share/gazebo-11/worlds/empty.world --verbose & gzclient

  • gzserver --verbose empty.world \
      -s libgazebo_ros_init.so \
      -s libgazebo_ros_factory.so \
      -s libgazebo_ros_force_system.so
         gzclient 

         # 直接用檔案(不用 topic)spawn:
         ros2 run gazebo_ros spawn_entity.py -entity (twowheel_amr) -file  (twowheel.urdf)

  • 直接用 wrapper 一起開(server+client):
    gazebo --verbose /usr/share/gazebo-11/worlds/empty.world

  • 與 ROS 2 整合(Classic):

    # 允許從 /robot_description 動態生成模型 gzserver -s libgazebo_ros_factory.so /usr/share/gazebo-11/worlds/empty.world & ros2 run gazebo_ros spawn_entity.py -entity my_bot -topic /robot_description

常用環境變數(Classic)

  • GAZEBO_RESOURCE_PATH:worlds、materials 等資源搜尋路徑

  • GAZEBO_MODEL_PATH:模型搜尋路徑(.sdf/.config 的目錄)

  • ALSOFT_DRIVERS=null:關閉 OpenAL 音效(無音效卡時很有用)


 

沒有留言:

張貼留言