[ROS 2]015: ROS의 종합 GUI툴 RQt

maroo·2022년 8월 16일
0

ROS2

목록 보기
25/39
post-thumbnail

https://cafe.naver.com/openrt/24231

1. ROS의 종합 GUI 툴 RQt

RQt는, 공통 API를 사용하여 개발 편의성을 높이고자 기존의 rxbag, rxplot, rxgraph 과 같은 GUI 프로그램들을 ROS의 종합 GUI 툴로 통합해 사용 가능하게 한 것이다.
즉 일종의 Framework이다.
RQt는 ROS + Qt의 합성어로, RQt가 Qt를 기반으로 하고 있기에 Qt의 특징인 크로스 플랫폼과 다양한 프로그래밍 언어 지원이라는 특징을 반영한다.

ROS 2 Foxy에서 사용 가능한 RQt 플러그인 종류는 아래과 같다.

Topics
-Message Publisher
-Message Type Browser
-Topic Monitor

Services
-Service Caller
-Service Type Browser

Actions
-Action Type Browser

Introspection
-Node Graph
-Process Monitor

Configuration
-Dynamic Reconfigure

Logging
-Console

Miscellaneous Tools
-Python Console
-Shell

Visualization
-Image View
-Plot

Robot Tools
-Dianostics Viewer
-Robot Steering

3. RQt 설치 및 실행

RQt 설치

$ sudo apt install ros-foxy-rqt*

RQt 실행
(1)

$ rqt

명령어 실행 후,

위와 같이 나오는 화면에서 Plugins를 눌러 원하는 플러그인을 실행한다.
(2)

$ ros2 run rqt_msg rqt_msg

ros2 run 명령어를 이용해 각 rqt 관련 패키지들의 노드들을 하나씩 실행하는 방법이다.
(3) 단축 명령어를 이용하는 방법
rqt_graph 등이 이에 해당한다.

4. RQt 플러그인의 종류

액션(Actions)
-Action Type Browser: Action 타입의 데이터 구조를 확인

구성(Configuration)
-Dynamic Reconfigure: 노드들에서 제공하는 파라미터 값 확인 및 변경
-Launch: roslaunch 의 GUI 버전

내성(Introspection)
-Node Graph: 실행 중인 노드들의 관계 및 토픽을 확인 가능한 그래프 뷰
-Package Graph: 노드의 의존 관계를 표시하는 그래프 뷰
-Process Monitor: 실행 중인 노드들의 CPU 사용률, 메모리 사용율, 스레드 수 등을 확인

로깅(Logging)
-Bag: ROS 데이터 로깅
-Console: 노드들에서 발생되는 경고(Warning), 에러(Error) 등의 메시지를 확인
-Logger Level: ROS의 Debug, Info, Warn, Error, Fatal 로거 정보를 선택하여 표시

다양한 툴(Miscellaneous Tools)
-Python Console: 파이썬 콘솔 화면
-Shell: 쉘(shell)을 구동
-Web: 웹 브라우저를 구동

로봇(Robot)
-사용하는 로봇에 따라 계기판(dashboard) 등의 플러그인을 이곳에 추가

로봇툴(Robot Tools)
-Controller Manager: 컨트롤러 관리에 필요한 플러그인
-Diagnostic Viewer: 로봇 디바이스의 경고 및 에러 확인
-Moveit! Monitor: 로봇 매니퓰레이터 툴인 Moveit! 데이터 확인
-Robot Steering: 로봇에게 병진 속도와 회전 속도를 토픽으로 발행하는 GUI 툴
-Runtime Monitor: 실시간으로 노드들에서 발생되는 에러 및 경고를 확인

서비스(Services)
-Service Caller: 실행 중인 서비스 서버에 접속하여 서비스를 요청
-Service Type Browser: 서비스 타입의 데이터 구조를 확인

토픽 (Topics)
-Message Publisher: 메시지 발행
-Message Type Browser: 메시지 타입의 데이터 구조 확인
-Topic Monitor: 토픽 목록 확인 및 사용자가 선택한 토픽의 정보를 확인

시각화(Visualization)
-Image View: 카메라의 영상 데이터를 확인
-Navigation Viewer: 로봇 네비게이션의 위치 및 목표지점 확인
-Plot: 2차원 데이터 플롯 GUI 플러그인, 2차원 데이터의 도식화
-Pose View: 현재 TF의 위치 및 모델의 위치 표시
-RViz: 3차원 시각화 툴인 RViz 플러그인
-TF Tree: tf 관계를 트리로 나타내는 그래프 뷰

5. RQt 사용 예시

5.1 Node Graph

(1)rqt실행 후 [Plugin] -> [Introspection] -> Node Graphrqt_graph

5.2 Topic Monitor

ros2 topic 명령어의 GUI 버전이다.
(1)rqt실행 후 [Plugin] -> [Topics] -> [Topic Monitor]

5.3 Message Publisher

$ ros2 run turtlesim turtlesim_node
$ ros2 run turtlesim turtle_teleop_key

를 먼저 실행한 후, rqt를 실행하자.

다음과 같이 설정해서 병진 속도로 x방향으로 5만큼, 회전 속도 3만큼 움직임을 지속적으로 발행할 수 있다.

5.4 Message Type Browser

(1)rqt실행 후 [Plugin] -> [Topics] -> [Message Type Browser]

5.5 Service Caller

(1)rqt실행 후 [Plugin] -> [Services] -> [Service Caller]
Service에서 원하는 서비스를 선택한 후, 전화 모양의 아이콘은 Call을 누르면 된다.

5.6 Parameter Reco

nfigure
(1)rqt실행 후 [Plugin] -> [Configuration] -> [Dynamic Reconfigure]
왼쪽 목록에서 노드를 선택하면 오른쪽에 그 노드와 관련된 파라미터를 볼 수 있다.
아래는 /turtlesim노드에서 rgv파라미터 조절을 통해 배경색을 변경한 것이다.

5.7 Plot

(1)rqt실행 후 [Plugin] -> [Visualization] -> [Plot]
시간축을 x축, /turtle1/cmd_vel 토픽의 linear x 값과 angular z 값을 y축으로 그래프를 그린 것이다.

5.8 Image View

Image View는 카메라의 영상 데이터를 확인할 수 있는 RQt 플러그인이다.
카메라의 영상 데이터를 확인하기 위해서는, 이미지 데이터를 sensor_msgs/msg/Image 형태의 토픽으로 발행하고 있어야 한다.

$ ros2 run image_tools cam2image

그 후 (1)rqt실행 후 [Plugin] -> [Visualization] -> [Image View],
그리고 노드로 /image를 선택해 준다.

위와 같이 노트북의 카메라에 비치는 현재 내 모습을 확인할 수 있다.

profile
할수이따 ~

0개의 댓글