みなさん、こんにちは。
今回は、私の趣味であるTiny Whoopと呼ばれるFPVマイクロドローンに関する少しニッチな話題をお届けします。
(2025/6/20)記事を追記しました。発話機能を動かすための手順が増えています。@zubon200さんのご協力に感謝致します。
FPVドローンのレースでは、ラップ計測にTiny View Plusというアプリがよく使われています。このアプリは、最大4台のUSB受信機を接続して映像確認とラップ計測ができる優れもので、日本各地のFPVドローン施設のほとんどで利用されているほど、その筋では非常に有名なアプリです。
LinuxでTiny View Plusを動かす!
しかし、この素晴らしいTiny View Plus、公式にはWindowsとMacにしか対応していません。オープンソースのフレームワークであるopenFrameworksを使って実装されているため、理論的にはLinuxでも動作するはずなのですが、実際に試みると一筋縄ではいきません。過去にはArch Linuxでの成功報告もありましたが、その手順を試しても私の環境ではうまく動作しませんでした。
試行錯誤を重ねた結果、Bodhi Linux 7.0.0 (Ubuntu 22.04) でTiny View Plus v0.9.33 beta6を動作させることに成功しましたので、その方法をみなさんにご紹介したいと思います。2025年6月時点での情報ではありますが、同様の環境で困っている方の助けになれば幸いです。
Tiny View PlusをBodhi Linux 7.0.0 (Ubuntu 22.04) で動作させる方法
0. 必要なパッケージのインストール
以下のコマンドでTiny View PlusをBodhi Linux 7.0.0 (Ubuntu 22.04)で動作させるためのパッケージをインストールします。
sudo apt install libgtk-3-dev zenity speech-dispatcher open-jtalk open-jtalk-mecab-naist-jdic hts-voice-nitech-jp-atr503-m001 alsa-utils speech-dispatcher mecab libmecab-dev mecab-utils
ひょっとするとGTK3+のライブラリが不足する可能性がありますので、以下の記事を参考にしてGimp3.0をaptでインストールしておく方が安全です。
1. openFrameworks for LINUXのダウンロード
Linuxで動作させるためには、openFrameworksの特定のバージョンをダウンロードする必要があります。
- バージョン
- 0.12.0が必須です。他のバージョンでは正常に動作しない可能性が高いです(実際、0.11.2はビルドできても動作せず、0.12.1はビルドできませんでした)。
- v0.9.33 beta6のMac版が0.12.0指定のため、Linuxも0.12.0が必要と思われます。
- アーキテクチャ
linux64gcc6
版をダウンロードしてください。他のアーキテクチャでの動作は未確認です。
以下のURLからダウンロードできます。 https://github.com/openframeworks/openFrameworks/releases/download/0.12.0/of_v0.12.0_linux64gcc6_release.tar.gz
ダウンロードしたら、適当な場所にopenframeworks
という名前で展開してください。
2. openFrameworksのインストール
展開したopenFrameworksのディレクトリに移動し、依存関係のインストールとコンパイルを行います。
cd openframeworks/scripts/linux/ubuntu
sudo ./install_dependencies.sh # 依存関係のインストール
sudo ./install_codecs.sh # コーデックのインストール
cd ..
sudo ./compileOF.sh # openFrameworksのコンパイル
sudo ./compilePG.sh # ProjectGeneratorのコンパイル
3. アドオンのインストール
Tiny View Plusが依存しているアドオンをインストールします。openframeworks/addons
ディレクトリに移動し、以下のコマンドでクローンします。
cd openframeworks/addons
git clone -b fix-of_v0.10 https://github.com/t-asano/ofxTrueTypeFontUC.git
git clone https://github.com/t-asano/ofxAruco.git
git clone https://github.com/kylemcdonald/ofxCv.git
git clone https://github.com/t-asano/ofxZxing.git
git clone https://github.com/t-asano/ofxJoystick.git
4. ofxCvのTracker.hの編集
C++17でビルドするために、ofxCv/libs/ofxCv/include/ofxCv/Tracker.h
ファイルを修正します。
cd ofxCv/libs/ofxCv/include/ofxCv/
vi Tracker.h
行128を修正してください。
- 変更前:
Tracker<T>()
- 変更後:
Tracker()
5. ProjectGeneratorを使ってプロジェクトを作成
openframeworks/projectGenerator-linux64
に移動し、ProjectGeneratorを起動します。
cd openframeworks/projectGenerator-linux64
./projectGenerator
ProjectGeneratorの画面で、以下のアドオンを含む新しいプロジェクトを作成します。今回の例では、プロジェクト名をTVPとしました。
- ofxOsc
- ofxTrueTypeFontUC
- ofxAruco
- ofxCv
- ofxOpenCv
- ofxPoco
- ofxZxing
- ofxJoystick
- ofxXmlSettings

