![[로보틱스] Windows에 ROS 및 Gazebo Sim 개발 환경 세팅](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2FcaERST%2FbtsQknw7rBh%2FAAAAAAAAAAAAAAAAAAAAABaVru5kkuFS3Gu_wh8X1yaRC-375KCSyL9RkTfDhrs4%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1759244399%26allow_ip%3D%26allow_referer%3D%26signature%3DXqqZUTY1lob6Y14MvZhZH%252FKttFA%253D)
이 글은 로봇 시뮬레이팅을 위해 윈도우에 ROS와 Gazebo Sim을 위한 개발 환경 세팅을 위한 글입니다.
⚙️ 개발 환경
이번 글에서 사용할 버전은 다음과 같다. 이번 개발 환경은 Ubuntu의 가장 최신 LTS 버전인 24.04에서 사용할 수 있다.
- OS : Windows11 WSL2 Ubuntu 24.04 (LTS)
- ROS2 : Jazzy
- Gazebo : Harmonic (LTS)
아래 세팅 과정은 ROS2와 Gazebo의 공식 문서를 참고하여 정리하였다.
Binary Installation on Ubuntu — Gazebo harmonic documentation
Binary Installation on Ubuntu — Gazebo harmonic documentation
Binary Installation on Ubuntu Harmonic binaries are provided for Ubuntu Jammy (22.04) and Ubuntu Noble (24.04). The Harmonic binaries are hosted in the packages.osrfoundation.org repository. To install all of them, the metapackage gz-harmonic can be instal
gazebosim.org
Ubuntu (deb packages) — ROS 2 Documentation: Jazzy documentation
Ubuntu (deb packages) — ROS 2 Documentation: Jazzy documentation
You're reading the documentation for an older, but still supported, version of ROS 2. For information on the latest version, please have a look at Kilted. Ubuntu (deb packages) Table of Contents Deb packages for ROS 2 Jazzy Jalisco are currently available
docs.ros.org
🖥️ Ubuntu 24.04 설치
🛠️ WSL 활성화
WSL은 Windows Subsystem for Linux의 약자로, Windows 운영 체제 내에서 네이티브 Linux 환경을 실행할 수 있도록 해주는 기능이다. 별도의 가상 머신이나 듀얼 부팅 없이 Linux를 이용하여 개발 환경을 세팅하고 작업을 진행할 수 있다.
Windows에서 ROS와 Gazebo Sim을 사용하기 위해서는 WSL을 사용해야 한다.
(Windows에서도 ROS와 Gazebo Sim 설치가 가능하긴 하지만, 아직 실험용 버전이기 때문에 사용할 수 있는 기능이 제한적이며 설치 및 제약에 어려움이 많은 상황이다. 도전했다가 실패...하고 WSL로 돌아왔다...)
WSL 활성화를 위해서는 제어판 → 프로그램 → Windows 기능 켜기/끄기로 이동하여 아래 두 개의 기능을 활성화한다.
- Hyper-V
- Linux용 Windows 하위 시스템
활성화 한 후, PC 재부팅을 진행한다. (만약 활성화되어 있었다면, 재부팅은 생략해도 된다.)
🛠️ Ubuntu 24.04 설치
재부팅이 완료되면, PowerShell을 관리자 권한으로 실행한다. (혹은 pwsh를 관리자 권한으로 실행한다.)
그리고 아래 명령어를 입력해 WSL을 실행하고 Linux 배포판을 설치하는 데 필요한 기능을 활성화함과 동시에 Ubuntu 24.04 LTS 버전을 설치한다.
wsl --install -d Ubuntu-24.04
설치가 완료되면, 사용자 계정을 설정한다. 먼저 계정 이름을 입력하고, 설정할 비밀번호를 설정한다.
사용자 계정 설정까지 완료되면, 방금 설정한 사용자 계정으로 Ubuntu로 접속된 것을 확인할 수 있다.
여기까지 설정이 완료되었으면, 이제 PowerShell을 종료하고 터미널을 실행하여 Ubuntu 24.04을 열고 이후 과정을 진행한다.
🖥️ ROS2 및 Gazebo 설치
🛠️ ROS2 Jazzy 설치
방금 설치한 Ubuntu 24.04에 ROS2 Jazzy 버전을 설치한다.
먼저 sudo apt update 명령어를 실행해 패키지 서버로부터 패키지 목록을 갱신한다.
sudo apt update
그리고 아래 명령어를 통해 새로운 소프트웨어 저장소를 추가한다.
sudo apt install software-properties-common
sudo add-apt-repository universe
- software-properties-common : 소프트웨어 저장소(Repository) 관련 기능을 제공하는 패키지
- add-apt-repository : 새로운 소프트웨어 저장소를 시스템에 추가하는 명령어
- universe : 우분투에서 제공하는 대표적인 소프트웨어 저장소로, 커뮤니티에서 관리하는 오픈소스 패키지
새로운 저장소 추가가 완료되면, sudo apt update를 한 번 더 실행해 패키지 목록을 갱신한다.
sudo apt update
이후, 아래 명령어들을 한 줄씩 입력해 ROS2 저장소의 패키지 목록을 반영한다.
sudo apt install curl -y
export ROS_APT_SOURCE_VERSION=$(curl -s https://api.github.com/repos/ros-infrastructure/ros-apt-source/releases/latest | grep -F "tag_name" | awk -F\" '{print $4}')
curl -L -o /tmp/ros2-apt-source.deb "https://github.com/ros-infrastructure/ros-apt-source/releases/download/${ROS_APT_SOURCE_VERSION}/ros2-apt-source_${ROS_APT_SOURCE_VERSION}.$(. /etc/os-release && echo $VERSION_CODENAME)_all.deb"
sudo dpkg -i /tmp/ros2-apt-source.deb
sudo apt update
그리고 ROS2 Jazzy 버전을 설치한다. (용량은 대략 3GB 정도 된다.)
sudo apt install ros-jazzy-desktop
그리고 추가로 ros-dev-tools를 설치한다. 단순히 ROS를 실행한다면 설치하지 않아도 괜찮지만, 직접 개발을 하기 위해서는 필수로 설치해야 한다.
sudo apt update && sudo apt install ros-dev-tools
✅ ROS2 테스트
ROS가 정상적으로 설치되었는지 확인하는 과정이다. Ubuntu 터미널을 하나 추가로 열어서 총 2개의 터미널을 열어준다.
- A 터미널: Talker를 실행할 터미널
- B 터미널: Listener를 실행할 터미널
먼저 A 터미널에 아래 두 명령을 실행한다. ros2 명령을 사용하기 위해 setup 파일을 실행하고, C++로 작성된 demo_nodes.cpp 파일을 실행한다.
source /opt/ros/jazzy/setup.bash
ros2 run demo_nodes_cpp talker
그리고 B 터미널에 아래 두 명령을 실행한다. 역시나 ros2 명령을 사용하기 위해 setup 파일을 실행하고, Python으로 작성된 demo_nodes.py 파일을 실행한다.
source /opt/ros/jazzy/setup.bash
ros2 run demo_nodes_py listener
그럼 아래와 같이 하나의 터미널에서는 Publishing이 일어나고, 다른 하나에서는 Subscribe를 통해 받아오는 것을 알 수 있다.
이렇게 ros2 명령어가 정상적으로 동작하면 설치가 잘 되었다고 할 수 있다. 정상적으로 설치가 완료되었으면 다음으로 넘어간다.
🛠️ Gazebo sim 설치
이제 Gazebo Harmonic을 설치한다. 아래 명령어를 순서대로 실행해서 OSRF(Open Source Robotics Foundation)의 패키지 서명 키(GPG key)를 다운받아 저장한다.
sudo apt-get update
sudo apt-get install curl lsb-release gnupg
sudo curl https://packages.osrfoundation.org/gazebo.gpg --output /usr/share/keyrings/pkgs-osrf-archive-keyring.gpg
그리고 아래 명령어를 실행해서 OSRF의 Gazebo 패키지 저장소를 APT 소스 리스트에 등록하고, 패키지 목록을 갱신한다.
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/pkgs-osrf-archive-keyring.gpg] https://packages.osrfoundation.org/gazebo/ubuntu-stable $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/gazebo-stable.list > /dev/null
sudo apt-get update
그리고 아래 명령을 실행해서 Gazebo Harmonic을 설치한다.
sudo apt-get install gz-harmonic
✅ Gazebo Sim 테스트
설치를 모두 완료했다면, 아래 명령어로 Gazebo Sim이 정상적으로 실행되는지 확인한다.
gz sim shapes.sdf
아래와 같은 화면이 뜨면 성공이다.
'🖥️ Dev > 로보틱스' 카테고리의 다른 글
[로보틱스] Python으로 ROS Topic Subscribe & Publish (0) | 2025.09.09 |
---|---|
[로보틱스] TurtleSim을 이용한 ROS2 기본 개념과 명령어 (Node, Service, Topic, Action) (0) | 2025.09.07 |
[로보틱스] ROS Domain ID 개념 정리 (0) | 2025.09.07 |
[로보틱스] ROS2 & Gazebo 개발을 위한 환경 세팅 (0) | 2025.09.07 |
since 2025.01.27. ~ 개발자를 향해....🔥