본문 바로가기

기타 스터디 본문

개인 프로젝트 and 논문/ROS2

기타 스터디

jaegomhoji 2022. 8. 9. 16:58

자율주행 관련 프로젝트에 갑자기 참여하게 되었다.

딥러닝 이외에 관련 내용 공부한 것을 정리해보고자 한다. 

 

참고 및 펌 블로그 : 

 

https://velog.io/@717lumos/Sensor-IMU의-개념-및-활용법

 

[IMU] IMU의 개념 및 활용법

IMU의 개념 및 가속도 센서, 자이로스코프, 지자기센서, 보정 방법

velog.io

 

https://blog.naver.com/PostView.naver?blogId=ycpiglet&logNo=222139077774&categoryNo=91&parentCategoryNo=0 

 

[수학] 칼만 필터(Kalman Filter)란 무엇인가? (로봇, 자율주행, SLAM 알고리즘)

자율주행(Autonomous Driving)에는 기계(Mobility)가 이동을 하면서 스스로 장애물을 파악해서 피하고, ...

blog.naver.com


 

 

 

IMU(Inertial Measurement Unit) = '관성 측정 장치'

관성을 측정하여 최종적으로 구하고자 하는 값은 물체가 기울어진 각도를 정확하게 측정하는 것이다.

자이로스코프/가속도계/지자기센서로 구성됨.

6축 -> 센서 자이로스코프(3) 가속도계(3)

9축 -> 자이로스코프와 가속도계 지자기센서

 

 

- >가속도 -> ( 보정 ) -> 각속도 -> ( 보정 ) 지자기 센서  -> ( 보정 ) -> 칼만 필터 등 여러 보정 기법 

 

 

-가속도 ( Acceleration sensor ) 

비중력인 force를 측정한다, 동적 힘이 발생했을 때, 움직임의 변화에 따른 가속도의 변화(단위: m/s^2)를 순간적으로 감지해낸다.
가속도를 적분하면 진행 방향에 대한 속도를 계산할 수 있다.

순간적인 측정에 기반하여 짧은 기간에 대한 오차는 작으나, 센서에서 얻은 가속도 값을 적분하므로 시간에 따라 오차가 누적된다고 한다.

이러한 이유로 GPS와 결합하여 보정한다고 한다. 

 

*** 가속도 계산에도 각속도 계산기가 필요한 이유 

어느 쪽으로 기우는 등 자세가 변함에 따라 x와 y, z 축 가속도계가 서로 영향을 미치며 측정 가속도값은 변화한다.

지상에서는 물체는 수직 하방으로 중력가속도만큼(-g) 힘을 받고 있다.

== 만약 정지된 상태라면, 중력 방향으로 작용하는 힘을 계산하여 각 축의 방향으로 기울어진 각도를 계산할 수 있다. 

 

 

사진 : https://velog.io/@717lumos/Sensor-IMU의-개념-및-활용법

예를 들어 위 사진과 같이 y방향으로 45°기울었다고 하자. 그렇다면 기울어진 상태에서 중력 방향으로 G=0.707만큼의 힘이 작용하여 이것이 x축과 z축 방향으로 나뉘어 힘이 출력될 것이며, 이 비율을 arctan 계산을 통해 각도를 알 수 있는 것이다.

 

* arctan 계산이란 

 

하지만 위 예시 상황과는 달리 물체가 움직일 경우, 즉 중력 외 가속이 있는 경우에는 가속도 센서만으로는 정확한 기울기를 알 수 없다. 중력 가속도와 이동에 의한 가속도 값이 구분이 안되기 때문이다.
그래서 이를 보정하기 위해 각속도 센서(자이로스코프)를 이용한다.

 

 

-각속도(자이로센서 )

 


자이로스코프는 대표적인 관성 센서로, 물체의 회전 변화량인 각속도(단위: rad/s)을 측정한다.

각속도 : 특정 축을 기준으로 회전하는 속도.

 

자이로스코프는 중력을 이용하여 코리올리 힘을 검출한다. 중력이 가해질 때 진동 속도가 변하는 것을 각속도로 계산해, 질량과 진동 속도를 통해 값을 측정하여 검출할 수 있다.

 