「Generate」ボタンをクリックすると、openframeworks/apps/myApps/
にプロジェクトが作成されます。
6. tinyviewplusのプロジェクトをクローンし、TVPに上書きコピー
openframeworks/apps/myApps/
に移動し、Tiny View PlusのプロジェクトをGitHubからクローンします。
cd openframeworks/apps/myApps/
git clone https://github.com/t-asano/tinyviewplus.git
次に、クローンしたTiny View Plusのファイルを、先ほど作成したTVPプロジェクトに上書きコピーします。ここがポイントです! Tiny View Plus本家のビルド手順ではコピーする側とされる側が逆に記載されているため、注意してください。本家の手順通りにコピーすると、クローンしたプログラムが雛形に上書きされてしまいます。
cp -r tinyviewplus/* TVP/
上書きコピーが終わったら、GitHubからクローンしたtinyviewplus
ディレクトリは不要なので削除し、TVP
ディレクトリの名前をtinyviewplus
に変更します。
rm -r tinyviewplus
mv TVP tinyviewplus
7. ofApp.cppファイルの編集
日本語の発話機能を動作させるために、ofApp.cppファイルを編集します。
cd tinyviewplus/src
vi ./ofApp.cpp
行2671からはじまるTARGET_LINUXのブロックを以下のように修正してください。
#ifdef TARGET_LINUX
int pid = fork();
if (pid == 0) {
if (lang == "en") {
// Use speech-dispatcher for English
execlp("spd-say", "", "-w", "-r", "15", "-t", "female1", "-l", lang.c_str(), text.c_str(), NULL);
} else if (lang == "jp") {
// Use open_jtalk for Japanese
std::string shellcmd = "echo '" + std::string(text.c_str()) +
"' | open_jtalk" +
" -x /var/lib/mecab/dic/open-jtalk/naist-jdic" +
" -m /usr/share/hts-voice/nitech-jp-atr503-m001/nitech_jp_atr503_m001.htsvoice" +
" -g 10" +
" -r 1.15" +
" -ow /tmp/voice.wav && aplay -V 200 /tmp/voice.wav";
// Execute the shell command
execlp("sh", "sh", "-c", shellcmd.c_str(), NULL);
// If the command fails, exit with an error code
exit(0);
}
OF_EXIT_APP(-1);
}
#endif /* TARGET_LINUX */
参考(必須ではありません):
Tiny View Plus では女性の声が標準のようですが、このままの設定だと男性の声になります。もし女性の声を使いたい場合は、MMDAgentの「mei」モデルが使用可能です。meiモデルはMMDAAgent_Example-1.6以降に含まれています。MMDAAgentからダウンロードして展開し、Voiceフォルダ内にあるmeiフォルダを/usr/share/hts-voice/にコピーしてください。その後、上記コードを以下のように再修正してください。
修正前:
" -m /usr/share/hts-voice/nitech-jp-atr503-m001/nitech_jp_atr503_m001.htsvoice" +
修正後:
" -m /usr/share/hts-voice/mei/mei_normal.htsvoice" +
8. config.makeファイルの編集
tinyviewplus
ディレクトリに移動し、config.make
ファイルを編集します。
cd ..
vi ./config.make
PROJECT SPECIFIC CHECKS
のセクションを探し、以下のように修正します。これは、openFrameworksが指定するC++20ではなくC++17でビルドするようにするために必要です。
################################################################################
# PROJECT SPECIFIC CHECKS
# This is a project defined section to create internal makefile flags to
# conditionally enable or disable the addition of various features within
# this makefile. For instance, if you want to make changes based on whether
# GTK is installed, one might test that here and create a variable to check.
################################################################################
# None
# Additional compiler flags
PROJECT_CFLAGS = -Wno-deprecated-enum-enum-conversion -Wno-error=deprecated-enum-enum-conversion -fpermissive -std=c++17
# Force C++17 instead of C++20
PROJECT_CXX = g++
PROJECT_CXXFLAGS = -std=c++17
9. tinyviewplusのビルドと実行
いよいよビルドです!エラーが出なければ成功です。
make clean && make
ビルドが完了したら、以下のコマンドでTiny View Plusを実行できます。
make RunRelease
# もしくは
cd bin
./tinyviewplus
無事に映像が表示されたら、Tiny View Plusのビルド成功です!

これで、Linux環境でTiny View Plusを快適に利用できるようになりました!
これまでWindowsやMacでしか使えなかったTiny View Plusですが、今回の記事でBodhi Linux (Ubuntu 22.04) 上での動作を確認できました。これは、他のLinuxディストリビューションでも同様に動作させられる可能性を示しています。ぜひ、皆さんもご自身の環境でチャレンジしてみてください。
本日も最後までお読みいただきありがとうございました。
それでは、よいFPVドローンライフを!