이번에는 ROS 2에서 Parameter를 직접 조회하고 변경하는 실습을 진행했다.
앞서 Parameter의 개념과 목록 확인 방법을 알아보았다면, 이번에는 TurtleSim의 실제 Parameter 값을 변경하고, 설정을 확인하고 다시 적용하는 과정까지 실습했다. 또한 Parameter 변경 이벤트를 확인하고, Parameter 삭제를 시도했을 때의 동작도 확인했다.
먼저 TurtleSim을 실행한 상태에서 /turtlesim Node의 Parameter를 확인했다.
ros2 param list /turtlesim
그중 TurtleSim의 배경색과 관련된 다음 Parameter를 확인할 수 있었다.
background_b
background_g
background_r
각 Parameter는 RGB 색상값을 나타내며, 세 값을 조절하여 TurtleSim의 배경색을 변경할 수 있다.

특정 Parameter의 현재 값을 확인하기 위해 ros2 param get 명령어를 사용했다.
ros2 param get /turtlesim background_b
실행 결과 다음과 같이 현재 값을 확인할 수 있었다.
Integer value is: 255
이처럼 ros2 param get을 사용하면 특정 Node의 Parameter에 설정된 현재 값을 확인할 수 있다.
이번에는 ros2 param set 명령어를 이용해 TurtleSim의 배경색을 직접 변경했다.
먼저 빨간색 값을 설정했다.
ros2 param set /turtlesim background_r 255
다음으로 초록색 값을 설정했다.
ros2 param set /turtlesim background_g 255
마지막으로 파란색 값을 0으로 변경했다.
ros2 param set /turtlesim background_b 0
각 명령어를 실행한 결과 Parameter가 정상적으로 변경되었으며, TurtleSim의 배경색도 변경되는 것을 확인할 수 있었다.
Set parameter successful

Parameter를 이용하면 Node의 코드를 수정하거나 다시 실행하지 않고도 실행 중인 Node의 설정값을 변경할 수 있다는 것을 확인할 수 있었다.
변경한 Parameter를 포함하여 /turtlesim Node의 전체 Parameter 설정을 확인하기 위해 ros2 param dump 명령어를 사용했다.
ros2 param dump /turtlesim
실행 결과 다음과 같이 현재 Parameter 설정이 YAML 형식으로 출력되었다.
/turtlesim:
ros__parameters:
background_b: 0
background_g: 255
background_r: 255
qos_overrides:
/parameter_events:
publisher:
depth: 1000
durability: volatile
history: keep_last
reliability: reliable
use_sim_time: false
이를 통해 현재 /turtlesim에 적용되어 있는 Parameter 값을 한 번에 확인할 수 있었다.
특히 배경색과 관련된 값이 다음과 같이 설정되어 있는 것을 확인했다.
background_r: 255
background_g: 255
background_b: 0
이번에는 Parameter 설정 파일을 이용하여 /turtlesim에 설정을 다시 적용해 보았다.
ros2 param load /turtlesim turtlesim_params.yaml
실행 결과 다음과 같이 여러 Parameter가 정상적으로 적용되었다.
Set parameter background_b successful
Set parameter background_g successful
Set parameter background_r successful
Set parameter use_sim_time successful
이를 통해 YAML 형식으로 관리되는 Parameter 설정을 실행 중인 Node에 다시 적용할 수 있다는 것을 확인했다.
다만 qos_overrides와 관련된 일부 Parameter는 읽기 전용이기 때문에 적용 과정에서 변경할 수 없다는 메시지도 확인했다.
즉, 모든 Parameter가 동일한 방식으로 변경 가능한 것은 아니며, Parameter의 설정 방식에 따라 변경 가능 여부가 달라질 수 있다.
ROS 2에서는 Parameter가 변경될 때 /parameter_events Topic을 통해 변경 이벤트가 전달된다.
이를 직접 확인하기 위해 다음 명령어를 실행했다.
ros2 topic echo /parameter_events
그 상태에서 다른 터미널에서 Parameter 값을 변경했다.
ros2 param set /turtlesim background_r 100
그러자 /parameter_events Topic을 통해 변경된 Parameter 정보가 출력되었다.
changed_parameters:
- name: background_r
value:
type: 2
integer_value: 100
이를 통해 단순히 Parameter 값만 변경되는 것이 아니라, Parameter 변경에 대한 이벤트도 ROS 2의 Topic을 통해 전달된다는 것을 확인할 수 있었다.

마지막으로 Parameter를 삭제하는 기능도 확인해 보았다.
다음 명령어를 이용하여 /turtlesim의 background_r Parameter 삭제를 시도했다.
ros2 param delete /turtlesim background_r
하지만 다음과 같은 오류가 출력되었다.
Deleting parameter failed:
cannot undeclare an statically typed parameter
이는 현재 TurtleSim의 background_r Parameter가 정적으로 선언된 Parameter이기 때문에 실행 중에 삭제할 수 없다는 의미이다.
따라서 이번 실습에서는 Parameter 삭제가 정상적으로 이루어지지 않았지만, 이를 통해 모든 Parameter를 실행 중에 삭제할 수 있는 것은 아니라는 점을 확인할 수 있었다.
즉, 이번 실습에서 확인한 Parameter의 동작은 다음과 같이 정리할 수 있다.
조회 → 가능
값 변경 → 가능
설정 확인 → 가능
설정 적용 → 가능
삭제 → 정적으로 선언된 Parameter는 불가능
이번 실습에서는 TurtleSim을 이용하여 ROS 2 Parameter를 실제로 조작해 보았다.
먼저 ros2 param get을 이용해 특정 Parameter의 값을 확인하고, ros2 param set을 이용해 TurtleSim의 배경색을 변경했다.
이후 ros2 param dump를 통해 현재 Parameter 설정을 YAML 형식으로 확인하고, ros2 param load를 이용하여 Parameter 설정을 다시 적용했다.
또한 /parameter_events Topic을 이용하여 Parameter가 변경될 때 발생하는 이벤트를 직접 확인했다.
마지막으로 ros2 param delete를 사용해 Parameter 삭제를 시도했으며, 정적으로 선언된 TurtleSim의 Parameter는 삭제할 수 없다는 결과도 확인했다.
이번 실습에서 사용한 주요 명령어를 정리하면 다음과 같다.
ros2 param get
→ 특정 Parameter의 현재 값 확인
ros2 param set
→ Parameter 값 변경
ros2 param dump
→ 현재 Parameter 설정을 YAML 형식으로 출력
ros2 param load
→ Parameter 설정을 Node에 적용
ros2 topic echo /parameter_events
→ Parameter 변경 이벤트 확인
ros2 param delete
→ Parameter 삭제 시도
이번 실습을 통해 ROS 2 Parameter를 단순히 목록으로 확인하는 것에서 나아가, 실제 값을 조회하고 변경하며 설정을 확인하고 이벤트까지 확인하는 과정을 직접 경험할 수 있었다.