Topic

jngeun·2021년 4월 1일
0

Ros

목록 보기
3/4

참고 자료 : 오로카 9강

토픽

  • 토픽 : 비동기식 단방향 메시지 송수신 방식
  • msg 메시지 형태의 메시지를 발간하는 publish와 메시지를 구독하는 subscriber로 구성
  • 1 : N / N : 1 / N : N 통신이 가능
  • Ros에서 널리 쓰이는 통신 방식

  • publish와 subscriber를 동시에 수행 가능
  • 자신이 발행한 토픽을 셀프 구독할 수 있다.
  • 센서 값 전송 및 항시 정보를 주고 받아야하는 부분에 주로 사용

Ros interface

: 노드 간에 데이터를 주고 받을 때 사용되는 데이터의 형태

  • msg
  • srv
  • action
  • IDL(interface definition language)

단순자료형 - int, float, bool
메시지 안에 메시지를 품고 있는 데이터 구조 - vector
메시지들이 나열된 구조 - 배열

토픽 명령어

#토픽 목록 확인
#현재 개발 환경에서 동작 중인 모든 노드들의 토픽 정보를 볼 수 있는 것
#-t 옵션은 각 메시지의 형태를 함께 표시
$ ros2 topic list -t

#시각적으로 확인
$ rqt_graph

#토픽 내용 확인
$ ros2 topic echo [토픽명]

#토픽 대역폭 확인
#송수신받는 토픽 메세지의 크기
$ ros2 topic bw [토픽명]

#토픽 주기 확인
$ ros2 topic hz [토픽명]

#토픽 지연 시간 확인
$ ros2 topic delay [토픽명]

#토픽 발행
$ ros2 topic pub [topic_name][msg_type] "[args]"

#bag 기록
#토픽을 파일 형태로 저장하고 필요할 때 저장된 토픽을 다시 불러와 동일 타이밍으로 재생
#알고리즘 개선 작업 및 성능 검증 테스트를 할 수 있다.
#토픽을 기록하고 재생하는 도구
#-o [이름] 옵션으로 파일 이름 지정 가능
$ ros2 bag record [topic_name1][topic_name2] [topic_name3]

#저장된 rosbag파일의 정보를 확인
$ ros2 bag info [파일이름]

#bag재생
$ ros2 bag play [파일이름]

#메시지 인터페이스 확인
$ ros2 interface show [메시지이름]

#개발 환경의 모든 msg, srv, action 보여줌
$ ros2 interface list

#msg, srv, action 인터페이스를 담고 있는 패키지의 목록을 보여줌
#패키지 옵션에 패키지명을 입력하면 한 패키지에 포함된 인터페이스를 보여줌
$ ros2 interface packages [패키지명]

#인터페이스의 기본 형태 표시
$ ros2 interface proto [특정 인터페이스]

0개의 댓글