
Chapter7. ROS 기본 프로그래밍
7-1 ROS 프로그래밍 전에 알아두어야 할 사항
ROS의 표준 단위는 국제단위계(SI 단위)를 따르며 좌표 표현 방식은 x:forward, y:left, z:up 과 오른손 법칙(회전)을 따른다.
Quantity | Unit |
angle | radian |
frequency | hertz |
force | newton |
power | watt |
voltage | volt |
length | meter |
mass | kilogram |
time | second |
current | ampere |
7-2 Publisher Node와 Subscriber Node 작성 및 실행
ROS에서는 단방향 통신일때 ‘Topic’ 이라는 메시지 통신을 사용한다. 이때 송신 측을 ‘Publisher’ , 수신 측을 ‘Subscriber’라고 부른다.
1. 패키지 생성
2. 패키지 설정 파일(package.xml) 수정
- ROS의 필수 설정 파일 중 하나인 package.xml은 패키지 정보를 담은 XML 파일로서 패키지 이름, 저작자, 라이선스, 의존성 패키지 등을
기술하고 있다.
3. 빌드 설정 파일(CMakeLists.txt) 수정
- CMakeLists.txt는 다양한 빌드환경을 위한 빌드 파일을 생성하는 유틸리티이다.
4. 메시지 파일 작성
5. Publisher Node 작성
6. Subscriber Node 작성
7. ROS Node 빌드
8. Publisher Node 실행
9. Subscriber Node 실행
10 .실행된 Node들의 통신 상태 확인
7-3 Service Server와 Client Node 작성 및 실행
서비스는 요청(request)이 있을 때만 응답(response)하는 서비스 서버 (service server)와 요청하고 응답받는 서비스 클라이언트(service
client)로 나뉜다. 서비스는 토픽과는 달리 일회성 메시지 통신이다.
1. 패키지 생성
2. 패키지 설정 파일(package.xml) 수정
3. 빌드 설정 파일(CMakeLists.txt) 수정
4. 서비스 파일 작성
5. Service Server Node 작성
6. Service Client Node 작성
7. ROS Node 빌드
8. Service Server Node 실행
9. Service Client Node 실행
[참고] GUI 도구인 Service Caller 사용
7-4 Parameter 사용법
ROS에서 파라미터는 노드 외부로부터 노드의 흐름이나 설정, 처리 등을 바꿀 수 있다.
1. Parameter를 활용한 Node 작성 (사칙연산을 할 수 있도록 파라미터를 활용)
2. Node 빌드 및 실행
3. Parameter 사용
7-5 Roslaunch 사용법
rosrun이 하나의 노드를 실행하는 명령어하는 명령어이다.
roslaunch는 하나 이상의 정해진 노드를 실행시킬 수 있다.
roslaunch의 활용
<launch> 태그 안에는 roslaunch 명령어로 노드를 실행할 때 필요한 태그들이 기술된다. <Node>는 roslaunch로 실행할 노드를 기술하게
된다. 옵션으로는 pkg(패키지의 이름), type(실제 실행할 노드의 이름), name(노드가 실행될 때 붙여지는 이름)이 있다.
'*.launch 파일 작성 예시 2' 사진은 roslaunch 네임스페이스 태그를 통해 Publisher Node와 Subscriber Node를 각각 두 개씩 구동하여
서로 별도의 메시지 통신하게 한 예이다.