반응형
ROS 용어
- Node : 최소 단위의 실행 가능한 프로세서
- ROS 에서는 최소한의 실행 단위로 프로그램을 나누어 작업
- 각 노드는 메시지 통신으로 데이터를 주고 받는다.
- Package : 하나 이상의 노드, 노드 실행을 위한 정보 등을 묶어 놓은 것
- 패키지 묶음을 메타 패키지라 하여 따로 분리
- Message : 메시지를 통해 노드 간의 데이터를 주고 받게 된다. 메시지는 integer, floating, point, boolean과 같은 변수 형태이다.
메시지 통신 용어
1. Topic
-
- Publisher : 메시지를 보내는 노드
- Subscriber : 메시지를 받는 노드
- 1:1 통신 뿐만 아니라, 목적에 따라 1:N, N:1, N:N 통신도 가능
- ex. 거리센서를 장착하고 있는 로봇이 그 토픽을 로봇 A, B에 동시에 전달할 수 있다.
- 주로 일방적인 데이터를 보내야 하는 센서 데이터에 많이 사용된다.Topic : 단방향, 연속성을 가진 통신 용어
- Service : 양방향, 1회성 통신 용어
- Service server : 서비스를 응답
- Service client : 서비스를 요청
- Action
- Action server : 액션 피드백 및 결과 전달
- Action client : 액션 목표 전달
- 많은 시간이 걸리는 복잡한 task에 주로 사용Action : 서비스와 비슷하지만 중간에 피드백이 있다는 차이
💡 90% 이상은 Topic을 사용한다.
메시지 통신
- 마스터 구동 : XMLRPC
- roscore : 서버 구동
- 서브스크라이버 노드 구동 (노드2)
- rosrun 패키지이름 노드이름
- 노드의 정보를 마스터에 전달
- 퍼블리셔 노드 구동 (노드1)
- rosrun 패키지이름 노드이름
- 노드의 정보를 마스터에 전달
- 퍼블리셔 정보 알림 : 마스터는 서브스크라이버 노드에게 새로운 퍼블리셔 정보를 알린다.
- 퍼블리셔 노드에 접속 요청 : 마스터로부터 받은 퍼블리셔 정보를 이용하여 TCPROS 접속을 요청
- 서브스크라이버 노드에 접속 응답 : 접속 응답에 해당되는 자신의 TCP URI 주소와 포트번호 전송
- TCP 접속 : TCPROS를 이용하여 퍼블리셔 노드와 직접 연결
- 메시지 전송 : 발행자 노드는 서브스크라이버 노드에게 메시지를 전송
- 서비스 요청 및 응답
ROS 메시지
- 파라미터 : 어떤 변수를 외부에서 변경시키고 다른 노드에서 프로세스를 바꾸는 등의 기능
- 메시지는 노드 간에 데이터를 주고 받을 때 사용하는 데이터의 형태
- 토픽, 서비스, 액션은 모두 메시지 사용
- 단순 자료형
- 메시지 안에 메시지를 품고있는 간단한 데이터 구조
- 메시지들이 나열된 배열과 같은 구조
네임
- 노드, 메시지를 가지는 고유의 식별자
- ROS는 그래프라는 추상 데이터 형태 지원
- 글로벌 - 문자 없이 네임을 바로 쓰거나 네임 앞에 슬래쉬
좌표변환(TF, transform)
- 각 조인트들의 상대 좌표 변환
클라이언트 라이브러리
- 다양한 프로그래밍 언어 지원
ROS 명령어 정리
Command-Line Tools
- rospack, roscd, rospd, roscp, rosnode, rostopic …
ROS 셸 명령어
ROS 실행 명령어
ROS 정보 명령어
ROS catkin 명령어
ROS 패키지 명령어
RViz : ROS Visualization Tool
- ROS의 3D 시각화 툴
- 센서 데이터 시각화
- 레이저 거리 센서의 거리 데이터
- RealSense, Kinect, Xtion 등의 Depth Camera의 포인트 클라우드 데이터
- 카메라의 영상 데이터
- IMU 센서의 관성 데이터
- 로봇 외형의 표시와 계획된 동작 표현
- URDF를 시각화
- 내비게이션
- 매니퓰레이션
- 원격제어
💡 RViz를 사용하면 센서 및 로봇 관련 데이터 시각화가 매우 간단하다.
RViz 실행
RQT
RQT 실습
Gazebo
- Gazebo는 로봇 개발에 필요한 3차원 시뮬레이션을 위한 로봇, 센서, 환경 모델 등을 지원하고 물리 엔진을 탑재하여 실제와 근사한 결과를 얻을 수 있는 3차원 시뮬레이터
- DARPA Robotics Challenge의 공식 시뮬레이터로 선정
- ROS와의 호환성도 매우 좋다.
반응형
'FOSCAR-(Autonomous Driving) > ROS 스터디' 카테고리의 다른 글
[2024 ROS 스터디] 초라핀스카 베로니카 #3주차 - ROS 기본 프로그래밍 (0) | 2024.07.18 |
---|---|
[2024 ROS 스터디] 곽우인 #3주차 - ROS 기본 프로그래밍 (1) | 2024.07.17 |
[2024 ROS 스터디] 김기태 #2주차 - ROS의 중요컨셉&명령어와 도구 (1) | 2024.07.14 |
[2024 ROS 스터디] 초라핀스카 베로니카 #2주차 - ROS에서 쓰이는 용어 및 도구 (0) | 2024.07.13 |
[2024 ROS 스터디] 곽우인 #2주차 - ROS에서 쓰이는 용어와 도구 (0) | 2024.07.12 |