ROS

ROS 기초

Jagbbum 2023. 9. 25. 14:50

ROS : robot operating system

- 각종 센서와 모터를 사용하기 편리하게 해줌

 

ROS가 제공하는 도구

- RVIZ 

 - 시각화 도구

 - 센서 데이터를 비록한 주변 환경 변화 시각화

 

- RQT

 - Qt 기반의 GUI 응용 개발 도구

 - 노드연결 정보 그래프 표현

 - 상호작용을 UI를 갖춘 응용 개발에 이용

 

- GAZEBO

 - 물리 엔진 기반 3차원 시뮬레이터

 - 시뮬레이터 제작 및 모델링 이용

 

ROS 핵심 기능 : 노드간 통신 기반으로 구동

 

ROS 기본 용어

- 마스터 : 노드들 사이의 통신 총괄 관리

- 노드 : 실행가능한 최소의 단위

- 토픽 : 노드들이 관심을 가지는 이야깃거리로 안에 데이터를 담고있음

- 발행자 : 특정 토픽에 데이터를 담아 외부로 송신하는 노드

- 구독자 : 특정 토픽을 수신하는 노드

- 패키지 : 하나 이상의 노드와 실행을 위한 정보를 묶은 단위

 

ROS 기본 통신 과정

1) 통신을 워하는 노드는 마스터에 의뢰하여 연결해야할 노드의 정보를 얻어 서로 정보교환

2) 통신환경 구축 후 노드 간 통신

 

ROS  통신 방식

토픽 방식 : 일반적, 지속적 방식 1:1, 1:N, N:N 가능

서비스 방식 : 서버가 제공하는 서비스에 클라이언트가 요청하는 방식 양방향 통신, 일회성 메시지 송수신

 

ROS  기본 명령어

ROS 셀 명령어

- roscd : 지정한 ros 패키지 폴더로 이동

- rosls : 패키지 파일 목록 확인

- rosed : 패키지 파일 편짐

- roscp : 패키지 파일 복사

ROS 실행 명령어

- roscore : mater + rosout + parameter server

- rosrun : 노드 실행

- roslaunch : 노드 여러 개 실행

- rosclean : 로그파일 검사및 삭제

ROS 정보 명령어

- rostopic : 토픽 정보 확인

 - rosnode :  노드 정보 확인

 - rosparam : 파라미터 정보 확인, 수정

- rosbag : 메시지 기록, 재생

- rosmsg : 메시지 정보 확인

- rosversion : 패키지 및 배포 버전정보 확인

- roswtf : ros 시스템 검사

ROS catkin 명령어

- catkin_create_pkg : catkin 빌드 시스템으로 패키지 생성

- catkin_make : catkin 으로 빌드

- cakin_eclipse : 패키지를 eclipse에서 사용할 수 있게 변경

- catkin_prepare_release : changelog 정리 및 버전 태깅

- catkin_init_workspace : catkin 빌드 시스템의 작업 폴더 초기화

- catkin_find : 검색

ROS package 명령어

- rospack : 패키지와 관련된 정보 보기

- rosinstall : 추가 패키지 설치

- rosdep : 해당 패키지의 의존성 파일 설치

- roslocate : 패키지 정보 관련 명령어

 

rqt_graph : 노드와 토픽의 관계 정보를 그래프로 출력

 

 

ROS 실행하기

1) 원하는 장소에 디렉토리 생성

2) 디렉토리에서 catkin_make 실행

3) roscore 실행

 

 

'ROS' 카테고리의 다른 글

ROS 노드 통신 문제  (0) 2023.10.03
ROS 원격 노드 통신  (0) 2023.09.27
ROS 노드 통신 - 메시지 커스텀  (0) 2023.09.26
ROS 노드 통신  (0) 2023.09.26
ROS 설치 (melodic)  (0) 2023.09.25