« 2013年11月 | トップページ | 2014年5月 »

2013年12月

2013年12月14日 (土)

ROBO-剣 第一回大会参加

12月7日に行われたROBO-剣の第一回大会に参加しました。

大会直前に一通りの機能が完成したものの、細かい調整が足らず惜しいところで有効打突を取れませんでした。・・・とはいえ遠隔操縦のため操縦者自身にはよく見えなかったので後日ビデオで確認したいと思います。

今回の大会は自律・操縦の区別なく行われました。私のロボットは自律を前提に設計しており、制作中の自動制御プログラムでそのまま参加しました。狙う部位(小手・面・胴の3種類)とタイミングだけを手動で指令しました。

最終的には相手の姿勢に合わせて最適な打突動作を行うことを目標としていますが、今回はその前段階として対象物の位置を計測してそこにアーム(竹刀)の先端を持っていくという動作までを実現しました。

大会出場時とほぼ同じプログラムによる動作です。

大会終了後、プログラムを改良した結果です。

プログラムは、画像から指定された色の対象物を検出後、対象物の位置を計測し、そこへアームの先端を持っていくようなアームの軌道を計画した上でそれを実行するという流れになっています。アームの軌道を計画する部分が最も重要です。

今回は開発時間の都合上簡略化した軌道計画方法として、竹刀の先端近くの部分と標的のユークリッド距離をポテンシャル関数とするポテンシャル法を用いました。関節の角度を変数とし、命中した時に最小値を取るような関数を最小化する非線型計画問題に対して最急降下法を適用したときの変数の軌跡を通る、と説明した方がわかりやすい人も多いかもしれません。ポテンシャル関数に障害物との距離に応じてペナルティを加える等すると、ある程度障害物を回避しながらの動きも実現できるというものです。但し上の映像の段階ではまだこの項が導入されていません。

実際にやってみて気づいたことですが、この方法で生成された動きは必要以上につんのめったような姿勢をとる傾向があります。特に1本目の映像の小手打ち(黄色の標的)で顕著に見られます。これは、根元の軸を動かすとアームの先端が大きく動く関係上、その軸の角度に対する偏微分係数が大きくなりやすいためです。目的からは望ましくないのですが、このように計算の特性が実際に動きに反映されるというのはなかなか面白いところかもしれません。2本目の映像では、ポテンシャル関数に若干細工することでこの現象を少しだけ軽減してあります。

今後、障害物を避けながら打突を行うためのアームの軌道計画手法を色々と試していきます。また、標的に触るのではなく標的を叩く動作をどう行うかという問題についても取り組みます。

| | コメント (0) | トラックバック (0)

« 2013年11月 | トップページ | 2014年5月 »