Sphinx をインストールする
sphinx とは、Parrot が提供しているドローンシミュレーターである。Parrot 製フラッグシップドローンとして Anafi があり、これをシミュレーションできるようになる。ここでは sphinx の構築からドローンをシミュレーターに反映させるまでを記録として記述する。
Parrot からライセンスを取得する
sphoinx はめんどくさいことに Parrot から ftp サーバー ID とそのパスワードを取得しなければならない。そのため、下のメールアドレスに利用目的などの趣旨を伝えて sphinx のサーバー ID を要求する。内容が明確だった場合 parrot から承認が来る。
-
developer@parrot.com
1〜2週間ほどまつと、parrot からこのようなメールが来る。
Hello,
Please find below the credentials to access the FTP server:
Login = xxxxxxxxx
Password = XXXXXXXX>Regards,
The Parrot education team
xxx には ID 情報、XXX にはパスワードが書かれている。これがきたら sphinx の PPA システムに登録を行う。
Parrot Sphionx の PPA 登録をする
以下のコマンドを実行する。このとき [ID]にはメールで書かれている Login を入力し、[PASS]にはメールで書かれている Password を入力すること。
echo "deb ftp://[ID]:<[PASS]@ftp2.parrot.biz/deb/ $(lsb_release -cs)/" | sudo tee /etc/apt/sources.list.d/apt.parrot.biz.list
curl -fsSL ftp://[ID]:[PASS]@ftp2.parrot.biz/gpg | sudo apt-key add -
echo 'Dir::Bin::Methods::ftp "ftp";' | sudo tee /etc/apt/apt.conf.d/99sphinx-ftp
sudo apt update
ここまで何かしらのエラーが出ていない場合は次のセクションに進んでほしい。
Parrot Sphinx のインストール
Sphinx のインストールは apt から行う。
sudo apt -y install parrot-sphinx
コレを行ったあとに、以下のような画面がターミナル上で表示される。
コレ最初出たときどうやって操作すればいいのかわからなかったのだが、 Tab キーで項目を移動できるので、Tab キーを押して了解をクリックする。
その後しばらく待つと、また確認画面が来るので了解をクリックし、さらに以下のような項目が出たら
この空欄にユーザー名を登録する。ユーザー名は PC ログイン時のユーザー名のことである。これを間違えると面倒なことになるので注意してほしい。ここで僕はユーザーネームを書き間違えてしまった。
次にシミュレーションを行うにおいて必要なフィールドをインストールする。以下のコマンドでインストール可能なフィールド一覧が確認できる。
apt-cache search parrot-ue4
ここではシンプルなフラット空間である以下のシミュレーションフィールドを採用する。
sudo apt update
sudo apt install parrot-ue4-empty
そしてテストとして公式ドキュメントに書かれているこのコマンドを実行
sphinx "/opt/parrot-sphinx/usr/share/sphinx/drones/anafi_ai.drone"::firmware="https://firmware.parrot.com/Versions/anafi2/pc/%23latest/images/anafi2-pc.ext2.zip"
そしたらこんなエラーが出てしまった。
You should be a member of the firmwared group to run sphinx.
Please run the following command to add it. You will need to
log out / log in for this new group membership to be effective.
sudo usermod -a -G firmwared username
Google 先生に直訳してもらうと
sphinx を実行するには、firmwared グループのメンバーである必要があります。
以下のコマンドを実行して追加してください。 あなたがする必要があります
この新しいグループ メンバーシップを有効にするには、ログアウト/ログインしてください。
sudo usermod -a -G firmwared ユーザー名
つまり sphoinx 設定時のユーザーネームがこのパソコンに存在しないので実行できないということである。
Sphinx の実行
実行対象は ANAFI とする。AnAFI AI などを実行する方は公式ドキュメントを参考にしてほしい。
ローカルにファームウェアをダウンロードする
インターネット経由からでもドローンのファームウェアを実行することは可能なのだが、なぜか僕の環境ではうまく行かないので、ここではローカルにファームウェアを持ってきて実行する方法を記述する。まずはこちらから各機体のファームウェアをダウンロードできる。今回僕は実機もある ANAFI をダウンロードする。僕がダウンロードしたリンクのパスは以下のとおりである。
Versions/anafi/pc/1.8.3/images/anafi-pc.ext2.zip
ダウンロードが完了したら、任意でディレクトリを作成、移動してどこにファームウェアパッケージがあるのかを管理できるようにしよう。そしたら以下のコマンドを実行する。(ANAFI の場合)
sudo systemctl start firmwared.service
sphinx "/opt/parrot-sphinx/usr/share/sphinx/drones/anafi_4k.drone"::firmware="/ファームウェアパッケージまでのパス/anafi-pc.ext2.zip
そしたらファームウェア実行のログがめちゃくちゃ表示されて、待機状態に入るので新たにターミナルを立ち上げて、このコマンドを実行する。
parrot-ue4-empty
そしたらシミュレーターが開き、しばらく待つとこのようにドローンが表示される。
これで sphinx のセットアップは完了である。
ユーザーネームを書き間違えてしまった場合
さて、 sphinx シミュレーターを起動する際に以下のようなエラーが出た場合はユーザーネームを設定時に書き間違えてしまった可能性がある。
You should be a member of the firmwared group to run sphinx.
Please run the following command to add it. You will need to
log out / log in for this new group membership to be effective.
sudo usermod -a -G firmwared username
ここでコレを実行して sphinx の Firmwared に間違ったユーザーネームが登録されていないかを確認しよう。
cat /etc/group|grep firmwared
すると、レスポンスとしてこのように返ってくる。USERNAME にセットアップ時に記述したユーザーネームが表示される。
firmwared:x:135:USERNAME
そしたら、間違えて登録してしまったユーザーネームに管理者権限を与える。
sudo usermod -a -G firmwared USERNAME
sudo usermod -a -G adm,cdrom,sudo,dip,plugdev,lpadmin,USERNAME
そして
sudo reboot now
でPCを再起動
再起動後、もう一度 sphinx を実行してみる。