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 |