안녕하세요 여러분, 후 형제입니다. 오늘부터 ROS1에서 ROS2로 전환하는 시간을 가질 것입니다. 마지막 기사에서는 ROS 2의 주제에 대해 알아볼 것입니다. 이 기사에서는 주로 ROS에 초점을 맞출 것입니다. "매개변수"의 개념, ROS 2에서 매개변수를 얻고, 설정하고, 저장하고, 다시 로드하는 방법을 배웁니다.
목차
3. ros2 매개변수 가져오기(매개변수 값 가져오기)
매개변수는 노드의 구성 값입니다. 매개변수는 노드 설정으로 생각할 수 있습니다. 노드는 매개변수를 정수, 실수, 부울, 문자열 및 목록으로 저장할 수 있습니다. ROS 2에서 각 노드는 자체 매개변수를 유지합니다. 모든 매개변수는 동적으로 재구성 가능하며 ROS 2 서비스 위에 구축됩니다. 노드에는 기본 구성 값을 정의하는 매개변수가 있습니다. 매개 변수 값은 명령줄에서 얻고 설정할 수 있습니다. 매개변수 설정을 저장하여 새 작업에서 다시 로드할 수도 있습니다.
1. 시뮬레이션 노드 시작
이제 터틀심(turtlesim)을 쉽게 시작할 수 있을 것입니다. 터미널을 열고 다음 명령을 실행합니다.
ros2 run turtlesim turtlesim_node
새 터미널을 열고 원격 노드를 시작합니다.
ros2 run turtlesim turtle_teleop_key
2. ros2 매개변수 목록(매개변수 목록)
노드에 속하는 매개변수를 보려면 새 터미널을 열고 다음 명령을 입력하십시오.
ros2 param list
노드 하위 노드 공간 /teolep_turtle 및 /turtlesim 뒤에 각 노드에 대한 매개변수가 표시됩니다.
nvidia@ubuntu:~$ 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에 고유하지 않습니다. 이름에 따라 /turtlesim에 대한 인수는 RGB 색상 값을 사용하여 turtlesim 창의 배경색을 결정합니다. 매개변수 유형을 결정하기 위해 ros2 param get을 사용할 수 있습니다.
3. ros2 매개변수 가져오기(매개변수 값 가져오기)
매개변수의 현재 값을 가져오려면 다음 명령을 사용하십시오.
ros2 param get <node_name> <parameter_name>
/turtlesim 매개변수 background_g의 현재 값을 알아봅시다:
ros2 param get /turtlesim background_g
다음과 같은 응답을 받게 됩니다.
nvidia@ubuntu:~$ ros2 param get /turtlesim background_g
Integer value is: 86
이제 background_g에 정수 값이 포함되어 있음을 알 수 있습니다. background_r과 background_b에 동일한 명령을 실행하면 각각 값 69와 255를 얻게 됩니다.
nvidia@ubuntu:~$ ros2 param get /turtlesim background_r
Integer value is: 69
nvidia@ubuntu:~$ ros2 param get /turtlesim background_b
Integer value is: 255
4. ros2 매개변수 설정(매개변수 값 설정)
런타임 시 매개변수 값을 변경하려면 다음 명령을 사용하십시오.
ros2 param set <node_name> <parameter_name> <value>
/turtlesim의 배경색을 변경해 보겠습니다.
ros2 param set /turtlesim background_r 150
Turtlesim 창의 배경 색상이 변경되어야 합니다.
set 명령으로 매개변수를 설정하면 현재 세션에서만 변경되며 영구적으로 변경되지 않습니다. 그러나 설정 변경 사항을 저장하고 다음에 노드를 시작할 때 다시 로드할 수 있습니다.
5. ros2 매개변수 덤프(매개변수 덤프)
다음 명령을 사용하여 나중에 저장하기 위해 노드의 모든 현재 매개변수 값을 파일로 "덤프"할 수 있습니다.
ros2 param dump <node_name>
/turtlesim 매개변수의 현재 구성을 저장하려면 다음 명령을 입력하십시오.
ros2 param dump /turtlesim
다음 응답을 받게 됩니다.
nvidia@ubuntu:~$ ros2 param dump /turtlesim
Saving to: ./turtlesim.yaml
작업 영역이 실행되는 디렉터리에서 새 파일을 찾을 수 있습니다. 이 파일을 열면 다음이 표시됩니다.
#文件内容如下
turtlesim:
ros__parameters:
background_b: 255
background_g: 86
background_r: 150
use_sim_time: false
덤프 매개변수는 나중에 동일한 매개변수로 노드를 다시 로드하려는 경우에 유용합니다.
6. 파라미터 파일 불러오기(파라미터 로딩)
방금 우리는 특정 노드의 모든 매개변수를 덤프했습니다. 이 매개변수로 새 노드를 열려면 다음 명령을 실행하십시오.
ros2 run <package_name> <executable_name> --ros-args --params-file <file_name>
이것은 --ros args 및 --params-file 플래그가 추가된 후 로드할 파일이 뒤따르는 상태로 turtlesim을 시작할 때 항상 사용하는 명령입니다.
실행 중인 Turtlesim 노드를 중지하여 다음과 같이 저장된 매개변수로 다시 로드해 볼 수 있습니다.
ros2 run turtlesim turtlesim_node --ros-args --params-file ./turtlesim.yaml
Turtlesim 창은 평소와 같이 나타나야 하지만 이전에 설정한 보라색 배경을 사용합니다.
위 내용은 오늘 제가 공유하고자 하는 내용입니다. 오류 수정, 질문, 커뮤니케이션: [email protected]