HNUYueLuRM/basic_framework

framework for developing RoboMaster Electric Control programmes

何を解決するか

ロボマスター競技向けに標準化されたモジュール型の組み込み制御フレームワークを提供します。学生ロボットチームで一般的な、断片化され、ドキュメントが不十分で一貫性のないコードベースの問題を解決し、複雑な Linux/ROS スタックの代わりに、初心者でも学びやすく、移植しやすい C++ SDK を提供します。

動作方法

フレームワークは、ハードウェアと高レベルの論理を分離するための3層構造を採用しています。

  1. BSP(ボードサポートパッケージ): USART、SPI、I2C、CAN などのハードウェア周辺機器を抽象化し、システムの他の部分をハードウェアに依存させません。
  2. モジュール層: BSP を使って特定のハードウェアドライバ(モーター、IMU、センサー)やソフトウェアアルゴリズム(PID、フィルタ、観測器)を実装します。
  3. App層: ロボット固有の論理(チャッスィ制御、ジマール移動、発射機構など)を FreeRTOS タスクとして実装する最上位層です。

アプリ間の結合を解消するために、パブリッシュ/サブスクライブ(発行/購読)メッセージ機構を採用しており、異なるロボットモジュール間で直接依存関係を持たずに通信できます。

対象ユーザー

  • 構造化された組み込みフレームワークを求めるロボマスター競技チーム
  • ロボット制御用のモジュール型 SDK を探している組み込み開発者
  • クリエイティブな組み込み開発ワークフロー(Keil などのレガシー IDE から脱却)を学びたい学生

特徴

  • モダンなワークフロー: VSCode、CLion、Segger Ozone/Systemviewer を使用した arm-gnu ツールチェーンをサポートし、効率的なデバッグとパフォーマンス分析が可能。
  • ハードウェア抽象化: ハードウェア固有のコードとアプリケーション論理の明確な分離により、異なるロボット構成への移植が容易です。
  • 包括的なツールキット: DJI モーター、センサー(BMI088、IST8310)および通信プロトコルの組み込みサポートを提供。
  • 豊富なドキュメント: PIDチューニング、バグの特定、開発環境のセットアップに関する詳細ガイドを提供。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト