Physics 포스팅
Doyeon0430 | 2023년 08월 09일
이번시간에는 ROS에 내장되어 있는 turtlesim 패키지를 사용하겠습니다.
turtlesim 패키지를 통해서 거북이 시뮬레이션을 진행할 수 있습니다.
또한 Launch 파일을 생성하고 rostopic pub를 입력해서 거북이를 제어하며
rqt_graph로 노드(node)와 토픽(topic)간의 관계를 확인하겠습니다.
주소 : 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 실행
2. 새 터미널 생성 후 turtlesim 노드 실행
3. turtlesim 노드 결과
4. 새 터미널 생성 후 turtlesim 제어 키 실행
5. turtlesim 제어 키 결과
roscore를 실행한 상태에서 거북이 시뮬레이션을 진행합니다.
key 터미널을 클릭 후 키보드의 화살표 키로 거북이를 움직일 수 있습니다.
• 위쪽 화살표 : 거북이를 앞으로 이동
• 아래쪽 화살표 : 거북이를 뒤로 이동
• 왼쪽 화살표 : 거북이를 왼쪽으로 이동
• 오른쪽 화살표 : 거북이를 오른쪽으로 이동
• 스페이스 바 : 거북이의 움직임을 멈춤
다음으로 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 이동
2. launch 폴더 생성
3. Visual Studio에 launch 폴더 오픈
4. turtlemimic.launch 생성 후 코드 입력
5. turtlemimic.launch 실행
6. turtlemimic.launch 결과
런치 파일을 통해 거북이 시뮬레이션 노드를 설정하고 실행 할 수 있습니다.
마지막으로 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 실행
2. rostopic pub 결과
3. 새 터미널 생성 후 rqt_graph 실행
4. rqt_graph 결과
rqt_graph는 ROS에서 제공하는 GUI도구로 노드와 토픽간의 관계를 나타냅니다.
위에 입력한 /turtlesim1/turtle1/cmd_vel가 제대로 적용된 걸 확인할 수 있습니다.
글을 마치며 거북이 시뮬레이션을 실행하고 런치 파일을 생성해서 rostopic pub를 사용해봤습니다.
댓글 (0)
간편 댓글 작성