5軸の逆運動学
ROBO-ONEも終わって、いつもならアルミフレームの改善やサーボの種類変更等を行う(行いたい)時期なのですが、ちょっとがまん。
ロボットの性能はソフトウェア(モーションを含む)に大きく左右されるのだから、ロボットの性能を上げたいのならソフトウェアの改善が優先なのです。ぐっとこらえてソフトウェアの改善を行うことにしました。
今回の改善の目標は、パラメータによる歩行です。
・移動速度や方向を与えると、マイコンが自動で計算して歩いてくれる。
・常に足踏みを行い、右足が上がっていようと、左足が上がっていようと前後左右に瞬時に移動が開始できる。
目標は決めた。
それにはまず、マイコンでの逆運動学計算が必要です。(かならずしもマイコンで行う必要はないのだが・・・)
現在、私はPCのモーションエディタで、足のピッチ軸(3軸)だけは逆運動学計算をさせてモーション作成をしています。
作成したモーションとモーション間の補間はマイコンにて角度を等間隔に計算して求めています。
各サーボの角度を等間隔で動作させると、大きな落とし穴があるので、マイコンでも逆運動学が必要なのだ。
どうせ逆運動学をやるのなら、ついでに今までの3軸ではなく、ロール軸を足した5軸をやろうと思います。
マイコン側では計算処理速度というパズルのようなハードルがあるので、まずはPC側のモーションエディタにて5軸の逆運動学ロジックを作成しました。
WideStudioの使い方と、一年以上前に書いたプログラムを思い出すのに1時間。
2軸追加分の逆運動学ロジックを書くのに1時間。
微妙に計算結果に誤差がある気がして、その調査に3時間。
かんせ〜い。
2軸追加分の逆運動学ロジックはとっても簡単でした。
sqrtの計算を2つと、acosの計算を1つの、3行を追加しただけです。(実際にはもっとコーディングしてますが、逆運動学ロジックとしては3行のみ!)
で、動作確認していると、どうやら誤差がある。
足を前後に大きく出した状態だと、足裏の位置が5mmほど低いのです。重心の真ん中に足があるときとくらべると、前や後ろ方向に伸ばせば伸ばすほど、足裏の位置が低くなるのです。
今日のロジック修正が原因かと思ったのですが、どうやら、以前のロジックでも同様の現象が発生していました。(おいおい、こんなんで作っていたのか・・・)
1、サーボのPWM制御がおかしいのかな?
2、逆運動学計算のロジックがおかしいのかな?
3、変数の型変換がおかしいのかな?
4、アルミフレームの精度が低いのかな?
5、重力にサーボが耐えられなくて足がさがるのかな?
調べること3時間・・・
原因は原点調整ミス。
どういう事かというと、原点のときに足がまっすぐになっていないのです。正確には腰ピッチと膝ピッチと足首ピッチが直線上になかったのです。
(原点作成時はそのことに気がついていたはずですが、サーボホーンの取り付けミスで足が伸ばせなかった(セレーションをずらすだけなのですが・・・)ことと、足をまっすぐにする必要性を感じなかったため)
3つのピッチが横から見て直線上にない状態を原点とし、逆運動学を行うとこんなことが起こるとは思いもしませんでした。というかいまだに理論はわかりません。
原点を調整したら、足裏位置もぴったり。やった〜。
今日はまだPC上のモーションエディタを改造しただけなので、あまりロボットの動きになめらかさは感じませんが、すくなくともモーション作成はだいぶ楽になりそうです。
次はマイコン側だ!
ロボットの性能はソフトウェア(モーションを含む)に大きく左右されるのだから、ロボットの性能を上げたいのならソフトウェアの改善が優先なのです。ぐっとこらえてソフトウェアの改善を行うことにしました。
今回の改善の目標は、パラメータによる歩行です。
・移動速度や方向を与えると、マイコンが自動で計算して歩いてくれる。
・常に足踏みを行い、右足が上がっていようと、左足が上がっていようと前後左右に瞬時に移動が開始できる。
目標は決めた。
それにはまず、マイコンでの逆運動学計算が必要です。(かならずしもマイコンで行う必要はないのだが・・・)
現在、私はPCのモーションエディタで、足のピッチ軸(3軸)だけは逆運動学計算をさせてモーション作成をしています。
作成したモーションとモーション間の補間はマイコンにて角度を等間隔に計算して求めています。
各サーボの角度を等間隔で動作させると、大きな落とし穴があるので、マイコンでも逆運動学が必要なのだ。
どうせ逆運動学をやるのなら、ついでに今までの3軸ではなく、ロール軸を足した5軸をやろうと思います。
マイコン側では計算処理速度というパズルのようなハードルがあるので、まずはPC側のモーションエディタにて5軸の逆運動学ロジックを作成しました。
WideStudioの使い方と、一年以上前に書いたプログラムを思い出すのに1時間。
2軸追加分の逆運動学ロジックを書くのに1時間。
微妙に計算結果に誤差がある気がして、その調査に3時間。
かんせ〜い。
2軸追加分の逆運動学ロジックはとっても簡単でした。
sqrtの計算を2つと、acosの計算を1つの、3行を追加しただけです。(実際にはもっとコーディングしてますが、逆運動学ロジックとしては3行のみ!)
で、動作確認していると、どうやら誤差がある。
足を前後に大きく出した状態だと、足裏の位置が5mmほど低いのです。重心の真ん中に足があるときとくらべると、前や後ろ方向に伸ばせば伸ばすほど、足裏の位置が低くなるのです。
今日のロジック修正が原因かと思ったのですが、どうやら、以前のロジックでも同様の現象が発生していました。(おいおい、こんなんで作っていたのか・・・)
1、サーボのPWM制御がおかしいのかな?
2、逆運動学計算のロジックがおかしいのかな?
3、変数の型変換がおかしいのかな?
4、アルミフレームの精度が低いのかな?
5、重力にサーボが耐えられなくて足がさがるのかな?
調べること3時間・・・
原因は原点調整ミス。
どういう事かというと、原点のときに足がまっすぐになっていないのです。正確には腰ピッチと膝ピッチと足首ピッチが直線上になかったのです。
(原点作成時はそのことに気がついていたはずですが、サーボホーンの取り付けミスで足が伸ばせなかった(セレーションをずらすだけなのですが・・・)ことと、足をまっすぐにする必要性を感じなかったため)
3つのピッチが横から見て直線上にない状態を原点とし、逆運動学を行うとこんなことが起こるとは思いもしませんでした。というかいまだに理論はわかりません。
原点を調整したら、足裏位置もぴったり。やった〜。
今日はまだPC上のモーションエディタを改造しただけなので、あまりロボットの動きになめらかさは感じませんが、すくなくともモーション作成はだいぶ楽になりそうです。
次はマイコン側だ!
第11回ROBO-ONEに行ってきました。
ROBO-ONEに行ってきました。
結果は予選敗退。100台中40位でした。なさけない・・・
やっぱり予選は苦手。どうしてよいのかが全くわからない。
今回の大会ではwithファミリーだと20点が加算されます。
J-Classだと50点でしたが、さすがにそこまでは与えられないというわけで20点。妥当な点数だと感じました。
あと、予選結果と内容を見比べると、GP組には50点ぐらいが加算されているようです。(冗談ですよ・・・)
毎度のことながらおかしな予選結果でした。
趣味とはいえ、みなさん一生懸命作成してきているのに、審査員の偏見で採点されるのは悲しくなります。GP組への差別は点数以外にも現れていたと思います。
それでも、西村さんをはじめ大半の委員会の方は公正な方向に進めようという意思が見受けられました。とてもうれしかったです。
そして本戦ですが、ルールが変わったことで、今までと比べて非常に楽しく、公平な試合だったと思います。
今回は結構参加者が多かったので、次回からまたJ-Classというか軽量級のみの大会があるとうれしいです。予選参加者が多すぎるとメリハリなくなるので、資格審査をもっと難しくして、予選と本戦を1日(資格審査で1日)で行うと良い気がしています。
で、コーネリアスですが、仮に審査が公正になったとしても予選は通過できないぐらい低いところにいます。
審査員の悪口を言う前に、まともなロボットを作らねば。
まずは、マイコン側での逆運動学計算を手始めに行う予定です。
結果は予選敗退。100台中40位でした。なさけない・・・
やっぱり予選は苦手。どうしてよいのかが全くわからない。
今回の大会ではwithファミリーだと20点が加算されます。
J-Classだと50点でしたが、さすがにそこまでは与えられないというわけで20点。妥当な点数だと感じました。
あと、予選結果と内容を見比べると、GP組には50点ぐらいが加算されているようです。(冗談ですよ・・・)
毎度のことながらおかしな予選結果でした。
趣味とはいえ、みなさん一生懸命作成してきているのに、審査員の偏見で採点されるのは悲しくなります。GP組への差別は点数以外にも現れていたと思います。
それでも、西村さんをはじめ大半の委員会の方は公正な方向に進めようという意思が見受けられました。とてもうれしかったです。
そして本戦ですが、ルールが変わったことで、今までと比べて非常に楽しく、公平な試合だったと思います。
今回は結構参加者が多かったので、次回からまたJ-Classというか軽量級のみの大会があるとうれしいです。予選参加者が多すぎるとメリハリなくなるので、資格審査をもっと難しくして、予選と本戦を1日(資格審査で1日)で行うと良い気がしています。
で、コーネリアスですが、仮に審査が公正になったとしても予選は通過できないぐらい低いところにいます。
審査員の悪口を言う前に、まともなロボットを作らねば。
まずは、マイコン側での逆運動学計算を手始めに行う予定です。
出発
いまから一眠りしたら出発します。
6時間ぐらいは眠れるかな。
縄跳びは2種類やるのですが、一つ目はほぼ100%の成功率。
二つ目はたまに失敗します。
バッテリーの状態に結構左右されます。
バッテリーがだいぶ使いふるしているからな・・・
予選では、自分の喋りが一番関門。
緊張せずに流暢にしゃべらなければ、ロボットの動きにあわせれないぐらいしゃべることが多い・・・。
なによりも恥ずかしがらないことが大切だとは知っているのだけど、恥ずかしいんだよね。すべったらどうしようとか思っちゃうし・・・
いざ出陣。のまえに睡眠。
6時間ぐらいは眠れるかな。
縄跳びは2種類やるのですが、一つ目はほぼ100%の成功率。
二つ目はたまに失敗します。
バッテリーの状態に結構左右されます。
バッテリーがだいぶ使いふるしているからな・・・
予選では、自分の喋りが一番関門。
緊張せずに流暢にしゃべらなければ、ロボットの動きにあわせれないぐらいしゃべることが多い・・・。
なによりも恥ずかしがらないことが大切だとは知っているのだけど、恥ずかしいんだよね。すべったらどうしようとか思っちゃうし・・・
いざ出陣。のまえに睡眠。
大体準備完了
昨日は大会三日前だというのに、ロボットにはいっさい触らずに、10時間以上睡眠をとりました。
今日は、皆さんの縄跳びの動画にびびって、コーネリアスの縄跳びをもっと高速で回せないかを試していました。
結局、手を回すところでバランスを崩してしまうため、当初の低速回転に戻すことにしました。今日は進捗なし。
いよいよです。
後楽園ホールなので、ロープを越えての入場モーションを作ろうと思っていたのですが、ロープを作るのが面倒になりやめちゃいました。基本的にめんどくさがりなんだよな。
DSRのギアを4つ購入しましたが、グリスがないことに気がつきました。
予選前にひざだけでもギア交換したほうがよいかな・・・めんどいな・・・
今日は、皆さんの縄跳びの動画にびびって、コーネリアスの縄跳びをもっと高速で回せないかを試していました。
結局、手を回すところでバランスを崩してしまうため、当初の低速回転に戻すことにしました。今日は進捗なし。
いよいよです。
後楽園ホールなので、ロープを越えての入場モーションを作ろうと思っていたのですが、ロープを作るのが面倒になりやめちゃいました。基本的にめんどくさがりなんだよな。
DSRのギアを4つ購入しましたが、グリスがないことに気がつきました。
予選前にひざだけでもギア交換したほうがよいかな・・・めんどいな・・・
一般チケットでも選手控え室に入れる
今日のROBO-ONE委員会からのメールに、一般チケットでも選手控え室に入れるようになったと書いてありました。
思っていたよりも参加者が集まらなかったということですよね。
いったい何人が参加してもよいように計画しているんだろう?
プチ閉所恐怖症な私は、控え室に余裕があるのはうれしいです。
そういえば、今回のWithファミリー特典って何になったのだろう?
J-Classみたいに予選得点アップだと、Withファミリーじゃない私にはきついな・・・
キーホルダープレゼントとかにしてくれないかな。笑
みんなのやすさんへ
チケットどうしますか?もう不要ですか?
思っていたよりも参加者が集まらなかったということですよね。
いったい何人が参加してもよいように計画しているんだろう?
プチ閉所恐怖症な私は、控え室に余裕があるのはうれしいです。
そういえば、今回のWithファミリー特典って何になったのだろう?
J-Classみたいに予選得点アップだと、Withファミリーじゃない私にはきついな・・・
キーホルダープレゼントとかにしてくれないかな。笑
みんなのやすさんへ
チケットどうしますか?もう不要ですか?

