공부중

[ROS2] Twist 메시지 구조 본문

프로그래밍/ROS

[ROS2] Twist 메시지 구조

복습 2024. 7. 29. 20:42
728x90

ROS에서 Twist 메시지는 로봇의 운동을 표현하기 위해 사용되며, geometry_msgs 패키지에 포함되어 있습니다. 이 메시지는 로봇의 선형 및 각속도를 3차원 공간에서 지정하는 데 사용됩니다. Twist 메시지는 선형 속도(linear)와 각 속도(angular)의 두 부분으로 구성되어 있습니다. 각 부분은 Vector3 타입으로 정의된 x, y, z 축의 값을 포함합니다.

 

 

Twist 메시지 구조

Twist 메시지는 다음과 같은 구조를 가지고 있습니다:

 

geometry_msgs/Vector3 linear
  float64 x
  float64 y
  float64 z
geometry_msgs/Vector3 angular
  float64 x
  float64 y
  float64 z

 

각 필드 설명

  • linear: 선형 속도를 나타내며, x, y, z 세 축에 대한 속도 값을 포함합니다. 일반적으로 로봇의 전진 및 후진 속도는 x 축을 통해 제어되며, y와 z는 사용하지 않거나 다른 특별한 용도로 사용될 수 있습니다.
    • x: 로봇의 전진 및 후진 방향으로의 속도. 양수 값은 전진, 음수 값은 후진을 나타냅니다.
    • y: 로봇의 왼쪽 또는 오른쪽으로의 측면 이동 속도. 대부분의 기본 로봇에서는 사용되지 않습니다.
    • z: 로봇이 상승 또는 하강하는 속도. 공중 또는 수중 로봇에서 사용될 수 있습니다.
  • angular: 각 속도를 나타내며, 회전을 제어하는 x, y, z 축에 대한 속도 값을 포함합니다. 대부분의 지상 로봇에서는 z 축을 중심으로 회전하는 것이 일반적입니다.
    • x: x 축을 중심으로 한 로봇의 롤(roll) 속도. 대부분의 지상 로봇에서는 사용되지 않습니다.
    • y: y 축을 중심으로 한 로봇의 피치(pitch) 속도. 대부분의 지상 로봇에서는 사용되지 않습니다.
    • z: z 축을 중심으로 한 로봇의 요(yaw) 속도, 즉 회전 속도. 양수 값은 반시계 방향 회전, 음수 값은 시계 방향 회전을 나타냅니다.

 

 

사용 예

Twist 메시지는 주로 로봇의 움직임을 제어하는 데 사용되며, 다양한 로봇 플랫폼과 시뮬레이터에서 널리 활용됩니다. 예를 들어, 로봇에게 특정 속도로 전진하면서 동시에 회전하도록 명령을 내릴 수 있습니다:

 

Twist()
  linear:
    x: 1.0
    y: 0.0
    z: 0.0
  angular:
    x: 0.0
    y: 0.0
    z: 0.5

 

이 명령은 로봇에게 초당 1미터의 속도로 전진하면서 초당 0.5라디안의 속도로 반시계 방향으로 회전하라는 지시를 합니다.

 

 

 

 

 

Twist 메시지를 사용하여 키보드 입력을 받아 터틀봇을 작동시키는 코드

 

https://brush-up.tistory.com/281

 

[ROS2] 키보드 조작 이동 코드

ROS 2를 사용하여 원격으로 로봇을 제어하기 위해 토픽을 사용하는 방법 기존에는 아래의 코드를 사용했지만 키보드를 사용하기 위해서는 루트 권한이 필요하다고 함. import rclpyfrom rclpy.node impor

brush-up.tistory.com

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

728x90