본문 바로가기

FOSCAR-(Autonomous Driving)/ROS 스터디

[2024 ROS 스터디] 이준호 #2주차 - ROS 명령어 및 도구

반응형

ROS 2주차 스터디

https://youtube.com/playlist?list=PLX-Ur4rl2-qwNB3cD5UAGo-RPe5IBw1pu&feature=shared

 

2024 ROS 스터디 2주차

 

www.youtube.com

 

ROS 용어

  1. Node : 최소 단위의 실행 가능한 프로세서 (하나의 실행 가능한 프로그램)
  2. Package : 하나 이상의 노드, 노드 실행을 위한 정보 등을 묶어 놓은 것
  3. Message : 메세지를 통해 노드간의 데이터를 주고 받게 된다.

Publisher → (Topic) → Subscriber

Topic에 대해 1:1의 Publisher Subscriber 통신도 가능하며, 목적에 따라서 1:N, N:1, N:N 통신도 가능하다.

Action, Action server, Action Client

 

액션 목표 전달

서버 ← 클라이언트

액션 피드백(중간결과) 전달, 액션 결과 전달

서버 → 클라이언트

 

마스터 구동 : 서버- XMLRPC(XML - Remote Prodecure Call)

https://ROS_MASTER_URL:11311 노드정보관리 — $roscore

 

$rosrun - 서브스크라이버, 퍼블리셔 노드 구동

마스터는 서브스크라이버 노드에게 새로운 퍼블리셔 정보를 알린다.

퍼블리셔 노드에 접속 요청

마스터로부터 받은 퍼블리셔 정보를 이영하여 TCPROS 접속을 요청

 

 

메시지는 노드 간에 데이터를 주고받을 때 사용하는 데이터의 형태

 

토픽, 서비스, 액션은 모두 메세지를 사용

단순 자료형

메세지 안에 메세지를 춤고 있는 간단한 데이터 구조

메시지들이 나열된 배열과 같은 구조

네임(Names)

노드, 메세지(토픽, 서비스, 액션, 파라미터) 가지는 고유의 식별자

ROS는 그래프라는 추상 데이터 형태 지원

글로벌(Global)

문자 없이 네임을 바로 쓰거나 네임 앞에 슬래쉬(/)를 붙임

프리베이트(private)

네임 앞에 틸트(~)를 붙임

좌표 변환(TF, transform)

각 조인트(joint)들의 상대 좌표 변환

트리 형태로 조인트들간의 관계도를 표시함

 

ROS 셸 명령어

$roscd - 지정한 ROS패키지의 디렉터리로 이동

$rosls - ROS 패키지의 파일 목록 확인

$rosed - ROS 패키지의 파일 편집

$roscp - ROS 패키지의 파일 복사

$rospd - ROS 디렉터리 인덱스에 디렉터리 푸가

$rosd - ROS 디렉터리 인덱스 확인

 

ROS 실행 명령어

$roscore - master(ROS 네임 서비스), rosout(로그 기록), parameter server(파라미터 관리)

$rosrun - 노드 실행

$roslaunch - 노드를 여러 개 실행 및 실행 옵션 설정

$rosclean - ROS 로그 파일을 검사하거나 삭제

 

ROS 정보 명령어
ROS catkin 명령어

Rviz (ROS Visualization Tool)

ROS의 3D 시각화툴

센서 데이터의 시각화

레이저 거리 센서(LDS)센서의 거리 데이터

RealSense, Kinect, Xtion 등의 Depth Camera의 포인트 클라우드 데이터

카메라의 영상 데이터

IMU 센서의 관성 데이터 등..

로봇 외형의 표시와 계획된 동작을 표현

URDF( Unfined Robot Description Format)

네비게이션

매니퓰레이션

원격 제어

 

RViz 설치 및 실행

RViz 설치

$sudo apt-get install ros-kinetic-rviz

 

Rviz 실행

$rosrun rviz rviz, $rviz

 

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

설치 - $sudo apt-get install ros-kinetic-rqt ros-kinetic-rqt-common-plugins

실행 - $rqt

RQT 플러그인 #1

 

RQT플러그인 #2
RQT플러그인#3

 

rqt_graph 예시)

rqt_graph 실습

반응형