RCL-Tracking(ロボット位置トラッキングライブラリ)

Library

概要

RCL-Trackingは、VEX用のPROSプロジェクトで使うことを想定したC++ベースのトラッキング(オドメトリ)モジュールです。使い方は簡単で、付属のRclTracking.hpp / RclTracking.cppをそれぞれinclude/とsrc/にコピーし、main.cppでヘッダをインクルードするだけで導入できます。コアとなるRclTrackingクラスはlemlib::Chassisへのポインタをコンストラクタで受け取り、更新周波数等のオプション(READMEで一部説明あり)を指定して定期的に位置情報を記録・更新します。小規模なロボットアプリケーションに組み込みやすいシンプルな構成が特徴です。

GitHub

リポジトリの統計情報

  • スター数: 3
  • フォーク数: 0
  • ウォッチャー数: 3
  • コミット数: 4
  • ファイル数: 13
  • メインの言語: C++

主な特徴

  • PROSとlemlib::Chassisに直接統合できるシンプルな実装
  • ヘッダ(.hpp)と実装(.cpp)の2ファイル構成で導入が容易
  • 更新周波数などのオプションで動作を調整可能
  • 軽量で学習用途や小〜中規模ロボットのオドメトリに適合

技術的なポイント

RCL-Trackingの設計は「既存のChassisオブジェクトから座標・姿勢を取得し、定期的に内部状態を更新して記録する」ことに主眼が置かれています。READMEにある導入手順からも分かるように、ライブラリはPROSプロジェクトの構造に自然に溶け込むことを意図しており、RclTracking.hpp / RclTracking.cppをそれぞれinclude/とsrc/へ配置するだけで使い始められます。

コアクラスであるRclTrackingはコンストラクタにlemlib::Chassisへのポインタを必須引数として受け取り、内部でChassisからモーターやエンコーダの値、向き(ジャイロ等)を参照して位置計算を行う想定です。READMEの一部にある “int frequency” オプションは、サンプリングやアップデートの周期を制御するパラメータで、これにより計算負荷と精度のトレードオフを調整できます。実装上はタイマやPROSのタスク/スレッド機構を用いて一定周期で更新処理を実行し、デルタエンコーダ値から移動量を積分してロボットのXY座標や角度(θ)を推定する典型的なオドメトリ手法を採ると考えられます。

また、設計がシンプルなため、将来的には以下のような拡張が容易です:ホイール半径やトラック幅の校正パラメータ追加、ジャイロを使ったセンサフュージョン(補正)、ログ出力や軌跡の記録・再生、外部座標系との変換ルーチンなど。Makefileやプロジェクト設定ファイル(.vscode等)が同梱されており、ビルドやIDE統合の基本サポートも用意されています。ソースはC++で書かれているため、lemlibやPROSのAPIに精通していれば、直接読み替えや最適化が可能です。

RCL-Tracking自体は軽量で導入が簡単なため、教育用途や競技ロボットの開発初期段階での素早い試作に適しています。一方で、より高度なフィルタ(EKF等)や外乱補正を求める用途では別途アルゴリズムを組み込む余地があります。ドキュメントはREADME中心で詳細なAPI説明は限られるため、ソースを直接参照して挙動を確認することを推奨します。

プロジェクトの構成

主要なファイルとディレクトリ:

  • .cache: dir
  • .d: dir
  • .vscode: dir
  • Makefile: file
  • README.md: file
  • RclTracking.hpp: file
  • RclTracking.cpp: file
  • その他コンフィグ・ビルド関連ファイルや補助ファイル(合計で13ファイル)

…他 8 ファイル

まとめ

PROS/lemlib環境で手早く動くオドメトリを導入したい開発者に向く、軽量で実用的なトラッキング実装。

リポジトリ情報:

READMEの抜粋:

RCL Tracking

File Setup

  1. Copy and paste “RclTracking.hpp” into the “include” folder in the PROS project
  2. Copy and paste “RclTracking.cpp” into the “src” folder in the PROS project
  3. Include the file in “main.cpp” in the “src” folder ( #include “RclTracking.hpp” )

Object Declarations

RclTracking

  1. The constructor takes 1 mandatory argument: A pointer to a lemlib::Chassis object.
  2. The constructor takes multiple optional arguments:
  • “int frequency” - Records the amount of re…