ROS2 foxy에서 Gazebo 설치

mseokq23·2025년 1월 15일
0

Ubuntu on WSL

목록 보기
6/11

Ubuntu 20.04에서는 기본 리포지토리를 통해 Gazebo 11 버전을 주로 사용.
ROS 2 Foxy와도 호환성이 좋음.

  1. Gazebo 공식 리포지토리 등록(선택사항)
    일반적으로 Ubuntu 기본 저장소에도 gazebo11이 있지만, 최신 패치가 반영된 버전을 사용하고 싶다면 OSRF 저장소를 직접 추가하는 방법은 아래와 같다:
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
  1. Gazebo 및 ROS 2 연동 패키지 설치
# 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)의 방화벽을 개인/공용 모두 허용한다.

  • Windows용 X 서버 설치 및 실행
    VcXsrv 설치 후 실행(디스플레이: 0, no access control , 위 그림대로 진행).
  • WSL2(Ubuntu) 쪽 환경변수 설정
    DISPLAY 변수에 Windows IP:디스플레이.스크린 정보를 설정해야기에,

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

이러면 잘될것이다.

0개의 댓글