#ROS 프로그래밍 전 알아둘 것
표준단위 - SI단위 (각도/Radian, 주파수/Hz, 힘/N, 전력/W, 길이/m, 무게/kg, 등..)
좌표 표현 방식 - x:forward, y:left, z:up , 회전 = 오른손 법칙
프로그래밍 규칙 - http://wiki.ros.org/CppStyleGuide에서 확인가능
#Topic/Service 작성
1. Topic Publisher/Subscriber
1) 패키지 생성
2) 패키지 설정 파일 (package.xml) 수정 - ROS 필수 설정 파일중 하나, 패키지 이름, 저작자, 라이선스, 의존성 패키지 등이 담김
3) 빌드 설정 파일 (CMakeLists.txt) 수정
4) 메시지 파일 작성 - time과 int32 외에도 boot, int8, int16, float32, 등... 메시지 기본 타입과 ROS에서 많이 사용되는 메시지를 모아놓은 common_msgs 등도 있다.
5) 퍼블리셔 노드 작성
6) 서브스크라이버 노드 작성
7) ROS노드 빌드
8) 퍼블리셔 실행
9) 서브스크라이버 실행
10) 실행된 노드들의 통신 상태 확인
2.Service Server/client
1)패키지 생성
2) 패키지 설정파일 수정
3) 빌드 파일 수정
4) 서비스 파일 작성 ('---' 요청과 응답을 구분하는 구분자)
5) 서비스 서버 노드 작성
6) 서비스 클라이언트 노드 작성
7) ROS 노드 빌드
8) 서비스 서버 실행
9) 서비스 클라이언트 실행
10) rqt 실행으로 확인
*하나의 노드는 복수의 퍼블리셔, 서브스크라이버, 서비스서버, 서비스클라이언트 역할도 할 수 있다.
#Parameter
1) 파라미터를 활용한 노드 작성
2) 노드 빌드 및 실행
#roslaunch
rosrun - 하나의 노드를 실행하는 명령어
roslaunch - 하나 이상의 정해진 노드를 실행
1)roslaunch 활용
원래 의도와 다르게 서로의 메시지를 모두 서브스크라이브 하고있음
2) 수정
3) launch 태그
'FOSCAR-(Autonomous Driving) > ROS 스터디' 카테고리의 다른 글
[2024 ROS 스터디] 반제호 #4주차 - SLAM과 내비게이션 (0) | 2024.07.25 |
---|---|
[2024 ROS 스터디] 반제호 #3주차 - ROS 기본 프로그래밍 (0) | 2024.07.22 |
[2024 ROS 스터디] 초라핀스카 베로니카 #3주차 - ROS 기본 프로그래밍 (0) | 2024.07.18 |
[2024 ROS 스터디] 곽우인 #3주차 - ROS 기본 프로그래밍 (1) | 2024.07.17 |
[2024 ROS 스터디] 이연수 #2주차 - ROS 용어 및 도구 (0) | 2024.07.14 |