Friction Parameter Identification: Stribeck, LuGre, and GMS Models
로봇의 정밀한 움직임을 구현하기 위해서는 관절 내 마찰 토크(
핵심 알고리즘 및 접근법
-
Static Identification: Trapezoidal Velocity 입력을 활용한 Stribeck 모델 (
$F_s, F_c, F_v, \delta, v_s$ ) 식별 -
Dynamic Identification: Low Torque 입력을 활용한 LuGre 및 GMS(Generalized Maxwell Slip) 모델 식별
-
Friction Compensation: 식별된 파라미터를 제어기에 적용하여 저속 구간의 위치 오차를 획기적으로 개선
| 분류 | 상세 내용 |
|---|---|
| Languages | C++ (실시간 데이터 획득), Python (비선형 최적화), Bash (자동화 셸 스크립트) |
| Algorithms | Nonlinear Optimization, Robot Dynamics Modeling, Parameter ID |
| Libraries | CasADi / SciPy (Optimization), NumPy, Matplotlib |
| Tools | Linux Shell, Git Log Management |
본 프로젝트는 데이터 획득부터 최적화까지 셸 스크립트 하나로 자동화되어 있습니다.
1. 시스템 환경 설정: 필요한 라이브러리(Python 환경 및 C 컴파일러)가 설치되어 있는지 확인합니다.
2. 자동화 프로세스 실행:
chmod +x scripts/run_id_process.sh
./scripts/run_id_process.sh
- 이 스크립트는 C 파일을 빌드하여 로봇 구동 및 데이터를 수집한 뒤, 곧바로 Python 최적화 코드를 실행하여 마찰 파라미터를 산출합니다.
3. 결과 확인: 산출된
1. 동역학 모델 기반 외란 제거
마찰 토크
- Inertia ($M(q)$): 가속도가 0인 등속 구간 설정
-
Coriolis (
$C$ ): 단일 관절 구동으로 상호 간섭 배제 -
Gravity (
$g$ ): 동일 위치 정/역방향 구동 데이터의 평균 활용
2. 저속 제어 정밀도 향상
-
성능 테스트 결과:
$0.001 \sin(2\omega t) rad/s$ 의 극저속 구간에서 GMS 모델 적용 시 위치 오차가 거의 0에 수렴함을 확인. - 비교 분석: 고속 영역에서는 Static/GMS 모델의 성능이 유사하나, 속도가 낮아질수록 GMS 모델의 보상 효과가 압도적으로 높음.