今回のPETロボは各脚がたった2自由度(股ヨー軸と膝ロール軸)しかないので、逆運動学もくそもない。2自由度では任意の(x,y,z)に足を運ぶことができないからだ。ここでは単純に、股ヨー軸で前後の振り、膝ロール軸で上下の振りをすると考える。
単純な直進の軌道(長方形軌道)を、1本の脚について考えると、
- 前後方向の角振幅 Y[deg], 前後方向の中割りコマ数 Ny[コマ]
- 上下方向の角振幅 Z[deg], 上下方向の中割りコマ数 Nz[コマ]
- 一周コマ数 N[コマ] = 4*Ny + 2*Nz
- コマ周期 τ[ms] = 100ms(仮)
- 軌道周期 T[ms] = N * τ
- nコマめの前後方向の角 y(n)[deg] = Fy(n,Y,Ny,Nz)
- nコマめの上下方向の角 z(n)[deg] = Fz(n,Z,Ny,Nz)
で、昨日のメモから4本の脚の位相について考えると、
- 左右位相差 Δlr (0〜1) 左右コマ差 Nlr[コマ] = int(N*Δlr)
- 前後位相差 Δfb (0〜1) 前後コマ差 Nfb[コマ] = int(N*Δfb)
- 右前脚のコマ n_rf (0〜N-1)
- 左前脚のコマ n_lf = (n_rf + Nlr) % N
- 右後脚のコマ n_rr = (n_rf + Nfb) % N
- 左後脚のコマ n_lr = (n_rf + Nlr + Nfb) % N
で、旋回のときは、外周側のYを大きく、内周側のYを小さくする。