[Robotics Trends 2023] Team OLP’s IROS Review : Motion Planning

[Robotics Trends 2023] Team OLP’s IROS Review : Motion Planning

Introduction

안녕하세요. 이번 IROS 2022에 참관했었던 마키나락스 ML솔루션팀 OLP 프로젝트를 맡고 있는 정유정입니다. 이번 포스팅에서는 IROS2022 학회에서 저희팀에서 관심 가지고 보았던 주제 중 모션 플래닝(motion planning)을 리뷰할 예정입니다.

먼저 모션 플래닝에 대해 간략하게 설명해 드리도록 하겠습니다. 모션 플래닝은 패스 플래닝(path planning)이라고도 하며, 로봇이 시작 지점에서 목표 지점까지 장애물에 충돌하지 않고 움직이는 일련의 모션을 만들어내는 것입니다.

Motion and Path Planning은 학회가 진행되는 3일 동안 총 9개의 세션이 있었고, 이는 IROS2022에서 가장 많았습니다. 그뿐만 아니라, 다른 세션에서도 모션 플래닝에 대한 인사이트를 얻을 수 있었습니다. 로보틱스 특성상 문제를 풀기 위해 여러 기술이 섞여 있어서 Motion and Path Planning 세션뿐만 아니라 Collision Avoidance, Deep Learning Methods, Safety in HRI, Manipulation System, Optimization and Optimal 등과 같이 다른 세션 주제들에서도 모션 플래닝에 관한 다양한 접근법을 찾을 수 있었습니다.

이전 포스팅에서는 저희 프로젝트가 하는 일과 OLP팀에서 얻은 전반적인 인사이트들을 정리하였습니다(IROS에서 OLP 프로젝트 해결의 실마리를 찾다 에서 확인하실 수 있습니다). 간략하게 다시 저희 프로젝트를 소개해 드리자면, 자동차 용접 공정에 있는 로봇들이 사이클 타임에 맞춰 작업할 수 있도록 각 로봇에 작업할 용접점을 배정하고 용접순서를 결정합니다. 그리고 순서에 맞게 안전한 모션을 만들어내는 것이 목표입니다. 그러므로 모션 플래닝은 OLP에서 정말 중요한 task입니다. 빠르게 모션을 추정하여 최적의 배정을 할 필요가 있고 또한 최종 결과로는 안전하고 좋은 품질의 모션을 만들어야 합니다.

따라서 이번 포스팅에서는 IROS 2022에서 소개되었던 다양한 모션 플래닝 연구 중 저희 OLP팀에서 인사이트를 얻을 수 있었던 논문 위주로 소개해 드리도록 하겠습니다. 크게 planning algorithms과 representation 관점에서 논문을 보았습니다.

1 ) Planning Algorithms

저희 OLP 프로젝트에서는 차체와 장애물에 충돌하지 않고 동시에 장애물에 너무 가까이 붙지 않으면서 비효율적인 모션이 없는 경로를 만들어야 합니다. 이를 위해서 샘플링 기반 플래너를 사용한 후 post-processing으로 패스를 부드럽게 만드는 optimization 하는 과정을 거칩니다. 아래에서는 두 가지 스텝을 하나의 플래너 안에서 할 수 있는 방법을 제안한 논문에 대해 소개해 드리려고 합니다.

BITKOMO: Combining Sampling and Optimization for Fast Convergence in Optimal Motion Planning

먼저, 해당 논문은 샘플링 기반 플래너와 최적화 기반 플래너를 결합하는 방법을 구현했습니다. 해당 논문의 가장 큰 특징은 아래 두 가지입니다.

  • Batch Informed Trees(BIT*)와 K-Order Markov Optimization (KOMO)의 통합
  • Relaxed Edge Checking

BITKOMO의 overview. BIT*에 relaxed edge checking과 KOMO optimization을 사용함.

