| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | ||
| 6 | 7 | 8 | 9 | 10 | 11 | 12 |
| 13 | 14 | 15 | 16 | 17 | 18 | 19 |
| 20 | 21 | 22 | 23 | 24 | 25 | 26 |
| 27 | 28 | 29 | 30 |
- 자율주행 #로봇공학과
- 개발 일기
- vlm 정리 #glip #object detection
- 소울러닝 #책리뷰 #느낀점
- vision language model #transformer
- 책 #오늘 밤
- ROS2
- ste
- 정보이론
- dino #grounding dino #vlm #object detection
- VLA/WFM #Manipulator
- Infotaxis
- path planning #mcts
- 세계에서 이 세상이 사라진다 해도
- vla
- 로봇 #로봇공학과 #공대생 #대학생 #일상 #휴무 #교수
- AirSim #RL #Drone
- ROS1
- planning #ste #논문 리뷰
- 탐색
- Unity
- DRONE
- vlm #clip #object detection
- world model
- 경로 계획
- 코드 트리 #개발자 #언어 공부 #코딩 공부
- Pick-and-place #VLA #매니퓰레이터 #이기종
- Today
- Total
퇴근할게요 교수님
이기종 Pick & Place 하기 [Day2] 본문

이번 프로젝트에서는 RB5-850E manipulator를 이용하여 Pick-and-Place 환경을 구축하고, 이후 VLA(Vision-Language-Action) 모델 학습에 활용할 수 있는 데이터를 자동으로 생성하는 것을 목표로 했다.
처음에는 단일 RB5를 이용하여 Pick-and-Place를 구현했고, 이후 두 대의 RB5가 협력하여 하나의 물체를 전달하는 dual-arm relay Pick-and-Place 환경으로 확장하였다.
VLA 모델을 fine-tuning하기 위해서는 로봇의 observation과 action이 포함된 많은 demonstration dataset이 필요하다. 하지만 실제 로봇을 이용하여 수백~수천 회의 데이터를 직접 수집하는 것은 시간과 비용 측면에서 부담이 크다. 또한 실제 로봇의 가격이 비싸 구매를 하지 못했다...

그래서 시뮬레이션 환경에서 로봇의 데이터를 수집해 VLA를 fine-tuning 하는 것 까지 진행해보기로 했다.
먼저 최적 제어로 테스크를 수행하기 위해서, IK solver를 활용하여 단일 RB5로 Pick-and-Place를 구현한 이후, 두 대의 RB5가 협력하여 하나의 물체를 전달하는 Pick-and-Place 환경으로 확장했다. 이와 같이 motion planning 기반으로 먼저 Pick-and-Place를 구현한 이유는, 이후 VLA fine-tuning에 필요한 demonstration dataset을 실제 로봇 없이 시뮬레이션 환경에서 자동으로 수집하기 위해서다.
IK solver는 초기에는 KDL을 사용했다. 하지만 동일한 target pose에서도 매번 다른 IK branch가 선택되면서 TCP 오차가 크게 변하고, Cartesian path에서 관절이 과도하게 회전하는 문제가 발생했다. 이를 해결하기 위해 LMA IK solver로 변경하고, 고정된 IK seed를 사용하여 동일한 자세에서는 최대한 동일한 joint configuration이 선택되도록 구성했다.
또한 처음에는 RRTConnect만을 활용하여 Pick motion을 구성하면 된다고 생각했다. 하지만 target pose까지 이동하는 과정에서 elbow와 wrist가 다른 IK branch로 넘어가면서 매니퓰레이터의 link가 꼬이거나 바닥 방향으로 내려가는 문제가 발생했다. 특히 MoveIt PlanningScene에는 실제 시뮬레이션의 ground가 등록되어 있지 않아, MoveIt에서는 바닥을 통과하는 경로도 collision-free path로 판단하고 있었다.

이를 해결하기 위해 큰 이동은 RRTConnect, 실제 grasp와 place를 수행하는 접근 구간은 Cartesian path로 분리하였다.
또한 MoveIt PlanningScene에 ground와 주변 collision object를 추가하고, joint limit과 실제 TCP 위치를 함께 확인하도록 하여 비정상적인 trajectory가 실행되지 않도록 구성했다.

결국, 내가 원하는 Pick-and-place를 성공적으로 완수했다! 이제 카메라 setting과 데이터셋 수집을 통해서 VLA fine-tuning에 사용될 데이터를 모아줄 예정이다.
'논문 리뷰 > VLA' 카테고리의 다른 글
| 이기종 Pick & Place 하기 [Day1] (0) | 2026.07.22 |
|---|---|
| [논문 리뷰] VLA 파헤치기 - NWM: Navigation World Models (0) | 2026.02.20 |