티스토리 뷰

2021. 10. 3. 19:55

 

안녕하세요

프로그래밍을 배우는 빛나는 샤트입니다. 

 

SLAM 강의 16번째. Left Turn for wall following, Right Turn for Searching Obstacles


*이 포스팅은 목원대학교 양정연 교수님의 SLAM강의 유튜브 영상을 보고 제작되었음을 밝힙니다.

출처: 16강. Left Turn for wall following, Right Turn for Searching Obstacles

16강. Left Turn for wall following, Right Turn for Searching Obstacles

 

🎉강의요약

1. 로봇 청소기의 좋은 전략을 가지고 있는 Roomba

2. 문제 자체를 Stochastic하게 보았기 때문에 직진은 좌측 바퀴에 e만큼 미세한 값을 추가해서 장애물 탐지

3. 벽에 충돌 후 빠져나오기 위해 회전만으로는 부족하기 때문에 좌측 바퀴는 후진, 우측 바퀴는 전진으로 후진 모션으로 빠져 나온 후 우측 또는 전진을 해서 벽을 따라가는 모션 구현

4. 실제로 역공학으로 분석하고 다시 알고리즘 구성하고 튜닝이 오래 걸리지 않았다->Stochastic한 문제로 봤기 때문

5. 속도의 입력은 정규 분포를 가지는 확률적인 값을 입력해서 매번 같은 값이 입력되는 것이 아님.

 

<Mobile Robot CANNOT follow Straight line without SLAM>

확률적인 문제에서 랜덤 요소들을 어떻게 잘 넣을 수 있을지 중요
예시: 로봇 청소기가 벽에 부딪혔을때 얼마나 각도를 틀어야 하는지
Roomba의 전략(우회전: 장애물 찾기, 좌회전: 벽 따라가기)

 

<Mobile for Two Approaches in Stochastic World.>

[직진] - 사실은 우회전, 우회전하면서 장애물 탐지
결정론적 방법은 직진을 위해 좌우 바퀴에 동일한 속도 제시
Stochastic 방법은 속도의 입력을 속도의 확률 분포를 입력하는 방식
(대략 평균이 10인 정규분포 입력: 대개 10이 입력되지만 다른 값도 입력 가능함)

WL~N(m+e,1): 왼쪽 바퀴는 m+e 평균을 가지고 있다.
e만큼 더 이동하게 되면 확률적으로 왼쪽 바퀴가 더 빠르기 때문에 우회전하게 된다.

 

[좌회전]
벽에 부딪혀서 후진(우측)해야한다. 좌측 바퀴는 뒤로 우측 바퀴는 앞으로 움직여 후진해서 회전하기 위한 공간을 확보한다. 이때도 속도는 정규 분포의 형태로 확률적으로 입력된다.
센서값이 있긴 하지만 부정확하기 때문에 후진하는 것이 좋다.

<Stochastic Strategy for Cleaning Robot>

벽에서 빠져나오는 것은 해결.
벽을 타고 가야하는 문제.
> 기본적으로 우측으로 회전하면서 스파이럴 무브하는데 벽과 가까우면 후진-전진(우회전), 너무 멀어지면 전진(우회전). 이 두가지를 반복
>> 즉, 그림처럼 벽과 완전 평행한 움직임이 아닌 약간 출렁이는듯한 움직임

 

<Moving in a Straight Line is Not Possible. Then, Do a Circular Motion>

기본 전략: 좌측 바퀴 속도 > 우측 바퀴 속도: 스파이럴 무브
하지만 그 차이는 작아야 하므로 exp()을 추가해서 구현한다.
!offset값이 매우 중요!

 

 

<Wall following>

벽에 부딪혔을 때 그냥 회전하면 자주 실패
후진(2A)를 해서 공간확보(2B)
그 이후 전진 또는 우회전 각도를 줄여서 진입: 약간 오른쪽 회전이 더 수월

 

<Wall Following>

센서는 3개.
1. 우측바퀴 V0, 좌측 바퀴: V0+e, 하지만 좌측 그래프처럼 조금 벽과 떨어진 움직임이 보인다
2. 하지만 K값을 추가해줘서 보정해주면 우측 그래프처럼 벽을 잘 따라가는 것을 알 수 있다.

 

<Over Bumping... Double Thershold Instead of Steering Control>

너무 출렁이는 움직임보다 직선과 비슷한 움직임이 좋기 때문에 Double Threshold를 이용해 p컨트롤과 같은 움직임 제어 실행

 

피드백은 언제나 환영합니다.😊

틀린 부분 있다면 지적해주시고 도움이 되었다면 댓글 공감 눌러주세요

LIST
댓글