コマンドラインでの使用例を示す。
- Linux
- Ubuntu 20.04
- Manjaro Linux 20.0.3
- Windows
- 必須
- git
- gcc, g++
- make
- cmake
- オプション
- 可視化のために必要
- python3
- python3-matplotlib
- Pythonモジュール化のために必要
- pybind11
- リファレンスの自動生成のために必要
- doxygen
- graphviz
- ユニットテストのために必要
- gtest
- カバレッジテストのために必要
- lcov
- 可視化のために必要
# Ubuntu 20.04
apt install git make cmake gcc g++ \
python3-matplotlib \
python3-dev \
python3-distutils \
python3-pybind11 \
doxygen graphviz \
libgtest-dev lcov
# Arch Linux
yay -S --needed git make cmake gcc \
python-matplotlib \
pybind11 \
doxygen graphviz \
gtest lcov
# MSYS2 MinGW 64bit
pacman -S --needed git make \
$MINGW_PACKAGE_PREFIX-cmake \
$MINGW_PACKAGE_PREFIX-toolchain \
$MINGW_PACKAGE_PREFIX-python-matplotlib \
$MINGW_PACKAGE_PREFIX-pybind11 \
$MINGW_PACKAGE_PREFIX-doxygen \
$MINGW_PACKAGE_PREFIX-graphviz \
$MINGW_PACKAGE_PREFIX-gtest \
$MINGW_PACKAGE_PREFIX-lcov
このリポジトリは CMake プロジェクトになっている。
はじめに以下のコマンドで初期化する。
# GitHub から clone
git clone https://github.com/kerikun11/micromouse-control-module.git
# 移動
cd micromouse-control-module
# 作業ディレクトリを作成
mkdir build
cd build
# 初期化 (Makefile の生成); MSYS2 の場合 -G"MSYS Makefiles" オプションを付加
cmake .. ${MSYSTEM:+-G"MSYS Makefiles"}
# ビルド
make all
以降、コマンド make
は、この build
ディレクトリで実行すること。
examples/accel/main.cpp
の実行
# 軌道 (accel_*.csv) の生成とプロット
make accel
make accel_plot
examples/slalom/main.cpp
の実行
# スラローム軌道 (slalom_*.csv) の生成とプロット
make slalom
make slalom_plot
C++で実装されたPythonモジュール ctrl
を使用してプロットする。
# Python モジュール ctrl の生成とプロットスクリプトの実行
make ctrl
make pybind11_plot # calls ./pybind11/plot.py
コード中のコメントは Doxygen に準拠しているので、API リファレンスを自動生成することができる。
# ドキュメントの自動生成
make docs
# 必要に応じてウェブサーバーを立ち上げる
python3 -m http.server -d docs/html 8080
# ブラウザで http://localhost:8080 にアクセスする
上記コマンドにより build/docs/html/index.html
にリファレンスが生成される。
GoogleTest によるユニットテストと LCOV によるカバレッジテストを実行する
# カバレッジ結果の初期化
make lcov_init
# テストを実行
make test_run
# カバレッジ結果の収集
make lcov
# 必要に応じてウェブサーバーを立ち上げる
python3 -m http.server -d test/html 8080
# ブラウザで http://localhost:8080 にアクセスする
上記コマンドにより build/test/html/index.html
にカバレッジ結果が生成される。