티스토리 뷰
[Object Tracking Robot]Study 내용 정리 (5) - ROS 기초
무엇보다_빛나는_샤트 2022. 2. 20. 14:462021.6.1 00:21
안녕하세요
프로그래밍을 배우는 빛나는 샤트입니다.
자율주행 프로젝트 We-Go
진행하면서 공부한 내용들을 간략히 정리한 글입니다.
1. 주제: ROS 기초
2. 내용
- workspace 생성
- 새로운 패키지 생성
- python 파일 사용 시 주의사항
3. workspace 생성
새로운 workspace 생성을 위해선 아래와 같은 폴더 구조가 필요하다.
new_folder
└src
1) 새로운 폴더를 생성하고 그 내부에 src라는 폴더까지 생성해야 한다.
$ mkdir -p new_folder/src
2) src 폴더 이동
$ cd new_folder/src
3) workspace 초기화
$ catkin_init_workspace
4) 상위 디렉토리 이동
$ cd ..
5) catkin_make 실행(새로운 패키지를 받거나 만들면 실행해야 함) - 실행 후 devel, build 폴더 생성됨.
$ catkin_make
4. 새로운 패키지 생성
workspace 생성은 ROS를 위한 기초 공사라고 보면 된다. 실제로 기능을 위해서는 패키지를 생성해야 하는데 간단하게 새로운 폴더를 만들어서 구동할 코드 파일을 작성하는 것이라고 보면 된다. 폴더 구조는 아래와 같다.
new_folder
└src
└new_pkg
1) src 폴더로 이동
$ cd src
2) 새로운 패키지 생성
'cakin_create_pkg 새로운패키지이름 rospy' 형식으로 명령어를 입력하면 된다.
$ catkin_create_pkg new_pkg rospy
3) 상위 디렉토리 이동
$ cd ..
4) catkin_make 실행(새로운 패키지 설치했으므로)
$ catkin_make
5. Python 코드 사용 시 주의사항
새로운 패키지를 만들었으니 다양한 코드 파일을 생성해보자.
폴더 구조는 아래와 같다.
new_folder
└src
└new_pkg
└scripts
└new_file.py
1) new_pkg 이동 && scripts 폴더 생성
$ cd new_pkg && mkdir scripts
2) 새로운 .py 파일 생성 및 수정
$ cd scripts && touch new_file.py && gedit new_file.py
3) 권한 설정(새로운 python 파일 생성 시 실행해야 함. 추가로 python 파일을 새로 만들 때에는 catkin_make를 할 필요 없다.)
$ chmod +x new_file.py
6. 작성한 파일 실행
※새로운 터미널을 실행할 때마다 new_folder/devel/setup.bash 실행해야 함. 하지 않으면 ROS 작동하지 않음.
$ cd new_folder && source devel/setup.bash
1) roscore를 실행해 master 실행
$ roscore
2) rosrun 패키지이름 py파일이름
새로운 터미널을 열어 new_folder/devel/setup.bash 실행한 후 아래 코드 실행해야 함. (새로운 터미널을 열였기 때문.)
$ roscd new_pkg
$ rosrun new_pkg new_file.py
위와 같이 'roscd 패키지이름 ' 명령어를 이용해 패키지가 설치된 경로로 이동한 후
'rosrun 패키지이름 py파일이름' 명령어를 이용해 py파일 실행할 수 있다.
●예시: 구독과 발행
발행: Hello World를 계속 발행
구독: 발행자가 주는 'Hello World'를 받아 출력
첫 번째 터미널에서 roscore 실행
$ cd new_folder && source devel/setup.bash
$ roscore
두 번째 터미널에서 rosrun new_pkg pub_class.py
$ cd new_folder && source devel/setup.bash
$ roscd new_pkg
$ rosrun new_pkg pub_class.py
세 번째 터미널에서 rosrun new_pkg sub_class.py
$ cd new_folder && source devel/setup.bash
$ roscd new_pkg
$ rosrun new_pkg sub_class.py
결과는 아래와 같다. 위의 예시에서는 패키지 이름이 new_pkg이지만 실제 아래 터미널에서는 shate라는 패키지 이름으로 했다. 혼동없길.
ROS설치는 따로 다루지 않았다.
설치가 모두 완료되었다는 가정에서 진행했다.
기초적인 workspace 생성, 패키지생성, python 파일 생성과 실행에 대해 정리했다.
'자율주행 로봇 > Object Tracking Robot' 카테고리의 다른 글
[Object Tracking Robot]5장 5주차 후기 (0) | 2022.02.20 |
---|---|
[Object Tracking Robot]4장 4주차 후기 (0) | 2022.02.20 |
[Object Tracking Robot]Study 내용 정리 (4) - STARK (0) | 2022.02.20 |
[Object Tracking Robot]3장 3주차 후기 (2) | 2022.02.20 |
[Object Tracking Robot]Study 내용 정리 (3) - YOLOv4 tiny (0) | 2022.02.20 |
- Total
- Today
- Yesterday
- 인공지능교육
- 실내자율주행
- 멋쟁이사자처럼
- 아이펠
- SLAM강의
- AIFFEL인공지능과정
- 자율주행로봇
- 양정연SLAM
- 인공지능 교육
- 모두의 연구소
- 자율주행기술
- 멘탈관리
- Slam
- 인공지능
- 광주AI
- AIFFEL후기
- IT
- 서빙로봇
- 광주
- 광주인공지능사관학교
- 모두의연구소
- SLAM공부
- ros
- 배달로봇
- 대전 인공지능
- 해커톤
- Python
- AIFFEL
- AIFFEL교육
- 도전
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |