ROS 2

tf2 : Introducing tf2

정지홍 2025. 2. 4. 16:17

https://docs.ros.org/en/jazzy/Tutorials/Intermediate/Tf2/Introduction-To-Tf2.html

 

Introducing tf2 — ROS 2 Documentation: Jazzy documentation

© Copyright 2025, Open Robotics.

docs.ros.org

 

빨간색은 x축  , 초록색은 y축  , 파란색은 z축

 

tf2란?

  • tf2는 ROS에서 사용하는 프레임워크이다.
  • 좌표 프레임 간의 변환( transformation )을 관리하는데 사용한다.
    • 좌표 프레임이란? ( coordinate frame )
      • 공간에서 위치(position)과 방향(orientation)을 정의하기 위한 기준점(origin)축(axis)를 의미.
        즉, '어디를 기준으로 위치와 방향을 측정할 것인가'를 결정하는 것.
        • 원점 origin : 좌표 프레임의 기준이 되는점
        • 축 axis : 2d에서는 x,y축이며 3d는 x,y,z축이다.
        • 방향 : 각 축의 방향이 정의되어 있어야 회전을 표현할 수 있다.

 

tf2가 왜 필요한가?

  • 로봇은 다양한 센서와 모듈을 가지고 데이터를 수집한다.
    수집한 데이터는 각기 다른 좌표 프레임을 기반으로 측정된다.
    • ex) 카메라는 카메라 좌표계에서 이미지를 캡처.
            LiDAR는 레이저 좌표계에서 거리 데이터를 측정.
      • 이렇게 여러 좌표계가 존재할때, 로봇이 자신의 위치를 정확히 파악하고 환경을 이해하기 위해서는 좌표 변환이 필수.

 

 

tf2의 기본 구성요소

  • 크게 2가지 요소로 나누며 tree형태로 연결된다.
    • Frame : 좌표계를 나타냄.
    • Transform : 한 좌표계에서 다른 좌표계로의 위치 및 회전 정보를 나타냄. (3d에서는 이동(translation) + 회전( rotation)의 조합 )

 

tf2의 핵심 패키지

  • tf2_ros : tf2의 ros인터페이스를 제공
    • 주로 아래 2개의 클래스를 사용
      • TransformBroadcaster : 좌표 변환 정보에 다른 노드에 전송broadcast하는 역할
        • ex) 로봇의 각 부품간 위치 정보를 지속적으로 publish
      • TransformListener : 다른 노드에서 보낸 변환 정보를 listen하고, 원하는 변환을 요청하는 역할
  • tf2_geometry_msgs : geometry_msg타입(ex. pose , point , vector3 )에 대한 변환 기능을 제공한다.
  • tf2_tools : tf2트리 구조를 시각화하거나 디버깅 할수있는 툴을 제공
  • tf2_py : 파이썬에서도 사용할 수 있게 해줌.

 

 

 

Installing the demo

  • 아래 명령어를 입력하여 설치
sudo apt-get install ros-jazzy-rviz2 ros-jazzy-turtle-tf2-py ros-jazzy-tf2-ros ros-jazzy-tf2-tools ros-jazzy-turtlesim

 

 

Running the demo

  • 이번에는 turtke_tf2.py 튜토리얼 데모 패키지를 해보자.
    우선 터미널을 열어서 source해주고 ros2 launch turtle_tf2_py turtle_tf2_demo.launch.py 를 입력하자.

이렇게 2마리의 거북이가 나타나며 시간이 지나면 서로 겹쳐진다.

  • ros2 run turtlesim turtle_teleop_key 를 입력해서 거북이를 움직이면 또 다른 거북이가 따라올것이다.

'ROS 2' 카테고리의 다른 글

Launch file  (0) 2025.02.05
URDF : Using URDF with robot_state_publisher  (1) 2025.02.04
URDF : Using Xacro to clean up your code  (0) 2025.02.04
URDF : Adding physical and collision properties  (0) 2025.02.04
URDF : Building a movable robot model  (0) 2025.02.03