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 |