snape/RVO2
Optimal Reciprocal Collision Avoidance (C++)
何を解決するか
複数の独立した移動ロボットやエージェントの相互衝突回避の問題に対処します。エージェント同士が通信を必要とせずに共有されたワークスペースを移動しながら衝突しないようにします。
動作方法
このライブラリは最適相互衝突回避(ORCA)の定式化を実装しています。2つのエージェント間の衝突回避の責任の半分をそれぞれのエージェントに割り当てることで、衝突のない運動を保証します。エージェントの最適な行動を求めるプロセスは、低次元の線形計画問題に変換され、滑らかな運動が得られます。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は、解析的微分、接触ソルバー、閉ループ処理、およびADサポートを提供する、剛体動力学のための高性能C++ライブラリ(Pythonバインディング付き)です。多くのロボット工学およびシミュレーションツールで使用されており、Condaまたはpipでインストール可能です。