ROS의 3D 시각화툴
로봇 외형의 표시와 계획된 동작을 표현
내비게이션
매니퓰레이션
원격 제어
Kinect의 Point Cloud Data
https://youtu.be/OqOkpZBOpxY
거리 값을 Point Cloud Data로 표시
레이저 거리 센서의 거리 값
https://youtu.be/qtoAJIwzB6s
rgb로 depth 표시
IMU 센서의 관성 값
https://youtu.be/j5v5tKppcQo
드론에 많이 장착
RealSense의 Point Cloud와 Color, Depth 영상
https://youtu.be/Jf4kgPEzY4s
사람의 골격과 지시 방향 표시
https://youtu.be/ath8uNv9c_Q
가리키는 곳으로 로봇 이동 명령
R2-D2 로봇 모델
$ sudo apt-get install ros-kinetic-urdf-tutorial
$ roslaunch urdf_tutorial display.launch ???
환경 모델, 로봇 모델, 경로까지
https://youtu.be/9lbuLADlc_4
지도 표시, 내비게이션, 목적지 지정
https://youtu.be/VYlMywwYALU
인터렉티브 마커를 이용한 IK 목표 위치 지정 및 경로 표시
재난구조로봇의 경우 (2015 DARPA Robotics Challenge)
https://www.youtube.com/user/DAPRAtv
1) RViz 설치
RViz 설치는 아래의 명령어를 입력하면 된다.
ros-kinetic-desktop-full을 설치했었으면 RViz가 기본 설치되어있기 때문에 필요 없다.
$ sudo apt install ros-kinetic-rviz
2) RViz 실행
$ rosrun rviz rviz
또는 $ rviz
RViz를 이용하면 센서 및 로봇 관련 "데이터 시각화"가 매우 간단!
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
1) RQT 설치
$ sudo apt install ros-kinetic-rqt ros-kinetic-rqt-common-plugins
이것도 마찬가지로 ros-kinetic-desktop-full을 설치했었으면 이미 깔려있음
2) RQT 실행
$ rqt
액션 (Action)
Action Type Browser
: Action 타입의 데이터 구조를 확인구성 (Configuration)
Dynamic Reconfigure
: 노드들에서 제공하는 설정값 변경을 위한 GUI 설정값 변경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)
로봇 툴 (Robot Tools)
Controller Manager
: 컨트롤러 제어에 필요한 플로그인Diagnostic Viewer
: 로봇 디바이스 및 에러 확인Moveit! Monitor
: 로봇 팔 계획에 사용되는 Moveit! 데이터를 확인Robot Steering
: 로봇 조정 GUI 툴, 원격 조정에서 이 GUI 툴을 이용하여 로봇 조종Runtime Monitor
: 실시간으로 노드들에서 발생되는 에러 및 경고를 확인서비스 (Services)
Service Caller
: 구동중인 서비스 서버에 접속하여 서비스를 요청Service Type Browser
: 서비스 타입의 데이터 구조를 확인토픽 (Topics)
Eash Message Publisher
: 토픽을 GUI 환경에서 발행Topic Publisher
: 토픽을 생성하여 발행Topic Type Browser
: 토픽 타입의 데이터 구조 확인Topic Monitor
: 사용자가 선택한 토픽의 정보를 확인시각화 (Visualization)
Image View
: 카메라의 영상 데이터를 확인Navigation Viewer
: 로봇 네비게이션의 위치 및 목표지점 확인Plot
: 2차원 데이터 플롯 GUI 플러그인, 2차원 데이터의 도식화Pose View
: 현재 TF의 위치 및 모델의 위치 표시RViz
: 3차원 시각화 툴인 RViz 플러그인TF Tree
: tf 관계를 트리로 나타내는 그래프 뷰실습 명령어는 다 각각 다른 터미널에 입력
$ rosrun uvc_camera uvc_camera_node
$ rqt
(메뉴에서 [Plugins] -> [Visualization] -> [Image View] 선택)
또는 $ rqt_image_view
$ 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
$ rosrun turtlesim turtlesim_node
$ rosrun turtlesim turtle_teleop_key
$ rqt
(메뉴에서 [Plugins] -> [
Visualization] -> [Plot] 선택)
또는 $ rqt_plot /turtle1/pose/
$ rosrun uvc_camera uvc_camera_node
$ rosbag record /image_raw
$ rqt
(메뉴에서 [Plugins] -> [Logging] -> [Bag] 선택)
또는 $ rqt_bag
RQT를 이용하면
1. GUI 형태로 ROS 이용 가능
2. GUI Tool 제작이 간단!
로봇 개발에 필요한 3차원 시뮬레이션을 위한 로봇, 센서, 환경 모델 등을 지원하고 물리 엔진을 탑재
하여 실제와 근사한 결과를 얻을 수 있는 3차원 시뮬레이터
최근에 나온 오픈 진영 시뮬레이터 중 가장 좋은 평가를 받고 있고, 미국 DARPA Robotics Challenge의 공식 시뮬레이터
로 선정되어 개발에 더욱 박차를 가하고 있음
ROS에서는 그 태생이 Player/Stage, Gazebo를 기본 시뮬레이터로 사용하고 있어서 ROS와의 호완성
도 매우 좋음
"시뮬레이션"이 필요하다면 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