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편에서 봅니다.

다음 편

두 노드가 이어진 모습을 그림으로 볼 수 있을까요?

6편무엇이 무엇과 이어졌을까? 2강 목록