LoginSignup
12
11

More than 3 years have passed since last update.

ODrive 入門 ー初期設定から動作確認まで

Last updated at Posted at 2020-09-05

はじめに

この記事はBLDC制御実験キットの製作の続きです。

前回は実験ボードを作ったのですが、電源が故障してしまったのと、2つのモータを使ってテストしたかったという理由で新しいボードに作り変えました。

電気系統に関しては特に変更点はありません。
今回、固定台としてセリアのすのこを使ったのですが、下に空間があるためナットでガタつくこともなく剛性もあるため非常に良かったです。

本記事ではODriveの初期設定から動作確認までを紹介します。

環境構築

実行環境:Ubuntu18.04

$ sudo apt update
$ sudo apu upgrade
#python3のインストール
$ sudo apt install python3 python3-pip 
$ sudo pip3 install odrive
#PATHの追加 (zshユーザは~/.zshrc)
$ echo "PATH=$PATH:~/.local/bin/" >> ~/.bashrc 

初期設定

まずodrivetoolを起動させ、接続を確認しましょう。

接続確認
$ odrivetool

ODrive control utility v0.4.0
Please connect your ODrive.
Type help() for help.

Connected to ODrive 306A396A3235 as odrv0
#電圧確認コマンド
In [1]: odrv0.vbus_voltage
Out[1]: 11.97055721282959

以下の設定は使用するモータ、エンコーダによって変わります。
今回紹介する設定は、

モータ:X8318S
エンコーダ:AS5047P-TS_EK_AB

を使用しています。

初期設定
#モータの極数
odrv0.axis0.motor.config.pole_pairs = 20 
#エンコーダの1回転あたりのカウント数
odrv0.axis0.encoder.config.cpr = 4000
#設定を保存
odrv0.save_configuration()
#再起動
odrv0.reboot()

動作確認

初期設定
#エンコーダのイニシャライズ
odrv0.axis0.requested_state = AXIS_STATE_FULL_CALIBRATION_SEQUENCE
#フィードバック制御の開始
odrv0.axis0.requested_state = AXIS_STATE_CLOSED_LOOP_CONTROL

#絶対位置を指定(エンコーダのカウント数)
odrv0.axis0.controller.pos_setpoint = 10000
odrv0.axis0.controller.pos_setpoint = 0

これで動作確認ができました。
次回の記事ではArduinoによる制御と、ROSとArduinoとODriveの通信を紹介します。

参考文献

12
11
2

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
12
11