Skybrushとは
SkybrushはCrazyfile, ArduCopterベースで動く複数のドローンを制御してドローンショーを行うことができるOSS(GPL-3.0 license)です。
主な特徴は以下の通りです。
- Windows, Linux, MacOSに対応
- Discordにて無料で技術サポートが得られるほか、ビジネス用途向けに有償サポートあり
- 実機での動作~Blender上でのシュミレーション、ショーの設計が可能
- 部分的な日本語対応(ドローンショーを管理するソフトの一部分)
Skybrushを構成するアプリケーション
Skybrushは複数のアプリケーションで構成されており、それぞれの名前と説明は以下の通りとなります。
- Skybrush Server
- 異なる種類のドローンを同時に通信をする際のプロトコルの差異を吸収してくれるミドルウェアアプリケーション。下記に述べるアプリはSkybrush Serverを経由しており、ドローン側のシステムを意識せずに済んでいる
- Skybrush Live
- ドローンを管理するためのフリートマネージャー。ドローンの制御や状態監視等を行うことができる
- Skybrush Studio
- ドローンショーを設計する際に利用するソフト。Blenderのプラグインのためアニメーションを作る要領でドローンショーを設計できる
- Skybrush Viewer
- Skybrush Studioで設計したショーをシュミレーションするためのソフト。
- Skybrush Sidekick
- ドローンショー中にSkybursh Liveがドローンと接続できなくなった際に利用する予備のチャネル用のアプリ
- Skybrush firmware
- 主に自作ドローンを使用してショーを行う際に
実際に動かしてみよう
動作環境
- Ubuntu22.04
- Python3が動く
- npmが動く
セットアップ
1. poetryのインストール
sudo apt install python3-pip
pip3 install poetry
2. Skybrush Serverのインストールと起動
git clone https://github.com/skybrush-io/skybrush-server.git
cd ~/skybrush-server/
python3 -m poetry install
python3 -m poetry run skybrushd -c etc/conf/skybrush-outdoor.jsonc
▼正常に動作できた場合
skybrush@MyComputer:~/skybrush-server$ python3 -m poetry run skybrushd -c etc/conf/skybrush-outdoor.jsonc
[13:32:13] server Starting Skybrush server 2.15.0
✔ skybrush Loaded configuration from '/home/skybrush/skybrush-server/etc/conf/skybrush-outdoor.jsonc'
logging Storing logs in '/home/skybrush/.cache/Skybrush Server/log'
logging Logging started
http_server Starting HTTP server on :5000
▲ insomnia Cannot prevent sleep mode on this platform
mavlink mav Routing primary traffic to mav
mavlink mav Routing RTK corrections to mav
mavlink mav Routing RC overrides to mav
mavlink mav Connection at :14550 up and running
3.SITL(仮想ドローン)のセットアップ
※別コンソールで実行して下さい
git clone https://github.com/skybrush-io/ardupilot.git
cd ardupilot/
git checkout CMCopter-4.2
git submodule update --init --recursive
sudo apt install python3.10-venv
python3 -m venv .venv
source .venv/bin/activate
pip install -U pip wheel
pip install future empy intelhex pexpect
./waf configure --debug --board sitl
./waf copter
▼正常にセットアップできた場合
skybrush@MyComputer:~/ardupilot$ build/sitl/bin/arducopter
You must specify a vehicle model. Options are:
quadplane
xplane
<中略>
JSON
blimp
You must specify a vehicle model.
4.複数SITLの起動
cd ~
git clone https://github.com/skybrush-io/ap-swarm-launcher
cd ap-swarm-launcher
python3 -m poetry install
python3 -m poetry run ap-sitl-swarm -n 20 --num-drones-per-row 5 --spacing 5 --pos-noise 0.5 --yaw-noise 10 ../ardupilot/build/sitl/bin/arducopter
▼正常に起動できた場合
skybrush@MyComputer:~/ap-swarm-launcher$ python3 -m poetry run ap-sitl-swarm -n 20 --num-drones-per-row 5 --spacing 5 --pos-noise 0.5 --yaw-noise 10 ../ardupilot/build/sitl/bin/arducopter
1 | Setting SIM_SPEEDUP=1.000000
1 | Suggested EK3_BCOEF_* = 16.288, EK3_MCOEF = 0.209
1 | Home: -35.363254 149.165234 alt=584.000000m hdg=345.000000
1 | Starting sketch 'ArduCopter'
1 | Starting SITL input
1 | Using Irlock at port : 9005
1 | UDP connection 127.0.0.1:14550
1 | Loaded defaults from /tmp/sitl-swarm-kkeeabzu/drones/001/default.param
<中略>
kkeeabzu/drones/019/default.param
20 | validate_structures:476: Validating structures
20 | Loaded defaults from /tmp/sitl-swarm-kkeeabzu/drones/020/default.param
5.Skybrush Liveのインストールと起動
- 公式サイトからインストーラーをダウンロードしてインストール
動作確認
1.Skybrush Liveを起動する
注意点
- Skybrush Serverはソースコードからビルドしたものを利用してください。公式のインストーラーでは一度に制御できるドローンの数に制限をかけています。
- ドローンのファームウェアは純正のCrazyfile, ArduCopterでは動きません。そのためSkybrushに対応したものをSkybrush用ArduCopterリポジトリもしくはSkybrush用Crazyfileリポジトリからダウンロードして利用するか、Skybrush対応のドローンを購入する必要があります(売っているかどうかは不明)。