turtle_teleop_key
화살표 키를 누르면 거북이는 어떻게 알아들을까?
따라 하기
두 번째 터미널에서 키보드 노드
거북이 창은 그대로 두고, 새 터미널에서 ros2 run turtlesim turtle_teleop_key를 실행합니다. 키 안내가 나오면 준비된 것입니다.
긴 줄은 접어 보였습니다. 새 터미널도 source가 되어 있어야 합니다(3편).
화살표 키
↑↓는 앞뒤, ←→는 회전
↑는 앞으로, ↓는 뒤로 가고, ←는 왼쪽(반시계 방향), →는 오른쪽(시계 방향)으로 돕니다. 한 번 누르면 조금 가다 멈춥니다. 연결이 끊겨도 로봇이 혼자 계속 가지 않도록 그렇게 만들었습니다.
turtlesim은 받은 속도 명령을 1초 동안만 따릅니다.
무엇이 오가나
키 하나가 메시지 하나가 됩니다
키보드 노드 /teleop_turtle은 누른 키를 Twist라는 메시지로 바꿔 /turtle1/cmd_vel 토픽에 보냅니다. /turtlesim 노드가 그 메시지를 받아 거북이를 움직입니다.
토픽은 3강, 메시지 Twist는 4강에서 자세히 봅니다.
메시지 속
↑ 키는 linear.x = 2.0
Twist에는 앞뒤 속도 linear.x와 회전 속도 angular.z가 들어 있습니다. 키보드 노드는 키마다 이 가운데 하나를 2.0이나 -2.0으로 채워 보냅니다.
단위는 m/s와 rad/s입니다. 2.0은 turtle_teleop_key의 기본 배율입니다.
글자 키
F 둘레 여덟 키는 방향입니다
G, T, R, E, D, C, V, B는 F를 가운데 두고 그 키가 놓인 쪽을 거북이가 바라보게 돌립니다. G는 오른쪽, R은 위쪽입니다. 도는 중에 F를 누르면 취소되고, Q를 누르면 키보드 노드가 끝납니다.
키는 소문자로 누릅니다. Caps Lock이 켜져 있으면 돌지 않습니다. 이 회전 명령은 액션(9강)으로 보냅니다.
안 움직이면
먼저 어느 창을 눌렀는지
키 입력은 지금 선택된 창으로 갑니다. 거북이 창을 누른 채 키를 치면 아무 일도 없습니다. 키보드 노드가 도는 터미널을 눌러 선택하고 칩니다.
ROS_DOMAIN_ID는 8편에서 봅니다.
다음 편