1. roscore을 새로운 터미널에서 동작시킨다. (하나의 roscore만 실행 가능하다.)

 

rocore

 

2. 터틀심을 실행시킨다.

 

rosrun turtlesim turtlesim_node

 

3. 터틀심의 거북이를 조종하기 위해서 키보드 값을 받아오는 노드를 실행시킨다.

 

rosrun turtlesim turtle_telop_key

(실행을 시켰다면 키보드를 이용해 거북이를 움직여보자!)

 

turtlesim_node와 turtle_teleop_key 노드는 topic을 통해 통신한다. turtle_teleop_key는 키의 입력을 발행(publishing)하고, turtlesim은 키의 입력을 전달받기 위해 같은 topic을 구독(subscribing)한다. 그럼 이제 rqt_graph를 이용해 node와 topic이 어떻게 동작하고 있는지 확인해 보자.

 

4. rqt_graph를 실행하여 그래프를 확인해보자.

만약 rqt가 설치되어 있지 않다면 설치해주자.

 

sudo apt-get install ros-melodic-rqt

sudo apt-get install ros-melodic-rqt-common-plugins

 

rosrun rqt_graph rqt_graph

 

 

 

5. rostopic 명령어를 통해 토픽의 리스트를 확인, 토픽의 값 확인, 메시지 타입 확인 등을 할 수 있다.

 

rostopic list

 

rostopic ehco /turtle1/cmd_vel

(위에서 그래프를 보면 알 수 있듯이 토픽 이름은 /turtle1/cmd_vel이다.)

 

rostopic type /turtle1/cmd_vel

(해당 명령어를 실행하면 geometry_msgs/Twist 결과를 볼 수 있을 것이다.)

 

메시지를 자세히 알아보기 위해 rosmsg를 이용하자.

rosmsg show geometry_msgs/Twist

 

 

6. 이쯤 됐으면 해당 토픽의 메시지를 조작하여 거북이를 움직일 수 있다는 생각이 들지 않는가?

 

rostopic pub -1 /turtle1/cmd_vel geometry_msgs/Twist -- '[2.0, 0.0, 0.0]' '[0.0, 0.0, 1.8]'

 

/turtle1/cmd_vel 토픽의 geometry/Twist 메시지를 publish 해주는 명령어이다.

(실행해보면 거북이가 움직이는 것을 볼 수 있다.)

 

rostopic pub /turtle1/cmd_vel geometry_msgs/Twist -r 1 -- '[2.0, 0.0, 0.0]' '[0.0, 0.0, -1.8]'

(옵션 r을 추가해 주면 계속해서 거북이가 움직이는 것을 볼 수 있다.)

 

rostopic hz 등 다른 옵션들도 해보길 바란다.

 

7. 데이터의 흐름을 볼 수 있는 그래프를 이용해 데이터 흐름을 보자

 

rosrun rqt_plot rqt_plot

 

rqt_plot이 실행 됐다면 토픽명을 입력하여 해당 토픽의 값에 따른 그래프의 흐름을 볼 수 있다.

'ROS' 카테고리의 다른 글

7. ROS 노드 이해하기  (0) 2020.01.24
6. ROS 용어 정리2  (0) 2020.01.24
5. ROS 용어 정리  (0) 2020.01.13
4. ROS 패키지 생성  (1) 2020.01.10
3. ROS 파일시스템  (0) 2020.01.09

+ Recent posts