ros-tooling/generate_parameter_library

Declarative ROS 2 Parameters

해결하는 문제

ROS 2 노드는 매개변수를 선언, 읽기, 검증하고 때로는 동적으로 업데이트해야 합니다. 이러한 상용구 코드를 직접 작성하는 것은 번거롭고 오류가 발생하기 쉽습니다. 이 프로젝트는 간단한 YAML 설명에서 모든 코드를 자동으로 생성하므로, 로직을 중복하지 않고도 일관되고 검증된 매개변수 처리를 구현할 수 있습니다.

작동 방식

각 매개변수의 유형, 기본값, 설명 및 검증 규칙(범위 또는 허용된 값 등)을 설명하는 YAML 파일을 작성합니다. 빌드 시스템이 해당 파일을 읽어 구조체가 포함된 C++ 헤더 또는 Python 모듈을 생성합니다. 런타임에 생성된 ParamListener 클래스가 노드에서 매개변수를 선언하고, 값을 가져와 검증합니다. 유효하지 않거나 필수 매개변수가 누락된 경우 예외가 발생합니다. 이후 get_params()를 호출하여 모든 값이 포함된 스냅샷 구조체(또는 객체)를 가져와 중첩된 필드로 쉽게 액세스할 수 있습니다. 동적 매개변수의 경우, 변경 여부를 확인하거나 업데이트 시 실행되는 콜백을 연결할 수 있습니다.

대상 사용자

반복적인 코드 작성 없이 C++ 또는 Python에서 노드 매개변수를 관리하려는 ROS 2 개발자를 위한 도구입니다. 간단한 설정부터 사용자 지정 검증, 중첩된 매개변수 구조, 다른 매개변수를 키로 사용하는 매개변수 맵이 필요한 복잡한 설정까지 모두 지원합니다.

주요 특징

  • 깔끔한 YAML로 매개변수를 작성하고 C++ 또는 Python 코드를 자동으로 생성.
  • 내장 검증기: bounds, one_of, unique, size, not_empty 등.
  • 사용자 지정 C++ 검증기를 추가하고 YAML에서 참조 가능.
  • 간단한 is_old() 확인 또는 사용자 콜백을 통해 동적 매개변수 업데이트가 용이.
  • 노드에 대한 매개변수 문서를 자동으로 생성.

관련

  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트