Autonomous driving Robot Car

나에게 simulation으로만 구현하는 로보틱스 프로젝트로는 뭔가 허전하다. 그래서 이번 프로젝트를 시작했다. 생각보다 많은 사람들이 취미로 자신만의 프로젝트를 하는것으로 보이는 아두이노를 이동한 조그마한 로봇카 프로젝트이다. 먼저 내가 구현한 로봇카는 스마트폰을 이용해 블루투스로 조종이 가능하고 초음파 센서를 통해 스스로 장애물과의 충돌을 피하는 로봇카이다. 이에 관한 자료는 인터넷에 널려 있는데다가 로봇을 제어하기 위한 프로그래밍 언어도 대학때 관심있어 배워둔… Autonomous driving Robot Car 계속 읽기

Mobile Robots & ROS

그동안 올렸던  mobile car/robot에 대한 내용을 정리하는 의미에서 이 글을 시작한다. Car 또는 wheeled robot의 움직이는 actuator와 움직이는 공간에서의 좌표와의 관계를 나타내는 kinematics는 로봇의 현재위치에서 새로운 위치로 움직이게 하기위해 자동차의 구동장치를 어떻게 조작해야 하는지에 대한 수학적 관계를 표현해 준다. 새로운 위치로 가는 방법은 다양한 방법이 있겠지만 최적의 path를 평가하는 알고리즘이 도입되어야 하고 주행 도중 우선… Mobile Robots & ROS 계속 읽기

EKF SLAM

자료를 조사해 보니 최근 수많은 다양한 종류의 SLAM 기법이 있고 그 성능도 높지만 아직 해결해야 할 문제들이 여전히 상존하는것 같다. 여기서 먼저 소개하려는 EKF(Extended Kalman Filter)는 SLAM 분야 연구에서 매우 중요한 위치를 차지한다. 수학적 기법이며, 비선형 움직임에 대한 예측을 시도한 기법이기 때문이다. 혹시나 하여 첨언하지만, 앞서 소개한 Kalman filter를 사용한 localization과는 다른 이야기다. Localization은 기본적으로… EKF SLAM 계속 읽기

Graph SLAM

초기에 출시된 진공청소 로봇은 사실 무작위로 설정된 방향으로 움직이며 청소를 하는 수준이었으며, 장애물과 같은 것만 피하는 기능을 가진 초보적인 로봇이었다. 그러나, 현재의 주율주행차는 과거의 로봇과 비교 불가능할만큼 높은 수준의 능력을 가지고 있다. 그런 능력향상의 중심에는 주변환경을 주행중에 정확히 mapping하는 능력을 바탕으로 한다. 이처럼 주변환경을 인식하고 입체적으로 주변 물체의 움직임 및 속도까지 동시에 알아 내는 능력은… Graph SLAM 계속 읽기

Car Autonomous Control

지금까지 자동차/로봇의 주행과 관련하여 몇개의 글을 올렸으나, 모두 개별적 주제의 이론적 구현에 관한 기초 개념위주였다. 이 분야에서 아직 다뤄야 할것이 더 있다고 판단된다. 그러나 너무 개별적인 이론에만 치우치는 것보다는 이쯤에서 한번 정리를 할 필요가 있다고 생각된다. 우리가 일반적으로 무선조정 (radio control)에 의해 조작되는 RC car를 생각하고 비교한다면, 주행로봇이 수행하는 일을 보면 훨씬 뒤떨어져 있다고 생각된다.… Car Autonomous Control 계속 읽기

Motion Planning : Dynamic Programming

앞서 소개한 A* method로도 훌륭하지만, 이번 포스팅은 다양한 문제에 범용적으로 사용 가능한 강화학습(Reinforcement Learning)기법인 Dynamic Programming을 사용하여 최적 path을 찾아내는 방법에 대한 글이다. RL을 구현하는데 가장 많이 사용하는 environment중의 하나가 grid world이므로, 최적 path를 찾는 환경이 이와 비슷하고, DP가 motion planning에 적용 가능하다는 것은 알 수 있다. Path search의 경우, DP의 reward개념보다는 cost 개념을 도입한다.… Motion Planning : Dynamic Programming 계속 읽기

Localization : Particle filter

앞서 histogram filter와 Kalman filter에 대해 알아 보았다. 특히 Kalman filter의 경우 Gaussian distribution을 보이는 state distribution과 measurements distribution의 이론적 해를 사용하여 계산할 수 있었다. 이번에는 이론적 해를 구하기 까다로운 경우는 접근하는 방법을 소개하고자 한다. 제목과 같이 particle filter를 사용하는 방법이다. 이론적 해를 구하기 어려울 때 사용한다고 하더라도, 개념을 표현하는 수식은 있다. 다른 filter에도 동일하게… Localization : Particle filter 계속 읽기

Car Kinematics

로봇에 대해 자료를 조사하다 보면 로봇카에 대한 내용이 많다. 아무래도 알고리즘 테스트가 다른것에 비해 용이하고, 실제 제작하여 실증해보기 편하기 때문일 것이다. 이번 포스팅은 이와 관련하여 기본적 주행로봇/자동차의 dynamics에 대해 다루고자 한다. Unicycle 곡예사가 바퀴가 하나달린 자전거를 타는 것을 상상해 보자. 이 자전거를 해석하는 것이  위 그림과 같은 unicycle에 대한 모델이다. 하나의 바퀴가 회전하는 속도는 속력과… Car Kinematics 계속 읽기

Localization : Kalman filter

앞서 포스팅한  Histogram filter와 같이 Kalman filter도 관측데이터로 부터 위치를 예측하는 방법에 자주 등장한다. Kalman filter는 공학분야에서 매우 다양하게 사용하므로 매우 중요한 위치를 차지하며, 널리 알려지진 않았지만 인류 기술발전에 지대한 공헌을 한 사람으로 이 filter를 제안한 Kalman이 선정되었다는 기사를 본 기억이 있다. Kalman filter는 일종의 control system을 포함한 dynamics system의 선형 미분방정식의 해를 구하는 방법이라고… Localization : Kalman filter 계속 읽기

Localization : Histogram filter

움직이는 물체가 자신의 위치를 정확히 파악하는 것은 매우 중요한 작업이다. 우리가 지도를 사용하고 GPS navigation를 사용하는 것은 바로 자신의 위치를 파악하기 위해서이다. 움직이는 로봇을 공부하면서 접한 개념이지만 localization은 생각보다 쉽지 않은 작업이다. 자율 주행차에서 매우 중요한 분야의 하나이기도 하다. 주변 환경에 대한 정보가 있는 상태에서 움직이는 물체가 센서를 통해 정보를 얻어 현재 자신의 위치가 어디인지… Localization : Histogram filter 계속 읽기