**Autonomous driving tech./*ROS2

[ROS2] Practice of the Node, Topic, Service( client, server ) & etc

2wnswoo 2024. 12. 25. 12:43

ROS 프로그래밍 규칙( 코드 스타일 )

- 이름 규칙에는 snake_cas, CamelCased, ALL_CAPITALS와 같이 3종류의 네이밍을 기본으로 사용한다. 

- 파일 이름 및 변수명, 함수명에는 모두 소문자로 snake_case 이름 규칙을 사용한다. 가독성을 해치는 축약어는 가능한 사용하지 않으며 확장자명은 모두 소문자로 표기한다.

- 타입 및 클래스는 CamelCased  이름 규칙을 사용하고 상수는 ALL_CAPITALS 이름 규칙을 사용한다.

 

단, ROS 인터페이스 파일은 /msg 및 /srv 또는 /action 폴더에 위치시키며 인터페이스 파일명은 CamelCased 규칙을 따른다. 그 이유는 *.msg 및 *.srv 또는 *.action 파일은 *.h(pp) 및 모듈로 변환한 후 구조체 및 타입으로 사용되기 때문이다.

 

그 이외에 특정 목적에 의해 만들어지는 파일 이름은 예외적으로 대소문자 규칙을 따르지 않는다. ( Ex. package.xml, CMakeLists.txt, README.md, LICENSE 등 )

 

--

Practice of the Node, Topic, Service( client, server )

 

*cd 의 의미 : Change Directory로 리눅스 기본 명령어이며 cd 다음으로 오는 경로로 이동한다는 의미

*~ 의 의미 : home을 말함

 

디렉토리 위치를 변경 후 ls( list를 의미 ) 명령어를 통한 디렉토리 속 파일들을 표시

 

패키지 설정 파일( package.xml ) 수정

ROS의 필수 설정 파일 중 하나인 package.xml은 패키지 정보를 담은 XML 파일로서 패키지 이름, 저작자, 라이선스, 의존성 패키지 등을 기술하고 있다.

gedit package.xml 명령어로 실행시킨 모습

 

gedit은 기본적으로 제공되는 텍스트 편집기로, 코드 수정, 텍스트 파일 편집 등 다양한 용도로 사용이 가능하다.

ROS 패키지의 package.xml이나 CMakeLists.txt 파일과 같은 설정 파일을 수정할 때 유용하다.

 

--

mkdir 명령어로 폴더 msg를 생성

 

 --

파라미터 설정

ROS 2에서 파라미터를 사용하려면 다음과 같이 크게 3가지 함수가 필요하다.

 

1. declare_parameter 함수

2. get_prameter 함수

3. add_on_set_parameters_callback 함수

 

- declare_parameter 함수는 노드에서 사용할 파라미터의 고유 이름을 지정하고 초깃값을 설정한다.

- get_parameter 함수는 노드에서 사용할 파라미터의 값을 불러오는 것으로 선언된 파라미터 고유 이름을 이용한다. 이는 주로 런치 파일에서 호출된 *.yaml 확장자를 가지는 파라미터 파일에 저장된 값을 불러오는데 사용된다.

- add_on_set_parameters_callback 함수는 서비스 형태로 파라미터 변경 요청이 있을  때 사용되는 함수로 지정된 콜백 함수를 호출하게 된다.