먼저, 샘플링 기반 플래너인 BIT*와 최적화 기반 플래너 중 하나인 KOMO를 같이 사용함으로써 샘플링 기반 플래너와 최적화 기반 플래너 각각의 장단점을 보완할 수 있습니다. BIT*는 샘플링 기반이기 때문에 수렴 속도가 느리지만 KOMO가 빠르게 수렴하도록 해줍니다. 또한 KOMO의 optimality를 보장할 수 없는 점을 BIT*가 global optimality를 보장합니다.

Edge cheking의 Level 설명.

또한 BIT*에 relaxed collision checker를 함께 붙였습니다. Relaxed collision checker는 모션 트리에 부분적으로 충돌하는 edge에 대해 충돌 패널티를 포함시킬 수 있는 방법입니다. 위사진과 같이, edge를 먼저 point로 나눈 후, collision level을 지정하는 방식입니다. (사진에 노드의 숫자는 노드의 레벨을 나타냅니다.) Relaxed 충돌 검사를 사용할 수 있는 이유는, KOMO와 같은 optimizer는 이러한 경로를 빠르게 충돌 없는 상태로 optimize 할 수 있기 때문입니다. 이렇게 relaxed-edge-detection을 쓰면 복잡한 환경에서도 initial 결과를 빠르게 얻을 수 있고 optimize 할 수 있습니다.

BITKOMO가 BIT*보다 빠르게 수렴하면서 비슷한 성공률을 보여줌.

결과적으로 BIT*와 같이 optimality를 보장하면서 KOMO의 빠른 수렴하는 특징을 같이 가져갈 수 있습니다. 따라서 성공률은 BIT*와 비슷하게 하게 나타나면서 global optimum으로 빨리 수렴합니다. 또한 해당 논문은 깃헙에 코드가 공개되어 있어서 BITKOMO를 이용해서 저희 프로젝트에서도 좋은 품질의 모션을 낼 수 있을지 직접 테스트해 볼 예정입니다.

Safety-Critical Manipulation for Collision-Free Food Preparation

해당 논문은 Award Session에 소개된 논문으로 요리 작업에서 Control barrier functions(CBFs)을 이용해 kinematic과 dynamics 모두 saftey한 빠른 플래닝을 할수있는 방법을 연구한 논문입니다. 저희 프로젝트는 dynamics를 고려할 필요가 없지만, 레퍼런스 경로를 이용해 collision saftey한 플래닝을 빠르게 만들어내는 점이 흥미로워 소개드립니다.

saftey-filter를 사용한 Trajectory generation 알고리즘.

해당 문제에서 요리 공정에서 음식 바구니가 살짝 위치가 바뀌거나 로봇 configuration이 바뀌었을 때, 위 사진과 같이 처음부터 플래닝하는 것이 아닌, 이미 존재하는 레퍼런스 경로를 이용해 safety filtering method 를 통해서 충돌이 없는 경로를 만들어내는 방식을 제안합니다. 이렇게 플래닝을 하게 되면 계산 시간을 줄이면서 안전성도 보장된 경로를 만들 수 있다고 합니다.

Locally optimal trajectories를 빠르게 하기 위해 Sequential Convex Programming (SCP) 방법을 사용합니다. 그리고 incremental solvers로는 factor graph와 가우시안 프로세스를 통해 경로를 업데이트합니다.

해당 논문은 MoveIt 프레임워크를 사용해 실제 로봇에 구현하였고, 논문에도 SW 구현부분에 대해서도 자세히 서술되어있어서 구현에 관심있으신 분들은 자세하게 보셔도 좋을 것 같습니다.

2) Representation

모션 플래닝에서 로봇과 환경을 어떻게 표현하는가는 중요한 문제입니다. 로봇과 환경 장애물의 기하학정보 데이터를 어떠한 형태로 즉, 어떤 representation으로 표현하느냐에 따라 플래닝 성능이 개선될 수 있습니다. 이번 IROS2022 에서 소개 되었던 논문 중 모션 플래닝을 하기 위해 환경을 표현한 여러 방법 중 인상 깊었던 몇 가지를 소개해 드리려고 합니다.

