next up previous
Next: 6.1 紐のハンドリング Up: ソフトウェア第三 講義資料 ロボットアームの運動学,立体視計算,ハンドアイシステム Previous: 5.7 閾値選択

6 ハンド・アイ・システムの構成

具体的なハンドアイシステムの例として紐をリングに通して結ぶという行動 例をとりあげる. システムの構成を図18に示す.本システムは,知能ロボッ ト・プログラミングシステムCOSMOSの基本モジュールをハンド・アイ実験用に 再構成したものである.
図 18: ハンドアイシステム
\includegraphics[width=8cm]{/home/inaba/text/iwanami/inaba/chap4/rope_handeyesystem.eps}
アームは第一節で説明したものである.カメラからの画像データはパラレル・ ポートを通してミニコンピュータと接続しているイメージフレームメモリ (IFM)に蓄えられる.視覚の補助装置として,レーザ・ビームの方向を制御す るレーザ・スポット・スキャナがある.中心となる計算機は,データゼネラル 社のEclipse S/140というミニコンでbitスライス型の1ワード16ビットで, メインメモリが512KB,プログラムのアドレス空間は64Kであった.ハードディ スクは75MBであった. ミニ・コンピュータ上のソフトウェアとしては,仮想記憶への対応は無いがマ ルチユーザ・マルチプロセスのオペレーティングシステムAOSが走り,その上 で,Top Level Lispと,Calibration, Vision, Armのサブシステムが互いにプ ロセス間通信を行う形であった.Top Level Lispは,機械語で記述された松井, 小笠原らによる手作りの処理系であり,10Kcell程度のメモリ空間を利用でき るものであった.このLisp上に,他のサブシステムへ命令を発する基本関数を 用意し,ロボットの作業プログラムを記述した.視覚系と行動系の座標系間の 変換行列を較正するためのモジュールがCALIBであり,計測データ及び較正結 果の評価と再利用のための手続きを含む.Vision subsystemは機能により, EYE, WATCH, STEREO, LASERの4つのモジュールに分かれており,Armはジョイ ント角を計算するためにある.Lisp以外のモジュールはコンパイラ型言語 Pascalで記述してあり,一文字の変更コンパイルに10分程度要した.これに対 してインタプリタ型言語のLispでは,対話的に視覚処理結果を確認したり,ロ ボットを動かすことができた. 視覚モジュールEYEは,シーンの大まかな解析を広い領域に対しておおなうた めのもので,64x64の大きさをもつ汎用ウィンドウを通して,空間微分等の画 像演算,細線化,論理演算,エッジ抽出,統計解析等の処理プログラムを有す る.WATCHは局所領域を精密に解析し,効率的な画像認識を実現するためのモ ジュールであり,位置,法王,長さを自由に設定できるスキャン・ラインと矩 形の小ウィンドウを有する.STEREOとLASERが3次元位置を計測するためのモ ジュールである.局所領域の濃淡の相関と,エッジの位置,方向,強さの相関 を用いて対応点を探索する方法,レーザ・ビームを投影しレーザ・スポットの 位置から対応点を得る方法を利用することができる. 各モジュールはミニコン上のマルチ・プロセスOS(AOS)の下でプロセスとして 管理され,プロセス間通信機能(IPC)を用いて交信している.

表 3: Basic commands for the experiment
Arithmetic functions
(!* coordinates ...) (V+ pos ...) (IN-SPACE vector space)
(DIVIDE position1 position2 scale) (LINE-CENTER line)
(CREATE-POS pos distance angle)
Arm command
(MOVE locations) (RELMOVE dx dy dz) (RELVMOVE vector)
(REACH distance) (SWEEP distance) (LIFT distance)
(ROLL angle) (PITCH angle) (YAW angle)
(CLOSE-HAND force) (OPEN-HAND width) (VELOCITY value)
Vision command
(SCAN-LINE pos angle length threshold)
(FIND-EDGES pos width threshold) (STILL)
(STEREO-DIST left-pos right-pos) (STEREO-PROJECT vector)
Calibration command
(SET-CALIBRATUM vector1 vector2) (SET-DATACOUNT number)
(RD-CALIBDATA) (RD-DATACOUNT)
(CALIBRATE rowsize columnsize)
(EYETOARM coordinates | vector) (ARMTOEYE coordinates | vector)
Display command
(DRAWTEXT pos text scale) (SHOWLINE startpos endpos)
For rope handling
(GRASP-ROPE coordinates|vector) (RELEASE-ROPE)
(FIND-ROPE pos width brightness) (VERIFY-ROPE pos)
(TRACK-ROPE-END pos direction length)
(FIND-RING pos width brightness)
(FIND-RING-CENTER position length)
(SELECT-RING edgels) (SELECT-ROPE edgels)
(IN-RINGSPACE vector bottom top) (IN-WORKSPACE vector)
(VECTOR-DIVIE vector scale1 scale2)
(DISP-MESSAGE messages)

ハンド・アイ・システムの諸機能を利用するために,Lispから各サブシステム へ指令を発するためのシステム基本命令があり,それらを組み合わせて紐の操 作用プログラムを記述している.Table 3にArm駆動, 視覚情報抽出,キャリブレーション,及び,表示用の主なシステム基本命令と, 本実験用に用いた主な命令を示す.動作指示には3次元の同次座標表現を用い, 相対移動命令を充実させている.視覚用には1次元の領域から対象の縁点を抽 出するための関数と,縁点データを操作するための諸関数がある.


next up previous
Next: 6.1 紐のハンドリング Up: ソフトウェア第三 講義資料 ロボットアームの運動学,立体視計算,ハンドアイシステム Previous: 5.7 閾値選択
generated through LaTeX2HTML. M.Inaba 平成18年5月7日