計測自動制御学会東北支部 第 271 回研究集会 (2012.3.9) 資料番号 271-3 RT ミドルウェアと Kinect を用いた 人間共存型ロボットシステムの開発 Development of Human-friendly Robot System Using RT-Middleware and Kinect ○秋葉直樹 ∗ ,千葉大希 ∗ ,山野光裕 ∗ ,竹田真也 ∗ ,大久保重範 ∗ ○ Naoki Akiba∗ , Daiki Chiba∗ , Mitsuhiro Yamano∗ , Shinya Takeda∗ , Shigenori Okubo∗ *山形大学 *Yamagata University キーワード : ロボット制御システム (Robot Control System),RT ミドルウェア (RT-middleware),モー ションキャプチャ (Motion Capture),人型ロボット (Humanoid Robot) 連絡先 : 〒 992-8510 山形県米沢市城南 4 丁目 3-16 山形大学 工学部 機械システム工学科 山野研究室 秋葉直樹,Tel.: (023)826-3238,E-mail: [email protected] 1. 序論 がないなど手軽にモーションキャプチャを行え るセンサとして様々な場所で使われている. 近年、人間と共存できるようなロボットの制 御に関する研究が盛んに行われている 1) .人間 とロボットが同じ環境で作業することを想定し ているため、ロボットが周囲の空間を認識する ことが重要である.特に人間と協調するような 場合では人間の動きを認識しなければいけない. また,人間の動きを認識するセンサにおいてこ れまでは OptiTrack2) などがあったが,高価で あることや,人間にマーカーを取り付けなけれ 本研究では産業技術総合研究所によって開発 された RT ミドルウェア 4) を導入する.RT ミ ドルウェアを利用することで,プログラムの再 利用性が高まり開発効率が高まることや,OS, 開発言語に左右されない,複数のプログラムの 管理が容易になるというメリットがある.また, RT ミドルウェアは RT コンポーネントという RT ミドルウェア上で動作するプログラムを作 成することでシステムを構築することができる. ばいけないという欠点があった.しかし,近年 モーションキャプチャの技術が身近なものとな り,安価で容易に人間の関節距離の情報を取得 出来るようになった.Microsoft 社から発売され たセンサデバイス Kinect3) は人間の関節位置を 本研究では Kinect と RT ミドルウェアを用い て人間の関節位置を取得するプログラムの作成 を行う.また,2 種類のロボットシステムを用い て,人間と協調できるシステムを構成し,Kinect のプログラムの検証を行った. 取得することができ,マーカを取り付ける必要 –1– Fig. 2 Kinect なマーカーなどは必要としない.人間の関節の 位置から Kinect までの距離を計測することがで きる.Kinect を用いてモーションキャプチャを 行い,人間の関節の位置を取得する. Fig. 1 一般的なロボット制御システム. 2. RT ミドルウェアを利用したロ ボット制御システム 一般的なロボット制御システムを Fig. 1 に示 す.Kinect を用いてロボットが周囲の空間を認 識し,その情報をセンサ用の PC に送る.その 情報を制御用 PC に送り,ロボットの制御に応 用する.Fig. 1 のロボット制御システムは左側 の「ロボット制御部」と右側の「計測部」に分 けることができる.その際に重要になるのはセ ンサ用 PC と制御用 PC の接続であり,TCP/IP でソケット通信プログラムを新たに作り,プロ グラムに組み込んで接続するなどという方法が 取られる.RT ミドルウェアを利用した場合は, CORBA を用いてネットワーク分散システムの 構築を行うことができる.また,接続は RT コ ンポーネント (RTC) 同士の接続になり,RTC 同士の接続はマウスによる GUI 操作で行うこと 3.2 Kinect Skeleton RTC Kinect を用いてモーションキャプチャを行い, 人間の関節位置を取得する”Kinect Skeleton RTC” を制作した.Kinect はソフトウェアとして OpenNI, ミドルウェアとして NITE を使用している. Kinect によって取得した画像を Fig. 3 に示す.制作した 「Kinect Skeleton RTC」は Kinect から得られ る画像を表示し,人間に対してモーションキャプ チャを行う.加えて,キャプチャを行った人間の 骨格を描画し,RTC のデータポートからは関節 の距離 (x,y,z) が出力される.Kinect Skeleton RTC の処理を Fig. 4 に示す.Kinect Skeleton RTC は OpenNI を利用して Kinect の画像デー タ,距離データを扱う.関節位置については NITE を利用しトラッキングを行う.OpenNI を用い て取得した画像データを OpenCV を用いて画面 出力を行う.加えて,取得した関節位置をつな ぎ合わせて骨格の描画も行っている.また,関 ができる. 節位置をデータポートから出力している. Kinect を利用する RTC については名古屋大 3. 距離画像センサ 3.1 Kinect 学大学院工学研究科 市川氏の「RT Kinect User Tracking 7) 」がある.RT Kinect UserTracking も今回作成した Kinect Skeleton RTC も骨格の センサデバイスとして Kinect を使用する.Kin ect を Fig. 2 に示す.Kinect は RGB カメラ,IR カメラ,マイクロフォンなどからなる距離画像 センサである.モーションキャプチャ技術を使 描画を行い,関節位置をデータポートから出力す る.しかし,Kinect Skeleton RTC では骨格の描 画を OpenCV で,RT Kinect UserTracking で は OpenGL で行っているという違いがある. 用しているが,一般的なものとは異なり,特殊 –2– Fig. 5 計測システム. Fig. 3 Kinect による画像. では LinuxPC と Kinect 用 PC は接続はされて おらず,ロボットの制御と Kinect による計測は 独立したシステムで動いている. Fig. 5 で Kinect Skeleton RTC から出力され たデータは,Coordinate Transformation RTC を用いて座標変換される.これは Kinect で得 られた位置データは,Kinect 座標系での位置で あるため座標変換を用いてロボット座標系に置 き換えなければいけないためである.座標変換 の図を Fig. 6 に示す.ロボットの座標から見た 人間の関節の位置 x,y,z と 1 からなる 4 × 1 の 行列を b r ,Kinect の座標から見た目標物の位置 x,y,z と 1 からなる 4 × 1 の行列を a r と置く.ロ Fig. 4 Kinect Skeleton RTC. 4. 4.1 ボット座標系から Kinect 座標系の相対位置,姿 Kinect Skeleton RTC 単体で のアプリケーション 勢から同時変換行列 b T a を求めることによって 式 1 よりロボット座標系から人間の関節位置を 取得することができる. システムの構成 b r =b T a a r (1) 人間とロボットのペットボトルの受け渡し動 作を Kinect を用いて測定する.計測システムを Fig. 5 に示す.ロボットは川田工業株式会社製 4.2 実験 の上体ヒューマノイドロボット HIRO を使用す る 5) .HIRO は全 23 自由度を持つロボットで 標変換によってロボット座標系に変換をする実 あり,RT ミドルウェアに対応している.HIRO 験を行った.実験の様子を Fig. 7 に示す.また, はリアルタイム OS である QNX を通して,制 ロボットと人間の手先位置のグラフを Fig. 8 に 御用の LinuxPC に接続されている.制御用の 示す.これはペットボトルの受け渡しを行った LinuxOS には Ubuntu 10.04 を用いる.現段階 際のロボットと人間の手先の位置である.ロボッ Kinect を用いて人間の関節位置を取得し,座 –3– Fig. 7 実験 1. Fig. 6 座標変換.coordinate transformationm. トの手先が点 a から点 b に荷物を持って移動す るのと同時に,人間の手先が点 c から点 d に移動 して荷物を取りに行き,ロボットから人間へと 物を渡す.渡し終えると,それぞれの手先が元 の位置に戻るという動作を測定した.座標はロ ボットの座標系に合わせ,ロボットは手先を位置 制御している.また,人間の手先は構築したシス Fig. 8 ロボットと人間の手先位置. テムで座標変換をした.結果として,b 点と d 点 の差は,X 軸は 35 mm,Y 軸は 45 mm,Z 軸は 5. 220 mm の差があった.Z 軸方向はペットボトル リケーション の高さが 210 mm であり,ロボットの手先の座 標中心や人間がペットボトルを触る位置などを ロボットの制御に応用したアプ 5.1 システムの構成 考慮すると約 18 mm の誤差があった.これは座 その一例として,人間が取ろうとしたカルタを 標変換の際の誤差や,受け取るときにロボットの ロボットが触るというものをあげる.このアプリ 手先の真下に人間が正確に手先を置くわけでは ケーションを行うシステムを Fig. 9 に示す.ロボ ないということがあげられる.Kinect Skeleton ットには本研究室の Bonten-MaruII を使用する. RTC によって人間の手先のデータを取得できた が,この実験のように正確に手先などの位置を取 Bonten-MaruII は鈴川らが開発した dsPIC マイ コンボード 6) によって制御されている.Kinect 得したいような場合では Kinect Skeleton RTC を用いてモーションキャプチャを行い,その情 は不向きであるということが考えられる. 報を制御 PC に送る.制御 PC として Linux の Ubuntu 10.04 用いている. –4– 5.3 動作計測プログラム 制御 PC のシステムは主に3つの RT コンポー ネント (RTC) からなる.Kinect を用いてモー ションキャプチャを行い人間の関節位置を取得 する「Kinect Skeleton RTC」,関節位置から どのカルタを取るのかを判断する「Determina- tion of the karuta RTC」,ロボットのモータ を制御する dsPIC マイコンとシリアル通信を する「Serial communication RTC」からなる. Kinect Skeleton RTC が人間の手先の位置を取 得し,その情報から Determination of the karuta RTC を用いて関節位置からどのカルタを触るの か判断する.判断の仕方は,Kinect からのカル タの位置をあらかじめ決めておき,カルタから一 Fig. 9 Bonten-MaruII の制御システム. 定距離離れた位置に判定の空間を設け,その空間 に手先の位置が来た際に1番距離が近いカルタ 5.2 Bonten-MaruII を選択するというものである.Kinect Skeleton Bonten-MaruII を Fig. 10 に示す.制御システ RTC は周期 10 ms で周期的に手先の位置を出力 ムは PC,複数のマイコン基盤とモータドライ しているが,Determination of the karuta RTC バ基盤,また,中継基盤によって構成されてい は手先がどのカルタを取るか判断した時だけ1 る.1 枚のマイコン基盤と 1 枚のモータドライ 回送信される.Serial communication RTC は, バ基盤をスタックし,DC モータを 2 個制御す 入力されたカルタの番号からそれぞれのカルタ ることができる.Bonten-Maru の方向に手先を動かすようマイコンへシリアル は 21 自由度 を持つため,11 組のマイコン基盤とモータドラ 通信を行う. イバ基盤を使用している. 6. 実験 ロボットと構築したシステムを用いて人間と ロボットの間に 3 枚のカルタを用意し,人間が 取ろうとしたカルタをロボットが取るという実 験を行った.その様子を Fig. 11 に示す.結果と して,人間がカルタを取ろうと手を伸ばしたと きの手先位置から 3 枚のカルタの内でどのカル タを取るのか判断し,人間が取るカルタの位置 にロボットの手先を動かすことができた. Fig. 10 Bonten-MaruII –5– Fig. 11 実験 2. 7. 結言 Kinect を用いて手軽に人間の関節位置を取得 できるような計測システムを構成した.RT ミド ルウェアを用いて再利用性の高い RT コンポー ネントの制作することができた.加えて,2 種 類のロボットシステムを用いて Kinect Skeleton RTC やシステムの動作を確認することができた. 参考文献 1) 川田工業株式会社 NEXTAGE http://nextage.kawada.jp/ 2) OptiTrack http://www.mocap.jp/optitrack/ 3) xbox kinect http://www.xbox.com/ja-JP/kinect 4) OpenRTM-aist ホームページ http://www.openrtm.org/openrtm/ja 5) 川田工業株式会社 研究用 HIRO http://www.kawada.co.jp/mechs/hiro/index.html 6) 鈴川裕一,山野光裕,dsPIC マイコンと RT ミ ドルウェアを用いたロボット制御システムの開 発,第 28 回日本ロボット学会学術講演会予稿 集,CD-ROM,RSJ2010AC1P2-5,(2010) 7) RT Kinect UserTracking http://www.openrtm.org/openrtm/ja/node/1675 –6–
© Copyright 2024 ExpyDoc