Signed Distance Function(SDF)은 임의의 위치에서 static한 표면에 대한 거리를 나타내는 유명한 representation 방법입니다. 하지만 복잡한 도형은 충돌 연산시 많은 쿼리가 필요합니다. 또한 기본 SDF는 동적인 환경을 묘사할 수 없습니다. 이러한 문제를 해결하기 위해 로보틱스에서는 SDF의 여러 변형에 대한 연구가 있는데 이번에도 SDF변형 연구가 있어 공유드리고자 합니다.

Regularized Deep Signed Distance Fields for Reactive Motion Generation

ReDSDF은 사람이나 로봇팔과 같이 복잡한 manifold를 가진 형태에서도 부드럽고 안정적으로 distance fields를 근사하는 SDF의 변형 프레임워크입니다. deep-distance fields을 어떻게 학습하는지 보여주고 reactive 모션 생성을 위해 어떻게 통합하는지 소개합니다.

심플한 inductive bias로 어떤 scale이든 다양한 해상도에서 부드러운 distance field를 만들 수 있도록 보장합니다. ReDSDF 네트워크 구조는 다음과 같습니다.

ReSDF 네트워크 구조도

  • ρθ function: a (soft) threshold for switching from a distance w.r.t. the closest point on the target’s surface to the distance w.r.t. the center of the target
  • αθ function: regulates the sharpness of the change between the two regimes
  • q: target’s state

이렇게 구현함으로써 다음과 같은 이점을 가질 수 있습니다. 경로 최적화 또는 reactive control에 사용할 수 있게됩니다. 심층신경망을 이용해 병렬로 많은 point들에 대해 쿼리가 가능하기 때문에 정밀한 충돌 회피를 할 수 있습니다.

사람과 테이블의 distance function의 reconstruction

다른 state-of-the-art 변형 SDF 방법과 비교했을 때도 다양한 scale에서 훨씬 더 세밀하고 정교한 distance field를 생성할 수 있습니다.

해당 논문은 사람과 상호작용하는 동작을 하기 위한 reactive 모션을 생성하는ReDSDF를 적용하는 실험을 했습니다. Static한 저희의 플래닝 환경과 다르지만 저희는 ML을 이용한 SDF의 변형 방법에 대해 배우고 보다 빠르게 충돌 검사를 할 수 있는 방법에 대한 인사이트를 얻었습니다.

GraphDistNet: A Graph-based Collision-distance Estimator for Gradient-based Trajectory Optimization

다음으로는 일반적인 SDF와는 전혀 다른 방법으로 로봇과 장애물의 거리를 표현하는 방법이 있어 소개드리고자 합니다. GraphDistNet은 기하학적 구조 정보를 정밀하게 인코딩할 수 있는 collision-distance estimator 네트워크에 대한 연구입니다. GNN을 사용했으며 collision distance와 gradient를 추정하는 네트워크입니다.

경로 최적화를 할 때 안전성을 보장하도록 하려면 충돌 계산에 큰 비용이 듭니다. FCL과 같은 geometric 방법으로 충돌 검사를 하게되면 복잡한 도형에 대해 많은 쿼리가 일어날때는 시간이 오래 걸리는 단점이 있습니다. ClearanceNet, DiffCo와 같은 data-driven 알고리즘으로 충돌 검사를 하게되면 장애물의 형태나 configuration이 변하게 되면 적용이 어려워져 확장성이 안 좋아집니다. 이러한 두 가지 단점을 극복하기 위한 GraphDisNet의 특징은 다음과 같습니다.

  • 처음으로 graph-based 구조를 이용한 collision-distance estimation 네트워크 적용
  • 경로 최적화 성능을 향상시키는 정확한 gradient와 batch computation 결과 제공
  • 다양한 환경, 처음 보는 환경에 대해 강인함

