1. 메시지
- 파일형태
msg 파일
토픽에 사용되는 메시지파일, 확장자 : *.msg
- srv 파일
서비스에 사용되는 메시지파일, 확장자 : *.srv
상위메시지: 서비스 요청 메시지, 하위메시지: 서비스 응답 메시지
- action 파일
액션에 사용되는 메시지파일, 확장자 : *.action
상위 메시지: goal (목표), 중간 메시지 : result,
하위 메시지 : feedback(중간결과값)
2. 네임
- 노드와 메시지(토픽, 서비스, 액션, 파라미터)가 가지는 고유의 식별자
- 마스터에 등록하고 네임을 기반으로 검색
- 다른 유형의 네임과 중복되어도 무방함
ex) 토픽에 A라는 네 임을 가진 요소가 있고, 서비스에 A라는 네임을 가진 요소가 있어도 무방
- 네임을 선언하는 방식에 따라 Relative(기본), Global, Private로 나뉨
ex) ros::Publisher node1_pub = nh.advertise<std_msg::Init32>(“노드이름”,10);
Relative : ros::Publisher node1_pub = nh.advertise<std_msg::Init32>(“bar”,10);
Global : ros::Publisher node1_pub = nh.advertise<std_msg::Init32>(“/bar”,10);
Private : ros::Publisher node1_pub = nh.advertise<std_msg::Init32>(“~bar”,10);
3. 좌표변환 (TF)
- 사진속의 로봇이 이동하게 되면 로봇의 좌표는 각 상관 관계가 있 는 관적들의 상대 좌표 변환에 따라 이동하게 되는 원리,
로봇 프로그래밍에서 좌 표 변환을 통한 각 로봇의 관절 이용은 매우 중요하며 ROS에서는 이것을 Transforn의 약자인 TF라고 함

4. 다양한 클라이언트 라이브러리 지원
- roscpp(C++), rospy(python), roslisp(Lisp) rosjava(java)
- roscs, roseus, rosgo, roshask, rosnodejs, RobotOS.jl, roslua, PhaROS, rosR, rosruby, Unreal-Ros-Plugin 등
5. 이기종 디바이스간의 통신
- 운영체제와 상관없이 ROS가 설치되어 노드가 개발된 상태라면 노드들 간의 통신 가능
ex) 임베디드 시스템인 마이크로컨트롤러 기반의 디바이스라도 ROS 메시지 송수신 받을 수 있다면 로봇 제어에서 많이 사용하는 제어기 레벨에서도 메시지 통신 가능

'SW > ROS' 카테고리의 다른 글
| ROS의 도구 (0) | 2023.11.02 |
|---|---|
| ROS의 명령어 (2) | 2023.11.02 |
| ROS의 메시지 통신 (0) | 2023.11.02 |
| ROS 의 개념 (2) | 2023.11.02 |
| ROS 개발환경 구축하기 (3) | 2023.11.02 |

