自律二足歩行に向けた知識のまとめ
プリメイドAIを改造し、自律二足歩行を実現するまでに学んだ知識についての、目次ページです。
AIさんの紹介
市販のプリメイドAIをベースに、周囲を認識しながら、自律して二足歩行するロボット「AIさん」に成長させてみました。
3次元線形倒立振子モードをベースとした二足歩行の実現や、ToFセンサ・カメラ画像を使った周囲を認識する技術について、学んだ知識を解説していければと思っています。
また、二足歩行ロボット初心者の私が、理解につまずいた基礎的な知識についても、一緒にまとめてみようと思います。
※筆者のポリシーから、コピペできるソースコードは一切掲載しておりません。代わりに、なるべく分かりやすく動作原理を解説できれば、と思っています。
※専門ではないので、間違った内容が記載される可能性、および修正される可能性があることをご理解ください。
最新の成果
自律二足歩行
第6回 ROBO-ONE autoで予選を突破し、技術賞を頂きました!
(競技内容は「自律動作にて、特定のパネルを認識し、2分以内に倒す」というもの)
⇒ 詳細記事はこちら
無線コントローラによる二足歩行・動作
(todo: 現状動作の動画をアップ。とりあえずツイッターから転載しときます)
ROBO-ONE autoに向けて足裏を小さくした分、少し不安定になってしまってたんですが、パラメータを調整したら大分安定してくれました。よかった…。
並行して、障害物回避や検知したKHRを倒しに行くオートシーケンスを構築中ですが、あと土日一回で、果たして間に合うのか…?🤔🤔🤔 pic.twitter.com/i3awInjGrT— わたこ (@WatakoLab) January 30, 2020
遅ればせながら、明けましておめでとうございます!
新年一発目として、AIさんの定位置における腰移動&腕操作を実装しました。ボール移動に挑戦してみましたが、結構難しい…。
ゆくゆくは、自律制御に発展させてみたい案件です。
では、今年もどうぞ、よろしくお願いいたします!#プリメイドAIハック pic.twitter.com/1xQmk083Ok— わたこ (@WatakoLab) January 2, 2020
デバイス構成
育成のベースとなる「プリメイドAI」と、育成後の「AIさん」について、それぞれデバイス構成を記載します。
プリメイドAI
ベースとなるプリメイドAIのデバイス構成を知るため、分解して観察してみました。
⇒ 詳細記事はこちら
成長した「AIさん」
ROBO-ONE autoに向けて追加・変更を加えた部分について、解説しています。
⇒ 詳細記事はこちら
基礎知識
歩行制御にあたり、理解につまずいたものや、考え方を深めておくと有用な知識をまとめています。
3次元の順運動学演算を頭に描く
順運動学について、単純な条件下(2次元平面の2自由度アームなど)はイメージできるけど、3次元における回転行列や位置ベクトルが混ざってくると、演算順序や幾何学的なイメージが難しい…。これをなるべく直感的に捉えられるよう、解説してみようと思います。
⇒ (現在作成中…)
足の逆運動学(IK)を幾何的に解く
AIさんの足構成において、足裏位置の逆運動学(IK)を幾何的に解くことができたので、その方法について解説します。
⇒ 詳細記事はこちら
ジャイロセンサを使った安定化
(記載予定…。とりあえずTwitterより効果のイメージ)
AIさん、ジャイロによるロール・ピッチ補正の効果について、今回は実際に使うモーションで比較してみました。
補正OFFだと揺れの振幅がだんだん大きくなってしまうのに対して、ONだと安定している事が分かります。
ジャイロ効果抜群、こりゃ凄いなぁ…。#プリメイドAIハックhttps://t.co/Ln3y4GPSU1 pic.twitter.com/4XuDUMpBJI— わたこ (@WatakoLab) January 12, 2020
二足歩行系の知識
二足歩行の歩容生成アルゴリズムについては、梶田先生の名著「ヒューマノイドロボット」に登場する、3次元線形倒立振子の考え方をベースに作成しています。
このため、その知識を前提とした二足歩行関連の内容についてまとめています。
両足支持期間の補完関数の導出
梶田先生本ではさらっと触れるに留まっていた部分について、補間関数を導出してみました。
⇒ 詳細記事はこちら
遊脚期・手の振りについて
遊脚期の足の動きや手の振りなど、梶田先生本では特に記載のない部分について、それっぽく見えそうな補間方法について記載します。力学的な根拠のある動きではありません…。
(記載予定…。とりあえずTwitterより、重心の軌跡イメージ)
先日作った「つま先・かかとIK」を線形倒立振子モードに組み入れて、歩行生成してみました。
Z方向にも少し重心を動かしたこともあり、以前より歩幅が広めにとれるようになりました。
膝は曲げてるけど、少しは人間らしい動きになったかな…。https://t.co/bH4tZcWI9X pic.twitter.com/ezqexaIciT— わたこ (@WatakoLab) December 18, 2019
認識系の知識
認識系というととても広い範囲になってしまうので、ここではROBO-ONE auto予選に向けて取り組んだ内容を中心に解説します。
ToFセンサを使った物体検知
(記載予定…。とりあえずTwitterより動作イメージ)
AIさん、ToFセンサで物体検知をば。マイコン内部では極座標形式でデータを保持しており、それをPCに送ってリアルタイムに可視化しています。行きと帰りで、頭のピッチ角を変えて、より広い範囲をサーチしているのがミソです。
次は、これらを避けながら進むシーケンスを組まなくては…。間に合え~! pic.twitter.com/BGI2NNL8aW— わたこ (@WatakoLab) January 31, 2020
カメラ画像を使った物体検知
(記載予定…。とりあえずTwitterより動作イメージ)
ROBO-ONE autoに向けたKHRの検出、学習データを400枚程度まで増やしたら、結構精度があがりました。
この他、背景がわちゃわちゃでもちゃんと検出してくれるので、今回のようなパネル固定の画であれば、結構検出精度良くて実用レベルのものができそう、という知見でした。https://t.co/qb3LKzTeRK pic.twitter.com/CdV3LGAUBq— わたこ (@WatakoLab) January 28, 2020
検知情報を用いた歩行戦略
(記載予定…)
今後の予定
・生成した歩行モーションをマイコンに効率よく保持する方法の解説
・かかと/つま先の動きや腰の上下の動きを取り入れたIK・歩容生成の解説