-
데브코스 자율주행_TIL_23.09.25데브코스 자율주행 Perception/_TIL(Today I Learned) 2023. 9. 26. 22:50
코딩 가이드라인 특강
협업을 하면서 겪은 경험에 대해 들을 수 있는 강의였다.
협업시 다양한 문제가 발생할 수 있으며, 코드 베이스와 개발 가이드라인, 문법들이 잘 정리되어 코드를 작성한다면, 개발 시간을 단축 할 수 있다. 또한, 윈도우, 리눅스, 개발 보드등 개발 환경을 일관화 하면 개발할 때 좋다.
C++, Python등 개발에 필요한 IDE 확장 기능을 구성하면 좋다.
또한 개발 환경을 설정할 때, OS를 밀고 다시 설치하는 경우에는 오래 걸린다. Shell script 를 사용하여 한번에 설치하는 방법을 추천한다.
다른 사람들과 협업을 위해 개발 환경을 통합하는게 좋다.(OS version, build version등)
당연한 소리지만, 개발환경을 통일하지 않으면 문제가 발생한다.
내 로봇에서만 코드가 잘 돌아가는 것이 아닌, 일반적인 개발 환경에서 잘 돌아가는 것이 중요하다!!
C및 C++로 프로그램을 작성할 때, GCC와 clang 컴파일러를 사용할 수 있으며, GCC보다 clang이 라이센스 문제를 받지 않는다.
GCC
- 대부분의 저수준 언어를 지원
- 대부분의 운영 체제와 아키텍처에서 사용함
- 오프소스 라이센스를 가짐.
- 편하지만, 상업적으로 사용시 라이센스 문제가 발생.
- 표준 준수
clang
- C관련 컴파일러 프론트엔드
- LLAM 프로젝트 일부, LLVM 백엔드와 함께 사용되어 소스코드를 기계어로 번역.
- 진단 메시지의 명확등의 이점을 가짐.
- 라이센스 문제로 기업들이 GCC에서 clang으로 이주함.
- 통합 정적 분석 → 3일차때 이야기.
IDE로 vscode를 추천하며 다음과 같은 특징을 갖는다.
1. 확장성
vscode는 많은 사람들이 사용하는 IDE로 다양한 extention을 지원하며, 특히 cuda 언어를 지원하는 extention도 가지고 있다.(cuda를 지원하는 IDE는 vscode밖에 없다.)
2. 경량화 및 좋은 성능
vscode는 가볍고 사용 성능이 좋다.
3. 싱크로나이제이션 기능
내가 추가한 extention과 설정한 기능을 로그인을 하면 자동으로 가져온다.
ROS 강의
ROS(Robot Operating System)는 로봇을 개발하기 위해 만든 툴로 다양한 패키지를 제공한다.
각 회사들이 만든 툴과 로봇들을 합쳐서 작업하기 쉽게 만들어준다.
다양한 프로그래밍 언어를 지원하며 대표적으로 C++, Python이 있다.
ROS(Robot Operating System)는 여러개의 Node와 Master로 이루어져 있으며 Node들이 Master의 중재를 받아서 메시지를 주고 받는 형태이다.
ROS에서 사용하는 기본 용어
- Master
- Nodes
- Topics
- Publishers
- Subscribers
- Packages
ROS 설치 및 환경 설정:
https://mokchanic.tistory.com/50
ROS pub & sub 사용하기
https://mokchanic.tistory.com/51
ROS roslaunch 사용법
https://mokchanic.tistory.com/54
정리
협업에서 남들이 잘 이해할 수 있는 코드를 만드는건 정말 중요하다고 생각한다. 해당 특강을 들으며, 내 코드를 조금 더 잘 정리할 수 있도록 신경을 써야겠다.
ROS를 어느정도 사용해본 경험이 있어서 다행히 쉽게 따라할 수 있었다. 하지만, 안다고 방심하는게 아닌 다양한 방법으로 응용할 수 있도록 해보자.
'TIL > _TIL(Today I Learned)' 카테고리의 다른 글
데브코스 자율주행_TIL_23.10.02 (0) 2023.10.02 데브코스 자율주행_TIL_23.09.26 (0) 2023.09.26 데브코스 자율주행_TIL_23.09.22 (0) 2023.09.22 데브코스 자율주행_TIL_23.09.21 (0) 2023.09.21 데브코스 자율주행_TIL_23.09.20 (0) 2023.09.20