2025年8月25日 星期一

gzserver run test

 

先用「最小化、無 GUI、靜音、軟體渲染」把 gzserver 跑起來

在同一個終端(很重要:先 source 你的 ROS2 與工作區):

# 1) 建議不要用 root,改回 ubuntu 使用者(root 的環境變數常不完整) # 2) 關閉 OpenAL 聲音,避免 ALSA 錯誤造成崩潰 export ALSOFT_DRIVERS=null # 3) 強制軟體渲染,避免驅動/GLX 問題(即使 gzserver 通常不需要,也更保險) export LIBGL_ALWAYS_SOFTWARE=1 export GALLIUM_DRIVER=llvmpipe export LIBGL_DRI3_DISABLE=1 # 4) 直接手動起 gzserver(不開 gzclient) gzserver --verbose -s libgazebo_ros_init.so -s libgazebo_ros_factory.so -s libgazebo_ros_force_system.so

如果這一步仍然「立刻崩潰」,請把終端最後 30 行貼上來;多半是外掛載入不到音效/GLX造成。
常見原因:用 root 執行、沒有 ros-humble-gazebo-ros-pkgs、或沒有正確 source /opt/ros/humble/setup.bash 與你工作區的 install/setup.bash

檢查外掛是否存在

# 應該能找到這些檔(實際路徑可能不同) dpkg -L ros-humble-gazebo-ros-pkgs | grep -E 'libgazebo_ros_(init|factory|force_system)\.so'

若找不到,請安裝:

sudo apt-get update sudo apt-get install -y ros-humble-gazebo-ros-pkgs

-file 方式 spawn(避開 topic 依賴)

一旦 gzserver --verbose ... 正常在上一個終端跑著,開另一個終端:

# 同樣先 source ROS2 與工作區 xacro /path/to/twowheel.urdf.xacro -o /tmp/twowheel.urdf ros2 run gazebo_ros spawn_entity.py -entity twowheel_amr -file /tmp/twowheel.urdf

成功會看到:

Spawn Entity started ... [INFO] SpawnEntity: Successfully spawned entity [twowheel_amr]





沒有留言:

張貼留言