일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
- AI
- 회전 복잡도
- sam2
- 정처기
- 네트워크 충돌
- Linux
- CentOS
- Java
- 맥케이브
- homogeinous
- ROS2
- 소스 코드 품질 분석
- Computer
- 기구학
- 컴퓨터구조
- segmentation
- robotics
- 정보처리기사
- 3dof
- 리눅스
- humble
- 알고리즘
- Coding
- MIPS
- SQL
- 합병
- sort
- 정렬
- 명령어
- homogenous
- Today
- Total
UTF-404
ROS2 turtlesim & rqt 알아보기 본문
Using turtlesim, ros2, and rqt — ROS 2 Documentation: Humble documentation
Open a new terminal and source ROS 2 again. At this point you should have three windows open: a terminal running turtlesim_node, a terminal running turtle_teleop_key and the turtlesim window. Arrange these windows so that you can see the turtlesim window,
docs.ros.org
필요 사항 : Ubuntu 22.04
Turtlesim은 ROS2를 활용하기 위한 가벼운 시뮬레이터이다. ROS2가 가장 기본적인 수준에서 수행하는 작업을 부여주며, 나중에 실제 로봇이나 로봇 시뮬레이션을 어떻게 활용할 것인지에 대한 기본기를 제공한다.
ros2 tools는 사용자가 ROS 시스템을 관리하고, 살펴보고, 상호 작용할 수 있도록 도와준다. 시스템 및 시스템 우녕의 다양한 측면을 타켓팅하는 여러 명령을 지원한다. 예를 들어 노드 시작, 매개변수 설정, 토픽 수신 대기 등 다양한 용도로 사용할 수 있다.
rqt는 ROS2 GUI 도구이며, rqt에서 수행하는 모든 작업은 명령어로 수행할 수 있지만, GUI로 사용자가 편리하게 사용할 수 있는 방식을 제공한다.
이번에는 노드, 토픽, 서비스와 같은 핵심 개념을 알아보고, 이러한 개념은 간단히 설명한 글을 참고하면 좋을 것이다.
https://utf-404.tistory.com/83
🐢 ROS2(humble) 노드와 노드 간 통식 방식
💡 ROS2(humble)에서 노드란 무엇일까?Node : 기본 실행 단위이며, 독립적인 작업을 수행한다.특징각각의 노드는 한 가지 기능을 수행한다.노드 간 통신은 주로 토픽, 서비스, 액션으로 이루어진다.
utf-404.tistory.com
1. turtlesim 설치하기
우선 ROS2-humble에 맞는 turtlesim을 설치해보자.
sudo apt update
sudo apt install ros-humble-turtlesim
pkg가 제대로 설치되었는지 확인하기 위해 아래의 명령을 실행해보자. 그럼 turtlesim의 실행 파일 목록이 반환된다.
ros2 pkg executables turtlesim
-----------------결과------------------
turtlesim draw_square
turtlesim mimic
turtlesim turtle_teleop_key
turtlesim turtlesim_node
2. turtlesim 시작하기
turtlesim 시작 시 터미널에 아래의 명령어로 시작한다.
ros2 run turtlesim turtlesim_node
해당 명령을 실행할 경우 노드에서 전송된 메시지가 표시된다. 여기서 기본 거북이의 이름과 생성 위치 좌표를 확인할 수 있다.
3. turtlesim 사용하기
이제 기존 터미널을 두고, 새로운 터미널을 열어서 새로운 명령어를 하나 실행해보자.
ros2 run turtlesim turtle_teleop_key
이제 터미널에는 총 두가지의 명령이 실행되고 있어야 한다.
turtlesim_node
, turtle_teleop_key
이렇게 총 두가지가 실행되어야 하고, 마지막으로 거북이가 보이는 화면 이렇게 총 3가지가 화면에 있어야 한다.
참고로 매번 turtlesim_node를 실행할 때마다 랜덤하게 모양과 색이 결정되는데, 동작에는 전혀 지장 없다.
turtle_teleop_key 터미널을 켜두면, 아래와 같은 메시지가 출력된다. 말 그대로 사용하는 방법에 대해 말해주며, 이제 거북이를 움직일 수있다.
Reading from keyboard
-------------------------------
Use arrow keys to move the turtle.
Use G|B|V|C|D|E|R|T keys to rotate to absolute orientations. 'F' to cancel a rotation.
'Q' to quit.
list
는 각 명령 (node, topic, service, action)의 하위 명령을 사용하면 어떤 것들이 실행되고 있는지 확인할 수 있다.
ros2 node list
ros2 topic list
ros2 service list
ros2 action list
4. rqt 설치
이제 새 터미널을 열어 rqt
플러그인을 설치하자.
sudo apt update
sudo apt install '~nros-humble-rqt*'
설치가 끝난 후 rqt를 실행해보자.
rqt
5. rqt 사용
rqt를 처음 실행하면 창이 비어 있을 수 있다. 하지만 이건 당연하다. 내가 어떤 것을 선택해서 호출할지 정하지 않았으니 말이다. 상단 메뉴에서 pulgins > Services > Service Caller 를 선택하자. 그럼 Service 라는 단어 옆에 선택 메뉴가 생긴다. 이때 Service 옆에 있는 새로 고침 버튼을 사용해보자.(왼쪽) 이제 turtlesim 노드에 어떤 서비스가 있는지 확인해보고 /spawn
서비스를 선택하자.
이제 이 서비스를 활용해 거북이를 하나 더 생성할 것이다. 아래와 같이 turtle2
를작성해 보자.
이제 rqt 창의 오른쪽 상단에 있는 호출에서 turtle2를 선택해 서비스를 호출한다. 성공적으로 한다면 x, y 에 입력한 좌표 값에 맞게 거북이가 새롭게 생성되는 것을 확인할 수 있다. 또한 rqt 서비스 목록도 새로 고침하면 새로운 turtle2
와 관련된 서비스가 추가 된 것을 확인할 수 있다.
이제 turtle1
서비스를 사용해 움직이는 경로에 대한 색상과 선의 두께를 설정해보자. 아래의 사진과 같이 설정을 하고 움직여보면 기존과 다른 색상과 두께의 선으로 움직임을 확인할 수 있다. 여기서 이제 우리는 한 가지 의문이 생긴다. turtle1
은 움직이지만 turtle2
는 어떻게 해야 움직일 수 있을까?
여기에 대한 답은 Remapping
에 있다. 이제 turtle2
를 동작을 위해서 cmd_vel
토픽을 다시 매핑해야 한다. 새로운 터미널을 열어서 다음과 같이 명령해보자.
ros2 run turtlesim turtle_teleop_key --ros-args --remap turtle1/cmd_vel:=turtle2/cmd_vel
이제 그럼 아래의 이미지와 같이 turtle2가 움직이는 것을 확인할 수 있다.
요약하자면 우리는 이번에 rqt와 turtlesim을 이용해서 간단하게 topic과 node에 대한 것이 무엇인지는 정확히 모르지만 그것을 통해 실제로 움직임을 제어하고 여러 시스템에 관여하여 제어할 수 있다는 것을 알았다.
이제 다음에는 실제로 ROS2에서 중요한 부분 중 하나인 Node
에 대해 알아볼 것이다.
'ROS2(humble)' 카테고리의 다른 글
ROS2 humble Node 이해! (2) | 2025.07.03 |
---|---|
ROS2-humble 환경 구성 (1) | 2025.07.01 |
ROS2-humble 설치 및 삭제 (1) | 2025.07.01 |
PUMA-3DOF Robot System(ROS2 + Web) (0) | 2025.04.11 |
🐢 Tf2와 URDF에 대해 알아보기!! (1) | 2025.02.16 |