Ubuntu ROS 실습(22)

zeusqoi·4일 전

개인공부

목록 보기
41/44

ROS 2에서는 여러 노드와 패키지가 데이터를 주고받기 때문에 물리량의 단위를 통일해서 사용하는 것이 중요하다.

예를 들어 어떤 노드에서 속도 값을 1.0으로 전달했을 때, 이것이 1.0 m/s인지 1.0 km/h인지 서로 다르게 해석한다면 데이터 처리 과정에서 오류가 발생할 수 있다.

이러한 문제를 방지하기 위해 ROS에서는 국제적으로 널리 사용되는 SI 단위(International System of Units)와 SI 유도 단위(SI derived units)를 표준 단위로 사용한다. ROS의 표준 단위와 좌표계에 관한 내용은 REP-103에서 다루고 있다.


1. 왜 표준 단위를 사용하는가?

ROS에서는 여러 노드가 서로 데이터를 주고받는다.

이때 각 노드가 서로 다른 단위를 사용하면 데이터를 전달받은 노드에서 다시 단위 변환을 해야 한다.

예를 들어 속도 데이터를 다음과 같이 사용한다고 가정해보자.

1.0 m/s
1.0 km/h

두 값은 숫자는 같지만 실제 속도는 서로 다르다.

따라서 ROS에서 사용하는 물리량의 단위를 통일하면 다음과 같은 장점이 있다.

  • 노드 간 데이터 해석을 일관되게 할 수 있다.
  • 불필요한 단위 변환을 줄일 수 있다.
  • 단위가 달라서 발생하는 오류를 줄일 수 있다.
  • 다른 ROS 패키지를 사용할 때 데이터의 의미를 쉽게 이해할 수 있다.

특히 ROS 커뮤니티에서 공개된 다양한 패키지를 사용할 때 동일한 단위 기준을 사용하면 패키지 간 호환성을 높일 수 있다.


2. SI 단위와 SI 유도 단위

ROS에서는 국제 단위계인 SI 단위를 기본으로 사용한다.

SI 단위는 7개의 기본 단위로 구성되며, 이 기본 단위들을 조합하여 다양한 SI 유도 단위를 만들 수 있다.

ROS에서 로봇 개발에 자주 사용하는 대표적인 물리량과 단위는 다음과 같다.

물리량표준 단위기호
길이 (length)meterm
질량 (mass)kilogramkg
시간 (time)seconds
전류 (current)ampereA
평면각 (angle)radianrad
주파수 (frequency)hertzHz
힘 (force)newtonN
일률/전력 (power)wattW
전압 (voltage)voltV
온도 (temperature)Celsius°C
자기장 (magnetism)teslaT

ROS에서는 물리량의 종류에 맞는 표준 단위를 사용하여 데이터를 표현한다.


3. 로봇에서 자주 사용하는 단위

로봇 개발에서는 위치, 속도, 가속도, 회전 등의 물리량을 자주 사용한다.

대표적으로 다음과 같이 표현할 수 있다.

길이

길이는 meter(m)를 사용한다.

1.0 m

로봇의 위치나 센서와 로봇 사이의 거리 등을 표현할 때 사용할 수 있다.

시간

시간은 second(s)를 사용한다.

1.0 s

센서 데이터의 시간 간격이나 메시지의 timestamp 등을 표현할 때 사용한다.

각도

각도는 radian(rad)를 사용한다.

π/2 rad ≈ 90°

ROS에서는 회전이나 각속도를 표현할 때 radian을 사용하는 것이 중요하다.

속도

선속도는 길이와 시간의 조합으로 표현한다.

m/s

예를 들어,

1.0 m/s

는 1초에 1m를 이동하는 속도를 의미한다.

각속도

회전 속도는 다음과 같이 표현한다.

rad/s

예를 들어 로봇의 회전 속도나 IMU의 자이로 데이터를 표현할 때 사용할 수 있다.

이처럼 ROS에서는 각각의 물리량에 맞는 단위를 조합하여 사용한다.


4. 단위 통일의 중요성

ROS에서는 여러 패키지와 노드가 서로 데이터를 주고받는다.

따라서 데이터를 전달하는 쪽과 전달받는 쪽이 동일한 단위 기준을 사용해야 한다.

예를 들어 로봇의 속도를 표현할 때,

1.0

이라는 값만 전달하면 그 값이 어떤 단위인지 알 수 없다.

하지만 ROS에서 표준적으로 사용하는 단위를 기준으로 한다면,

1.0 m/s

와 같이 데이터의 의미를 명확하게 이해할 수 있다.

또한 여러 패키지를 조합해서 사용하는 경우에도 단위 변환을 반복적으로 수행할 필요가 줄어들어 시스템을 보다 일관되게 구성할 수 있다.


5. ROS에서 기억해야 할 대표 단위

ROS 2를 사용하면서 특히 자주 접하게 되는 단위는 다음과 같다.

길이       → m
질량       → kg
시간       → s
각도       → rad
선속도     → m/s
각속도     → rad/s
가속도     → m/s²
힘         → N
전압       → V
전류       → A

특히 각도는 degree(°)가 아닌 radian(rad)을 사용하는 경우가 많기 때문에 주의해야 한다.

예를 들어,

90° = π/2 rad ≈ 1.5708 rad
180° = π rad ≈ 3.1416 rad
360° = 2π rad ≈ 6.2832 rad

따라서 ROS 2에서 회전 관련 데이터를 다룰 때는 해당 값이 radian 기준인지 확인하는 것이 중요하다.


마무리

ROS 2에서는 노드와 패키지 사이에서 주고받는 물리량의 의미를 일관되게 하기 위해 SI 단위와 SI 유도 단위를 표준으로 사용한다.

대표적으로 길이는 m, 질량은 kg, 시간은 s, 각도는 rad, 선속도는 m/s, 각속도는 rad/s로 표현한다.

표준 단위를 사용하는 것은 단순히 숫자의 단위를 맞추는 것이 아니라, 여러 ROS 노드와 패키지를 안정적으로 연결하고 불필요한 단위 변환이나 데이터 해석 오류를 줄이기 위한 중요한 약속이다.

0개의 댓글