ROS의 변환 이해하기

저작권: 쿼드(QUAD) 드론연구소 https://smartstore.naver.com/maponarooo

ROS는 이러한 변환을 처리하기 위해 tf2(TransForm 버전 2) 라는 시스템을 제공합니다. 모든 노드는 tf2라이브러리를 사용하여 한 프레임에서 다른 프레임으로 변환을 브로드캐스트 할 수 있습니다 . 위에서 언급한 바와 같이 이러한 변환은 트리 구조를 형성해야 합니다. 여기서 각 프레임은 다른 프레임의 하나의 변환에 의해 정의되지만 이에 종속되는 프레임 수는 얼마든지 있을 수 있습니다. 아래 그림은 나중에 살펴볼 트리의 일부를 보여줍니다. 이 트리에서 basecameraworld에 상대적으로 정의되고 l3base에 상대적으로 정의됩니다.

또한 모든 노드는 tf2라이브러리를 사용하여 변환을 수신한 다음 변환을 사용하여 포인트가 트리에 연결되어 있는 한 모든 프레임에서 다른 프레임으로 포인트를 변환할 수 있습니다.

노드가 특정 변환을 브로드캐스트할 때 Static정적 (시간이 지남에 따라 변경되지 않음)이거나 Dynamic동적 (시간이 지남에 따라 변경될 수 있지만 반드시 그럴 필요는 없음)일 수 있습니다. 이렇게 구별하는 이유는 정보가 최신인지 여부를 알아야 하고 브로드캐스터가 한동안 동적 변환을 업데이트하지 않은 경우 오류를 표시할 수 있기 때문입니다. 반면에 정적 변환은 한번만 브로드캐스트될 수 있으며 새 변환이 브로드캐스트될 때까지 올바른 것으로 간주됩니다.

기본적으로 tf2라이브러리는 이 모든 통신을 처리하기 위해 여전히 토픽( /tf/tf_static)를 사용하고 있지만, 실제로 우리가 직접 토픽에 게시하지 않기 때문에 게시 및 구독 대신 브로드캐스팅 및 청취라고 합니다.

Last updated