ETロボコンで使われるロボット(走行体と呼んでいます)は、参加チームのクラスごとに2種類存在します。
ひとつは二輪のEV3way-ETで、こちらは二輪倒立で走行を行います。
もうひとつはHackEV、前にあるアームを駆使して作業を行う難易度の高いテーマが与えられる上級者向けの走行体です。
こちらも駆動タイヤは二輪ですが後部にコロが付いていて、三点で接地して走行します。
#HackEVで二輪倒立できないかな?
2019年は別な開発を行っていたので、Advent Calendarに上げるネタが無かったんですが、
2019年のイベントが終わったので試してみることにしました。
HackEVも同じキットから組まれていて構造上できそうです。
重さや重心位置が変わるので、パラメーターの調整が必要になりますが、新たに倒立対応を行ったノウハウはあります。
【参考】
EV3way ETロボコンで使用している倒立振子APIパラメーターの再計算手順
2018年走行体EV3way(二輪倒立)について 前編
2018年走行体EV3way(二輪倒立)について 後編
#2019年仕様HackEVでは倒立ができない
2019年仕様の走行体では、ジャイロセンサーの取り付けがヨー(左右旋回)方向に変わっています。これでは倒立に必要なピッチ(前後傾斜)方向の情報が得られないため改造を行います。
右側のタッチセンサーを外してジャイロセンサーに付け替えてピッチ方向の情報を取得できるようにします。
#パラメーター計算
ETロボコンで使用している倒立振子ライブラリでは、パラメーター計算に次の情報が必要になります。
% EV3way-ET2018 Parameters 20180120
m = 0.050; % wheel weight [kg]
R = 0.05; % wheel radius [m]
M = 0.79; % body weight [kg]
W = 0.177; % body width [m]
D = 0.08; % body depth [m]
H = 0.140; % body height [m]
##HackEVの計測
HackEVの重さはどれくらいかなー?とキッチンはかりに載せてみましたが、
見慣れない表示EEEE
ガーン!(古)重すぎて測れないじゃないか!
走行体の重さだと精度が怪しいですが、体重計を使用しました。
タイヤサイズ、車体の幅などは定規で測ります。
body depthは値を変えても計算結果は変わらないので、そのままにしておきます。
body heightは重心位置になります。倒立制御で重心位置は重要で、物体の振動の周波数特性を決める値になります。
おそらく倒立の様子を見て調整することになるので、手でいろいろ持つ位置を変えながら雰囲気でだいたいの値を出します。
次のパラメーターで倒立振子APIのパラメーターを計算してみます。
% HackEV Parameters 20191209
m = 0.050; % wheel weight [kg]
R = 0.05; % wheel radius [m]
M = 1.50; % body weight [kg]
W = 0.145; % body width [m]
D = 0.08; % body depth [m]
H = 0.140; % body height [m]
求まった結果がこちらです。
K_F[0] = -0.86588F;
K_F[1] =-34.06031F;
K_F[2] = -1.14930F*0.70;
K_F[3] = -2.49766F;
#動かしてみる
ETロボコン用走行体 HackEV3による2輪倒立走行(ネタ) https://t.co/DZ9UZMEQsx @YouTubeさんから
— k.shimizu (@pulmaster2) 2019年12月11日
倒立!ヨシ!
適当にパラメーター入れただけですが、あっさり倒立できてしまいました。倒立の状態もそんなに悪くないです。
以上 Advent Calendar用のネタとして作成しましたが、HackEVで二輪倒立できたことは某実行委員会本部技術に伝えておきます。