このプログラムは、DJI Telloドローンをキーボードで制御できるGoアプリケーションです。
- ドローン制御: キーボードでドローンの離陸、着陸、移動を制御
このプログラムは、Goと生成AIによるプログラミングの学習・実践を目的として作成されています。生成AIを使用した開発により、効率性の高い実装を目指しています。
main.go- メインプログラム(エントリーポイント)drone_controller.go- Telloドローンを制御するクラスcamera_viewer.go- カメラ画像を処理・表示するクラスkeyboard_handler.go- キーボード入力を処理するクラス
main_test.go- メインプログラムの統合テストkeyboard_handler_test.go- キーボードハンドラーの単体テストkeyboard_handler_coverage_test.go- キーボードハンドラーのカバレッジ強化テストcamera_viewer_test.go- カメラビューワーのテスト
go.mod- Go モジュール定義go.sum- 依存関係のチェックサム.gitignore- Git除外設定README.md- このドキュメント
tello_controller.exe- ビルド済み実行ファイル(Windows)coverage.out- テストカバレッジレポートcoverage.html- HTML形式のカバレッジレポート
- Telloドローンの電源を入れる
- PCのWi-FiでTelloのネットワーク(TELLO-xxxxxx)に接続
- プログラムを実行
go run .
# または
go build -o tello_controller.exe
.\tello_controller.exe| キー | 動作 |
|---|---|
| W | 前進 |
| A | 左移動 |
| S | 後退 |
| D | 右移動 |
| Space | 上昇 |
| Z | 降下 |
| Escape | 離陸/着陸の切り替え |
| Q | プログラム終了 |
# 全テストを実行
go test -v ./...
# カバレッジ付きでテストを実行
go test -cover -v ./...
# カバレッジレポートを生成
go test -cover -coverprofile=coverage.out ./...
go tool cover -html=coverage.out -o coverage.html現在のテストカバレッジは約42.6%です。主要な機能とエラーハンドリングをカバーしています:
- キーボード操作の全パターン
- ドローンコントローラーの全メソッド
- カメラビューワーの基本機能
- エラー回復とシャットダウン処理
- 連続操作と緊急着陸シナリオ
# 依存関係を一括インストール
go mod tidy
# または個別にインストール
go get gobot.io/x/gobot
go get gobot.io/x/gobot/platforms/dji/tello
go get github.com/nsf/termbox-go- gobot.io/x/gobot: ロボティクス・IoTフレームワーク
- gobot.io/x/gobot/platforms/dji/tello: DJI Telloドローン用ドライバー
- github.com/nsf/termbox-go: ターミナルベースのユーザーインターフェース
- モジュラー設計: 各機能が独立したクラスに分離
- テスト駆動: 42.6%のテストカバレッジ(主要機能を網羅)
- エラーハンドリング: 堅牢なエラー回復とグレースフルシャットダウン
- CI/CD対応: テスト可能な設計で本番環境に適用可能
main.go
├── DroneController # ドローン制御ロジック
├── CameraViewer # カメラ・表示処理
└── KeyboardHandler # ユーザー入力処理
- 安全な場所での使用: ドローンは必ず安全な場所で使用してください
- バッテリー残量: ドローンのバッテリー残量を確認してから使用してください
- Wi-Fi接続: TelloドローンのWi-Fiネットワークに接続されていることを確認してください
このプログラムの利用に特段の制限はありませんが、以下の点にご注意ください:
- 安全確保の義務: 本プログラムを使用する際は、必ず安全を確保した上で実施してください
- 責任の限界: 最低限のテスト操作とテスト飛行は確認していますが、万が一、本プログラムの使用により損害が生じた場合でも、生成AIの関連企業及びT-APPS520とそれに関わるITエンジニアを含める個人は一切の責任を負いません
- 自己責任での使用: すべての使用は利用者の自己責任において行ってください
- TelloのWi-Fiネットワークに正しく接続されているか確認
- ドローンが起動しているか確認
- 他のTelloコントローラーアプリが起動していないか確認
- PCの入力が半角英字になっているか確認
- プログラムのコンソール画面がアクティブになっているか確認
- termbox-goパッケージが正しくインストールされているか確認