工学院大学機械システム工学科システムインテグレーション研究室(羽田研究室)の長田と申します。お世話になっております。私は火山調査ロボットに関する卒業研究を行っているのですが、ヘリ追尾用の2軸アンテナ台のハードウェアを自作し、T-FrogモータドライバとYP-Spurを用いて制御を行いました。他の方々のご参考までにご報告いたします。行ったことは以下の通りです。1)ハードウェアに合わせたパラメタファイルの用意2)アンテナ制御台の制御角度の確認・調整3)関数の作成4)メイン関数の作成それぞれ以下でご説明いたします。1)ハードウェアに合わせたパラメタファイルの用意まず自作のハードウェアに合わせてパラメタファイルを作成しました。仕様モータはiCartで使われているツジ電子社製パルスエンコーダ付きギヤードブラシレスモータ、TF-M30-24-3500-G15LとTF-M30-24-3500-G15Rです。モータドライバとモータの接続は下記になります。rad/s^2でした。pulse/revです。そこでYP-Spur付属?の標準パラメータファイルicart-mini.paramを元に各パラメタを下記のように設定しました。この中で、GAIN_KIとTORQUE_VISCOS、TORQUE_NEWTONのパラメタだけを変更しました。パラメタではギア比を変更せず、角度の命令をする際にギア比分の差を与えて調整しています。次に設定したパラメタファイルが正しく動作しているかをypspur-interpreterを用いて確認します。set_wheel_velおよびset_wheel_accelで角速度と角加速度を設定します。wheel_angで目標角度の値分モータを動かします。※私はwheel_angの目標角度を与える際にギア比を考慮しました。get_wheel_angで現在のモータの角度を調べます。?、?を繰り返し、調整します。これでアンテナを正しく任意の角度に向けることができるようになりました。使用したコマンドは下記になります。アンテナのTilt角方向の目標角度(単位radian)get_wheel_ang-----コマンドを使用した例が下記になります。今回はPWS型移動ロボットではないので、これらの関数は使えません。そこで、それよりも低いレベルの関数YP_wheel_ang()、YP_get_wheel_ang()を使って、vとwを直接制御することにしました。YP_wheel_ang()はエンドエフェクタのPI制御を行う関数でまた、YP_get_wheel_ang()は2つのエンドエフェクタの現在角度を知ることができる関数です。今回のエンドエフェクタはアンテナの向いている方向です。これらを用いて、アンテナの目標方位(Pan,Tilt)を与えるとそちらを向ける関数を作成しました。関数の中身は以下になります。);}*/--------------------------------------------------------------------------------------------------------------4)メイン関数の作成3で作成した関数を使い、全体の制御プログラムを作成しました。今回は目標角度を1秒おきに与えてそちらを向けるようにしました。目標角度はヘリのGPS座標を通信で受け取り算出するのですが、この報告とは関係ないので割愛します。制御はYP-Spurに任せつつも、常時それを監視する、という流れになります。実際には1秒おきに目標値を勝手に更新しているのであまりYP-Spurの考え方とは合致していないような気もします。);-----制御部分my_wheel_ang(Pan,Tilt,err_P,err_T,&my_set_P,&my_set_T);Sleep(1000);//秒スリープ-----以上のシステムを作成したうえで、小浅間山で行ったデモビデオを下記で公開しておきました。https://www.youtube.com/watch?v=NaE3Uu-_t4k&feature=youtu.beまた、デモビデオではアンテナ台の動きが分かりにくいので、アンテナ台がアップのものを別途に下記で公開しました。https://www.youtube.com/watch?v=nBQFdLfKM6A&feature=youtu.be私の勉強不足のため、まだ制御パラメタが調整しきれておらずガタついておりますが、T-FrogドライバとYP-Spurのおかげで、非常に短い時間で作成することができました。(機械部分開発が60日、回路部分開発が14日、ソフト50日ぐらい)有用なソフトウェアをご提供いただき、誠にありがとうございました。Reserved.プライバシーポリシーアクセシビリティ。