ODriveでBLDCモーターの制御 #01


勇者技術研究所で、BRAVE  ROBOTICSのケンジさん、もとい華姉りあんちゃんと一緒に、オリジナルの変形ロボット「ファイバリオン」を建造中なのですが・・・

高トルクが必要な膝等に使用するアクチュエーターの検討として、高トルクな中華サーボや、双葉のRS405を6連に束ねたものを実験していましたが、新たにBLDCモーターを使い、ハーモニックドライブで関節を作ろうという話になり、BLDCモーターを回すためのコントローラー「ODrive」を試してみることになりました。

とりあえず、下記の記事において、華姉りあんちゃんがODriveを先行して触り始めていますが、同時並行で進めていきたいと思います。この日記は、その忘備録になります。

【編集中】ODrive試験装置を作ってBLDCモーターをSPI接続アブソリュートマグネットエンコーダで位置制御、速度制御できるよう設定した

https://note.com/kenjiishida/n/n95e1f4f2c2f0

最終的には、PC側のアプリケーションから、原則後の関節の位置制御およびモーションコントローラーまで作成して、ロボットの関節として使えるようにしたいと思います。

テスト用のハードに関しては、華姉りあんちゃんが、テストボードを組んでくれました。
いきなり完成しております。

構成としては、

  • ODRIVE V3.6 (12-56V仕様)
  • ブレーキ抵抗 50W2RJ
  • BLDCモーター GoolRC SURPASS 1200KV 4極ブラシレスモーター
  • エンコーダー AS5047P-TS_EK_AB
  • 電源 アルインコ DM-330MV (とりあえず12V設定、最大32A)
  • メイン電源スイッチ (配線用遮断器)
  • ワットメーター(200Aパワーメータ)

という感じです。
とりあえず、華姉りあんちゃんの記事に沿って、同じところまで動作確認です。

位置制御で、とりあえずBLDCモーターを回してみました。
エンコーダーの解像度も14bitくらいあるんですが、エンコーダーとモーターが直結なので、とりあえず回転回数で位置決めしてます。

高速に回るんで、ホントに指定回数回ってるのかなーと、iPhoneでスロー撮影。
スロー再生で目視可能な10回転ですが、ちゃんと10回転して、元の位置で止まっています。(ズレてたらエンコーダーの意味ないですが^^;A)

あまりエンコーダー単体で使うことなくて、昔ロボコンで使った光学式の知識しかなかったのですが、マグネットエンコーダー解像度高いし、軸合わせもカップリングとかいらないし便利ですね。

とりあえず、今回は、華姉りあんちゃんの記事と同じところまで追いついて、課題を確認しました。

今のところ、「Encoder without index signal」での動作は確認できているのですが、このモードだと毎回起動時にキャリブレーションが必要になるため、起動してすぐくクローズドループを起動して位置制御することが出来ません。

index signalの設定がイマイチわからず、単に設定をミスってるだけなのか、AS5047P-TS_EK_ABの問題なのか、いろいろ検索していると、公式のコミュニティの方で、同じエンコーダーを使用している人が同じようなことを質問していました。

How do I use index signal of AS5047P?

https://discourse.odriverobotics.com/t/how-do-i-use-index-signal-of-as5047p/2850

結局解決したのかわかりませんが、レスの内容としては「出来る」ということなので、出来るのだろう、ということで次回は、起動してすぐにクローズドループの状態にして、制御できるところまでやりたいと思います。


一応初回なので、いろいろリンクを貼っておきます。(忘備録なので)

あと、GUIのツールを試してみて、なかなか起動しないなーと思ったら、どうややファームウェアのアップデートから動かなくなったという記事を見つけました。

なるほど・・・。

コメント

  1. ココ より:

    はじめまして。odriveを使用してインホイールモーターを回したい初心者です。。
    できればarduinoでodriveを制御したいのですが、最初からつまづいております。
    PCとodriveを接続してもodriveを駆動することができないのです。。
    通常のUSBケーブルをPCに接続しているのですが、それではだめなのでしょうか?
    まずはPCとodriveを接続してモーターを動かしてみたいです。
    アドバイスいただけると助かります。

    • みっちー より:

      おそらく解決済みかとは思いますが、コメント遅くなってすみません。
      最近は、ODriveではなくmoteusに鞍替えしています。
      当時の記憶だと、USBケーブルでつなぐだけで、Pythonから制御出来ていました。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

アーカイブ

広告

Top