GraphDistNet 네트워크 구조.

GraphDistNet에서는 edge feature-based 컨볼루션 연산을 활용하여 두 기하학적 구조 정보를 인코딩합니다. 또한 attention을 적용함으로써 일반적인 환경에서 동작하도록 합니다. 따라서 GraphDistNet은 geometric 방법보다 빠르며, 기존 data-driven 방법보다 확장성이 좋은 결과를 보여줍니다.

아쉽게도 해당 논문은 2D 환경에서 적용한 연구였지만 SDF가 아닌 GNN을 이용해서 충돌 검사를 할 수 있는 방법에 대해 새로운 접근법을 알 수 있었습니다.

Neural-Guided RuntimePrediction of Planners for Improved Motion and Task Planning with Graph Neural Networks

이전에 소개드린 논문과 비슷하게 GNN을 이용한 논문을 또 찾을 수 있었습니다. 해당 논문에서는 샘플링 기반 모션 플래닝의 런타임을 GNN을 통해 예측하는 방법을 제안하였습니다. 논문에서는 2D 네비게이션과 7-DOF 로봇팔에 각각 적용한 사례를 보여주었는데 포스팅에서는 매니퓰레이션에 대해서만 다루겠습니다. 3D 환경정보를 occupancy grid representation인 voxlized 된 데이터를 사용하면 입력이 굉장히 커집니다.

3D 데이터 세트에서 Graph Connection 정보.

하지만 위와 같이 환경에 대한 정보를 그래프로 표현할 수 있습니다. 각 노드에는 위치정보(3개), quaternion(4개), bounding box 길이, 높이, 너비(3개), 오브젝트 타입정보인 one-hot 라벨 (3개)로 총 13개 파라미터만 사용하기 때문에 입력 크기가 줄어들게 됩니다. 결과적으로 GNN은 특히 voxlized representation보다 더 나은 정확도와 스케일링과 예측을 보여주었습니다.

저희 프로젝트에서는 예측하고 싶은 것은 모션 플래닝의 런타임이 아닙니다. 저희는 모든 로봇이 cycle-time내에 들어올 수 있는 배정 및 순서를 찾기 위해 한 용접점으로부터 다른 용접점까지 플래닝된 경로의 거리 또는 시간에 대한 예측이 필요합니다. 그래서 저희가 직접 해당 연구를 적용할 수는 없지만 저희가 필요한 데이터를 GNN구조를 사용하여 추정하는 방향성에 대해서도 생각해볼 수 있게 되었습니다.

Reactive Neural Path Planning with Dynamic Obstacle Avoidance in a Condensed Configuration Space

해당 논문은 동적인 장애물을 빠르게 회피하기 위한 방법에 대한 논문입니다. 빠른 연산을 위해 C-space를 모두 랜덤하게 샘플링하지 않고 sub-space를 이용해 효율적으로 학습합니다.

Work-space에서 end-effector의 경로를 joint angle을 IK로 나중에 계산하게 되면 joint jump문제가 발생할 수 있습니다. 그래서 C-space에서 계산하는데, 로봇팔처럼 고차원 로봇의 경우 샘플링 기반 플래너를 사용하게 되어도 동적으로 변하거나 좁은 환경에서 계산이 많이 필요로 하게됩니다. 해당 문제를 해결하기 위해 bi-directional look-up tables을 적용하여 configuration space문제를 해결하였습니다. 테이블에 로봇과 정적/동적 장애물은 미리 계산된 kinematics에 의해 cartesian task space에서 configuration space로 매핑됩니다.

감소된 C-Space를 만들기 위해 패스 플래닝을 데이터의 위상을 보존하면서 입력의 차원 축소를 할 수 있는 SONN을 시뮬레이션 상에서 훈련합니다. (OMPL의 RRTConnect사용)

SONN, lookup table, Execute Trajectory 관계를 볼 수 있는 시스템 구조도

