[ROS] turtlesim 사용해서 키보드로 거북이 이동시키기

happy_quokka·2023년 10월 2일
0

ROS

목록 보기
6/25
post-thumbnail

📝전체 구성

  • turtle_teleop_key : publisher node

  • turtlesim_node : subscriber node

  • /turtle1/cmd_vel : 노드가 주고 받는 topic

  • geometry_msgs/Twist : topic 속 메시지

  • terminal을 여러개 열어서 실행시킨다


🐢turtlesim 거북이 이동시키기 실행

1. terminal 1 : 마스터 실행

$ roscore

2. terminal 4 : ros node 확인

$ rosnode list

  • /rosout : 항상 기동하는 기본적인 node로서 node들의 디버깅 정보를 가지고 있다

3. terminal 2 : turtlesim 패키지의 turtlesim_node 실행

  • 실행하면 거북이가 나타난다!
$ rosrun turtlesim turtlesim_node

4. terminal 4 : ros node 확인

  • turtlesim이 추가된 것을 확인
$ rosnode list

5. ternimal 3 : turtlesim 패키지의 turtle_teleop_key 실행

$ rosrun turtlesim turtle_teleop_key

6. terminal3 창이 활성화된 상태에서 키보드 방향키 입력

  • 키보트 방향키 대로 거북이가 이동한다!

7. terminal 4 : ros node 확인

  • teleop_turtle 추가된 것 확인
$ rosnode list

8. 시각화 확인하기

$ rqt_graph


🔭topic 자세히 알아보기

위의 터미널들을 실행시킨 상태에서 확인해야 한다

1. rostopic의 옵션이 뭐가 있는지 확인

$ rostopic

2. 어떤 topic이 날아다니는지 확인

$ rostopic list

  • 더 자세히 보고 싶다면
$ rostopic list -v

3. topic에 담긴 메세지의 내용 확인

$ rostopic echo /turtle1/cmd_vel 
  • 실행 후 값이 안뜬다면 terminal3을 활성화하여 키보드 화살표를 움직이면 값이 뜬다.
  • 값을 다 봤으면 ctrl+c 로 나오면 된다

4. topic 안의 메세지 type과 구성 확인

$ rostopic type /turtle1/cmd_vel
$ rosmsg show geometry_msgs/Twist

  • geometry_msgs/Twist 라는 데이터 타입으로 구성되어 있다
  • geometry_msgs/Twist는 linear(선속도)와 angular(각속도)를 나타내는 float 6개의 값으로 구성되어 있다

💡topic 직접 발행하여 거북이 이동시키기

topic 한번 발행

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

  • 선속도(증가시키면 크게 회전)와 각속도(늘리면 회전반경이 짧아짐)의 값을 바꾸면 거북이가 다르게 움직인다.


topic 여러번 발행

  • 멈출 때는 ctrl+c로 정지
$ rostopic pub /turtle1/cmd_vel geometry_msgs/Twist -r 1 -- '[2.0, 0.0, 0.0]' '[0.0, 0.0, 1.8]'

0개의 댓글