Ubuntu ROS 실습(17)

zeusqoi·어제

개인공부

목록 보기
36/42

이번에는 ROS 2에서 사용하는 Parameter(파라미터) 개념과 파라미터 목록을 확인하는 방법을 정리했다.


1. ROS 2 Parameter란?

ROS 2의 Parameter는 각 노드에서 사용하는 다양한 매개변수를 설정하고 관리하기 위한 기능이다.

파라미터 관련 기능은 ROS Client Libraries(RCL)의 기본 기능으로 제공되며, 각 노드는 자신의 Parameter Server를 가지고 있다. 또한 Parameter Client를 통해 자신의 파라미터뿐만 아니라 다른 노드의 파라미터도 읽고 쓸 수 있다.

          Parameter Client
                 │
          읽기 / 쓰기
                 ↓
              Node
                 │
        Parameter Server

이를 이용하면 노드에서 사용하는 다양한 매개변수를 외부에서 변경할 수 있기 때문에, 값을 변경할 때마다 프로그램을 다시 작성하거나 컴파일하지 않아도 된다.

또한 파라미터는 YAML 파일 형태의 설정 파일로 저장할 수 있으며, 노드를 실행할 때 해당 설정 파일을 불러와 초기 파라미터 값을 설정할 수도 있다.


2. Parameter Server와 Parameter Client

ROS 2의 각 노드는 자신의 파라미터를 관리하기 위한 Parameter Server를 가지고 있다.

Parameter Client를 사용하면 해당 노드의 파라미터 값을 읽거나 변경할 수 있으며, 다른 노드의 파라미터에도 접근할 수 있다.

Node
 ├── Parameter Server
 │      └── 자신의 Parameter 관리
 │
 └── Parameter Client
        ├── 자신의 Parameter 접근
        └── 다른 Node의 Parameter 접근

이러한 구조를 이용하면 노드의 설정값을 외부에서 동적으로 변경할 수 있다.


3. Parameter의 활용

Parameter는 노드에서 사용하는 다양한 설정값을 관리하는 데 활용할 수 있다.

특히 YAML 형식의 파라미터 설정 파일을 이용하면 노드의 초기 파라미터 값을 미리 지정하고, 노드를 실행할 때 해당 설정을 불러올 수 있다.

따라서 프로그램의 코드를 직접 수정하지 않고도 파라미터 값을 변경하여 노드의 동작을 조정할 수 있다.


4. Parameter 목록 확인

현재 실행 중인 노드에서 사용할 수 있는 파라미터 목록은 ros2 param list 명령어를 이용하여 확인할 수 있다.

먼저 TurtleSim과 키보드 조작 노드를 실행한다.

ros2 run turtlesim turtlesim_node
ros2 run turtlesim turtle_teleop_key

그다음 다음 명령어를 실행한다.

ros2 param list

실행 결과는 다음과 같다.

/teleop_turtle:
  scale_angular
  scale_linear
  use_sim_time

/turtlesim:
  background_b
  background_g
  background_r
  use_sim_time

이를 통해 현재 실행 중인 /teleop_turtle과 /turtlesim 노드가 각각 여러 개의 파라미터를 가지고 있는 것을 확인할 수 있다.

예를 들어 /turtlesim 노드에는 다음과 같은 파라미터가 있다.

background_b
background_g
background_r
use_sim_time

여기서 background_r, background_g, background_b는 TurtleSim의 배경색과 관련된 파라미터이며, use_sim_time도 파라미터로 확인할 수 있다.


마무리

이번에는 ROS 2의 Parameter가 무엇인지 알아보고, Parameter Server와 Parameter Client의 구조를 확인했다.

또한 YAML 형식의 설정 파일을 이용하여 파라미터를 관리할 수 있다는 점을 확인했으며, 실제 TurtleSim을 실행한 뒤 다음 명령어를 사용하여 현재 노드에서 사용하는 파라미터 목록을 확인했다.

ros2 param list

실습 내용을 정리하면 다음과 같다.

Parameter
→ 노드에서 사용하는 매개변수 관리

Parameter Server
→ 노드의 Parameter를 관리

Parameter Client
→ Parameter를 읽고 쓰기

YAML
→ Parameter 설정 파일로 활용

ros2 param list
→ 현재 실행 중인 노드의 Parameter 목록 확인

이번 실습을 통해 ROS 2에서 노드의 다양한 설정값을 Parameter로 관리하고, 실행 중인 노드가 어떤 Parameter를 가지고 있는지 확인하는 방법을 알아보았다.

0개의 댓글