6. ROS 도구

Speedwell🍀·2022년 3월 10일
0

1. 3차원 시각화 도구 (RViz)

RViz (ROS Visualization Tool)

  • ROS의 3D 시각화툴

    • 센서 데이터의 시각화
    • 레이저 거리 센서(LDS)의 거리 데이터
    • RealSense, Kinect, Xtion 등의 Depth Camera의 포인트 클라우드 데이터
    • 카메라의 영상 데이터
    • IMU 센서의 관성 데이터 등...
  • 로봇 외형의 표시와 계획된 동작을 표현

    • URDF (Unified Robot Description Format)
  • 내비게이션

  • 매니퓰레이션

  • 원격 제어


RViz 사용 예


RViz 설치 및 실행

1) RViz 설치

RViz 설치는 아래의 명령어를 입력하면 된다.
ros-kinetic-desktop-full을 설치했었으면 RViz가 기본 설치되어있기 때문에 필요 없다.
$ sudo apt install ros-kinetic-rviz


2) RViz 실행

$ rosrun rviz rviz 또는 $ rviz


RViz 화면 구성 (LDS의 경우)


RViz 디스플레이 종류

RViz를 이용하면 센서 및 로봇 관련 "데이터 시각화"가 매우 간단!


2. ROS GUI 개발 도구 (RQT)

RQT: 플러그인 방식의 ROS의 종합 GUI 툴

  • ROS Fuerte 버전부터는 rqt라는 이름으로 기존의 rxbag, rxplot, rxgraph 등이 통폐합되어 rqt_bag, rqt_plot, rqt_graph 등을 플러그인으로 하는 ROS의 통합 GUI 툴로써 사용 가능해졌다.

  • rqt는 QT로 개발되어 있기 때문에 유저들이 자유롭게 플러그인을 개발하여 추가 가능

  • rqt의 대표적인 플러그인

    • rqt_image_view
    • rqt_graph
    • rqt_plot
    • rqt_bag

RQT 설치 및 실행

1) RQT 설치
$ sudo apt install ros-kinetic-rqt ros-kinetic-rqt-common-plugins

이것도 마찬가지로 ros-kinetic-desktop-full을 설치했었으면 이미 깔려있음

2) RQT 실행
$ rqt


RQT 플러그인

  1. 액션 (Action)

    • Action Type Browser: Action 타입의 데이터 구조를 확인
  2. 구성 (Configuration)

    • Dynamic Reconfigure: 노드들에서 제공하는 설정값 변경을 위한 GUI 설정값 변경
    • Launch: roslaunch의 GUI 버전
  3. 내성 (Introspection)

    • Node Graph: 구동중인 노드들의 관계도 및 메시지의 흐름을 확인 가능한 그래프 뷰
    • Package Graph: 노드의 의존 관계를 표시하는 그래프 뷰
    • Process Monitor: 실행중인 노드들의 CPU 사용률, 메모리 사용률, 스레드 수 등을 확인
  4. 로깅 (Logging)

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

    • Python Console: 파이썬 콘솔 화면
    • Shell: 쉘(Shell)을 구동
    • Web: 웹 브라우저를 구동
  6. 로봇 (Robot)

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

    • Controller Manager: 컨트롤러 제어에 필요한 플로그인
    • Diagnostic Viewer: 로봇 디바이스 및 에러 확인
    • Moveit! Monitor: 로봇 팔 계획에 사용되는 Moveit! 데이터를 확인
    • Robot Steering: 로봇 조정 GUI 툴, 원격 조정에서 이 GUI 툴을 이용하여 로봇 조종
    • Runtime Monitor: 실시간으로 노드들에서 발생되는 에러 및 경고를 확인
  8. 서비스 (Services)

    • Service Caller: 구동중인 서비스 서버에 접속하여 서비스를 요청
    • Service Type Browser: 서비스 타입의 데이터 구조를 확인
  9. 토픽 (Topics)

    • Eash Message Publisher: 토픽을 GUI 환경에서 발행
    • Topic Publisher: 토픽을 생성하여 발행
    • Topic Type Browser: 토픽 타입의 데이터 구조 확인
    • Topic Monitor: 사용자가 선택한 토픽의 정보를 확인
  10. 시각화 (Visualization)

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

RQT의 사용 예시


RQT 실습

실습 명령어는 다 각각 다른 터미널에 입력

1) rqt_image_view

$ rosrun uvc_camera uvc_camera_node

$ rqt (메뉴에서 [Plugins] -> [Visualization] -> [Image View] 선택)
또는 $ rqt_image_view


2) rqt_graph

$ rosrun turtlesim turtlesim_node

$ rosrun turtlesim turtle_teleop_key

$ rosrun uvc_camera uvc_camera_node

$ rosrun image_view image_view image:=image_raw

$ rqt (메뉴에서 [Plugins] -> [Introspection] -> [Node_Graph] 선택)
또는 $ rqt_graph


3) rqt_plot

$ rosrun turtlesim turtlesim_node

$ rosrun turtlesim turtle_teleop_key

$ rqt (메뉴에서 [Plugins] -> [
Visualization] -> [Plot] 선택)
또는 $ rqt_plot /turtle1/pose/


4) rqt_bag

$ rosrun uvc_camera uvc_camera_node

$ rosbag record /image_raw

$ rqt (메뉴에서 [Plugins] -> [Logging] -> [Bag] 선택)
또는 $ rqt_bag


RQT를 이용하면
1. GUI 형태로 ROS 이용 가능
2. GUI Tool 제작이 간단!


3. 3D Simulator: Gazebo

Gazebo

  • 로봇 개발에 필요한 3차원 시뮬레이션을 위한 로봇, 센서, 환경 모델 등을 지원하고 물리 엔진을 탑재하여 실제와 근사한 결과를 얻을 수 있는 3차원 시뮬레이터

  • 최근에 나온 오픈 진영 시뮬레이터 중 가장 좋은 평가를 받고 있고, 미국 DARPA Robotics Challenge의 공식 시뮬레이터로 선정되어 개발에 더욱 박차를 가하고 있음

  • ROS에서는 그 태생이 Player/Stage, Gazebo를 기본 시뮬레이터로 사용하고 있어서 ROS와의 호완성도 매우 좋음

https://youtu.be/R3xUKYcG_bc

"시뮬레이션"이 필요하다면 ROS와 연동하기 쉬운 Gazebo 사용!


참고)
강의: https://www.youtube.com/watch?v=fB2YINZOIng&list=PLRG6WP3c31_VIFtFAxSke2NG_DumVZPgw&index=6&ab_channel=ROBOTISOpenSourceTeam
자료: https://github.com/robotpilot/ros-seminar/blob/master/06_ROS_%EB%8F%84%EA%B5%AC.pdf

0개의 댓글