일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- ros rviz
- piracer
- ROS topic
- ros 제어
- ros tf
- 가상환경
- ROS
- ros network
- ros node
- ros 정적 파라미터
- 리눅스
- Node
- ros 입문
- ros 실시간
- 노드
- ros 공부
- ros 3d
- ROS 기초
- ros cfg
- ros 동적 파라미터
- ROS 초보
- ros link
- ros rqt_tf_tree
- ros rqt
- ros launch
- 우분투
- ROS 노드
- 라즈베리파이
- ros 로봇
- ros 파라미터
- Today
- Total
대원의 블로그
[ROS #04] ROS 환경 구조 이해하기 본문
이번 글에서는 ROS의 환경구조를 이해해보고자 한다.
참고 자료:
https://www.youtube.com/watch?v=6iQEnVgpHmo&list=PLoc4bSmQajN-y88btKBK6lvAbrTtJDrYs&index=5
ROS 워크 스페이스
저번 글에서 ROS의 워크스페이스를 만들어보았다. (practice라는 이름을 가진...)
소스코들를 컴파일한 결과물은 어디에 있을까?
1. 결과물
워크스페이스에서 catkin_make를 통해서 빌드를 진행하면 그에 대한 결과물이 만들어지는데 이는 워크스페이스 devel 안에 존재한다.
2. 실행파일
그렇다면 실행파일은 어디에 있을까? 실행파일은 devel/lib안에 패키지 이름안에 실행파일의 형태로 존재한다.
./basic_node
위와 같은 코드로 rosrun과 같은 실행이 가능하다.
기본 패키지의 위치
turtlesim과 같은 기본 패키지는 opt/ros/noetic/lib에 위치한다.
source devel/setup.bash는 무언인가?
우리가 만든 소스코드를 실행을 하기 위해서는 아래의 코드를 통해서 실행을 시켜줬다.
source devel/setup.bash
하지만 turtlesim을 실행할 때는 그러한 과정이 없었다.
그 이유는 .bashrc(터미널이 실행될 때 자동으로 실행되는게 뭔지 정하는 파일)에 미리 되어 있었기 때문이다.
밑에 보면 source /opt/ros/noetic/setup.bash를 확인할 수 있다.
이론상 여기에 source ~/practice/devel/setup.bash를 입력하면 추가 과정없이 터미널을 열기만해도 작동이 될것이다.
터미널을 한번 닫았다가 열어주면 되는 것을 확인할 수 있다.
ROS 패키지 경로 확인하기
ROS의 패키지 경로는 어떻게 되는지 확인해보겠다.
아래의 명령어를 통해서 현재 ROS의 패키지 경로가 어떻게 되어있는지 확인할 수 있다.
export |grep ROS
내 워크스페이스를 인식을 시키면
다음과 같이 2개의 경로가 모두 인식이 되는 것을 확인할 수 있다.
이렇게 되면 2개의 패키지를 모두 사용이 가능하다.
이 과정은 기존 ROS 패키지 경로에 내가 만든 패키지 경로가 독립적으로 되어 있는 것이 아니다.
기존 ROS 패키지 경로에 내가 만드는 패키지 경로가 연결되어 있는 것이다.
그 기준은 src 파일에 있는 CMakeList 파일이 기준이 된다.
주의 : 빌드를 위해 수정했던 것과는 위치가 다름 그건 패키지에 있던거
그러면 한번 Cmake를 삭제했다가 다시 빌드를 해보겠다.
#CMakeList.txt 다시 만들기
catkin_init_workspace
빌드가 잘 되는 것을 확인할 수 있다.
추가 다른 패키지 경로도 연결시켜보기
practice_1이라는 워크스페이스를 만들어서 새로 연결하는데 성공하였다.
여기까지 ROS의 기본 환경 구조에 대해서 알아보았다.
'개발 > ROS' 카테고리의 다른 글
[ROS #06] ROS Launch 이해하기 (1) | 2024.10.21 |
---|---|
[ROS #05] ROS Topic 이해하기 (0) | 2024.10.15 |
[ROS #03] ROS Node 이해하기 (0) | 2024.10.14 |
[ROS #02] ROS noetic 개발툴 설치하기 (qtcreator ros, Terminator 설치) (0) | 2024.10.14 |
[ROS #01] ROS noetic 설치하기 (0) | 2024.10.14 |