Comments
Transcript
ロボカップヒューマノイド用自律サッカーロボットシステム 「CIT Brains and
ロボカップヒューマノイド用自律サッカーロボットシステム 「CIT Brains and Hajime Robot」の開発 Development of Autonomous Soccer Robot System “CIT Brains and Hajime Robot” for RoboCup Humanoid ○正 林原靖男(千葉工大),南方英明(千葉工大) ,坂本元(関西学院大学) ,入江清(ACCESS), 神永拓(東京大学) ,藤田昌平(ブレインズ) ,福田昌宏(ブレインズ) ,堀内岳人(ブレインズ) Yasuo Hayashibara, Hideaki Minakata, Chiba Institute of Technology Hajime Sakamoto, Kwansei Gakuin University Kiyoshi Irie, ACCESS Hiroshi Kaminaga, The University of Tokyo Shohei Fujita, Fukuta Masahiro, Takehito Horiuchi, Brains Corporation In this paper, we introduce autonomous humanoid robot system “CIT Brains and Hajime Robot” for RoboCup Humanoid League. To play soccer game autonomously, humanoid robot should have many functions such as recognizing situation, selecting behavior and controlling motion. We develop robot mechanism, controller for walking, image processing, algorithm of selecting behavior, communication, and so on. We implement such wide area technologies to our system. We describe our system and show findings though development. Key Words: Autonomous Robot, RoboCup, Humanoid 1.はじめに ロボカップ[1]ヒューマノイドリーグを対象とした自律サ ッカーロボットシステム「CIT Brains and Hajime Robot」を開 発したため,それに関して述べる.ヒューマノイドリーグは, 自律的に動作するヒューマノイドロボットを使用して,2対 2のサッカーの試合を行う.サッカーを行うためには,カメ ラなどの限られたセンサデータを入力として,ルールを踏ま えた臨機応変な動作を生成することが要求される.さらに, 20分間人の補助無しで自律的に動作することが要求され, 安定したシステムであることも重要となる. 本チームでは,大学,企業がお互いの得意分野を生かしな がら,自律的に動作する複雑なロボットシステムを構築して きた.開発の要素としては,全体のシステム設計から始まり, 機構設計,制御回路設計,歩行制御,画像処理,行動決定, 通信など多岐にわたる.個別の問題を解決することに加えて, それを統合して安定に動作させる技術も必要となり,限られ た時間の中でそれらを効率よく開発していくことが重要と なる.本稿では,本ロボットシステムに関して解説すると共 に,これらの要素開発で浮かび上がった課題とその解決方法, また統合に関して得られた知見などをまとめる. Fig.1 Photograph of Developed Robot System in Soccer 2.システムの概要 図2にロボットシステムの構成を示す.ロボットがサッカ ーを行うためには,カメラで取得した画像に基づいた行動を 生成し,リアルタイム性をもって行動する必要がある.これ らのタスクは,以下に大別できる. ・ 画像処理:フィールド上の物体には識別子となる色が付 けられており,それにより位置を認識する.物理量は大 きいが求められるリアルタイム性は比較的低い. ・ 行動選択:認識された物体の位置と状況から動作を選択 する.処理量は小さいが,安定した動作を続けるために は,低いレイテンシで動作することが求められる. ・ 動作実行:選択した行動を関節角パターンに展開し,実 行する.処理量は小さいが,リアルタイム性が求められ る. このような特性を満たすために,処理系は画像処理などを 行うメイン CPU と,歩行制御を行うサブ CPU を搭載してい る.さらに,画像処理プログラムと行動選択プログラムを, 同じ CPU の別スレッドとして実装することにより,リアル タイム性と処理能力を両立している. ロボットの頭部にはカメラがあり,取得された画像は, 30fps で画像処理用 CPU に取り込まれる.画像データは,処 理を高速化するため,160x120 もしくは 320x240 にダウンサ ンプルして用いる.画像処理により,色抽出などを行い,ボ ールやゴールなど,あらかじめ定義された物体をカメラ座標 上の位置情報に変換する.これにロボットの基準点からの姿 勢変換を施すことで,カメラの姿勢に不変な,ロボット座標 系に対する位置を求める.同時に,フィールド上の物体が床 面上にあることを仮定することにより,単眼カメラの画像か ら奥行き情報を推定する.得られる位置データは,相対的な ロボット座標系の値となるが,ゴールやポールという既知で, 固定されたランドマークの位置から,フィールドにおける位 置も推定している. 状況に応じて行動を選択する機能は,物体の位置情報など を基に,ルールベースで記述されたプログラムにより行動を 選択する.選択できる行動は,全方向への歩行と,あらかじ め関節角度パターンとして登録したモーションの再生など である. 選択した行動の実行は,メイン CPU がサブ CPU にコマン ドを送ることで行う.サブ CPU は,画像処理 CPU からのコ マンドを処理すると同時に,モータやセンサの出力を監視し, 必要に応じてメイン CPU に報告を行う. Camera Main CPU CPU for Walking Servo Motor DX117 必要である.同時に,ロボカップヒューマノイドリーグでは, ロボットの身長や足裏の大きさから求められる重心の高さ が決まっており,機構部品だけでなくコントローラやバッテ リ,無線通信機器などの補器類も含めた重心位置の最適化が 必要である.また,そのような補器類を搭載した状態で,俊 敏な動作が求められる. サッカーの試合では,キーパはボールをセーブするために 激しく倒れ込むことが要求される.そのため,腕や背中,臀 部などにウレタンを取り付け,衝撃を吸収している.また, 手は衝撃吸収と起き上がり時の滑り止めのためのシリコン ゴムを用いた.また,倒れるときの動きを調整して,臀部, 背中,手先と着地させることで強度の低い部分への衝撃を低 減させている.既に千回を超える倒れ込みを行っているロボ ットもあるが,ギアの歯が欠損するなどの問題以外は発生し ていない. センサは腰の左右に3軸の加速度センサ1つと1軸のジ ャイロセンサ3つを直交させるように取り付けている.胸の 内部には歩行制御を行うサブ CPU 回路(Renesas SH-2)がある. 画像処理,行動決定を行うメイン CPU 回路(MPC5200)は背中 に納められている. Acceleration Sensor Gyro Sensor Servo Motor RX64 Batteries’ Holder Fig.2 Structure of the Humanoid Robot 3.メカニズム 図3にロボットのメカニズムを示す.なお,このメカニズ ムは,主にはじめ研究所の開発である[2].図の黄色い点は重 心を示す.このメカニズムに対して,足裏に薄いスポンジを 付けたり,転倒時の衝撃を緩和するように外装を取り付けた りすることで,よりサッカーが行いやすいように改良した. モータは ROBOTIS 社の DX117 と RX64 を合計 21 個使用し ている.膝関節と腰関節は特にトルクがかかるため,出力の 大きい RX64 を使用している.カメラにはパンチルト用に2 つのモータが使用されている.これらのモータは,通信を RS485 により行うため,配線をデイジーチェーン接続できる. ヒューマノイドのような多関節ロボットは,保守性や重量, 可動域の点からも省配線であることが重要である. 本システムでは,さらにケーブル数を減らすために,特殊 な4芯ケーブル(日星電気製)を開発した.モータ間をつな ぐケーブルは,一般的に電源2本,信号2本,計4本必要と なる.最大電流を基準として4本をまとめると太くなるため, 電流量に応じて線径を変えた多芯ケーブルを設計した.シー スには滑り性の高いウレタンを使用して,ケーブルが絡まな いようにしている. 機構は基本的にアルミ A5052 を使用して,板金加工により 製作している.サッカーロボットは,起き上がりや倒れ込み, 完全開脚など多彩な動きが求められるため,大きな可動域が Fig.3 Mechanism of Humanoid Robot 4.制御回路 図4に本ロボットシステムの機能ブロック図を示す.CPU は,画像処理,行動決定を行うメイン CPU 回路と歩行制御 を行うサブ CPU 回路に大別できる.厳密には,各モータも CPU を内蔵しているため,本システムは合計 23 個の CPU を 使用していることになる. メイン CPU 回路はブレインズ社製 mmeye であり,画像信 号(NTSC)のキャプチャ機能,TCP/IP やシリアルによる通信 機能,さらに USB や I/O などの多種なインターフェイスを 備える.OS は UNIX 互換の NetBSD を搭載されて,名刺サ イズでありながら,高性能な CPU が搭載されているため, 行動選択プロセスを動作させながらも 30fps の画像処理を行 うことができる.セルフコンパイル環境も備えており,X ク ライアントも動作する.このような構成のため,一般的な UNIX システムと同じ環境で自律ロボットのソフトウェア開 発を行うことができる,ちなみに,ロボットの制御には,シ リアル通信を介してコマンドを送信するだけであるため,特 に特殊なインターフェイスは追加していない.開始停止の信 号や,パラメータの調整,プログラムの変更などは,IP 通信 を用いて行う. サブ CPU 回路ははじめ研究所製 HC3 であり,Renesas SH2/7145F を使用している.メイン CPU から送信されたコ マンドを解釈して,モータの動作パターンを生成する.また, CPU には,ジャイロセンサと加速度センサも接続されており, 歩行を安定化したり,転倒時に自動的に起き上がりモーショ ンを再生したりする.生成された角度目標値は,RS485 を介 して各モータに伝えられる.メイン CPU,サブ CPU,モー タ内の CPU は後者になるにつれ,より単純な処理を短い周 期で行う階層的な構成となっている. 歩行制御は一歩ごとにオンライン生成されており,脚切り 替え時に運脚の方向や歩幅,歩行周期を変更できる.また, 急激な加減速は転倒につながるおそれがあるため,歩幅を徐 変する処理を行っている. Circuit for main process (ex. image recognition, strategy,…) 100Base-TX RS232C Console ETHER-PHY Transceiver Video Buffer Memory CPU Freescale MPC5200 550MHz (Max) OS: NetBSD Image Data NTSC Camera with super-wideangle lens FPGA LED Switch etc Other Inerfaces Compact Flash USB, Sound In/Out etc... RS232C Transceiver Status Data Circuit for walking Control Command 心位置,サイズなどのデータに変換され,それを手がかりに フィールド上のどの物体かを判別するプロセスに送られる. 領域のサイズや重心位置,配置などをしきい値として,ボー ル,ゴール.ポール,味方,敵ロボットに判別する.ライン も一部検出する.ポールはゴールと同じ黄色と青が使用され ているが,300(mm)毎に交互に色が配置されているため,色 の位置関係で認識している.カメラは水平約90(deg)の視野 角を持っているため,同時に複数のランドマークを検出する ことが可能となっている.得られた画像データはカメラを基 準とする座標系であるため,ロボットを基準とする座標系に 変換することが必要となる.これには,まず接地している足 先から運動学を用いてカメラ位置・姿勢を求める.次に,変 換行列を作成して,ロボット座標における位置に変換する. この変換には,物体が地面に接地しているという条件を用い ている.そのため,ループシュートなどの接地していないボ ールは本システムで正確に位置を検出することが難しい. 以上が物体の位置検出の手順であるが,より効率的な動作 を行うためには,フィールド上の自己位置が検出できること が望ましい.本システムでは,そのためにモンテカルロ法に よるパーティクルフィルタを使用した自己位置推定を行っ ている.ランドマークをどの程度精度高く認識できるかに依 存するが,最大 500(mm)程度の誤差で自己位置を推定してい る.ロボットは,歩行時には前後に揺れることが多いため, 地面との交点で位置を求める本手法では,距離データはそれ ほど精度高く求めることはできない.そのため,自己位置推 定時に,角度データを距離データに比べて高く評価すること で,精度を高めている.ボールを見失ったときや,サイドラ インからの再入場のときには,積極的に自己位置を推定して, 所定の位置まで移動するようにしている. RS232C 115200bps Servo motors * 21 SRAM 8MBit 256k x Longword (32Bit) RS232C Transceiver SCI1 CPU Renesas SH2/7145F 50MHz A/D Converter EEPROM AT24C1024 1MBit 3ch Acceleration Sensor Crossbow RS485 DX117 or RX64 motor 500kbps DX117 or DX117 or RX64 RX64 POtentiometer SCI0 3ch Gyro sensor Silicon sensing system Fig.4 Overview of the Control System 5.画像処理,位置計測,自己位置推定 本ロボットシステムは,主に画像データから,周囲の状況 認識を行っている.まずは,ロボット頭部に搭載したカメラ から画像データを取得する.そのデータに基づいて,ゴール などの固定されたランドマーク,ボール,味方・敵のロボッ トの位置などを検出する.各対象物は,個別の色やパターン を持っており,それを手がかりに位置を計測している.具体 的には,図5に示すような画像を1ドットごとに,色のしき い値でオレンジ,黄,青,白,黒,シアン,マジェンタにカ テゴリ分けする.キャプチャされたデータは YUV 表色系で あるため,YUV の3つの値でカテゴリ分けしている.この しきい値は,フィールドの照明条件などで変化するため,現 在はカメラから得られる画像データを見ながら手動で設定 している.このようにカテゴリ分けされた画像データに対し て,隣接する同じカテゴリの点をつなぐことで,領域を抽出 するラベリングを行う.この過程の中には,ノイズを除去す るフィルタ処理なども含まれる.領域は,色のカテゴリ,重 Fig.5 Result of Detecting Color 6.行動決定 これらのデータに基づいてロボットに送るコマンドを選 択する.位置データ以外には,実行しているコマンド,各サ ーボの角度といったロボットのステータスデータ.さらに試 合開始からの時間,攻める方向,自機の色などの試合に関す る基本データを行動決定プロセスの入力としている.行動決 定には,このように各種の入力データが必要になるが,メイ ン CPU 上でのプログラムは,以下の3つのスレッドに分け て実行している. 1)画像処理,入出力インターフェイス 2)ステータスデータ受信 3)行動決定,コマンド送信 行動決定の処理の負荷に依存するが,通常は画像処理が一 番計算量の多い処理となる.30fps で画像がフレームメモリ に転送されるため,1秒間に 30 回行動を選択し,必要に応 じて歩行制御回路にコマンドを送信する.ただし,画像処理 に必要な時間は画像データに依存する.さらに必要に応じて 画素数を標準的な 160x120 から,320x240 に切り替えるため, 制御周期は必ずしも 1/30sec ではない. 行動決定のプログラムは,フィールド上の試行錯誤が重要 になるため,他のプログラムとは別に開発している.大学1, 2年生を含む戦略開発チームがアイディアの提案,プログラ ムの実装,効果の検証などを繰り返しながら,より効果的で 安定したアルゴリズムに変更している.ボールの検出,アプ ローチ,シュートを行うための位置調整など,個別のプロセ ス毎に開発を行い,それを最後に統合することで,サッカー という複雑なルールを守り,効率的な行動を選択するアルゴ リズムを開発している.また,相手の挙動に合わせて,効果 的な行動選択が異なるため,複数の行動選択プログラムを用 意して,場合に合わせて使い分けるようにしている. なお,試行錯誤を行うためには,オフラインシミュレータ があることが望ましい.これに関しては,現在開発中である. また,行動決定プログラムをより簡便に記述できるように, スクリプト言語である python によるインターフェイスを実 装した.コマンドを1つ1つ入力してアルゴリズムを検証で きるため,より試行錯誤が行いやすい環境が整いつつある. 7.ユーザーインターフェイス サッカーロボットのように,変化する環境の中で臨機応変 な作業を要求されるシステムを調整するためには,ユーザー インターフェイスの設計が重要となる.本システムでは,図 6に示すインターフェイスを用いて,パラメータの調整や問 題点の抽出などを行っている.Windows 上のアプリケーショ ンであるが,ロボットのメイン CPU と,TCP/IP 及び UDP/IP で通信を行い,ロボットを調整する.データのログも保存で きるため,どのような問題が発生したかを,後で検証するこ とができる.インターフェイスの主な機能は,以下の通りで ある. 1)カメラの画像表示,しきい値の調整 2)コマンドの送信(マウス,ジョイスティック利用可) 3)行動決定プログラムの選択 4)物体を計測・推定した位置の表示 5)行動決定プログラムの入出力の監視,メッセージの表示 以上の機能を利用して,実行した行動決定プログラムの評 価・改善を繰り返す.また,ヒューマノイドを安定して動作 させるためには,バッテリや温度の監視も重要となるが,本 インターフェイスでは,常にこれらのデータを表示しつつ, 問題が発生した場合は,赤色のアラート表示で注意を促すよ うにしている. 8.開発と結果 開発に関しては,企業が基本的なシステムを開発し,大学 が不足部分の開発,フィールド上での調整を行うという分担 で行った.参加した企業は,ヒューマノイドロボット,制御 回路,画像処理などの開発に実績があるため,基本的な動作 が行えるロボットは,大会6ヶ月前には完成していた.この 時点で,カメラ座標でボールを検出して,近づいてシュート することができていた.ただし,サッカーフィールドに適し た機構や歩行,ロボット座標系での物体の位置計測,戦略プ ログラムの開発環境,ユーザーインターフェイスなどは,実 装されていなかった. これらの開発は実際のフィールドで動かしながら,開発・ 調整することが必要であったため,フィールドを設置した千 葉工業大学内で行った.また,自己位置推定やマルチスレッ ド化などのシステムの再構築は,途中から参加した ACCESS が担当した. Fig.6 User Interface to Maintenance the Robot 行動決定プログラムに関しては,問題点さえ明らかにすれ ば,比較的プログラム経験の浅い学生でも作成することが可 能ではという期待から,多くの部分を学部2年生に担当させ た.結果的に,教員や社会人のサポートは受けたものの,大 半のプログラムは学生自身が書き上げた.また,歩行やモー ションを担当した学生が,前例のないほど高く蹴り上げるル ープシュートをさせるなど,予想以上の結果が得られた.な お,これらの試行錯誤を助ける裏方として,メカニズムのメ ンテナンスがある.2 足歩行を行うヒューマノイドは,ネジ がゆるむなどのちょっとした状態の変化で挙動が安定しな くなる.行動決定プログラムを開発中にこれが発生すると, 再現性のないシステムで検証することになり,効率的に開発 できなくなる. 結果的に,6 ヶ月間でシステムを十分に安定化させること ができなかったが,一つの指標であるロボカップにおいてジ ャパンオープン 2on2 準優勝,世界大会テクニカルチャレン ジ 2 位という結果を得ることができた. 9 まとめ 本稿では,ロボカップヒューマノイドリーグを対象とした 自律サッカーロボットシステム「CIT Brains and Hajime Robot」に関して述べた.システムに関して解説すると共に, 要素開発における課題,統合に関して得られた知見などをま とめた.最後に本システムを構築するにあたり,ご協力いた だいた学生の清家洋平,井上尚信,一澤勝弘,小椋慎祐君に 感謝いたします. 参考文献 [1]松原仁,浅田稔,北野宏明:“ロボカップの歴史と 2002 年 へ の 展 望 ”, 日 本 ロ ボ ッ ト 学 会 誌 , vol.20, No,.1, pp.2~6(2002). [2] 坂本元,中津良平:”小型ヒューマノイドロボット「は じめロボット 18 号機」の歩行制御”, 日本ロボット学会学 術講演会予稿集(CD-ROM),(2007).