통신/mqtt

mqtt yaml 구성

우금붕 2024. 4. 4. 10:59
broker:
  host:              # [localhost] MQTT 브로커를 실행하는 머신의 IP 주소 또는 호스트 이름
  port:              # [1883] MQTT 브로커가 수신 대기 중인 포트
  user:              # 브로커 인증에 사용되는 사용자 이름(비어 있으면 익명으로 연결을 시도합니다)
  pass:              # 브로커 인증에 사용되는 비밀번호
  tls:
    enabled:           # [false] SSL/TLS를 통해 연결할지 여부
    ca_certificate:    # [/etc/ssl/certs/ca-certificates.crt] 클라이언트가 신뢰하는 CA 인증서 파일(ROS_HOME 기준)​
client:
  id:                   # 클라이언트를 식별하는 데 사용되는 고유 ID 문자열(브로커는 빈 ID를 허용하고 자동으로 생성할 수 있음)
  buffer:
    size:                 # [0] 브로커에 연결되지 않은 경우 브리지에서 버퍼링하는 최대 메시지 수(클라이언트 ID가 비어 있지 않은 경우에만 사용 가능)
    directory:            # [buffer] 브로커에 연결되지 않은 경우 메시지를 버퍼링하는 데 사용되는 디렉터리(ROS_HOME 기준)
  last_will:
    topic:                # 이 클라이언트의 last-will message에 사용된 주제(지정되지 않은 경우 마지막 유언장 없음)
    message:              # [offline] last-will message
    qos:                  # [0] 최종 메시지의 QoS 값
    retained:             # [false] last-will message를 유지할지 여부
  clean_session:        # [true] 이 클라이언트에 대해 클린 세션을 사용할지 여부
  keep_alive_interval:  # [60.0] 연결 유지 간격(초)
  max_inflight:         # [65535] 기내 메시지의 최대 수
  tls:
    certificate:          # 클라이언트 인증서 파일(브로커에 클라이언트 인증서가 필요한 경우에만 필요, ROS_HOME 기준)
    key:                  # 클라이언트 개인 키 파일(ROS_HOME에 상대적)
    password:             # client private key password
    version:              # TLS version (https://github.com/eclipse/paho.mqtt.cpp/blob/master/src/mqtt/ssl_options.h#L305)
    verify:               # 클라이언트가 연결 후 확인을 수행해야 하는지 확인합니다.
    alpn_protos:          # list of ALPN protocols (https://www.openssl.org/docs/man1.1.1/man3/SSL_CTX_set_alpn_protos.html)
bridge:
  ros2mqtt:            # 어떤 MQTT topic에 매핑할 ROS topic을 지정하는 객체
    ros_topics:          # 연결할 ROS topic을 지정하는 배열
      - {{ ros_topic_name }} # 연결되어야 하는 ROS topic은 YAML의 하위 개체에 해당합니다.
    {{ ros_topic_name }}:
      mqtt_topic:          # 해당 ROS 메시지가 브로커로 전송되는 MQTT 주제
      primitive:           # [false] 기본 메시지로 게시할지 여부
      inject_timestamp:    # [false] ROS2MQTT 페이로드에 타임스탬프를 첨부할지 여부(수신기 측 지연 시간 계산용)
      advanced:
        ros:
          queue_size:        # [1] ROS subscriber queue size
        mqtt:
          qos:               # [0] MQTT QoS value
          retained:          # [false] MQTT 메시지 유지 여부
  mqtt2ros:            # 어떤 ROS 주제에 매핑할 MQTT 주제를 지정하는 객체
    mqtt_topics:         # 연결할 ROS topic을 지정하는 배열
      - {{ mqtt_topic_name }} # 브리지되어야 하는 MQTT 주제는 YAML의 하위 개체에 해당합니다.
    {{ mqtt_topic_name }}:
      ros_topic:           # 해당 MQTT 메시지가 게시되는 ROS 주제
      primitive:           # [false] 기본 메시지로 게시할지 여부(ROS가 아닌 MQTT 클라이언트에서 오는 경우)
      advanced:
        mqtt:
          qos:               # [0] MQTT QoS value
        ros:
          queue_size:          # [1] ROS publisher queue size
          latched:             # [false] whether to latch ROS message​

'통신 > mqtt' 카테고리의 다른 글

SLAM map 정보 송수신(.pgm, .yaml)  (1) 2024.04.26
MQTT Client 연결 확인 (코드 추가)  (0) 2024.04.22