My Image

Physics 포스팅

[로봇 운영체제] ROS의 Turtlesim 패키지로 다양한 시뮬레이션 진행

Doyeon0430 | 2023년 08월 09일

Physics 이미지

이번시간에는 ROS에 내장되어 있는 turtlesim 패키지를 사용하겠습니다.

turtlesim 패키지를 통해서 거북이 시뮬레이션을 진행할 수 있습니다.

또한 Launch 파일을 생성하고 rostopic pub를 입력해서 거북이를 제어하며

rqt_graph로 노드(node)와 토픽(topic)간의 관계를 확인하겠습니다.

주소 : ROS 공식 홈페이지

 

  1. ROS 가이드 - 거북이 시뮬레이션

  2. ROS 가이드 - Launch 파일 생성

  3. ROS 가이드 - rostopic pub 실행

 

 

1. ROS 가이드 - 거북이 시뮬레이션

ROS에서 패키지 설치 없이 거북이 시뮬레이션을 실행할 수 있습니다.

turtlesim 패키지를 킨 상태에서 turtle_teleop_key으로 거북이를 제어할 수 있습니다.

자세한 사항은 아래 링크를 통해 확인할 수 있습니다.

주소 : ROS 시뮬레이션 튜토리얼

 

# roscore 실행
$ cd catkin_ws/
$ source devel/setup.bash
$ roscore

# turtlesim 노드 실행
$ cd catkin_ws/
$ source devel/setup.bash
$ rosrun turtlesim turtlesim_node 

# turtlesim 제어 키 실행
$ cd catkin_ws/
$ source devel/setup.bash
$ rosrun turtlesim turtle_teleop_key

 

1. 새 터미널 생성 후 roscore 실행

ROS turtlesim 실행 1

 

2. 새 터미널 생성 후 turtlesim 노드 실행

ROS turtlesim 실행 2

 

3. turtlesim 노드 결과

ROS turtlesim 실행 3

 

4. 새 터미널 생성 후 turtlesim 제어 키 실행

ROS turtlesim 실행 4

 

5. turtlesim 제어 키 결과

ROS turtlesim 실행 5

roscore를 실행한 상태에서 거북이 시뮬레이션을 진행합니다.

key 터미널을 클릭 후 키보드의 화살표 키로 거북이를 움직일 수 있습니다.

• 위쪽 화살표 : 거북이를 앞으로 이동

• 아래쪽 화살표 : 거북이를 뒤로 이동

• 왼쪽 화살표 : 거북이를 왼쪽으로 이동

• 오른쪽 화살표 : 거북이를 오른쪽으로 이동

• 스페이스 바 : 거북이의 움직임을 멈춤

 

 

2. ROS 가이드 - Launch 파일 생성

다음으로 ROS의 런치 파일을 생성하겠습니다.

런치 파일은 XML 형식으로 여러 개의 노드들을 한 번에 실행할 수 있는 도구입니다.

가장 주의해야 할 점은 아래 코드를 실행하는 동안에 roscore가 켜져있어야 합니다.

 

# launch 폴더 생성
$ cd catkin_ws/
$ source devel/setup.bash
$ roscd beginner_tutorials
$ mkdir launch
$ cd launch

# turtlemimic.launch 실행
$ roslaunch beginner_tutorials turtlemimic.launch

 

# turtlemimic.launch 예시 코드

<launch>

  <group ns="turtlesim1">
    <node pkg="turtlesim" name="sim" type="turtlesim_node"/>
  </group>

  <group ns="turtlesim2">
    <node pkg="turtlesim" name="sim" type="turtlesim_node"/>
  </group>

  <node pkg="turtlesim" name="mimic" type="mimic">
    <remap from="input" to="turtlesim1/turtle1"/>
    <remap from="output" to="turtlesim2/turtle1"/>
  </node>

</launch>

 

1. 새 터미널 생성 후 beginner_tutorials 이동

ROS turtle 스크립트 설치 1

 

2. launch 폴더 생성

ROS turtle 스크립트 설치 2

 

3. Visual Studio에 launch 폴더 오픈

ROS turtle 스크립트 설치 3

 

4. turtlemimic.launch 생성 후 코드 입력

ROS turtle 스크립트 설치 4

 

5. turtlemimic.launch 실행 

ROS turtle 스크립트 설치 5

 

6. turtlemimic.launch 결과

ROS turtle 스크립트 설치 6

런치 파일을 통해 거북이 시뮬레이션 노드를 설정하고 실행 할 수 있습니다.

 

 

3. ROS 가이드 - rostopic pub 실행

마지막으로 rostopic pub 명령어를 사용해서 커맨드로 거북이를 제어하겠습니다.

/turtlesim1/turtle1/cmd_vel을 입력하고 geometry_msgs를 통해 메시지를 보낼 수 있습니다.

여기서 Twist에 -r 1로 거북이를 반복시키겠습니다.

코드 입력하기 전, roscore와 turtlemimic.launch를 켜놓고 있어야합니다.

 

# rostopic pub 실행
$ cd catkin_ws/
$ source devel/setup.bash
$ rostopic pub /turtlesim1/turtle1/cmd_vel geometry_msgs/Twist -r 1 -- '[2.0, 0.0, 0.0]' '[0.0, 0.0, -1.8]'

# rqt_graph 실행
$ cd catkin_ws/
$ source devel/setup.bash
$ rqt_graph

 

1. 새 터미널 생성 후 rostopic pub 실행

ROS turtle 스크립트 결과 1

 

2. rostopic pub 결과

ROS turtle 스크립트 결과 2

 

3. 새 터미널 생성 후 rqt_graph 실행

ROS turtle 스크립트 결과 3

 

4. rqt_graph 결과

ROS turtle 스크립트 결과 4

rqt_graph는 ROS에서 제공하는 GUI도구로 노드와 토픽간의 관계를 나타냅니다.

위에 입력한 /turtlesim1/turtle1/cmd_vel가 제대로 적용된 걸 확인할 수 있습니다.

글을 마치며 거북이 시뮬레이션을 실행하고 런치 파일을 생성해서 rostopic pub를 사용해봤습니다.

댓글 (0)

    댓글이 없습니다.

간편 댓글 작성

My Image My Image My Image My Image