최근 로봇 개발 분야에서 ROS2가 표준으로 자리 잡으면서 많은 개발자가 ROS2를 배우기 시작했습니다. ROS2는 ROS1의 한계를 극복하며 실시간성과 확장성을 강조한 플랫폼으로, 빠르게 현업에 적용되고 있습니다. 이번 글에서는 ROS2 최신 버전인 Jazzy Jalisco를 Ubuntu 24.04 환경에 설치하는 방법과 간단한 노드를 실행하는 방법을 단계별로 소개합니다.
Ubuntu 환경에서 ROS2 설치하기
다음 단계를 따라 Ubuntu 24.04에 ROS2를 설치합니다.
1. 시스템 Locale 설정
시스템의 Locale이 UTF-8을 지원하는지 확인합니다.
locale # UTF-8 확인
sudo apt update && sudo apt install locales
sudo locale-gen en_US en_US.UTF-8
sudo update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8
export LANG=en_US.UTF-8
Locale 설정을 완료한 후 다시 확인합니다.
locale
2. ROS2 저장소 설정
Ubuntu의 Universe 저장소와 ROS2의 공식 저장소를 추가합니다.
sudo apt install software-properties-common
sudo add-apt-repository universe
sudo apt update && sudo apt install curl -y
sudo curl -sSL https://raw.githubusercontent.com/ros/rosdistro/master/ros.key -o /usr/share/keyrings/ros-archive-keyring.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/ros-archive-keyring.gpg] http://packages.ros.org/ros2/ubuntu $(. /etc/os-release && echo $UBUNTU_CODENAME) main" | sudo tee /etc/apt/sources.list.d/ros2.list > /dev/null
3. ROS2 설치
데스크톱 환경을 갖춘 전체 패키지를 설치하려면 아래 명령을 사용합니다.
sudo apt update
sudo apt upgrade
sudo apt install ros-jazzy-desktop
(만약 GUI 도구가 필요 없는 최소 설치를 원하면 ros-jazzy-ros-base를 설치할 수 있습니다.)
4. 환경 설정
ROS2 설치가 완료되면 환경 설정을 진행합니다.
source /opt/ros/jazzy/setup.bash
매번 이 명령을 입력하지 않고 자동으로 환경 설정을 적용하려면, 다음 명령을 실행하여 설정 파일에 추가합니다.
echo "source /opt/ros/jazzy/setup.bash" >> ~/.bashrc
source ~/.bashrc
ROS2 기본 노드 실행하기
ROS2 설치 후 정상적으로 작동하는지 확인하기 위해 간단한 예제를 실행해 보겠습니다.
터미널 1: C++ Talker 실행
첫 번째 터미널에서 다음을 실행합니다.
source /opt/ros/jazzy/setup.bash
ros2 run demo_nodes_cpp talker
터미널 2: Python Listener 실행
두 번째 터미널을 열고 Listener 노드를 실행합니다.
source /opt/ros/jazzy/setup.bash
ros2 run demo_nodes_py listener
정상적으로 동작하면 터미널 1에서 메시지를 발행하고, 터미널 2에서 해당 메시지를 수신하는 것을 볼 수 있습니다. 이는 ROS2의 기본 통신 구조인 Publish-Subscribe 모델이 성공적으로 작동함을 의미합니다.
다음 단계는 무엇인가요?
ROS2 설치와 기본 노드 실행을 마쳤습니다. 이제 본격적으로 나만의 로봇 프로젝트를 만들어 볼 차례입니다. ROS2를 활용해 어떤 프로젝트를 만들고 싶으신가요? 아이디어를 댓글로 공유해 주세요! 다음 시간에는 ROS2 워크스페이스와 사용자 정의 패키지 작성법을 소개하겠습니다.
'망각의 개발자' 카테고리의 다른 글
📌 챗GPT로 나의 무의식을 파헤친다고? 화제의 '자기분석 프롬프트' 실험! 📌 (0) | 2025.05.06 |
---|---|
ROS2의 핵심 개념, 노드부터 파라메터까지 완벽 이해하기 (0) | 2025.05.05 |
ROS2, 왜 지금 주목받고 있을까? 로봇 개발 혁신의 새로운 표준 (5) | 2025.05.03 |
[Python] FastAPI, Flask, Django 간단 비교 (2) | 2025.05.02 |
[보안] MQTT Broker - Mosquitto ACL 설정 (1) | 2025.05.01 |