본문으로 바로가기

ROS2 파라미터

category 강좌/ROS2 2026. 5. 6. 15:35
728x90
728x90

1. 파라미터 개념

 

ROS 2에서 파라미터(parameter)
노드 내부 동작을 외부에서 “실시간으로 조정”할 수 있는 핵심 기능입니다.

기존 ROS1에서는 중앙 Parameter Server가 있었지만,
ROS 2에서는 다음과 같이 구조가 변경되었습니다:

  • 모든 노드는 자체 Parameter Server를 내부에 포함
  • 다른 노드 또는 CLI에서 접근 가능
  • 서비스 기반 통신으로 동작

즉, 다음과 같이 이해하시면 됩니다:

“노드 내부 변수 값을 코드 수정 없이 외부에서 바꿀 수 있는 기능”

 

 

2. 왜 파라미터를 사용하는가 (실무 관점)

 

다음과 같은 상황에서 매우 중요합니다:

                             상황                                                  기존 방식파라미터                                                    사용
속도 조절 코드 수정 → 재빌드 즉시 변경
센서 값 튜닝 코드 수정 런타임 조정
알고리즘 파라미터 컴파일 필요 YAML로 관리

핵심 장점:

  • 재컴파일 없음
  • 실시간 튜닝 가능
  • 설정 파일(YAML) 기반 관리 가능

 

 

3. 파라미터 목록 확인

터미널 3개를 준비합니다.

 

ros2 run turtlesim turtlesim_node

 

 

 

ros2 run turtlesim turtle_teleop_key

 

 

 

 

4. 파라미터 목록 확인(ros2 param list)

아래의 명령어를 실행하여 파라미터의 목록을 확인합니다.

 

ros2 param list

 

 

여기서 중요한 것은 /turtlesim 노드에 다음 색상 파라미터가 있다는 점입니다.

 
background_r
background_g
background_b
 

 

각각 RGB 색상값을 의미합니다.

 

 

5. 파라미터 값 확인(ros2 param get)

 

특정 파라미터 값을 확인하려면 다음 형식을 사용합니다.

 
ros2 param get [노드이름] [파라미터이름]
 

 

예를 들어 turtlesim 배경의 빨간색 값을 확인하려면 다음과 같이 입력합니다.

초록색과 파란색 값도 확인합니다.

 

ros2 param get /turtlesim background_r

ros2 param get /turtlesim background_g

ros2 param get /turtlesim background_b

 

 

 

 

6. 파라미터 값 변경(ros2 param set)

 

파라미터 값을 변경하려면 다음 명령어를 사용합니다.

 
ros2 param set [노드이름] [파라미터이름] [값]
 

 

예를 들어 turtlesim의 빨간색 값을 250으로 변경하려면 다음과 같이 입력합니다.

나머지 2가지 색도 수정해 봅니다.

 

ros2 param set /turtlesim background_r 250

ros2 param set /turtlesim background_g 64

ros2 param set /turtlesim background_b 200

 

 

 

 

 

 

 

정상적으로 변경되면 다음과 같은 메시지가 출력됩니다.

 
Set parameter successful
 

 

이후 turtlesim 화면의 배경색이 즉시 바뀝니다.

 

 

 

7. 파라미터 내용 확인(ros2 param describe)

 

특정 파라미터 내용을 확인하려면 다음 형식을 사용합니다.

 

 

ros2 param describe [노드이름] [파라미터이름]
 

 

예를 들어 turtlesim 배경의 초록색 값을 확인하려면 다음과 같이 입력합니다.

 

ros2 param describe /turtlesim background_g

 

 

 

 

8. 파라미터 저장(ros2 param dump)

 

ros2 param set 명령어를 사용하면 기본 파라미터의 값을 바꾸어 사용할 수 있습니다. 이 명령어를 이용하면 파라미터를 수정할 수 있지만 turtlesim 노드를 종료한 후에 다시 시작하면 모든 파라미터는 초깃값으로 다시 설정됩니다.

따라서 현재 사용하고 있는 파라미터를 저장하고 다시 불러와 사용하고 싶을 때에는 파라미터 저장 (ros2 param dump) 명령어를 이용하면 됩니다.

 

ros2 param dump /turtlesim

 

 

 

만약 파일로 저장하고 싶으면 아래의 명령어를 실행하면 됩니다.

 

ros2 param dump /turtlesim > turtlesim.yaml
cat ./turtlesim.yaml

 

 

 

cat 명령어를 이용하여 생성된 파일을 확인합니다.

turtlesim.yaml 파일 안에는 /turtlesim 노드의 파라미터 값들이 저장됩니다.

 

노드 실행 시 저장된 파라미터 값들을 사용할 수 있습니다. 

--ros-args --params-file 옵션과 함께 저장한 yaml 파일의 위치를 적어주면 됩니다. 이처럼 실행하면 노드가 실행되면서 파일의 파라미터 값으로 초기화됩니다.

 

ros2 run turtlesim turtlesim_node --ros-args --params-file ./turtlesim.yaml

 

 

 

 

 

9. 파라미터 저장 파일 불러오기(ros2 param load)

 

저장된 YAML 파일을 열어 배경색 값을 수정할 수 있습니다.

 

gedit turtlesim.yaml

 

 

 

 

수정 후 저장하고 다음 명령어로 다시 불러옵니다.

 

ros2 param load /turtlesim ./turtlesim.yaml

 

 

 

 

 

일부 qos_overrides 관련 항목은 읽기 전용이라 변경 실패 메시지가 나올 수 있습니다.
하지만 background_r, background_g, background_b 같은 변경 가능한 파라미터는 정상 적용됩니다.

 

 

 

10. 파라미터 삭제(ros2 param delete)

 

특정 파라미터를 삭제할 때에는 `ros2 param delete` 명령어를 사용할 수 있습니다. delete 명령어 다음에 노드 이름과 파라미터 이름을 나열해야 합니다.. 일반적인 경우에는 많이 사용되지는 않는 명령어입니다.

 

 

ros2 param delete /turtlesim background_b

ros2 param list /turtlesim

 

 

 

위의 결과에서 파라미터가 정상적으로 삭제되지 않았습니다. 원인은 background_b가 정적으로 선언된 파라미터이기 때문입니다. 

ROS 2 Humble 이후에서는 declare_parameter()로 생성한 대부분의 파라미터가 기본적으로:

  • 타입이 고정(statically typed)
  • 런타임 중 삭제 불가

상태로 생성됩니다.

 

 

728x90
728x90

'강좌 > ROS2' 카테고리의 다른 글

Python에서 ROS2 토픽 발행  (0) 2026.05.07
Python에서 ROS2 토픽 구독  (0) 2026.05.07
ROS2 Action  (0) 2026.05.05
ROS2 Topic  (0) 2026.05.04
ROS2 Service  (0) 2026.05.04