less than 1 minute read

메시지

  • 노드 간에 데이터를 주고 받을 때 사용하는 데이터의 형태
  • 토픽, 서비스, 액션은 모두 메시지를 사용한다.
  • 필드타입과 필드네임으로 구성되어 있다.
    fieldtype1 fieldname1
    fieldtype2 fieldname2
    fieldtype3 fieldname3
    ## 예시
    int32 x
    int32 y
    
  • 메시지의 상세자료형은 로스 위키에 적혀있다.

msg 파일

  • 토픽에 사용되는 메시지 파일은 *.msg라는 확장자를 이용한다.
    # geometry_msgs/Twist.msg
    Vector3 linear
    Vector3 angular
    

srv 파일

  • srv 파일은 서비스에서 사용되는 메시지 파일로 확장자는 *.srv를 이용한다.
  • msg파일과의 큰 차이점은 ---이 구분자 역할을 하여 상위 메시지가 서비스 요청 메시지, 하위 메시지가 서비스 응답 메시지로 사용된다.
sensor_msgs/CameraInfo camera_info
---
bool success
string status_message

action 파일

  • action 메시지 파일은 액션에서 사용되는 메시지 파일로 *.action이라는 확장자를이용한다.
  • ---이 구분자 역할로 두군데 사용되어 첫번째가 goal 메세지, 두번째가 result 메세지, 세번째가 feedback 메시지로 사용된다. 가장 큰 차이점은 action 파일의 feedback 메시지이다. action 파일의 goal 메시지와 result 메시지의 역할이 위에서 언급한 srv 파일의 요청과 응답 메시지의 역할과 같지만, feedback메시지는 지정된 프로세스가 수행되면서 중간 결과값 전송 목적으로 이용한다는 것에 차이가 있다.
# 출발지점 start_pose와 목표 지점 goal_pose의 위치와 자세를 요청값으로 전송하게 되면 로봇은 정해진 목표지점으로 이동하여 최종적으로 도달된 result_pose의 위치 자세값으로 전달한다.
# 주기적으로 중간 결과값으로 percent_complete 메시지로 목표 지점까지의 도달 정도를 퍼센트로 전달하게 된다.

geometry_msgs/PoseStamped start_pose
geometry_msgs/PoseStamped goal_pose
---
geometry_msgs/PoseStamped result_pose
---
float32 percent_complete

Categories:

Updated: