파라미터

평범한컴공생·2022년 8월 3일
0

[ROS2]

목록 보기
8/19
post-thumbnail

배경

파라미터는 노드의 구성 값이라고 할 수 있다. 파라미터는 정수, 실수, 불리언, 문자열(string), 리스트처럼 다양한 타입이 될 수 있다. ROS 2에서는 노드들이 각자의 파라미터를 가지고 있다.

작업

1. 설정

늘 해왔듯이 2개의 터미널을 열고 /turtlesim/teleop_turtle을 실행하자.

ros2 run turtlesim turtlesim_node
ros2 run turtlesim turtlesim_teleop_key

2. ros2 param list

명령어를 통해 노드에 속한 파라미터를 알 수 있다.

ros2 param list
/teleop_turtle:
  scale_angular
  scale_linear
  use_sim_time
/turtlesim:
  background_b
  background_g
  background_r
  use_sim_time

모든 노드가 파라미터 use_sim_time을 가지고 있다.

파라미터의 이름으로 유추하자면, /turtlesim의 파라미터는 배경의 색을 결정하는 것으로 보인다.

3. ros2 param get

파라미터의 타입과 그 값을 알고 싶다면, 다음 명령을 수행하자.

ros2 param get <node_name> <parameter_name>
ros2 param get /turtlesim background_g
Integer value is: 86

background_g는 정수 타입이고, 값은 86임을 알 수 있다.

같은 방법으로 background_b255, background_r69임을 알 수 있다.

4. ros2 param set

런타임 시간 내에 파라미터의 값을 변경하고 싶다면, 다음 명령을 수행하자.

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

/turtlesim의 배경 색을 바꿔보자.

ros2 param set /turtlesim background_b 251
ros2 param set /turtlesim background_g 231
ros2 param set /turtlesim background_r 160

위 명령어를 변경한 값들은 현재 실행 중인 세션에서만 적용되며 영구적으로 적용되는 건 아니다.

5. ros2 param dump

노드들의 현재 매개변수 값을 덤프하여 저정하고, 추후에 사용할 수 있다.

ros2 param dump <node_name>
ros2 param dump /turtlesim

터미널은 다음 메시지를 출력할 것이다.

Saving to:  ./turtlesim.yaml

워크스페이스에서 해당 파일을 확인해 보자.

/turtlesim:
  ros__parameters:
    background_b: 251
    background_g: 231
    background_r: 160
    use_sim_time: false

6. ros2 param load

파일을 읽어와 파라미터의 값을 불러올 수 있다. 이전에 저장한 /turtlesim의 파라미터를 불러오자.

ros2 param load <node_name> <parameter_file>
ros2 param load /turtlesim ./turtlesim.yaml

터미널:

Set parameter background_b successful
Set parameter background_g successful
Set parameter background_r successful
Set parameter use_sim_time successful

7. 시작과 동시에 파라미터 불러오기

저장한 파라미터 값을 이용해 노드를 시작하려면 다음 명령어를 수행하자.

ros2 run <package_name> <executable_name> --ros-args --params-file <file_name>
ros2 run turtlesim turtlesim_node --ros-args --params-file ./turtlesim.yaml

참고

ROS 2 Documentation: Foxy

profile
학부 연구생(220627~)

0개의 댓글