이번 시간에는 topic이 무엇인지와 topic의 주체가 되는 publisher, subscriber에 대해 배워봅니다.
$ rosfoxy
$ cbp py_topic_pkg
# Windows
> colcon build --symlink-install --packages-select py_topic_pkg
> install\\setup.bat
Starting >>> py_topic_pkg
Finished <<< py_topic_pkg [0.84s]
Summary: 1 package finished [0.96s]
# Terminal 1
$ ros2 launch gcamp_gazebo gcamp_world.launch.py
# Terminal 2
$ ros2 run py_topic_pkg cmd_vel_pub_node
[INFO] [1624889609.708600174] [cmd_vel_pub_node]: DriveForward node Started, move forward during 5 seconds
[INFO] [1624889610.195565654] [cmd_vel_pub_node]: 1 seconds passed
[INFO] [1624889610.695526857] [cmd_vel_pub_node]: 1 seconds passed
[INFO] [1624889611.195481779] [cmd_vel_pub_node]: 2 seconds passed
[INFO] [1624889611.695450639] [cmd_vel_pub_node]: 2 seconds passed
[INFO] [1624889612.195593873] [cmd_vel_pub_node]: 3 seconds passed
[INFO] [1624889612.695474598] [cmd_vel_pub_node]: 3 seconds passed
[INFO] [1624889613.196404202] [cmd_vel_pub_node]: 4 seconds passed
[INFO] [1624889613.695493502] [cmd_vel_pub_node]: 4 seconds passed
[INFO] [1624889614.195716743] [cmd_vel_pub_node]: 5 seconds passed
[INFO] [1624889614.196065373] [cmd_vel_pub_node]:
==== Stop Publishing ====
gazebo 상의 로봇이 5초간 회전한 후 멈출 것입니다!! 이때, 내부적으로 어떤 작업이 이루어졌는지
rqt_graph
로 살펴봅시다.
cmd_vel_pub_node
라는 새로운 node가 생겼고, 이것이 로봇에게 움직이라는 명령을 준 것 같습니다!! 그 중간에는 skidbot/cmd_vel
이라는 것도 보이네요,skidbot/cmd_vel
Topic publish를 한 것 입니다.앞선 rqt_graph
에서 각 노드들 사이에 화살표는 데이터가 오고 간다는 것을 의미하며, 이를 Topic이라 지칭합니다. 정의에 따르면, Topic은 Node들 사이에 데이터(Message)가 오가는 길(Bus)의 이름입니다.