09-17 16:42
Notice
Recent Posts
Recent Comments
반응형
관리 메뉴

BAN2ARU

[ROS2/FOXY] 튜토리얼 6. Understanding parameters 본문

Study/ROS

[ROS2/FOXY] 튜토리얼 6. Understanding parameters

밴나루 2024. 4. 22. 17:37

ROS-foxy 튜토리얼은 공식 홈페이지를 참조함

 

목표 : ROS2에서 parameter를 가져오고 설정하며 저장 및 reloade하는 방법에 대해 알아보자

 

Background

parameter는 node의 configuration 값을 나타낸다. node는 integer, floats, boolean, string, list의 형태의 parameter로 저장할 수 있다. ROS2에서 각 노드는 각자의 parameter를 유지한다.

Tasks

1. Setup

/turtlesim/teleop_turtle 노드를 시작한다.

이를 위해 우선 새 터미널을 열고 다음 명령어를 실행하자.

ros2 run turtlesim turtlesim_node

다른 터미널을 열고 다음 명령어를 실행하자.

ros2 run turtlesim turtle_teleop_key

2. ros2 param list

node에 속하는 parameter를 보려면 새 터미널을 열고 다음 명령어를 입력하자.

ros2 param list

node namespace인 /teleop_turtle/turtlesim이 표시되며 각 node의 parameter가 나온다.

파라미터를 살펴보면 /turtlesim의 파라미터가 RGB 색상 값을 사용하여 turtlesim 창의 배경 색상을 결정하는 것으로 보인다.

3. ros2 param get

파라미터의 유형과 현재 값을 표시하려면 다음 명령어를 활용하면 된다.

ros2 param get <node_name> <parameter_name>

/turtlesim의 파라미터 background_g의 현재 값을 표시해보자.

ros2 param get /turtlesim background_g

background_g가 integer 형태로 86의 값을 가지고 있음을 알 수 있다.

background_rbackground_b에 값은 아래와 같다.

4. ros2 param set

실행하는 도중 파라미터 값을 변경하려면 다음 명령어를 활용하면 된다.

ros2 param set <node_name> <parameter_name> <value>

/turtlesim의 배경 색상을 변경해보자.

ros2 param set /turtlesim background_r 150

아래와 같은 메시지가 터미널에 나타난 후 turtlesim 창의 배경 색상이 보라색으로 변경된다.

 

5. ros2 param dump

해당 명령어를 통해 현재 node의 모든 parameter 값을 추후에 사용하기 위해 파일로 저장할 수 있다.

ros2 param dump <node_name>

/turtlesim의 파라미터 설정을 현재 상태로 저장하려면 다음 명령어를 입력하면 된다.

ros2 param dump /turtlesim

해당 파일을 열면 아래와 같은 내용으로 되어있음을 확인할 수 있다.

6. ros2 param load

아래 명령어를 통해 현재 실행 중인 node에 파일에서 parameter를 load할 수 있다.

ros2 param load <node_name> <parameter_file>

예를 들어 이전 단계에 수행한 yaml 파일을 /turtlesim node의 parameter로 로드하려면 아래 명령어를 입력하면 된다.

ros2 param load /turtlesim ./turtlesim.yaml

7. Load parameter file on node startup

저장된 parameter 값을 사용하여 동일한 node를 시작하려면 아래 명령어를 활용하면 된다.

ros2 run <package_name> <executable_name> --ros-args --params-file <file_name>

예를들어 이전 단계에서 저장된 yaml 파일을 /turtlesim node로 시작하려면 아래 명령어로 실행하면 된다.

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

Summary

node는 기본 구성 값을 정의하기 위해 parameter를 가지고 있다. getset 명령어를 통해 parameter의 값을 가져오고 설정할 수 있다. 또한 파라미터 설정을 파일로 저장하여 이 후 session에서도 로드하여 활용할 수 있다.

728x90
Comments