RS02에서 워크스패이스, 패키지, 노드 생성 등은 app 개발의 기본이고 찾아본 필요성은 아래와 같다.
워크스페이스 생성의 필요성
1) 프로젝트 구조화: 워크스페이스는 ROS2 프로젝트의 최상위 디렉토리로, 관련된 패키지들을 체계적으로 관리할 수 있게 해줍니다.
2) 빌드 환경 설정: colcon 빌드 시스템을 사용하여 프로젝트를 쉽게 빌드하고 관리할 수 있습니다.
3) 의존성 관리: 워크스페이스 내의 패키지들 간의 의존성을 자동으로 해결해줍니다.
패키지의 필요성
1) 모듈화: 기능별로 코드를 분리하여 관리할 수 있어 재사용성과 유지보수성이 향상됩니다.
2) 의존성 선언: 패키지 단위로 필요한 의존성을 명시적으로 선언할 수 있습니다.
3) 배포 용이성: 패키지 단위로 코드를 쉽게 공유하고 배포할 수 있습니다.
4) 빌드 관리: 패키지별로 빌드 설정을 관리할 수 있어 복잡한 프로젝트도 효율적으로 관리할 수 있습니다.
노드 작성의 필요성
1) 분산 시스템 구현: ROS2의 기본 실행 단위인 노드를 통해 분산 시스템을 쉽게 구현할 수 있습니다
2) 모듈화된 기능 구현: 각 노드는 특정 작업을 수행하므로, 로봇 시스템의 기능을 모듈화하여 구현할 수 있습니다
3) 재사용성: 노드는 독립적으로 실행되는 프로세스이므로, 다른 프로젝트에서도 쉽게 재사용할 수 있습니다
4) 통신 구현: 노드를 통해 발행/구독 패턴의 비동기 통신과 서비스를 이용한 동기 통신을 구현할 수 있습니다
5) 로깅 및 디버깅: 노드는 내장된 로깅 기능을 제공하여 시스템 모니터링과 디버깅을 용이하게 합니다
'프로그래밍 > ROS2' 카테고리의 다른 글
ROS2 기반 로봇 (1) | 2024.10.26 |
---|---|
DDS(Data Distribution Service) 란? (2) | 2024.10.22 |
토픽 / 서비스 / 액션 등의 통신 패턴 (0) | 2024.10.21 |
ROS2의 핵심 개념 (1) | 2024.10.21 |