ROS graph concept과 몇몇의 명령어(roscore, rosnode, rosrun) 알아보자
ROS Graph Concept 개요(아래 그림 참고):
Nodes: ROS package 내부에 있는 executable files. ROS로 서로 다른 Node끼리 통신할 수 있다.
Node는 또한 Service를 제공하거나 사용할 수 있다.
Messages: topic에 subscribe/publish 할때 사용되는 ROS data type
Topics: 한 Node는 한 Topic에 message를 subscribe/publish 한다.
Master: 각 Nodes들이 서로를 찾게 도와주는 것
roscore: Master + rosout + parameter 서버
* rosout, parameter는 우선 생략
roscore: ROS를 실행하기 위한 가장 첫 번째 단계
rosnode: 현재 실행중인 ROS node의 정보를 알려준다.
rosnode list
>> /rosout
아직 다른 Node를 생성하지 않았기에 rosout 한개만 표시된다.
*rosout은 Nodes'의 디버깅 아웃풋을 수집하기에 항상 켜져있다.
rosnode info /rosout
해당 노드의 더 많은 정보를 볼 수 있다.
Using rosrun
rosrun: 생성된 패키지를 활용하여 패키지 내부에 있는 Node를 직접적으로 사용하게끔 한다.
*여타 방법은 해당 Node가 있는 곳까지 경로를 안내해주고나, 해당 경로에 가 있어야된다.
rosrun [package_name] [node_name]
rosrun turtlesim turtlesim_node
웬 거북이가 보인다.
새로운 노드를 실행시켰기 때문에 이젠 rosnode list를 실행하면 새로운 Node가 표시된다.
>> /rosout
>> /turtlesim
노드를 실행시킬 때, 해당 노드의 이름을 변경하여 실행시킬수도 있다.
rosrun turtlesim turtlesim_node __name:=my_turtle
이때 실행된 list를 확인하면
>> /my_turtle
>> /rosout
이 표시됨을 알 수있다.
*이전에 지운 노드가 여전히 리스트에 표시되어 있으면 윈도우 창을 끈게 아니라 터미널에서 (Ctrl+c) 를 눌러서 없앴기 때문. 해당 단축키는 완벽하게 꺼주는 기능은 아닌 듯하다.
rosnode list를 업데이트 하고 싶다면,
rosnode cleanup
rosnode ping <node>: 해당 노드와의 연결성을 시험하는 명령어
rosnode ping my_turtle
>>
'ROS' 카테고리의 다른 글
ROS_Study: Understanding ROS Services and Parameters (0) | 2023.11.22 |
---|---|
ROS_Study: Understanding ROS Topics (0) | 2023.11.22 |
ROS_STudy: Building Packages (2) | 2023.11.08 |
ROS_Study: CreatingPackage (0) | 2023.09.11 |
ROS_Study: catkin/workspaces (0) | 2023.09.11 |