0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

マイクロドローンcrazyflieを用いた飛行データ取得

Last updated at Posted at 2025-05-09

概要

以下の方向けの記事です。

  • crazyradioを購入していてLinux環境でセットアップをしたい方
  • Crazyflie 2.X(以下crazyflie)の飛行データを取得したい方
  • crazyflieとコンピュータを接続した際の通信の可視化を行いたい方

 Bitcrazy社が開発したcrazyflieはオープンソース化されており、近年ドローン関連の研究で多く用いられています。また、同社が開発したCrazy Client(以下cfclient)GUIアプリを容易に連帯することも可能です。ファームウェアアップデートに使用する以外にも、飛行に関する様々なデータを取得したり、そのデータをcsvで保存したりなど様々な機能が実装されています。この記事ではcfclientのインストールから、飛行データの可視化とデータのcsvファイルへの保存方法について説明します。(crazyflieの組み立て方法はこちら

目次


購入

Crazyradio 2.0の購入が必要です。UNIPOSの未掲載品だったため、私はこちらから問い合わせを行って購入しました。公式サイトからも購入できます。

crazyflie(ドローン本体)を未購入の場合はこちらから購入できます。こちらの記事も参考にしてください。

開封

入っているもの

  • Crazyradio 2.0 x 1
  • アンテナ x 1

開発環境

  • Ubuntu 22.04.5 LTS
    • ubuntuのインストールはこの記事を参考にしました。
    • WindowsやMacの場合は公式サイトを参照してください。
    • WSL2などでLinuxの仮想環境上でセットアップする場合は、USBポートへアクセスするための設定が別途必要になります。
  • python 3.10.12

crazyradioの初期設定

このセクションではcrazyflieとPCの通信に使用するcrazyradioを使用できるようにするための手順を記載しています。

  1. cradyradioのコネクタにアンテナを回して接続します。

  2. ブートローダーモードにするため、組み立てたcrazyradioをボタンを押しながらUSBポートに挿入します。このときLEDが赤く光っていることを確認してください。

  3. githubリリースページで"crazyradio2 -CRPA-emulation-[version].uf2"というファイルをクリックしてダウンロードします。私はこちらのversion1.1をダウンロードしました。

  4. ダウンロードしたファイルをファイルブラウザでcrazyradioドライブに drag & dropします。
       
    ドライブへのインストールが完了すると(1秒足らずで)、ブートローダーモードではなくなり、ドライブは使用できなくなります。このときLEDが白く点灯していたら成功です。

  5. root権限なしでCrazyradio2.0をUSB経由で使用できるように設定します。コピー&ペーストで大丈夫です。
    • plugdevというグループを作成し、ユーザを追加
      sudo groupadd plugdev
      sudo usermod -a -G plugdev $USER
      

    • udevのルール設定
      cat <<EOF | sudo tee /etc/udev/rules.d/99-bitcraze.rules > /dev/null
      # Crazyradio (normal operation)
      SUBSYSTEM=="usb", ATTRS{idVendor}=="1915", ATTRS{idProduct}=="7777", MODE="0664", GROUP="plugdev"
      # Bootloader
      SUBSYSTEM=="usb", ATTRS{idVendor}=="1915", ATTRS{idProduct}=="0101", MODE="0664", GROUP="plugdev"
      # Crazyflie (over USB)
      SUBSYSTEM=="usb", ATTRS{idVendor}=="0483", ATTRS{idProduct}=="5740", MODE="0664", GROUP="plugdev"
      EOF
      

    • 設定ルールを再読み込みして適応させる
      sudo udevadm control --reload-rules
      sudo udevadm trigger
      

cfclientインストール

続いてcfclientのインストールを行います。

  1. git、pip、Qu GUIのライブラリをインストール

    sudo apt install git python3-pip libxcb-xinerama0 libxcb-cursor0
    pip3 install --upgrade pip
    

    ※Ubuntu20.04の一部のバージョンでは"libxcb-cursor0"などのパッケージをさらにインストールする必要があるのでQT6パッケージ依存関係リストを要確認


  2. cfclientをインストール

    pip3 install cfclient
    

    ※cfclientのソースコードを変更して開発を行いたい場合はこちら


  3. crazyradioを挿入し、clientのGUIを立ち上げます。

    cfclient
    

ファームウェアアップデート

crazyflieをPCと接続して、crazyflieのファームウェアアップデートを行います。一連の手順の動画(2倍速)を載せています。

  1. crazyflieの電源を入れ、Connectを押して接続します。接続できない場合は、crazyflieやcfclientを再起動したり、scanを押すと正常に動作することが多いです。

  2. 画面上部のConnectのBootloaderをクリックします。

  3. Firmware sourceのPlatform filterでcf2を選択し、Available downloadsで最新のものを選択します。

  4. Programボタンを押してしばらく待機します。この間にcrazyflieが何度か自動で再起動します。

  5. StatusがIDLEになるとファームウェアアップデート完了です。


飛行データのcsvファイル出力

crazyflieをPCと接続して、ログを取ります。一連の手順の動画を載せています。

  1. Connectを押して接続します。接続できない場合は、crazyflieやcfclientを再起動したり、scanを押すと正常に動作することが多いです。

  2. 画面上部のViewのTabsからLog Blocksにチェックを入れます。

  3. Log Blocksタブに移動します。ここで取得可能なログの一覧を見ることができます。追加のデッキなどを購入するとさらに多くの飛行データの取得が可能です。

  4. Write to fileのところにチェックを入れるとログの記録が開始され、チェックを外すと記録が終了します。デフォルトでは100ms毎にログが保存されます。


  5. ファイルシステムの、"~/.config/cfclient/logdata/" にcsvが保存されます。





今回は以上となります。他にも機能がたくさんあるのでぜひ試してみてください。お読みいただきありがとうございました。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?