본문 바로가기
ROS2 강의 (Humble)

[ROS 2 강의] ROS 2 기본 개념

by 바위폭주 2025. 6. 23.
728x90
반응형
SMALL

1. 실습 환경 구성과 로봇 이동 실습

이번 시간에는 ROS 2에서 기본 시뮬레이션 환경을 설정하고,
로봇을 직접 움직여보는 과정을 실습해보겠습니다.

 

아래 링크에서 제공하는 패키지를 받아서

https://github.com/fallwich/ros_lecture.git

~/ros2_ws/src 폴더에 압축 해제해주세요. (cs 단축키 사용해보기)

ros2_ws 폴더로 이동 후 빌드해주세요. (cb 단축키 사용해보기)

빌드 후 sb! 꼭 잊지 마세요. sb 무슨 말인지 모르시는 분은 전 강의!를 꼭 보세요. (source ~/.bashrc)

cd ~/ros2_ws/src
git clone https://github.com/fallwich/ros_lecture.git
cd ..
colcon build
sb

2. 시뮬레이션 실행하기

cd ~/ros2_ws/src/ros_lecture
./start_sim_house_v2.sh

해당 명령어를 실행하면 아래와 같은 Gazebo 환경이 실행됩니다:

여러분의 첫 가상환경입니다. 이 가상공간은 Gazebo라는 툴을 사용하는데 물리 엔진에서 다양한 센서, 로봇, 환경등을 구축할 수 있습니다.

 

3. 키보드로 로봇 조작하기

ros2 run teleop_twist_keyboard teleop_twist_keyboard

해당 명령어를 입력하면 키보드로 로봇을 전후좌우로 이동시킬 수 있습니다.
시뮬레이션 화면에서 로봇이 움직이는 모습을 직접 확인할 수 있습니다.

간단하게 설명 하자면 현재 로봇은 cmd_vel이라는 메세지 토픽을 받으면 움직이게 되어있습니다.

명령어 설명

ros2 run

ros2 run <패키지 이름> <실행 파일 이름>
  • ros2 run은 특정 패키지 안에 있는 실행 파일을 실행할 때 사용합니다.

예:

ros2 run teleop_twist_keyboard teleop_twist_keyboard

ros2 launch

 
ros2 launch <패키지 이름> <launch 파일 이름>
  • 여러 노드나 실행 환경을 한 번에 실행하고 싶을 때 launch 파일을 사용합니다.

 

패키지란?

ROS 2에서 프로그램은 모두 패키지 단위로 구성됩니다.
패키지란 코드, 설정파일, 빌드 스크립트 등 특정 기능을 수행하는 요소들이 모여 있는 단위입니다.

패키지를 통해 기능을 모듈화하고,
다른 개발자와도 쉽게 공유하고 유지보수할 수 있게 됩니다.


패키지의 종류

기존 ROS1에서는 C++기반 패키지만 존재 했는데 ROS 2로 업그레이드 되면서 파이썬 기반 패키지도 생겼습니다.

파이썬 기반 패키지 (ament_python)

  • package.xml: 패키지 메타 정보
  • setup.py: 빌드 방법 정의
  • setup.cfg: 설치 위치 설정
  • <패키지 이름>/: 실제 Python 코드가 들어있는 디렉토리
    (기본적으로 __init__.py 포함)

추가로 launch/ 폴더가 있는 경우, launch 파일도 함께 포함됩니다.

C++ 기반 패키지 (CMake)

  • package.xml: 패키지 정보
  • CMakeLists.txt: 컴파일 설정
  • /src: C++ 소스 코드
  • /launch: launch 파일

실습: 패키지 생성

작업공간 이동

cd ~/ros2_ws/ cd src

패키지 만들기 (파이썬 기준)

ros2 pkg create --build-type ament_python my_package --dependencies rclpy
  • --build-type ament_python: Python 패키지 생성 시 사용
  • --dependencies: 사용할 ROS 2 패키지를 명시 (예: rclpy)

패키지 빌드 및 적용

cd ~/ros2_ws colcon build --symlink-install # 또는 cb

빌드 후에는 다음 명령어로 환경 설정을 반영합니다:

source ~/ros2_ws/install/local_setup.bash

만약 .bashrc에 이 설정이 포함되어 있다면,
새 터미널을 열기만 해도 자동으로 적용됩니다. (sb)


설치 확인

ros2 pkg list
ros2 pkg list | grep my_package
  • 설치된 모든 패키지를 확인하거나, 특정 이름으로 필터링할 수 있습니다.

특정 패키지만 빌드하기

colcon build --symlink-install --packages-select my_package # 또는 cbp my_package

프로젝트가 커질수록 전체 빌드 시간이 길어지므로, 변경한 패키지만 선택적으로 빌드하는 것이 효율적입니다.
원래 이번 강의에서 Launch, Node를 다루려고 했는데 분량 조절을 못해서 다음 강의에서 짧게 다루겠습니다.



여기까지 잘 따라오셨을 까요? 강의를 따라 하고 계신 분이 있다면, 꼭 댓글을 남겨주세요.
여러분의 댓글이 저에게 큰 동기부여가 됩니다.
강의를 따라 하면서 궁금한 점이나 막히는 부분이 있다면 언제든지 자유롭게 질문 남겨주세요!
728x90
반응형
LIST