코리올리 효과 : 물체가 회전하고 있는 좌표계 위에 존재할 경우, 직선 방향의 힘을 가하면 회전을 하는 것.

지구의 자전, 세면대 배수구의 소용돌이, 팽이치기 

 

코리올리 힘 : 효과를 유발하는 힘 

 

 

자이로스코프는 종류에 따라 정확도와 크기, 출력 형태가 다양하며, 대부분 회전 각속도를 측정한다고 한다.


샘플링 시간(Δt)마다 회전 각속도를 측정한다면 (회전각) = (각속도 측정값) X (샘플링 시간)로 회전각을 구할 수 있다.
이 원리에 입각해 각속도를 통해 최종적으로 물체가 기울어진 각도를 구하려면, 각속도를 측정의 전체 시간에 걸쳐 적분을 해야 한다. 

 

그러나 움직일 때 오차가 발생하는데, 이 오차가 적분 시에 누적된다면 시간이 지날수록 누적오차가 매우 커져 물체가 기울어진 각도 값이 실제와는 차이가 나고, 해당 오차를 보완하기 위해 지자기 센서를 활용한다.

 

+ 자이로스코프는 온도에 따라 측정값이 변화하기도 하는데, 하여 일부 IMU에서는 온도 센서를 추가적으로 내장하여 이용해 오차를 보상하기도 한다.

 

 

- Roll, Pitch, Yaw 

위에서 살펴본 바와 같이 자이로스코프를 이용해 물체의 자세를 알아내고 물체가 움직임에 따라 자세를 업데이트하려면, 초기 물체의 Roll과 Pitch, Yaw 각에 자이로스코프에서 계산된 회전각을 누적(적분)해야 한다.

 

- 6자유도

Localization 관련 딥러닝 모델을 살펴보다가 6DOF라는 term을 접했다. 

6자유도(Six Degrees of Freedom, 6DOF)란 여섯 개의 운동 방향을 말하며, 로봇공학이나 비행기, 선박 등에서 사용되는 개념이다.


위치(Position)에 대하여 x, y, z축 각각으로 선형 이동하는 Sway, Surge, Heave가 있고, 회전(기울기, Orientation)에 대하여 x, y, z축 각각을 기준으로 회전하는 Pitch, Roll, Yaw가 있다. 

 

앞서 본 바와 같이 Roll과 Pitch는 가속도 센서에서 간단히 구할 수 있으며 시간에 따라 적분할 필요가 없다. 물론 온도나 타 잡음에 대한 오차가 있긴 하지만, 역시나 시간에 대한 값은 아니다.

 

반면 Yaw는 가속도 센서로 계산할 수 없어 자이로스코프에서 적분을 통해서만 구할 수 있으며 이 과정에서 누적오차가 발생한다.
이 때문에 지자기 센서를 융합해 사용하고 칼만 필터(Kalman Filter)로 보정하기도 한다.

 

 

칼만 필터 

 

측정 데이터에 포함된 노이즈를 필터링 하기 위한 방법 중 하나이다.

 

마르코프 연쇄작용을 바탕으로, 예측치와 측정값의 차이를 재귀필터를 통해 계속 구해나가는 것. 최소자승법 사용.  

- 관측치는 선형적이여야 한다. -> 물체의 관측치가 시점 변화시에도 서로 선형적인 관계를 가지고 있어야 한다.  

- 확률분포에 기반한 예측이기 때문에 정규분포를 따라야 한다. 

- 그래야 다음 상태를 확률적으로 예측하고, 실제 값과의 차이를 통해 보정과 추정을 한다. 

- 이후 재귀적으로 다시 다음 위치를 예측하고 ~ on and on. 메모리가 자유로워지는 장점이 있다. 

 

다만, 데이터가 어느정도 있어야 하고, 초기에는 상대적으로 불안정하다고 한다. 

핸드폰 ( 1Hz ) GPS , 날씨 예측,  컴퓨터 비전 , 로봇 공학 등 여러 분야에 사용된다고 한다. 

 

+ 확장 칼만 필터 

+

 

 

 

 

'개인 프로젝트 and 논문 > ROS2' 카테고리의 다른 글

gazebo collision 오류  (0) 2022.09.21
Comments