$ ros2 pkg executables turtlesim # turtlesim 패키지에 포함된 노드 확인
$ ros2 run turtlesim turtlesim_node
$ ros2 run turtlesim turtle_teleop_key
$ ros2 pkg executables turtlesim # turtlesim 패키지에 포함된 노드 확인
$ ros2 run turtlesim turtlesim_node
$ ros2 run turtlesim turtle_teleop_key
# topic
$ ros2 topic list # 현재 실행 중인 토픽 이름 표시 (/turtlesim으로 입력)
$ ros2 topic list -t # 현재 개발 환경에서 동작 중인 모든 노드들의 정보 확인
$ ros2 topic info # 현재 실행중인 토픽 정보 표시
$ ros2 topic type # 현재 실행중인 토픽 타입 표시
$ ros2 topic echo # 특정 토픽을 터미널에 표시
$ ros2 topic echo /turtle1/cmd_vel # 선, 각속도 토픽 확인
$ ros2 topic bw /turtle1/cmd_vel # 토픽 메세지의 크기 확인, 초당 대약폭 확인
$ ros2 topic hz /turtle1/cmd_vel # 토픽의 전송 주기 확인
$ ros2 topic delay /Topic name # 토픽의 지연시간 확인
$ ros2 topic find # 지정 타입을 사용하는 토픽 이름 출력
$ ros2 topic pub <topic_name> <msg_type> "<args>" # 퍼블리시
$ ros2 topic pub --once /turtle1/cmd_vel geometry_msgs/msg/Twist "{linear: {x: 2.0, y:0.0, z: 0.0}, angular: {x: 0.0, y: 0.0, z:1.8}}"
# --once 한번 실행, --rate 1 주기 1HZ 생성
$ ros2 bag record /turtle1/cmd_vel # 토픽을 파일형태로 저장, ctrl+c로 종료
$ ros2 bag info rosbag2...
$ ros2 bag play rosbag2...$ ros2 pkg executables turtlesim # turtlesim 패키지에 포함된 노드 확인
$ ros2 run turtlesim turtlesim_node
$ ros2 run turtlesim turtle_teleop_key
# topic
$ ros2 topic list # 현재 실행 중인 토픽 이름 표시 (/turtlesim으로 입력)
$ ros2 topic list -t # 현재 개발 환경에서 동작 중인 모든 노드들의 정보 확인
$ ros2 topic info # 현재 실행중인 토픽 정보 표시
$ ros2 topic type # 현재 실행중인 토픽 타입 표시
$ ros2 topic echo # 특정 토픽을 터미널에 표시
$ ros2 topic echo /turtle1/cmd_vel # 선, 각속도 토픽 확인
$ ros2 topic bw /turtle1/cmd_vel # 토픽 메세지의 크기 확인, 초당 대약폭 확인
$ ros2 topic hz /turtle1/cmd_vel # 토픽의 전송 주기 확인
$ ros2 topic delay /Topic name # 토픽의 지연시간 확인
$ ros2 topic find # 지정 타입을 사용하는 토픽 이름 출력
$ ros2 topic pub <topic_name> <msg_type> "<args>" # 퍼블리시
$ ros2 topic pub --once /turtle1/cmd_vel geometry_msgs/msg/Twist "{linear: {x: 2.0, y:0.0, z: 0.0}, angular: {x: 0.0, y: 0.0, z:1.8}}"
# --once 한번 실행, --rate 1 주기 1HZ 생성
$ ros2 bag record /turtle1/cmd_vel # 토픽을 파일형태로 저장, ctrl+c로 종료
$ ros2 bag info rosbag2...
$ ros2 bag play rosbag2...
'''service'''
$ ros2 service list # 서비스 목록 확인
$ ros2 service type [서비스 이름] # 서비스의 타입 확인
$ ros2 service call [서비스 이름][서비스 타입]"{값}" # 특정 서비스르 호출
$ ros2 service call /reset std_srvs/srv/Empty
$ ros2 service call /turtle1/set_pen turtlesim/srv/SetPen "{r: 255, g: 255, width: 10}"
$ ros2 service call /kill turtlesim/srv/Kill "name: 'turtle1'"
$ ros2 service call /spawn turtlesim/srv/Spawn "{x: 5.5, y: 9.0, theta: 1.57, name: 'leonardo'}"
$ ros2 service find [서비스 타입] # 지정 서비스 타입의 서비스 출력
'''action'''
$ ros2 action list # 실행 중인 액션 이름 표시
$ ros2 action info # 실행중인 액션이 정보 표시
$ ros2 action goal # 액션의 목표지정
$ ros2 action send_goal <action_name><action_type>"<values>" # 액션 목표 전달
$ ros2 action send_goal /turtle1/rotate_absolute turtelsim.action.RotateAbsolute "{theta:1.5708}"
'''parameter'''
$ ros2 param list # 파라미터 목록 확인
$ ros2 param describe [노드이름][파라미터 이름] # 파라미터 내용 확인
$ ros2 param get [노드이름][파라미터 이름] # 파라미터 읽기
$ ros2 param get /turtelsim background_r
$ ros2 param set [노드이름][파라미터 이름][값] # 파라미터 쓰기
$ ros2 param set /turtlesim background_r 255
$ ros2 param dump [노드이름] # 파라미터 저장
$ ros2 param delete [노드이름][파라미터 이름] # 파라미터 삭제
'''service, action interface'''
$ ros2 interface show # 지정 인터페이스의 데이터 형태 출력, ros2의 service, action을 사용하기 위한 type의 구조 확인
$ ros2 interfaace package # 사용 가능한 모든 인터페이스 목록 출력
$ ros2 interface package # 특정 패키지에서 사용가능한 인터페이스 목록 출력
$ ros2 interface packages # 인터페이스 패키지들의 전체 목록 출력
$ ros2 interface proto # 지정 패키지의 프로토타입 출력

