snape/RVO2
Optimal Reciprocal Collision Avoidance (C++)
해결하는 문제
여러 개의 독립적인 이동 로봇 또는 에이전트에 대한 상호 충돌 회피 문제를 해결합니다. 에이전트 간 통신 없이도 공유된 작업 공간을 충돌 없이 이동할 수 있도록 합니다.
작동 방식
이 라이브러리는 최적의 상호 충돌 회피(ORCA) 공식을 구현합니다. 두 에이전트 간의 충돌 회피 책임의 절반을 각각의 에이전트에게 할당함으로써 충돌 없는 운동을 보장합니다. 에이전트의 최적 행동을 찾는 과정은 저차원 선형 프로그래밍 문제로 변환되어 부드러운 운동을 가능하게 합니다. C++98 구현은 2차원 공간을 지원하며, 효율성을 높이기 위해 OpenMP를 사용하여 여러 프로세서 간에 시뮬레이션을 병렬화합니다.
대상 사용자
밀도 높거나 복잡한 환경에서 에이전트의 이동을 관리할 필요가 있는 로봇 시뮬레이션 및 다중 에이전트 시스템 개발자에게 적합합니다.
주요 특징
- 수천 개의 에이전트를 밀리초 단위의 계산 시간으로 처리 가능.
- 충돌 회피를 위해 에이전트 간 통신이 필요 없음.
- 정적 장애물, 에이전트, 선호 속도를 지정하기 위한 간단한 API 제공.
- OpenMP를 사용하여 병렬화되어 성능이 향상됨.
관련
- 프로젝트
snape/RVO2-CS여러 독립적인 에이전트가 통신 없이 충돌을 피할 수 있도록 하는 최적 상호 충돌 회피(ORCA) 알고리즘의 C# 구현체입니다.
- 프로젝트
leggedrobotics/ocs2제한된 온보드 연산 능력을 가진 로봇 시스템을 위한 실시간 모델 예측 제어(MPC)를 가능하게 하는 비선형 최적 제어 문제 해결용 C++ 툴박스.
- 프로젝트
Simple-Robotics/aligatorAligator는 로봇에서 빠르고 제약 조건이 있는 궤적 최적화를 위한 C++/Python 라이브러리입니다. 모델링 API, 효율적인 소프트웨어(ProxDDP, FeasibleDDP), Pinocchio 통합, 선택적 Crocoddyl 호환성, 병렬 CPU 최적화를 제공합니다. conda를 통해 설치하거나 소스에서 빌드(기본적으로 CMake/Pixi)할 수 있습니다. 복잡한 로봇에서 운동 계획을 생성하거나 모델 예측 제어를 실행하는 데 사용하세요.
- 프로젝트
onnx/optimizerONNX 모델에 대한 임의의 최적화를 수행하는 C++ 라이브러리로, 다양한 백엔드 구현 간에 재사용 가능한 최적화 패스를 제공합니다.
- 프로젝트
stack-of-tasks/pinocchioPinocchio는 강체 역학을 위한 고성능 C++ 라이브러리(Python 바인딩 포함)로, 해석적 미분, 접촉 솔버, 폐루프 처리 및 AD 지원을 제공합니다. 많은 로봇 공학 및 시뮬레이션 도구의 기반이 되며, Conda 또는 pip를 통해 설치할 수 있습니다.