ODriveでBLDCモーターの制御 #02 GUIツール
前回、記事の最後にGUIのツールのことを書きましたが、その点についての防備録。本当にメモです。
まず、ODriveで検索していると、GUIのツールは2種類のスクリーンショットが見つかります。
下記の2種類の画面ですね。
それぞれ、UI_odrivetoolと、odrive_guiと言うようです。
- GitLab – UI_odrivetool
https://gitlab.com/p87942130/ui_odrivetool - Github – odrive_gui (β版)
https://github.com/odriverobotics/ODrive/tree/devel/GUI
もともとα版は、別リポジトリでPAJohnsonさんのgithubアカウントで公開されていたようで、上記公式に移ったようで下記リポジトリは削除されています。https://github.com/PAJohnson/odrive_gui
UI_odrivetool
まずは、残念ながら動かせなかったUI_odrivetoolから紹介。
UI_odrivetoolに関して、macで試しました。
マニュアルに従って起動してみます。
作り込まれたカッコいい感じのGUI画面が現れます。
ただ、[connect]を押したり、[Scan config]すと・・・呼び出したターミナルで盛大にエラーが吐き出されます。
これに関しては、公式の掲示板に答えがありました。
現在、ファームウェアは0.5.1なのですが、どうも0.4をターゲットに作り込まれているようで、その間かなり大幅な変更があり動かなくなっているということのようです。
前回の記事で紹介したサイトでは、0.4から0.4.11に対応させたリポジトリを公開されているようなのですが、その後のアップデートは追いかけられていない模様です。
そもそもメインのリポジトリが長期間放置されているので、メンテナンスは期待できそうにありません。
ODriveがまだまだ荒削りなのか、ユーザーも公式の変化を追いかけるのも大変そう、という印象を受けました。ODriveを採用するには、覚悟が必要な印象です。(そもそもベータですしね。)
odrive_gui (windows版)
odrive_guiに関してですが、こちらもいろいろ試してみました。
まず、起動するまでに色々ありました。
そして、起動してからも・・・(^^;A
公式のドキュメント的には、pipコマンドで、flask flask-socketio flask-cors odriveをインストールして、
./odrive_gui_win.exe C:/Users/<you>/ODrive/tools C:/Users/<you>/ODrive/Firmware
で、実行すれば動くよ・・・ということなのですが・・・!?
まず、C:/Users/<you>/ODrive/toolsも、C:/Users/<you>/ODrive/Firmwareも、そんなパス存在しないよ・・・という話なんですよね。
そんなところに、何かをインストールした記憶もない・・・。
ちなみに、引数なしで、odrive_gui_win.exeを起動するとそれらしい画面は出てくるのですが、ODriveはピクリとも動きません。
結論から言うと、flaskを使ってpythonでwebサーバー兼コントロールサーバーを立ち上げて、それをwebブラウザをラップしたGUIで見せるという仕組みになっています。なので、odrive_gui_win.exeだけを起動すると、表面上のGUIだけが立ち上がって、中身が伴わないので、まったく動かないということでした。
正しい起動方法ですが、まずは、beta3の実行ファイルとソースコードを準備します。
https://github.com/odriverobotics/ODrive/releases/tag/gui-0.0.1-beta3
- ODriveGUI.exe
- Source code(zip)
この2つをダウンロード解凍します。
すると気がつくかと思いますが、ソースコードに含まれる「tools」「Firmware」が先程の引数のフォルダなのです。あと、中身はpythonですので、python環境のパスが通ってないと動きません。
なので、コマンドプロンプトではなく、Anaconda Promptで、起動するのが正解なんですね。
先程のソースと実行ファイルをデスクトップにダウンロードした場合は、Anaconda Promptで、下記コマンドを実行します。
C:¥Users¥(ユーザー名)¥Desktop¥odrive_gui_win.exe C:¥Users¥(ユーザー名)¥Desktop¥ODrive-gui-0.0.1-beta3¥tools C:¥Users¥(ユーザー名)¥Desktop¥ODrive-gui-0.0.1-beta3¥Firmware
すると、ちゃんと動くODrive GUIが起動します。
動くとこんな感じです。
ちなみに、裏でちゃんとodrive_server.pyが実行されていれば、localhostの5000番にサーバーが立ち上がっています。
pythonが動かない環境で立ち上げてしまった場合は、localhostにサーバーが立ち上がっていません。いつまでも接続が始まらないのはそのためですね。
・・・で、ここまではいいのですが、ここから先、windows版はいろいろ不具合があります。
具体的には・・・
- 起動に5分かかる(時がある)
- 説明と違って、ソフトより先にODriveを起動していないとだめ
- 途中でODriveの電源落とすと、再接続にはGUIツールも再起動しないとだめ
- 接続されても表示が変わらない、ボタンをクリックして動作してはじめて接続されていることがわかる
- configが読み込めない(書き込みは出来る)、ダッシュボードに項目の追加が出来ない、plotが動かない、etc…
いろいろ残念な感じです。
(いや、もしかしたら自分の構築した環境が残念な可能性も大いにありますが)
odrive_gui (macOS版)
なんとなく諦めきれずに、mac版も試してみました。
先程のwindowsの流れと一緒で、pythonのパスが通った環境で、デスクトップに置いた実行ファイル(zip解凍済み)とソースコード(zip解凍済み)を使って実行します。
必要なのは下記の2つですね。
- ODriveGUI.zip
- Source code(zip)
Pythonのパスを通す
$ source ~/env/bin/activate
ODrive GUIを実行する
$ ~/Desktop/ODriveGUI.app/Contents/MacOS/ODriveGUI ~/Desktop/ODrive-gui-0.0.1-beta3/tools ~/Desktop/ODrive-gui-0.0.1-beta3/Firmware
すると、GUIが現れるのですが、この時点でwindows版との違いに気づきます。
Windows版では、接続成功でも失敗でも赤色のままだったURLが、ちゃんと緑色に変化しています。
期待できそうです。
次に、ダッシュボードを見てみます。
サンプリング開始するとすぐに、plotが始まりました!
windows版だとまったくplotされる気配もなかったのに・・・。
その他、キャリブレーション・クローズドループも問題なく、下記は動かしている様子を撮影してみた動画ですが、設定アシスタントもちゃんと動きました!
全機能試したわけではありませんが、コミュニティのスクリーンショットで見た画面が次々現れます。
・・・と言うわけで、まだubuntu版は試せていませんが、とりあえず、macの環境ではGUIの動作が確認できました。
ということで、今回はここまで。
ODriveとの格闘はまだ続きます。。。
今後の課題:クローズドループで起動する方法は?Arduinoからの制御の確認、減速後の位置制御どうする?etc…
コメントを残す