turtlesim (1)

ROS가 제공하는 기본 turtlesim 패키지로 노드를 생성해보자



Terminal 1

  • $ roscore

    마스터 core 실행 터미널 (노드 정보 관리)


Terminal 2

  • $ rosrun turtlesim turtlesim_node

    turtlesim_node 노드 실행 터미널
    귀여운 거북이가 있는 창이 나옴
    토픽을 구독하여 이에 따라 거북이가 이동시킴


Terminal 3

  • $ rosrun turtlesim turtle_teleop_key

    teleop_turtle 노드 실행 터미널
    키보드 입력에 따라 토픽을 발행


Terminal 4

동작 확인을 위한 터미널

  • $ rosnode list : 어떤 노드가 동작 중인지 확인
jsg@jsg-ubuntu:~$ rosnode list
/rosout
/teleop_turtle
/turtlesim
  • $ rostopic list : 어떤 토픽이 오고 가는지 확인
jsg@jsg-ubuntu:~$ rostopic list
/rosout
/rosout_agg
/turtle1/cmd_vel
/turtle1/color_sensor
/turtle1/pose
  • $ rostopic list -v : 토픽에 대한 더 자세한 정보 출력
jsg@jsg-ubuntu:~$ rostopic list -v

Published topics:
 * /turtle1/color_sensor [turtlesim/Color] 1 publisher
 * /turtle1/cmd_vel [geometry_msgs/Twist] 1 publisher
 * /rosout [rosgraph_msgs/Log] 2 publishers
 * /rosout_agg [rosgraph_msgs/Log] 1 publisher
 * /turtle1/pose [turtlesim/Pose] 1 publisher

Subscribed topics:
 * /turtle1/cmd_vel [geometry_msgs/Twist] 1 subscriber
 * /rosout [rosgraph_msgs/Log] 1 subscriber
  • $ rostopic echo topic_name : 특정 토픽이 발행될 때 화면에 출력
jsg@jsg-ubuntu:~$ rostopic echo /turtle1/cmd_vel 
linear: 
  x: 0.0
  y: 0.0
  z: 0.0
angular: 
  x: 0.0
  y: 0.0
  z: 2.0
---
linear: 
  x: 2.0
  y: 0.0
  z: 0.0
angular: 
  x: 0.0
  y: 0.0
  z: 0.0
---
  • $ rostopic type topic_name : 특정 토픽이 담고 있는 메세지의 타입
jsg@jsg-ubuntu:~$ rostopic type /turtle1/cmd_vel 
geometry_msgs/Twist
  • $ rosmsg show msg_type : 메시지의 구성 요소 출력
jsg@jsg-ubuntu:~$ rosmsg show geometry_msgs/Twist
geometry_msgs/Vector3 linear
  float64 x
  float64 y
  float64 z
geometry_msgs/Vector3 angular
  float64 x
  float64 y
  float64 z
  • $ rqt_graph : 노드와 토픽 관계를 시각화


Terminal 5

토픽을 터미널에서 직접 발행

  • $ rostopic pub [-option] topic_name msg_type -- msg
# turtle1/cmd_vel 토픽의 geometry_msgs/Twist 메시지를
# '[2.0, 0.0, 0.0]' '[0.0, 0.0, 1.8]'로 1초에 한번씩 발행

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

좋은 웹페이지 즐겨찾기