Ubuntu 20.04에서는 기본 리포지토리를 통해 Gazebo 11 버전을 주로 사용.
ROS 2 Foxy와도 호환성이 좋음.
sudo sh -c 'echo "deb http://packages.osrfoundation.org/gazebo/ubuntu-stable $(lsb_release -cs) main" > /etc/apt/sources.list.d/gazebo-stable.list'
wget https://packages.osrfoundation.org/gazebo.key -O - | sudo apt-key add -
sudo apt update
# Gazebo 11 설치
sudo apt install -y gazebo11
# ROS 2 Foxy용 Gazebo 플러그인(ROS-ified) 패키지
sudo apt install -y ros-foxy-gazebo-ros-pkgs
설치가 완료된 뒤, Gazebo 단독 구동가능
Gazebo # 실행 명령어
3.. 만약 GUI가 뜨지 않는다면?
WSL2에서 GUI(Gazebo, RViz 등) 사용하기
WSL2는 기본적으로 GUI를 직접 출력하지 못하므로, Windows 호스트에서 X 서버 프로그램(VcXsrv)을 실행해둔 뒤, WSL2 쪽에서 DISPLAY 환경 변수를 설정해야 합니다.
XLaunch 설정
- 아래 그림을 보며 따라 설정한다
- 방화벽은 개인, 공용 네트워크 둘다 꼭 체크한다!

- 만약 방화벽 문제로 gazebo가 뜨지 않으면 아래와 같이 '방화벽 및 네트워크 보호' -> '방화벽에서 앱 허용'을 누른 후 VcXsrv(XLaunch)의 방화벽을 개인/공용 모두 허용한다.

ip addr 혹은 ipconfig(Windows PowerShell) 등을 통해 WSL2가 할당받은 IP를 확인하거나, export DISPLAY=$(ip route show default | awk '/default/ {print $3}'):0.0 처럼 설정할 수 있다.
아래 명령어 우분투에서 입력.
echo "export DISPLAY=\$(/sbin/ip route | awk '/default/ { print \$3 }'):0.0" >> ~/.bashrc
echo "export LIBGL_ALWAYS_INDIRECT=1" >> ~/.bashrc
source ~/.bashrc
이러면 잘될것이다.