노드(Node) 이해하기
저작권: 쿼드(QUAD) 드론연구소 https://smartstore.naver.com/maponarooo
Last updated
Was this helpful?
저작권: 쿼드(QUAD) 드론연구소 https://smartstore.naver.com/maponarooo
Last updated
Was this helpful?
ROS 그래프는 동시에 데이터를 함께 처리하는 ROS 2 요소의 네트워크입니다. 모든 실행 파일을 매핑하고 시각화하려는 경우 모든 실행 파일과 실행 파일 간의 연결을 포함합니다.
ROS의 각 노드는 예를 들어 휠 모터를 제어하거나 레이저 거리 측정기에서 센서 데이터를 게시하는 것과 같은 단일 모듈 목적을 담당해야 합니다. 각 노드는 주제, 서비스, 작업 또는 매개변수를 통해 다른 노드와 데이터를 주고받을 수 있습니다.
전체 로봇 시스템은 함께 작동하는 많은 노드로 구성됩니다. ROS 2에서 단일 실행 파일(C++ 프로그램, Python 프로그램 등)은 하나 이상의 노드를 포함할 수 있습니다.
이 명령은 패키지에서 실행 파일을 시작합니다.
Turtlesim을 실행하려면 새 터미널을 열고 다음 명령을 입력하십시오.
여기서 패키지 이름은 turtlesim
이고 turtlesim_node는
실행 파일 이름은 입니다 .
그러나 우리는 여전히 노드 이름을 모릅니다.
다음을 사용하여 노드 이름을 찾을 수 있습니다.ros2 node list
ros2 node list
실행 중인 모든 노드의 이름이 표시됩니다. 이는 노드와 상호 작용하려는 경우 또는 많은 노드를 실행하는 시스템이 있고 이를 추적해야 하는 경우에 특히 유용합니다.
다른 터미널에서 turtlesim이 실행 중일 때 새 터미널을 열고 다음 명령을 입력합니다.
터미널은 노드 이름을 반환합니다.
다른 새 터미널을 열고 다음 명령을 사용하여 teleop 노드를 시작합니다.
여기서는 다시 turtlesim
패키지를 참조 하지만 이번에는 turtle_teleop_key
이라는 실행 파일을 대상으로 합니다 .
이제 노드의 이름을 다시 할당하겠습니다 /turtlesim
. 새 터미널에서 다음 명령을 실행합니다.
다시 turtlesim을 호출하기 때문에 또 다른 turtlesim 창이 열립니다. 그러나 이제 를 실행한 터미널로 돌아가서 다시 실행하면 세 개의 노드 이름이 표시됩니다.
이제 노드의 이름을 알았으므로 다음을 사용하여 노드에 대한 자세한 정보에 액세스할 수 있습니다.
최신 my_turtle
노드를 검사하려면 다음 명령을 실행하십시오.
ros2 node info는
구독자, 게시자, 서비스 및 작업 목록을 반환합니다. 즉, 해당 노드와 상호 작용하는 ROS 그래프 연결입니다. 출력은 다음과 같아야 합니다.
이렇게노드의 정보를 볼 수 있습니다.
에서 본 것처럼 Turtlesim 창이 열립니다 .
하면 노드 이름, 주제 이름, 서비스 이름 등과 같은 기본 노드 속성을 사용자 정의 값에 재할당할 수 있습니다. 지난 튜토리얼에서 remapping on을 사용하여 turtle_teleop_key
cmd_vel 토픽을 변경했습니다 .