대상: Ubuntu 22.04(Jammy) 환경에서 ROS2 Humble을 처음 설치하고,
ros2 run demo_nodes_cpp talker/listener정도까지 실행해 보고 싶은 개발자
환경: Ubuntu 22.04 Desktop, sudo 권한, 기본적인 터미널 사용 가능
ROS2 Humble은 Ubuntu 22.04 LTS를 위한 대표적인 ROS2 배포판이다.
기존에 ROS1(Melodic/Noetic) 경험이 있든 없든, 앞으로는 ROS2가 메인 흐름이기 때문에
처음부터 ROS2를 기준으로 환경을 갖춰두는 것이 중요하다.
이 글에서는 Ubuntu 22.04 + ROS2 Humble 기준으로
- 지역/로케일 설정
- ROS2 패키지 저장소/키 설정
ros-humble-desktop설치- 환경 변수 설정 (
~/.bashrc) - 데모 노드(talker/listener)로 설치 확인
- Notion/공부 로그에 어떤 식으로 남기면 좋은지
까지 한 번에 정리한다.
1. 사전 확인 – Ubuntu 버전과 로케일
먼저 우분투 버전이 22.04(Jammy)인지 확인하자.
lsb_release -a
대략 이런 출력이면 된다.
Distributor ID: Ubuntu
Description: Ubuntu 22.04.3 LTS
Release: 22.04
Codename: jammy
1-1. 로케일 설정 (권장)
ROS2 공식 문서에서는 en_US.UTF-8 로케일을 기준으로 설명하는 경우가 많다.
이미 설정되어 있다면 건너뛰어도 되지만, 아래 명령으로 한 번 맞춰두자.
sudo apt update
sudo apt install -y 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
터미널을 다시 열면 LANG가 en_US.UTF-8로 설정된 것을 볼 수 있다.
2. 필수 패키지 및 저장소 준비
2-1. Universe 저장소 활성화
ROS2 패키지는 universe 저장소에 의존하는 경우가 있으므로, 아래 한 번만 실행한다.
sudo apt install -y software-properties-common
sudo add-apt-repository universe
2-2. 기본 도구 설치
sudo apt update
sudo apt install -y curl gnupg2 lsb-release
3. ROS2 패키지 저장소 추가 및 키 등록
이제 ROS2 Humble 패키지를 가져올 수 있도록 APT 저장소와 키를 설정한다.
3-1. GPG 키를 keyring 파일로 저장
sudo mkdir -p /usr/share/keyrings
sudo curl -sSL https://raw.githubusercontent.com/ros/rosdistro/master/ros.key -o /usr/share/keyrings/ros-archive-keyring.gpg
3-2. ROS2 저장소 추가
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/ros-archive-keyring.gpg] http://packages.ros.org/ros2/ubuntu $(lsb_release -sc) main" | sudo tee /etc/apt/sources.list.d/ros2.list > /dev/null
저장소를 추가했으면 패키지 목록을 갱신한다.
sudo apt update
4. ROS2 Humble 설치 (desktop 기준)
가장 많이 쓰는 설치 옵션은 ros-humble-desktop이다.
sudo apt install -y ros-humble-desktop
조금 더 가볍게 쓰고 싶다면 ros-humble-ros-base 같은 옵션도 있지만,
처음에는 예제/도구가 많이 포함된 desktop 구성이 편하다.
5. 환경 변수 설정 – ~/.bashrc에 추가
ROS2도 ROS1과 마찬가지로 setup.bash를 읽어와야 명령어와 패키지를 인식한다.
5-1. ~/.bashrc에 한 줄 추가
echo "source /opt/ros/humble/setup.bash" >> ~/.bashrc
현재 터미널에도 바로 반영하려면:
source ~/.bashrc
를 실행한다.
이후부터는 새로운 터미널을 열 때마다 자동으로 ROS2 환경이 잡힌다.
6. 설치 확인 1 – ros2 명령 확인
먼저 ros2 CLI가 정상 인식되는지 본다.
ros2 --help
여러 서브커맨드(help, run, node, topic, service, param 등)가 나오면 정상이다.
7. 설치 확인 2 – demo_nodes_cpp talker / listener
ROS2 Humble에는 기본 예제 노드들이 포함되어 있다.
가장 유명한 예제가 demo_nodes_cpp의 talker/listener 조합이다.
7-1. 첫 번째 터미널 – talker
터미널 1에서:
ros2 run demo_nodes_cpp talker
정상이라면 초당 1회 정도 Publishing: 'Hello World: N' 형태의 로그가 출력될 것이다.
7-2. 두 번째 터미널 – listener
터미널 2를 새로 열고(이미 source ~/.bashrc가 되어 있어야 함):
ros2 run demo_nodes_cpp listener
여기서는 I heard: 'Hello World: N' 같은 로그가 출력될 것이다.
이 조합이 의미하는 것:
- talker 노드: 특정 토픽(예:
/chatter)에 문자열 메시지를 계속 발행(Publish) - listener 노드: 같은 토픽을 구독(Subscribe)하여 메시지를 수신
즉, ROS2의 기본 통신 구조가 정상 동작하고 있다는 뜻이다.
8. 설치 확인 3 – 토픽/노드 목록 확인
동작 중에 아래 명령들도 한 번씩 실행해 보자.
8-1. 노드 목록
ros2 node list
talker/listener가 각각 어떤 노드 이름으로 등록되어 있는지 확인할 수 있다.
8-2. 토픽 목록
ros2 topic list
/chatter 같은 토픽 이름이 보일 것이다.
8-3. 토픽 echo
listener를 끄고, 대신 터미널에서 직접 echo를 해볼 수도 있다.
ros2 topic echo /chatter
이 상태에서 talker를 돌리면,
터미널에서 메시지를 직접 볼 수 있다.