開発ツールと設定¶
このドキュメントでは、Craneプロジェクトの開発に役立つツールや設定について説明します。
コード品質ツール¶
1. clang-format¶
C++コードを自動フォーマットするためのツールです。プロジェクトのルートにある.clang-formatファイルに基づいてフォーマットされます。
ROS 2環境ではament_clang_formatコマンドを使用できます:
# 特定のファイルやディレクトリをフォーマット
ament_clang_format --reformat <フォーマットしたいファイルかフォルダ>
# 現在のディレクトリ以下をすべてフォーマット
ament_clang_format --reformat .
2. ruff¶
Pythonコードのリンターとフォーマッターです。pre-commitフックとして設定されています。
3. cpplint¶
C++コードの静的解析ツールです。Googleのコーディング規約に基づいてコードをチェックします。
コミット前の自動チェック¶
pre-commit¶
コミット前に自動でコードチェックとフォーマットを行うツールです。下記の手順でインストールして利用できます。
# インストール
sudo apt install -y python3-venv pipx
pipx install pre-commit
# Craneプロジェクトで設定
cd ~/ibis_ws/src/crane
pre-commit install
# 手動で全ファイルに対して実行(初回実行時は時間がかかります)
pre-commit run -a
現在の設定ファイルへのリンク(メインブランチ):
.pre-commit-config.yaml
または、リポジトリルートからの相対パス: ../.pre-commit-config.yaml (ドキュメントファイルからの相対位置によります)
pre-commitで実行される主なチェック¶
- 基本チェック:
- JSON/TOML/XML/YAMLファイルの構文チェック
- マージ競合のチェック
- 秘密鍵の検出
- ファイル末尾の改行チェック
- 行末の空白チェック
- 言語固有チェック:
- C++: clang-format, cpplint
- Python: ruff (リンターとフォーマッター)
- シェルスクリプト: shellcheck, shfmt
- YAML: yamllint
SSL関連ツール¶
ssl-go-tools¶
RoboCup SSL関連のGo言語製ツール集です。試合のログ記録やデータ解析に役立ちます。
# インストール
sudo apt install -y golang-go
go install github.com/RoboCup-SSL/ssl-go-tools/cmd/...@latest
echo 'export PATH="$(go env GOPATH)/bin:$PATH"' >> ~/.bashrc
source ~/.bashrc
詳細はGitHub リポジトリを参照してください。
ssl-auto-recorder¶
Refereeの信号やビジョンデータを自動で記録するツールです。
# 基本的な使用方法 (実機モードのポート)
ssl-auto-recorder -referee-address "224.5.23.1:10003" -vision-address "224.5.23.2:10006"
# シミュレーションモードのポート
ssl-auto-recorder -referee-address "224.5.23.1:11003" -vision-address "224.5.23.2:10020"
# HTTPサーバーを立ち上げてログを提供
ssl-auto-recorder -http-serve -http-port "8084"
主なオプションとプロジェクトでのデフォルト値:
| オプション | 実機 (sim:=false) |
シミュレーション (sim:=true) |
|---|---|---|
-referee-address |
224.5.23.1:10003 |
224.5.23.1:11003 |
-vision-address |
224.5.23.2:10006 |
224.5.23.2:10020 |
-vision-tracker-address |
224.5.23.2:10010 |
224.5.23.2:11010 |
ssl-match-client¶
試合の状態を表示するクライアントツールです。
ssl-vision-tracker-tool¶
Vision Tracker情報を表示するためのツールです。
VS Code拡張機能¶
以下のVS Code拡張機能を使用すると開発効率が向上します:
- C/C++ - C/C++のコード補完とデバッグ
- CMake - CMakeファイルのシンタックスハイライト
- Python - Pythonのコード補完とデバッグ
- ROS - ROS開発のサポート
- YAML - YAMLファイルのサポート
- XML - XMLファイルのサポート
コマンドライン便利ツール¶
colcon¶
ROSパッケージのビルドツールです。以下のようなコマンドが便利です:
# 特定のパッケージのみビルド
colcon build --symlink-install --packages-select crane_robot_skills
# 依存関係のあるパッケージも含めてビルド
colcon build --symlink-install --packages-up-to crane_robot_skills
# 変更のあったパッケージのみビルド
colcon build --symlink-install --packages-select-by-dep --packages-above crane_robot_skills
rqt_graph¶
実行中のROSノードとトピックの接続関係を視覚化します: