leggedrobotics/ocs2
Optimal Control for Switched Systems
해결하는 문제
OCS2는 로봇 공학의 실시간 모델 예측 제어(MPC)를 위해 특별히 설계된 비선형 최적 제어 문제를 공식화하고 해결하기 위한 C++ 툴박스를 제공합니다. 이는 온보드 연산 능력이 제한적인 경우가 많은 로봇 플랫폼에서 수치적으로 안정적이고 효율적인 제어를 구현해야 하는 과제를 해결합니다.
작동 원리
이 툴박스는 최적 제어 문제를 처리하기 위해 다양한 솔버(SLQ, iLQR, SQP, SLP, IPM 포함)를 사용합니다. 모드 스케줄과 점프 맵을 사용하는 스위치 시스템 OCP를 지원합니다. 로봇 설정을 단순화하기 위해 URDF 모델과 통합하여 시스템 역학, 비용 및 제약 조건(자기 충돌 방지 등)을 정의합니다. 또한 미분 계산을 위한 자동 미분 기능을 갖추고 있으며 배포를 위한 ROS 인터페이스를 제공합니다.
대상 사용자
다리 로봇, 쿼드로터 또는 모바일 매니퓰레이터와 같은 복잡한 로봇 시스템에 대해 실시간 MPC를 구현해야 하는 로봇 엔지니어 및 연구자를 위해 설계되었습니다.
주요 특징
- 다양한 솔버: SLQ, iLQR, SQP, SLP, IPM을 포함한 광범위한 알고리즘 지원.
- 스위치 시스템 지원: 모드 스케줄 및 점프 맵을 사용하여 단일 및 멀티 도메인 문제 처리.
- 제약 조건 처리: Augmented Lagrangian 및 완화된 배리어 방법을 통해 하드 및 소프트 제약 조건 관리.
- 로봇 툴링: Pinocchio를 통한 URDF-to-model 헬퍼 및 HPP-FCL을 통한 자기 충돌 제약 포함.
- ROS 통합: ROS 1 및 ROS 2를 위한 전용 메시지, 노드 및 시각화 도구 제공.
- 자동 미분: 시스템 역학 및 비용의 미분 계산을 위해 CppAD 활용.
관련
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트