
Introduction to The Dynamic Pickup and Delivery Problem Benchmark Introduction to The Dynamic Pickup and Delivery Problem Benchmark -- ICAPS 2021 Competition The Dynamic Pickup and Delivery Problem (DPDP) is an essential problem within the logistics domain. So far, research on this problem has mainly focused on using artificial data which fails to reflect the complexity of real-world problems. I..

editor, Seungeon Baek(백승언) Reinforcement learning Research Engineer [Kor] 안녕하세요, 오랜만에 블로그를 쓰게 되네요! 이번 글은 논문 리뷰가 아닌, 강화학습 관련한 저의 첫 포스팅 글입니다. 이번에 작성하는 글에서 다루고자 하는 내용은 "강화학습은 어떤 문제를 풀 수 있는가?"입니다. 이와 관련하여, 비슷한 글이 있는지 여러 키워드로 검색을 해 보았는데 강화학습이 어떤 문제를 풀 수 있는지에 대한 내용보다는, 강화학습이 현재 적용되고 있는 분야와 관련된 블로그들이 대부분임을 알 수 있었습니다. (Application of RL, Usage of RL,... etc) 그렇기에, 부족하지만, 제가 한 번 강화학습이 어떤 문제를 풀 수 있는지에 대한 ..
오랜 생각이 하나 있는데, 좀 두서 없고 말도안되더라도 용서해주시길 바랍니다. ㅎㅎ 하나의 가정(상상)에서 시작한다. 만약 로봇들이 만들어진 목적에 맞게 완벽하게 작동하면 어떻게 될까? 그리고 그 유효성이 입증돼서 사용가능한 로봇의 수가 굉장히 많아진다면? 그렇게되면, 로봇 한대의 개체는 한 가지 이상의 작업을 잘 하기위한 복잡한 시스템으로 여겨져 왔지만 그냥 입력을 주면 당연히 그 작업을 잘 수행해내는 유닛(unit)으로 보게되는 시점이 올 것이다. 그렇다면 여러대의 로봇 묶음을 컴퓨터의 CPU처럼 생각해서 하나의 큰 작업 과정 자체를 작은 작업 단위들로 프로그래밍을 할 수 있을 것이다. CPU의 연산 유닛을 로봇 묶음의 로봇 한 대로 볼 수 있게되는 것이다. 그렇게해서 소프트웨어나 서비스를 개발하듯이..

이번글에서는 BT의 Design principle에 대해서 알아보자. 사실 디자인 정책 같은 것까지 알아야할 필요가 있나 싶지만, 기본적인 내용은 숙지한 상태에서 Groot 같은 BT를 만들어주는 툴을 사용해보도록 하자. 결국 설계를 하고 들어가냐 아니냐, 혹은 큰 틀을 이해하고 진행하냐가 숙련도의 차이를 만들테니깐. BT의 기본 컨셉 Root로부터 tick이라는 시그널은 tree를 통해 마지막 leaf 노드까지 전달된다. tick 시그널을 받은 트리 노드는 callback을 실행한다. callback은 SUCCESS, FAILURE, RUNNING을 리턴한다. 트리 노드가 한개 이상의 자식노드가 있다면, tick을 전파할 수 있고 전파 기준은 자식이 얼마나 시그널을 받았는지에 따라 다르다. leaf 노..

Behavior Tree의 디자인 형식에 대해 알아보기 전에 behavior 과 관련 된 로봇 프로그래밍 아키텍쳐에 대해서 알아보도록 하자. 참고한 논문과 책에서는 크게 3가지(Subsumption Architecture, Teleo-Reactive, Decision Trees)를 다루고 있다. 이들을 이제부터 SA, TR, DT라고 부르기로 하자. Subsumption Architecture SA는 용어 그대로 계층적인 구조의 아키텍쳐이다. 발표 된 논문에 나온 예시를 사용하면서 설명해보자. 아주 간단한 로봇이 있다. 이 로봇의 SA 최하위 계층에는 음파 탐지기를 이용해 장애물을 탐지하고 장애물을 피하는 작업이 있다 (Obstacle Avoidance). 그 위 계층에는 무작위로 로봇을 움직이게 하는 ..

BT는 Mobile robot에는 꽤 많이 사용되고 있는 것 같다. BT Navigator가 최근에 업데이트 되고 있는 걸 볼 수 있다. 이런 동향을 조금 더 파악하고, 로봇 팔과 모바일 로봇 팔에서 적용해볼 수 있는 가능성에 대해 회사에서 이야기했다. 이야기를 하다보니 FSM과 BT에 대해 조금 더 깊은 이해가 필요할 것 같아서 정리해보려 한다. BT란? 아마도 BT를 가장 잘 아는 사람들은 게임 업계 개발자분들 일것이다. BT는 자율적인 에이전트(agent)가 다른 일(Task)들을 바꾸는 방법을 구조화 하는 것을 말한다. 간단한 Pick and Place 구조를 위 그림에서 확인할 수 있다. BT의 가장 중요한 장점은 modular와 reactive이다. BT의 초기 발명은 게임에 존재하는 NP..

쿼드콥터 동역학 모델링, PID제어기에 이어 Classic한 SMC입니다. 모두 선형화시킨 시스템에서 디자인 했습니다. 원하는 위치로 이동하기 위한 목표 각도를 유도하고 현재 자세가 tracking하도록 구성했습니다. Nonlinear System 수업시간에 이해한대로 만들어 보았으니 틀린 부분이 있다면 지적 부탁드립니다. ( 저도 제대로 이해하면 좋으니까요 ) 빠르게 만들고 정리하느라 결과에 대한 리뷰라던지 하지 못했는데 시간이 되면 하겠습니다. Robust Controller인데 .. PID 비교테스트도 안해봤네요 ..ㅋㅋ;; 추가하겠습니다. Robust Controller의 성능을 확인해보기 위해 Dynamics에 일정한 Band내에 Noise를 가해보았고 PID 제어기, 슬라이딩 모드 제어기의 성..

매트랩 및 파이썬 Simulation자료는 깃에 업로드 했습니다. 의식의 흐름대로 작성해보았는데.. 다 설명됐는지는 모르겠습니다. 해놓고 정리할라 그러니까 귀찮아졌습니다요 ㅜ 다음과 같이 구성하였을 때 모든 위치가 수렴하기까지 14초정도 소요된 것으로 보인다. PID 게인은 임의로 지정하였고 문서에 기록 되어있음. 쿼드의 무게는: 1 로터까지의 길이는 0.3m이다. 제어입력: Position(7, -10, 5), Heading(1 rad) 왼쪽 위치, 오른쪽 속도 노란선 X, 파란선 Y, 주황선 Z 왼쪽 각도, 오른쪽 각속도 노란선 Roll, 파란선 Pitch, 주황선 Yaw https://github.com/mkyun2/Quadrotor GitHub - mkyun2/Quadrotor: Dynamics ..