안녕하세요. 모션플래너를 구현하는 학생입니다.
실시간으로 dynamic environment를 업데이트하는 replanning 기능을 로봇 팔 모션플래너에 구현하고자 합니다.
예를 들어, 움직이는 사람을 피하기 위해서는, 주기적으로 사람의 움직임을 입력받아서 collision-free trajectory를 재생성하는 refinement 과정이 필요합니다.
다른 사람들이 어떻게 구현했는지 코드를 보고싶은데 (디자인 패턴을 중점적으로), 코드를 찾기가 쉽지 않아 도움을 구하고자 이곳에 글을 남깁니다.
ROS planner node를 만들고 ROS message로 environment를 업데이트할지, 아니면 C++ planner class를 만들고 planner thread, input thread를 따로 돌려서 구현할지. 이와 같은 프로그래밍 구조적인 부분이 궁금합니다.
Replanning 기능이 있는 모션플래너 패키지 아시는 것이 있으면 공유 부탁드립니다.
MoveIt! 패키지를 찾아봤으나 제가 원하는 답은 못 찾았습니다.
대부분의 MoveIt! API는 static environment를 가정한 것 같아 보입니다.
MoveIt! 패키지에 있는 replanning 기능을 보면, '로봇 모션 실행 중 collision 등의 이유로 문제가 생겼을 경우 모션 플래닝을 다시 돌리는 것'으로 되어 있어서, 제가 원하는 기능과는 다르더군요.