오프라인에서 SONN으로부터 bi-directional look-up tables이 생성되고, 온라인에서는 해당 테이블을 이용하여 빠르게 패스 플래닝 연산을 할 수 있게 됩니다. 그 결과로 로봇은 변화하는 환경에 대해 0.02초내에 경로를 다시 계획할 수 있다고 합니다. RRT, RPM보다 훨씬 빠른 결과를 보여줍니다. (경로 스무딩을 포함해도 계획시간은 0.1초 미만이라고 합니다.)

본 논문에서는 패스 해상도를 높게 하려면 네트워크가 커지게 되어 메모리가 많이 필요하게 되므로 각자의 문제에 맞게 밸런싱이 필요하다고 합니다. 또한 장애물에서 뒤로 물러서거나 일정 거리를 유지해야 하는 작업의 경우 적합하지 않을 수 있다고 가이드 되어 있습니다. 따라서 저희 프로젝트에서는 공장 구조물로부터 일정 거리를 유지하는 것이 좋은 모션이기에, 최종 경로로 사용할 수 없겠지만 빠르게 패스 또는 모션을 추정하는 방법으로 좋을 것 같다는 생각을 할 수 있었습니다.

마무리

이번 포스팅에서는 IROS2022에 소개되었던 모션 플래닝 연구 주제 중 저희팀에서 인사이트를 얻을 수 있었던 논문들을 소개해 드렸습니다. 충돌 계산을 하거나 원하는 정보를 효율적으로 가져오기 위해 3D-workspace를 다양한 방법으로 representation 하는 시도를 볼 수 있었습니다.

논문 연구들에서 풀고자 하는 문제나 주어진 제약조건, 환경이 다르더라도 문제를 푸는 과정에서 인사이트를 얻을 수 있었습니다. 예를 들면 저희는 장애물이 정적인 환경이지만, 동적인 환경에서 빠르게 플래닝 하는 방법을 저희는 빠른 용접점 배정을 위한 모션 플래닝 추정에 사용하는 것을 생각해 볼 수 있었습니다.

이번에 소개를 드리지는 못했지만, 모션 플래닝이 내비게이션, 해양 로봇 등 각각의 도메인에서 각자 다양한 방법으로 연구되는 점도 개인적으로는 흥미로웠습니다. 로봇마다 직면하는 문제가 제각각이고 해당하는 문제를 풀기 위해 각자의 방법으로 다양하게 연구를 진행하는 경향을 볼 수 있어서 재미있었습니다. 또한 end-to-end로 문제를 푸는 시도도 있었지만 연산 시간이 많이 필요해 병목이 걸리는 정보를 얻기 위해 부분적으로 ML을 활용하는 경향을 많이 볼 수 있었습니다.

이외에도 Kyoto International Conference Center에서 아름다운 풍경을 보고 점심을 먹는 것도 소소한 행복이었습니다. 세션 발표를 집중해서 듣고 난 후 점심시간에 가을 하늘 아래에서 일본식 도시락을 먹으며 잠깐 머리를 식히는 시간이 기억에 남습니다. 또한 학회 세션이 끝나고 숙소로 돌아와 로비에 모여 오늘 하루 들었던 내용을 공유하고 의견을 나누면서 저희 팀에 필요한 프로젝트 진행 방향과 새로운 관점에 대해 더 깊이 이해할 수 있는 시간을 가질 수 있던 점이 좋았습니다.

이렇게 좋은 기회를 준 마키나락스에 감사 인사를 드리며 이상으로 포스팅을 마치도록 하겠습니다. 지금까지 마키나락스 정유정이었습니다. 읽어주셔서 감사합니다. 😄

⠀⠀⠀⠀⠀⠀

» 이 글은 마키나락스 미디엄에 게재된 포스팅으로 원문은 여기서 확인하실 수 있습니다.

정유정
2022-12-12
Use Cases
See how AI technology in anomaly detection, optimization, and predictive analytics is making industries intelligent