JP3879193B2 - Robot apparatus and control method thereof - Google Patents

Robot apparatus and control method thereof Download PDF

Info

Publication number
JP3879193B2
JP3879193B2 JP22689597A JP22689597A JP3879193B2 JP 3879193 B2 JP3879193 B2 JP 3879193B2 JP 22689597 A JP22689597 A JP 22689597A JP 22689597 A JP22689597 A JP 22689597A JP 3879193 B2 JP3879193 B2 JP 3879193B2
Authority
JP
Japan
Prior art keywords
mechanical system
instruction
dependent
command
independent
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
JP22689597A
Other languages
Japanese (ja)
Other versions
JPH1158280A (en
Inventor
雅博 藤田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sony Corp
Original Assignee
Sony Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sony Corp filed Critical Sony Corp
Priority to JP22689597A priority Critical patent/JP3879193B2/en
Publication of JPH1158280A publication Critical patent/JPH1158280A/en
Application granted granted Critical
Publication of JP3879193B2 publication Critical patent/JP3879193B2/en
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Landscapes

  • Manipulator (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は、機構系に依存しない機構系独立命令を用いて共通の制御手段により制御可能とした形式の異なる機構系を備える各種形態のロボット装置及びその制御方法に関する。
【0002】
【従来の技術】
従来より、タイヤの回転により自走するタイヤ型ロボットや2足あるいは4足の自立型歩行ロボットなど形式の異なる機構系を備える各種形態のロボット装置が提案されている。
【0003】
この種のロボット装置は、所定の自由度を持つアクチュエータ及び所定の物理量を検出するセンサなどがそれぞれ所定位置に配置された機構系を備え、マイクロコンピュータを用いた制御部によって、各種センサの出力及び制御プログラムに従って各種アクチュエータを個別に駆動制御することにより自走しまた所定の動作を行い得るようになされている。また、この種のロボット装置は、例えば胴体部、脚部及び頭部などの各構成ユニットがそれぞれ予め定められた相関関係をもつ状態に結合されることにより所定の形に組み立てられている。
【0004】
【発明が解決しようとする課題】
ところで、形式の異なる機構系を備える各種形態のロボット装置では、それぞれ機構系に依存した動作を行うので、装置毎に機構系に対応して定義された命令を用いて制御を行うにしていた。したがって、従来の形式の異なる機構系を備える各種形態のロボット装置では、前進、後退、停止等の共通に定義することにできる動作を行う場合であっても、装置毎に制御プログラムを準備しなければならないという問題点があった。
【0005】
そこで、本発明の目的は、機構系に依存しない機構系独立命令を用いて共通の制御系により制御可能とした形式の異なる機構系を備える各種形態のロボット装置及びその制御方法を提供することにある。
【0006】
【課題を解決するための手段】
本発明に係るロボット装置は、駆動部により駆動される少なくとも1つの機構部を有する機構系と、機構系に依存しない機構系独立命令を入力とし、この機構系独立命令を上記機構系にあわせた機構系依存命令に変換する機構系依存命令変換部と、この機構系依存命令変換部から供給される機構系依存命令を上記機構系の制御命令に変換する制御命令変換部と、この制御依存命令変換部から供給される制御命令に応じて上記駆動部の駆動制御を行う制御部とを備え、上記機構系依存命令変換部は、1つ以上の機構系依存命令について機構系独立命令を検索のキーとして登録し、入力された機構系独立命令から先にこの機構系独立命令を検索のキーとして登録された対応する1つ以上の機構系依存命令を取り出し、取り出された機構系依存命令から1の機構系依存命令を選択して出力する機能を有し、上記機構系依存命令変換部は、機構系独立命令を入力とし、この機構系独立命令に応じて上記機構系にあわせた機構系依存目標命令を出力する機構系依存目標命令発生部と、この機構系依存目標命令発生部から供給される機構系依存目標命令に応じて上記機構系にあわせた姿勢遷移列からなる機構系依存命令列を発生する機構系依存命令列発生部と有し、上記制御命令変換部は、この機構系依存命令列発生部から供給される機構系依存命令列を上記機構系の制御命令に変換し、上記機構系依存目標命令発生部は、同じ機構系独立命令に対応する複数の機構系依存目標命令から1の機構系依存目標命令を確率的に選択して出力する機能を有することを特徴とする。
【0007】
また、本発明に係るロボット装置は、駆動部により駆動される少なくとも1つの機構部を有する機構系と、機構系に依存しない機構系独立命令を入力とし、この機構系独立命令を上記機構系にあわせた機構系依存命令に変換する機構系依存命令変換部と、この機構系依存命令変換部から供給される機構系依存命令を上記機構系の制御命令に変換する制御命令変換部と、この制御依存命令変換部から供給される制御命令に応じて上記駆動部の駆動制御を行う制御部とを備え、上記機構系依存命令変換部は、1つ以上の機構系依存命令について機構系独立命令を検索のキーとして登録し、入力された機構系独立命令から先にこの機構系独立命令を検索のキーとして登録された対応する1つ以上の機構系依存命令を取り出し、取り出された機構系依存命令から1の機構系依存命令を選択して出力する機能を有し、上記機構系依存命令変換部は、機構系独立命令を入力とし、この機構系独立命令に応じて上記機構系にあわせた機構系依存目標命令を出力する機構系依存目標命令発生部と、この機構系依存目標命令発生部から供給される機構系依存目標命令に応じて上記機構系にあわせた姿勢遷移列からなる機構系依存命令列を発生する機構系依存命令列発生部と有し、上記制御命令変換部は、この機構系依存命令列発生部から供給される機構系依存命令列を上記機構系の制御命令に変換し、上記機構系依存目標命令発生部は、同じ機構系独立命令に対して、その機構系独立命令が入力された時点での感情状態に対応して異なる機構系依存目標命令を出力する機能を有することを特徴とする。
【0008】
また、本発明は、駆動部により駆動される少なくとも1つの機構部を有する機構系からなるロボット装置の制御方法であって、機構系に依存しない機構系独立命令を変換することにより上記機構系にあわせた機構系依存命令を生成して上記駆動部の駆動制御を行うに当たり、1つ以上の機構系依存命令について機構系独立命令の検索のキーとして登録し、入力された機構系独立命令から先にこの機構系独立命令を検索のキーとして登録された対応する1つ以上の機構系依存命令を取り出し、取り出された機構系依存命令から1の機構系依存命令を選択して、上記駆動部の駆動制御を行い、同じ機構系独立命令に対応する複数の機構系依存目標命令から1の機構系依存目標命令を確率的に選択して、その機構系依存目標命令に応じた機構系依存命令を生成して上記駆動部の駆動制御を行うことを特徴とする。
【0009】
さらに、本発明は、駆動部により駆動される少なくとも1つの機構部を有する機構系からなるロボット装置の制御方法であって、機構系に依存しない機構系独立命令を変換することにより上記機構系にあわせた機構系依存命令を生成して上記駆動部の駆動制御を行うに当たり、1つ以上の機構系依存命令について機構系独立命令の検索のキーとして登録し、入力された機構系独立命令から先にこの機構系独立命令を検索のキーとして登録された対応する1つ以上の機構系依存命令を取り出し、取り出された機構系依存命令から1の機構系依存命令を選択して、上記駆動部の駆動制御を行い、同じ機構系独立命令に対して、その機構系独立命令が入力された時点での感情状態に対応して異なる機構系依存目標命令を選択して、その機構系依存目標命令に応じた機構系依存命令を生成して上記駆動部の駆動制御を行うことを特徴とする。
【0015】
【発明の実施の形態】
以下、本発明の実施の形態について図面を参照して詳細に説明する。
【0016】
図1は、本発明に係るロボット装置100の基本的な構成を示すブロック図である。
【0017】
このロボット装置100は、中央処理ユニット(CPU:Central Processing Unit) 部101、制御部102、駆動部103、外界104及びセンサ部105より構成される。
【0018】
上記CPU部101は、CPU(Central Processing Unit) とメモリなどの周辺回路要素からなり、後述するように機構系に依存しない機構系独立命令を機構系依存命令に変換して、制御命令を制御部102に与える。上記制御部102と駆動部103はそれぞれ複数個で対をなしており、1つの制御部102により1つの駆動部103を制御するようになっている。上記制御部102は、このロボット装置100の外界104を構成している機構系の位置などの所定の物理量を検出するセンサ部105による検出出力値を用いて上記駆動部103を制御する。そして、上記駆動部103は、上記外界104を構成している機構系を駆動する。なお、上記センサ部105は、このロボット装置100を自律動作させるためのもので、機構系の位置などを検出するポテンショメータなどからなる。
【0019】
このロボット装置100におけるCPU部101のソフトウエア構成を図2に示す。
【0020】
すなわち、上記CPU部101のソフトウエア構成は、センサ処理部111、機構系独立命令発生部112、機構系依存目標命令発生部113、機構系依存命令列発生部114及び制御命令発生部115からなる。
【0021】
上記センサ処理部111は、タイマ、障害物センサ及び音センサを入力として備える。ここで、上記タイマは、1ミリ秒を単位にカウントするもので、ある時間を設定するとオフになり、設定した時間が経過するとオンになるものとする。また、上記障害物センサは、説明を簡略化するために、装置本体の前側、左側及び右側に設けられた障害前センサ,障害右センサ及び障害左センサからなり、それぞれ障害物に接触するとオンになるものとする。さらに、上記音センサは、マイクロホンで音を取り込み、その音圧レベルを検出して予め設定したレベルを越えるとオンになるものとする。
【0022】
また、上記機構系独立命令発生部112の状態遷移規則を決める手順を図3乃至図6のフローチャートに示す。この機構系独立命令発生部112では、状態遷移を行いながらある状態から他の状態に移るときに、後述するように定義した機構系独立命令を次のソフトモジュールである機構系依存目標命令発生部113へ出力する。上記機構系独立命令発生部112が出力するデータは、キャラクタ列で示されるデータとオプションとして命令に付随するパラメータである。
【0023】
この実施形態では、上記機構系独立命令として、
(1) standing
(2) move(parameter angle[deg])
(3) sleeping
(4) hello
(5) laughing
の5種類を定義する。
【0024】
そして、上記機構系独立命令発生部112は、図3のフローチャートに示すように、処理を開始(スタート)すると先ず処理S1において初期化を行い状態を「休息」としてから、処理S2に移って現在の状態を判別する。そして、上記処理S2における判別結果にしたがって、現在の状態での処理SA,処理SB又は処理SCを行って上記処理S2を繰り返し行うことにより、状態を遷移して、「休息」の処理SAと、「停止」の処理SBと、「移動」の処理SCを行う。
【0025】
上記「休息」の処理SAでは、図4に示すように、先ず音センサのオン/オフを判定する処理SA1を行い、音センサがオフであれば障害前センサのオン/オフを判定する処理SA2を行い、障害前センサがオフであれば障害左センサのオン/オフを判定する処理SA3を行い、障害左センサがオフであれば障害右センサのオン/オフを判定する処理SA4を行い、障害右センサがオフであればタイマのオン/オフを判定する処理SA5を行い、タイマがオフであれば次の状態を「休息」に設定する処理SA6を行って、次の状態へ移る。
【0026】
この「休息」の処理SAでは、上記処理SA1において音センサがオンであれば、機構系独立命令「standing」を出力するとともに次の状態を「停止」に設定する処理SA11を行い、さらにタイマをセットする処理SA12を行って、次の状態へ移る。また、上記処理SA2において障害前センサがオンであれば、機構系独立命令「standing」を出力するとともに次の状態を「停止」に設定する処理SA21を行い、さらにタイマをセットする処理SA22を行って、次の状態へ移る。また、上記処理SA3において障害左センサがオンであれば、機構系独立命令「standing」を出力するとともに次の状態を「停止」に設定する処理SA31を行い、さらにタイマをセットする処理SA32を行って、次の状態へ移る。また、上記処理SA4において障害右センサがオンであれば、機構系独立命令「standing」を出力するとともに次の状態を「停止」に設定する処理SA41を行い、さらにタイマをセットする処理SA42を行って、次の状態へ移る。さらに、上記処理SA5においてタイマがオンであれば、機構系独立命令「standing」を出力するとともに次の状態を「停止」に設定する処理SA51を行い、さらにタイマをセットする処理SA52を行って、次の状態へ移る。
【0027】
また、上記「停止」の処理SBでは、図5に示すように、先ず音センサのオン/オフを判定する処理SB1を行い、音センサがオフであれば障害前センサのオン/オフを判定する処理SB2を行い、障害前センサがオフであれば障害左センサのオン/オフを判定する処理SB3を行い、障害左センサがオフであれば障害右センサのオン/オフを判定する処理SB4を行い、障害右センサがオフであればタイマのオン/オフを判定する処理SB5を行い、タイマがオフであれば次の状態を「停止」に設定する処理SB6を行って、次の状態へ移る。
【0028】
この「停止」の処理SBでは、上記処理SB1において音センサがオンであれば、機構系独立命令「move(parameter angle[0 deg]」 を出力するとともに次の状態を「移動」に設定する処理SB11を行い、さらにタイマをセットする処理SB12を行って、次の状態へ移る。また、上記処理SB2において障害前センサがオンであれば、機構系独立命令「hello」 を出力するとともに次の状態を「停止」に設定する処理SB21を行い、さらにタイマをセットする処理SB22を行って、次の状態へ移る。また、上記処理SB3において障害左センサがオンであれば、機構系独立命令「laughing」を出力するとともに次の状態を「停止」に設定する処理SB31を行い、さらにタイマをセットする処理SB32を行って、次の状態へ移る。また、上記処理SB4において障害右センサがオンであれば、次の状態を「停止」に設定する処理SB41を行い、さらにタイマをセットする処理SB42を行って、次の状態へ移る。さらに、上記処理SB5においてタイマがオンであれば、機構系独立命令「sleeping」を出力するとともに次の状態を「休息」に設定する処理SB51を行い、さらにタイマをセットする処理SB52を行って、次の状態へ移る。
【0029】
さらに、上記「移動」の処理SCでは、図6に示すように、先ず音センサのオン/オフを判定する処理SC1を行い、音センサがオフであれば障害前センサのオン/オフを判定する処理SC2を行い、障害前センサがオフであれば障害左センサのオン/オフを判定する処理SC3を行い、障害左センサがオフであれば障害右センサのオン/オフを判定する処理SC4を行い、障害右センサがオフであればタイマのオン/オフを判定する処理SC5を行い、タイマがオフであれば次の状態を「停止」に設定する処理SC6を行って、次の状態へ移る。
【0030】
この「移動」の処理SCでは、上記処理SC1において音センサがオンであれば、機構系独立命令「hello」 を出力するとともに次の状態を「停止」に設定する処理SC11を行い、さらにタイマをセットする処理SC12を行って、次の状態へ移る。また、上記処理SC2において障害前センサがオンであれば、機構系独立命令「move(parameter angle[180 deg]」 を出力するとともに次の状態を「移動」に設定する処理SC21を行い、さらにタイマをセットする処理SC22を行って、次の状態へ移る。また、上記処理SC3において障害左センサがオンであれば、機構系独立命令「move(parameter angle[90 deg]」を出力するとともに次の状態を「移動」に設定する処理SC31を行い、さらにタイマをセットする処理SC32を行って、次の状態へ移る。また、上記処理SC4において障害右センサがオンであれば、機構系独立命令「move(parameter angle[-90 deg] 」を出力するとともに次の状態を「移動」に設定する処理SC41を行い、さらにタイマをセットする処理SC42を行って、次の状態へ移る。さらに、上記処理SC5においてタイマがオンであれば、機構系独立命令「standing」を出力するとともに次の状態を「停止」に設定する処理SC51を行い、さらにタイマをセットする処理SC52を行って、次の状態へ移る。
【0031】
また、上記機構系依存目標命令発生部113は、上記機構系独立命令発生部112から出力された機構系独立命令に応じて、外界104を構成している機構系に合わせた機構系依存目標命令を機構系依存命令列発生部114に供給する。この機構系依存命令列発生部114は、上記機構系依存目標命令発生部113から供給される機構系依存目標命令に応じて上記機構系にあわせた姿勢遷移列からなる機構系依存命令列を制御命令発生部115に供給する。この制御命令発生部115は、上記機構系依存命令列発生部114から供給される機構系依存命令列を上記機構系の制御命令に変換し、この制御命令を上記制御部102に供給する。
【0032】
そして、制御部102は、上記制御命令発生部115から供給される制御命令に応じて上記駆動部103の駆動制御を行う。
【0033】
ここで、上記機構系依存目標命令発生部113は、同じ機構系独立命令に対応する複数の機構系依存目標命令から1の機構系依存目標命令を選択して出力する機能を有する。この実施形態において、機構系依存目標命令発生部113は、機構系独立命令に対して対応する機構系依存目標命令を記憶しておき、図7のフローチャートに示す手順に従って、入力された機構系独立命令に対して、対応する機構系依存目標命令を確率的に選択して出力するようになっている。
【0034】
すなわち、上記機構系依存目標命令発生部113は、図7のフローチャートに示すように、機構系独立命令が入力されると、最初の処理S11において、入力された機構系独立命令が「standing」であるか否かを判定する。そして、機構系独立命令が「standing」であれば、処理S12に移って機構系依存目標命令「standing」を出力し、入力された機構系独立命令に対する処理を終了する。また、機構系独立命令が「standing」でなければ、次の処理S13に移る。
【0035】
この処理S13では、入力された機構系独立命令が「move」であるか否かを判定する。そして、機構系独立命令が「move」であれば、処理S14に移って機構系依存目標命令「walking」 を出力し、入力された機構系独立命令に対する処理を終了する。また、機構系独立命令が「move」でなければ、次の処理S15に移る。
【0036】
この処理S15では、入力された機構系独立命令が「laughing」であるか否かを判定する。そして、機構系独立命令が「laughing」であれば、処理S16に移って機構系依存目標命令「laughing」を出力し、入力された機構系独立命令に対する処理を終了する。また、機構系独立命令が「laughing」でなければ、次の処理S17に移る。
【0037】
この処理S17では、入力された機構系独立命令が「sleeping」であるか否かを判定する。そして、機構系独立命令が「sleeping」であれば、処理S18に移って機構系依存目標命令「sleeping」を出力し、入力された機構系独立命令に対する処理を終了する。また、機構系独立命令が「sleeping」でなければ、次の処理S19に移る。
【0038】
この処理S19では、入力された機構系独立命令が「hello」 であるか否かを判定する。そして、機構系独立命令が「hello」 であれば、処理S20に移り、また、機構系独立命令が「hello」 でなければ、入力された機構系独立命令に対する処理を終了する。
【0039】
上記処理S20では、[1],[2],[3]のいずれかの数字をランダムに発生する。
【0040】
そして、次の処理S21では、上記処理S20で発生した数字が[3]であるか否かを判定する。そして、上記数字が[3]であれば、処理S22に移って機構系依存目標命令「hello」 を出力し、入力された機構系独立命令に対する処理を終了する。また、上記数字が[3]でなければ、次の処理S23に移る。
【0041】
この処理S23では、上記処理S20で発生した数字が[2]であるか否かを判定する。そして、上記数字が[2]であれば、処理S24に移って機構系依存目標命令「right_hand_up」 を出力し、入力された機構系独立命令に対する処理を終了する。また、上記数字が[2]でなければ、次の処理S25に移る。
【0042】
この処理S25では、上記処理S20で発生した数字が[1]であるか否かを判定する。そして、上記数字が[1]であれば、処理S26に移って機構系依存目標命令「left_hand_up」を出力し、入力された機構系独立命令に対する処理を終了する。また、上記数字が[1]でなければ、入力された機構系独立命令に対する処理を終了する。
【0043】
すなわち、この機構系依存目標命令発生部113は、「standing」,「move」,「laughing」,「sleeping」,「 hello」の5種類の機構系独立命令に対して、「standing」,「move」,「laughing」,「sleeping」,「 hello」,「right_hand_up」,「left_hand_up」 の7種類の機構系依存目標命令を出力することができる。
【0044】
そして、機構系依存命令発生部114は、機構系依存目標命令を機構系依存命令列に変換して制御命令発生部115に供給する。すなわち、上記機構系依存命令発生部114は、現在の姿勢から与えられた機構系依存目標命令に対応する姿勢までの機構系依存命令列を制御命令発生部115に供給する
すなわち、この実施の形態では、機構系依存目標命令発生部113及び機構系依存命令列発生部114は、上記機構系独立命令発生部111から供給される機構系独立命令を機構系依存命令に変換する機構系依存命令変換部116を構成している。
【0045】
ここで、例えば、自立型歩行ロボット装置では、上述の図2に示したソフトウエア構成のCPU部101により制御部102に与えられる制御命令に従って、上記5種類の機構系独立命令「standing」,「move」,「laughing」,「sleeping」,「 hello」に対して、機構系依存目標命令発生部113で発生される7種類の機構系依存目標命令「standing」,「move」,「laughing」,「sleeping」,「 hello」,「right_hand_up」,「left_hand_up」 に対応した姿勢遷移をとるに当たり、直接遷移できない状態が存在するので、中間的な姿勢として「sitting」姿勢を定義し、その「sitting」姿勢を経由して目的の姿勢に遷移するようにしている。この姿勢遷移の拘束状態を図8に示す。すなわち、「sleeping」姿勢から「walking」姿勢に遷移する場合、「sitting」→「standing」→「walking」 という姿勢遷移列を制御命令として上記CPU部101から制御部102へ出力する。
【0046】
このように機構系独立命令発生部112に与えられる機構系独立命令に応じて機構系依存目標命令発生部113及び機構系依存命令列発生部114により機構系依存命令列を発生し、この機構系依存命令列を制御命令発生部115で制御命令に変換することにより、例えば機構系独立命令「move(parameter angle[deg]」により移動を命令する場合に、タイヤ型ロボットでは駆動車輪の回転方向を指定した移動命令に変換することにより移動命令を実行することができ、また4足歩行ロボットでは各脚部を歩行パターンにしたがって動かして移動させる移動命令に変換することにより移動命令を実行することができる。また、機構系独立命令「hello」 は、タイヤ型ロボットでは例えばその場で3回右回転を行う動作に対応させる命令に変換し、また4足歩行ロボットでは例えば座った姿勢で右前足をあげて横に振る動きを行う動作に対応させる命令に変換することにより、機構系独立命令「hello」 をどちらの形式のロボットでも実行することができる。このように、同じ命令でも機構系によって異なる動きを対応させ機構系依存目標命令発生部113により上位層にあるソフトウエアをソースコードあるいはバイナリーレベルで利用することが可能となる。したがって、ソフトウエアの部品化を促進し、機構系に依存しない部分のソフトウエアの再利用が可能となり、ソフトウエア開発を効率よく進めることができる。
【0047】
しかも、上記機構系依存目標命令発生部113は、同じ機構系独立命令「hello」に対して、3種類の機構系依存目標命令「 hello」,「right_hand_up」,「left_hand_up」から1の機構系依存目標命令を選択して出力する機能を有することにより、機構系依存目標命令を増やし、ロボットの動作に多様性を持たせることができる。
【0048】
図9は、本発明を適用して構成した自立型4足歩行ロボット装置200の外界部をなす機構系の基本的な構成を模式的に示す図である。
【0049】
この自立型歩行ロボット装置200は、4足で自立して歩行する多関節ロボットであって、胴体部201に右前脚部202、左前脚部203、右後脚部204、左後脚部205及び首頭部206がそれぞれ関節部211,212,213,214,215を介して連結されてなる。
【0050】
上記右前脚部202は、肩関節に対応する関節部211を介して上記胴体部201に連結されており、上記関節部211にアクチュエータとして設けられた図示しない2個のサーボモータの駆動により開脚する機能と前後に回転する機能を有する。また、この右前脚部202は、膝関節に対応する関節部216を介して連結された右前脚上部202Uと右前脚下部202Lからなり、上記関節部216にアクチュエータとして設けられた図示しないサーボモータの駆動より上記右前脚下部202Lを前後に回転する機能を有する。
【0051】
また、上記左前脚部203は、肩関節に対応する関節部212を介して上記胴体部201に連結されており、上記関節部212にアクチュエータとして設けられた図示しない2個のサーボモータの駆動により開脚する機能と前後に回転する機能を有する。また、この左前脚部203は、膝関節に対応する関節部217を介して連結された左前脚上部203Uと左前脚下部203Lからなり、上記関節部217にアクチュエータとして設けられた図示しないサーボモータの駆動により上記左前脚下部203Lを前後に回転する機能を有する。
【0052】
また、上記右後脚部204は、股関節に対応する関節部213を介して上記胴体部201に連結されており、上記関節部213にアクチュエータとして設けられた図示しないサーボモータの駆動により前後に回転する機能を有する。また、この右後脚部204は、膝関節に相当する関節部218を介して連結された右後脚上部204Uと右後脚下部204Lからなり、上記関節部218にアクチュエータとして設けられた図示しないサーボモータの駆動により上記右後脚下部204Lを前後に回転する機能を有する。
【0053】
また、上記左後脚部205は、股関節に対応する関節部214を介して上記胴体部201に連結されており、上記関節部214にアクチュエータとして設けられた図示しないサーボモータの駆動により前後に回転する機能を有する。また、この左後脚部205は、膝関節に対応する関節部219を介して連結された左後脚上部205Uと左後脚下部205Lからなり、上記関節部219にアクチュエータとして設けられた図示しないサーボモータの駆動により上記左後脚下部205Lを前後に回転する機能を有する。
【0054】
さらに、上記首頭部206は、首関節に対応する関節部215を介して上記胴体部201に連結されており、上記関節部215にアクチュエータとして設けられた図示しない2個のサーボモータの駆動により上下方向と左右方向に回転する機能を有する。
【0055】
そして、この自立型歩行ロボット装置200では、上述の図2に示したソフトウエア構成のCPU部101に備えられている機構系独立命令発生部112により発生される機構系独立命令を機構系依存目標命令発生部113と機構系依存命令列発生部114と制御命令発生部115により機構系に合わせた制御命令に変換して上記制御部102に与える。
【0056】
すなわち、機構系独立命令「standing」は、standingへの姿勢遷移列からなる制御命令に変換される。上記制御部102は、この制御命令に応じて上記駆動部103のサーボモータを駆動して、右前脚部202、左前脚部203、右後脚部204、左後脚部205の4足で立つ「standing」姿勢へ遷移させる。
【0057】
また、機構系独立命令「move(parameter angle[deg]」 は、walking への姿勢遷移列からなる制御命令に変換される。具体的には、angle[deg]をパラメータとしてangle[deg]が正であれば前進するための歩行パターンの姿勢遷移列からなる制御命令を生成する。上記制御部102は、この制御命令に応じて上記駆動部103のサーボモータを駆動して、右前脚部202、左前脚部203、右後脚部204、左後脚部205の4足で歩行する「walking」 姿勢へ遷移させる。
【0058】
また、機構系独立命令「sleeping」は、sleepingへの姿勢遷移列からなる制御命令に変換される。上記制御部102は、この制御命令に応じて上記駆動部103のサーボモータを駆動して、右前脚部202、左前脚部203、右後脚部204、左後脚部205の4足を伸ばして伏せる「sleeping」姿勢へ遷移させる。
【0059】
また、機構系独立命令「hello」は、helloへの姿勢遷移列からなる制御命令に変換される。上記制御部102は、この制御命令に応じて上記駆動部103のサーボモータを駆動して、座ってお辞儀をする「hello」姿勢 へ遷移させる。
【0060】
また、機構系独立命令「laughing」は、laughingへの姿勢遷移列からなる制御命令に変換される。上記制御部102は、この制御命令に応じて上記駆動部103のサーボモータを駆動して、右前脚部202と左前脚部203を挙げる「laughing」姿勢へ遷移させる。
【0061】
さらに、機構系独立命令「hello」は、helloへの姿勢遷移列からなる制御命令、right_hand_up への姿勢遷移列からなる制御命令又はleft_hand_upへの姿勢遷移列からなる制御命令に変換される。上記制御部102は、上記hello への姿勢遷移列からなる制御命令に応じて上記駆動部103のサーボモータを駆動することにより、座ってお辞儀をする「hello」 姿勢へ遷移させる。また、上記制御部102は、上記right_hand_up への姿勢遷移列からなる制御命令に応じて上記駆動部103のサーボモータを駆動することにより、座って右前脚部202を挙げる「right_hand_up」 姿勢へ遷移させる。さらに、上記制御部102は、上記left_hand_upへの姿勢遷移列からなる制御命令に応じて上記駆動部103のサーボモータを駆動することにより、座って左前脚部203を挙げる「left_hand_up」姿勢へ遷移させる。
【0062】
ここで、上述の図2に示したソフトウエア構成のCPU部101に備えられている機構系依存目標命令発生部113では、図7のフローチャートに示した手順に従った処理を行うことにより、機構系独立命令「hello」 に対して、3種類の機構系依存目標命令「 hello」,「right_hand_up」,「left_hand_up」 から1の機構系依存目標命令を確率的に選択して出力するようにしたが、図10のフローチャートに示すような処理手順に従って機構系依存目標命令を発生するようにしても良い。
【0063】
この図10のフローチャートに示す処理手順の場合、上記機構系依存目標命令発生部113は、機構系独立命令が入力されると、最初の処理S31において、入力された機構系独立命令が「standing」であるか否かを判定する。そして、機構系独立命令が「standing」であれば、処理S32に移って機構系依存目標命令「standing」を出力し、入力された機構系独立命令に対する処理を終了する。また、機構系独立命令が「standing」でなければ、次の処理S33に移る。
【0064】
この処理S33では、入力された機構系独立命令が「move」であるか否かを判定する。そして、機構系独立命令が「move」であれば、処理S34に移って機構系依存目標命令「walking」 を出力し、入力された機構系独立命令に対する処理を終了する。また、機構系独立命令が「move」でなければ、次の処理S35に移る。
【0065】
この処理S35では、入力された機構系独立命令が「laughing」であるか否かを判定する。そして、機構系独立命令が「laughing」であれば、処理S36に移って機構系依存目標命令「laughing」を出力し、入力された機構系独立命令に対する処理を終了する。また、機構系独立命令が「laughing」でなければ、次の処理S37に移る。
【0066】
この処理S37では、入力された機構系独立命令が「sleeping」であるか否かを判定する。そして、機構系独立命令が「sleeping」であれば、処理S38に移って機構系依存目標命令「sleeping」を出力し、入力された機構系独立命令に対する処理を終了する。また、機構系独立命令が「sleeping」でなければ、次の処理S39に移る。
【0067】
この処理S39では、入力された機構系独立命令が「hello」 であるか否かを判定する。そして、機構系独立命令が「hello」 であれば、処理S40に移り、また、機構系独立命令が「hello」 でなければ、入力された機構系独立命令に対する処理を終了する。
【0068】
上記処理S40では、現在の姿勢がstanding状態にあるかsitting 状態又はsleeping状態にあるかを判定する。そして、現在の姿勢がstanding状態にあれば、処理S41に移って機構系依存目標命令「standing_hello」を出力して、入力された機構系独立命令に対する処理を終了する。また、現在の姿勢がsitting 状態又はsleeping状態にあれば、処理S42に移って機構系依存目標命令「hello」 を出力して、入力された機構系独立命令に対する処理を終了する。
【0069】
すなわち、上記機構系依存目標命令発生部113は、「standing」,「move」,「laughing」,「sleeping」,「 hello」の5種類の機構系独立命令に対して、「standing」,「move」,「laughing」,「sleeping」,「 hello」,「standing_hello」の6種類の機構系依存目標命令を出力する。
【0070】
そして、この場合、機構系独立命令「hello」は、helloへの姿勢遷移列からなる制御命令又はstanding_helloへの姿勢遷移列からなる制御命令に変換されて、上記制御部102に供給される。
【0071】
上記制御部102は、上記hello への姿勢遷移列からなる制御命令に応じて上記駆動部103のサーボモータを駆動することにより、座ってお辞儀をする「hello」 姿勢へ遷移させる。また、上記制御部102は、上記standing_helloへの姿勢遷移列からなる制御命令に応じて上記駆動部103のサーボモータを駆動することにより、立ってお辞儀をする「standing_hello」 姿勢へ遷移させる。
【0072】
このように、上記機構系依存目標命令発生部113は、同じ機構系独立命令「hello」 に対して、その機構系独立命令が入力された時点での姿勢に対応して異なる機構系依存目標命令「hello」,「standing_hello」 を出力する機能を有するものとすることにより、ロボットの動作に多様性を持たせることができる。
【0073】
さらに、上述の図2に示したソフトウエア構成のCPU部101に備えられている機構系独立命令発生部112は、図11に示すように、センサ処理部111からの入力に基づいて動作する条件判断部112Aと感情処理部112Bの処理機能を備えるものであっても良い。
【0074】
この機構系独立命令発生部112において、条件判断部112Aは、上述の図3乃至図6のフローチャートに示した手順に従って、5種類の機構系独立命令「standing」,「move」,「sleeping」,「hello」,「laughing」 を発生する。
【0075】
また、感情処理部111Bは、上記センサ処理部111からの入力に基づいて、感情状態を変化させ、その感情状態を表す状態変数を出力するものである。ここでは、感情を示す喜びと怒りの2要素を感情変数とする。
【0076】
そして、この機構系独立命令発生部112により発生される感情変数を機構系独立命令に応じた機構系依存目標命令さらには機構系依存命令列とともに引数として渡すことにより、感情に応じて同じ機構系独立命令に対して感情に応じて異なる制御動作を制御部102で行うようにする。
【0077】
この実施の形態において、感情状態は、2次元のベクトルemであるとし、
em=[joy,anger]
にて示すものとする。ここで、joy は、喜び状態を表現するもので、0〜255の整数値をとり、大きな値ほど喜びが大きいと解釈する。また、anger は、怒り状態を表現するもので、0〜255の整数値をとり、大きな値ほど喜びが大きいと解釈する。
【0078】
そして、感情処理部112Bは、センサ処理部111からの入力に基づいて、図12のフローチャートに示す手順に従って、感情状態emを変化させる感情処理SEを行う。
【0079】
すなわち、この感情処理SEでは、図12に示すように、先ず音センサのオン/オフを判定する処理SE1を行い、音センサがオンであれば処理SE2に移ってjoy 値を「10」増加させて処理SE3に移る。また、音センサがオフであれば直ちに処理SE3に移る。
【0080】
この処理SE3では、障害前センサのオン/オフを判定する。そして、障害前センサがオンであれば処理SE4に移ってanger 値を「10」増加させて処理SE5に移る。また、障害前センサがオフであれば直ちに処理SE5に移る。
【0081】
この処理SE5では、障害左センサのオン/オフを判定する。そして、障害左センサがオンであれば処理SE6に移ってanger 値を「50」増加させて処理SE7に移る。また、障害左センサがオフであれば直ちに処理SE7に移る。
【0082】
この処理SE7では、障害右センサのオン/オフを判定する。そして、障害右センサがオンであれば処理SE8に移ってanger 値を「50」増加させて処理SE9に移る。また、障害左センサがオフであれば直ちに処理SE9に移る。
【0083】
この処理SE9では、joy 値及びanger 値をそれぞれ「1」減少させる。
【0084】
そして、次の処理SE10では、joy 値が「0」より小さい場合にjoy 値を「0」にし、また、joy 値が「255」よりも大きい場合にjoy 値を「255」にする。
【0085】
さらに、次の処理SE11では、anger 値が「0」より小さい場合にanger 値を「0」にし、また、anger 値が「255」よりも大きい場合にanger 値を「255」にする。
【0086】
すなわち、この図12に示す感情処理SEは、各センサのオン/オフに対応してjoy 値とanger 値が増加し、また、時間とともにそれらは減少していくという単純なモデルにより感情状態emを与える。この実施形態において、上記感情状態emは、機構系依存目標命令発生部113に入力されるとともに、制御命令発生部115にも入力されるようになっている。
【0087】
そして、機構系依存目標命令発生部113は、機構系独立命令発生部112から機構系独立命令とともに感情状態emが入力されることにより、図13のフローチャートに示すような処理手順に従って機構系依存目標命令を発生する。
【0088】
この図13のフローチャートに示す処理手順の場合、上記機構系依存目標命令発生部113は、機構系独立命令が入力されると、最初の処理S51において、入力された機構系独立命令が「standing」であるか否かを判定する。そして、機構系独立命令が「standing」であれば、処理S52に移って機構系依存目標命令「standing」を出力し、入力された機構系独立命令に対する処理を終了する。また、機構系独立命令が「standing」でなければ、次の処理S53に移る。
【0089】
この処理S53では、入力された機構系独立命令が「move」であるか否かを判定する。そして、機構系独立命令が「move」であれば、処理S54に移って機構系依存目標命令「walking」 を出力し、入力された機構系独立命令に対する処理を終了する。また、機構系独立命令が「move」でなければ、次の処理S55に移る。
【0090】
この処理S55では、入力された機構系独立命令が「laughing」であるか否かを判定する。そして、機構系独立命令が「laughing」であれば、処理S56に移って機構系依存目標命令「laughing」を出力し、入力された機構系独立命令に対する処理を終了する。また、機構系独立命令が「laughing」でなければ、次の処理S57に移る。
【0091】
この処理S57では、入力された機構系独立命令が「sleeping」であるか否かを判定する。そして、機構系独立命令が「sleeping」であれば、処理S58に移って機構系依存目標命令「sleeping」を出力し、入力された機構系独立命令に対する処理を終了する。また、機構系独立命令が「sleeping」でなければ、次の処理S59に移る。
【0092】
この処理S59では、入力された機構系独立命令が「hello」 であるか否かを判定する。そして、機構系独立命令が「hello」 であれば、処理S60に移り、また、機構系独立命令が「hello」 でなければ、入力された機構系独立命令に対する処理を終了する。
【0093】
上記処理S60では、感情状態emを示す状態変数であるjoy 値がその閾値Thjoy よりも大きいか否かを判定する。そして、joy 値がその閾値Thjoy よりも大きい場合には、処理S61に移って機構系依存目標命令「hello-joy」 を出力して、入力された機構系独立命令に対する処理を終了する。また、joy 値がその閾値Thjoy よりも大きくない場合には、処理S62に移る。
【0094】
この処理62では、感情状態emを示す状態変数であるanger 値がその閾値Thanger よりも大きいか否かを判定する。そして、anger 値がその閾値Thanger よりも大きい場合には、処理S63に移って機構系依存目標命令「hello-anger」 を出力して、入力された機構系独立命令に対する処理を終了する。また、anger 値がその閾値Thanger よりも大きくない場合には、処理S64に移って機構系依存目標命令「hello」 を出力して、入力された機構系独立命令に対する処理を終了する。
【0095】
すなわち、上記機構系依存目標命令発生部113は、「standing」,「move」,「laughing」,「sleeping」,「 hello」の5種類の機構系独立命令に対して、「standing」,「move」,「laughing」,「sleeping」,「 hello」,「hello-joy」,「hello-anger」の7種類の機構系依存目標命令を出力する。
【0096】
そして、この場合、機構系独立命令「hello」は、helloへの姿勢遷移列からなる制御命令、hello-joyへの姿勢遷移列からなる制御命令又はhello-angerへの姿勢遷移列からなる制御命令に変換されて、上記制御部102に供給される。
【0097】
上記制御部102は、上記hello への姿勢遷移列からなる制御命令に応じて上記駆動部103のサーボモータを駆動することにより、座ってお辞儀をする「hello」 姿勢へ遷移させる。また、上記制御部102は、上記hello-joy への姿勢遷移列からなる制御命令に応じて上記駆動部103のサーボモータを駆動することにより、座って両右前脚部を挙げる「hello-joy」 姿勢へ遷移させる。さらに、上記制御部102は、上記hello-anger への姿勢遷移列からなる制御命令に応じて上記駆動部103のサーボモータを駆動することにより、座って左前脚部を挙げる「hello-anger」姿勢へ遷移させる。
【0098】
このように、上記機構系依存目標命令発生部113は、同じ機構系独立命令「hello」 に対して、その機構系独立命令が入力された時点での感情状態に対応して異なる機構系依存目標命令「hello」,「hello-joy」,「hello-anger」 を出力する機能を有するものとすることにより、ロボットの動作に多様性を持たせることができる。
【0099】
なお、機構系独立命令「hello」 以外の機構系独立命令に対しても同様に感情状態を示す感情状態emを示す状態変数であるjoy,anger の値によって別の機構系依存目標命令を発生させるようにすることも可能である。
【0100】
さらに、制御命令発生部115は、感情状態emが機構系依存命令列とともにパラメータとして入力されることにより、感情状態emによって動きのスピード大きさを異ならせた制御命令を制御部102に供給することができる。
【0101】
すなわち、この実施の形態において、機構系依存命令列は上述の図8に示したようなグラフ構造として表すことができる記憶構造を用いて機構系依存目標命令をサーチしてノード列を決定し、ノード間に定義してあるエッジに対応して制御命令発生のプログラム及びデータが記憶されている。制御命令発生部115では、ノード間のエッジに対応するこの制御命令を発生し、制御部102に供給する。
【0102】
ここで、上述のように機構系依存目標命令発生部は、同じ機構系独立命令に対応する複数の機構系依存目標命令から1の機構系依存目標命令を選択して出力する機能を機構系依存目標命令発生部にもたせることにより、ロボットの動作に多様性を持たせるようにした場合、新たに機構系独立命令を追加するには、それに対応した選択プログラムを書き加える必要が生じる。また、機構系依存命令を増やす場合には、現存するプログラムでif文を追加する必要が生じる。しかし、機構系独立命令と機構系依存命令の対応を予め登録しておくことによって、プログラムに機構系独立命令と機構系依存命令を直接記述せずに、記憶部に対する登録と機構系独立命令をキーとした検索を行うことで対応する機構系依存命令を見つけ出すことが可能である。
【0103】
すなわち、例えば図14に示すように、機構系独立命令発生部112から供給される機構系独立命令を機構系依存命令に変換する機構系依存命令変換部116に、機構系独立命令−機構系依存命令対応記憶部116Aと機構系依存命令検索部116Bを設け、各機構系依存命令について機構系独立命令を検索のキーとして機構系独立命令−機構系依存命令対応記憶部116Aに登録し、入力された機構系独立命令から先にこの機構系独立命令を検索のキーとして登録された対応する1つ以上の機構系依存命令を取り出し、取り出された機構系依存命令から1の機構系依存命令を選択して出力するようにする。
【0104】
上記機構系独立命令−機構系依存命令対応記憶部116Aは、例えばコンピュータの情報表現としてMap という手法を用いることにより実現される。Map は、プログラミング言語C++などの多くコンパイラや開発環境のソフトウエアが基本ライブラリとして提供する情報記憶用のソフトウエアであり、検索のキーを用いて検索させる手法である。簡単なMap<T,Key>とList<T> の使い方について、図15に示すプログラムリストの例により説明する。
【0105】
この例は、名前をListに登録し、それをさらに姓を検索Key としてMap で登録している。すなわち、この図15に示したプログラムリストの1〜5行では、masahiro,miu,hiroko という名前をListに登録し、masaki,mao,yoko という名前を別のList登録している。17行では、前者のListを“fujita”という検索Key でMap に登録し、後者のListを“komoriya”という検索Key でMap に登録する。そして、20行,21行では、“fujita”という検索Key を用いてListをMap から取り出し、Listの一番最初のStringを取り出している。この結果であるname1 に何が入っているかは、Listというクラスの実装の方法により異なるが、最初に登録した“masahiro”がでてくる実装が普通である。
【0106】
このようなMap を機構系独立命令IndCMDを検索Key として機構系依存命令DepCMDを複数登録するのに利用して、例えば、
Map<List<DepCMD>,IndCMD> map0fInd_DependCMD;
List<DepCMD> temp = map0fInd_DependCMD[Hello];
temp.push_back(Right_HandUp);
により、機構系独立命令Hello に機構系依存命令Right_HandUpを登録する。
【0107】
したがって、機構系依存命令変換部116では、機構系独立命令を受け取り、それをKey として、Listを取り出し、このリストから機構系依存命令を1つ選択して出力すればよい。機構系依存命令の選択には、上述の機構系依存目標命令発生部113における各種手法を用いることができる。
【0108】
【発明の効果】
以上のように、本発明に係るロボット装置では、機構系独立命令を入力とし、この機構系独立命令に応じて上記機構系にあわせた機構系依存目標命令を出力する機構系依存目標命令発生部と、この機構系依存目標命令発生部から供給される機構系依存目標命令に応じて上記機構系にあわせた姿勢遷移列からなる機構系依存命令列を発生する機構系依存命令列発生部と有する機構系依存命令変換部を備えることにより、機構系独立命令に対応した動作を機構系で行うことができ、しかも、1つ以上の機構系依存命令について機構系独立命令を検索のキーとして登録し、入力された機構系独立命令から先にこの機構系独立命令を検索のキーとして登録された対応する1つ以上の機構系依存命令を取り出し、取り出された機構系依存命令から1の機構系依存命令を選択して出力する機能を上記機構系依存命令変換部に持たせ、同じ機構系独立命令に対応する複数の機構系依存目標命令から1の機構系依存目標命令を確率的に選択して出力する機能を上記機構系依存目標命令発生部に持たせることにより、少ない記述量で複雑な動作を行うことができる。
また、本発明に係るロボット装置では、機構系独立命令を入力とし、この機構系独立命令に応じて上記機構系にあわせた機構系依存目標命令を出力する機構系依存目標命令発生部と、この機構系依存目標命令発生部から供給される機構系依存目標命令に応じて上記機構系にあわせた姿勢遷移列からなる機構系依存命令列を発生する機構系依存命令列発生部と有する機構系依存命令変換部を備えることにより、機構系独立命令に対応した動作を機構系で行うことができ、しかも、1つ以上の機構系依存命令について機構系独立命令を検索のキーとして登録し、入力された機構系独立命令から先にこの機構系独立命令を検索のキーとして登録された対応する1つ以上の機構系依存命令を取り出し、取り出された機構系依存命令から1の機構系依存命令を選択して出力する機能を上記機構系依存命令変換部に持たせ、同じ機構系独立命令に対して、その機構系独立命令が入力された時点での感情状態に対応して異なる機構系依存目標命令を出力する機能を上記機構系依存目標命令発生部に持たせることにより、少ない記述量で複雑な動作を行うことができる。
【0109】
また、本発明に係るロボット装置の制御方法では、機構系に依存しない機構系独立命令を変換することにより上記機構系にあわせた機構系依存命令を生成して上記駆動部の駆動制御を行うに当たり、1つ以上の機構系依存命令について機構系独立命令の検索のキーとして登録し、入力された機構系独立命令から先にこの機構系独立命令を検索のキーとして登録された対応する1つ以上の機構系依存命令を取り出し、取り出された機構系依存命令から1の機構系依存命令を選択して、上記駆動部の駆動制御を行い、同じ機構系独立命令に対応する複数の機構系依存目標命令から1の機構系依存目標命令を確率的に選択して、その機構系依存目標命令に応じた機構系依存命令を生成して上記駆動部の駆動制御を行うことにより、少ない記述量で複雑な動作制御を行うことができる。
さらに、本発明に係るロボット装置の制御方法では、機構系に依存しない機構系独立命令を変換することにより上記機構系にあわせた機構系依存命令を生成して上記駆動部の駆動制御を行うに当たり、1つ以上の機構系依存命令について機構系独立命令の検索のキーとして登録し、入力された機構系独立命令から先にこの機構系独立命令を検索のキーとして登録された対応する1つ以上の機構系依存命令を取り出し、取り出された機構系依存命令から1の機構系依存命令を選択して、上記駆動部の駆動制御を行い、同じ機構系独立命令に対して、その機構系独立命令が入力された時点での感情状態に対応して異なる機構系依存目標命令を選択して、その機構系依存目標命令に応じた機構系依存命令を生成して上記駆動部の駆動制御を行うことにより、少ない記述量で複雑な動作制御を行うことができる。
【0110】
したがって、本発明によれば、機構系に依存しない機構系独立命令を用いて共通の制御系により制御可能とした形式の異なる機構系を備える各種形態のロボット装置及びその制御方法を提供することができる。これにより、同じ命令でも機構系によって異なる動きを対応させ機構系依存命令変換部により上位層にあるソフトウエアをソースコードあるいはバイナリーレベルで利用することが可能となる。これにより、ソフトウエアの部品化を促進し、機構系に依存しない部分のソフトウエアの再利用が可能となり、ソフトウエア開発を効率よく進めることができる。
【図面の簡単な説明】
【図1】本発明に係るロボット装置の基本的な構成を示すブロック図である。
【図2】上記ロボット装置におけるCPU部のソフトウエア構成を示す図である。
【図3】上記ロボット装置における機構系独立命令発生部の状態遷移規則を決める手順を示すフローチャートである。
【図4】上記機構系独立命令発生部の状態遷移規則を決める手順における「休息」の処理手順を示すフローチャートである。
【図5】上記機構系独立命令発生部の状態遷移規則を決める手順における「停止」の処理手順を示すフローチャートである。
【図6】上記機構系独立命令発生部の状態遷移規則を決める手順における「移動」の処理手順を示すフローチャートである。
【図7】上記ロボット装置における機構系依存目標命令発生部で機構系依存目標命令を発生するための処理手順を示すフローチャートである。
【図8】上記ロボット装置における機構系依存命令列発生部で機構系依存命令を発生するためのグラフ構造を示す状態遷移図である。
【図9】本発明を適用して構成した自立型4足歩行ロボット装置の外界部をなす機構系の基本的な構成を模式的に示す図である。
【図10】上記機構系依存目標命令発生部で機構系依存目標命令を発生するための他の処理手順を示すフローチャートである。
【図11】上記ロボット装置における機構系独立命令発生部の構成例を示す図である。
【図12】上記機構系独立命令発生部に備えられる感情処理部での感情処理の手順を示すフローチャートである。
【図13】上記機構系依存目標命令発生部で機構系依存目標命令を発生するためのさらに他の処理手順を示すフローチャートである。
【図14】機構系独立命令発生部に備えられるMap による機構系依存命令の検索機能を備えた機構系独立命令発生部の構成を示す図である。
【図15】 Map<T,Key>とList<T> の使い方を説明するのに用いるプログラムリストを示す図である。
【符号の説明】
100 ロボット装置、101 CPU部、102 制御部、103 駆動部、104 外界、105 センサ部、111 センサ処理部、112 機構系独立命令発生部、113 機構系依存目標命令発生部、114 機構系依存命令列発生部、 115 制御命令発生部、116 機構系依存命令変換部
[0001]
BACKGROUND OF THE INVENTION
The present invention relates to various types of robot apparatuses including different types of mechanism systems that can be controlled by a common control unit using mechanism system independent commands that do not depend on the mechanism system, and a control method therefor.
[0002]
[Prior art]
Conventionally, various types of robot devices having different types of mechanism systems such as a tire type robot that self-propels by rotation of a tire and a two-legged or four-legged standing walking robot have been proposed.
[0003]
This type of robot apparatus includes a mechanism system in which an actuator having a predetermined degree of freedom and a sensor for detecting a predetermined physical quantity are arranged at predetermined positions, respectively, and outputs of various sensors and a control unit using a microcomputer. The various actuators are individually driven and controlled in accordance with a control program, so that they can self-run and perform predetermined operations. In addition, this type of robot apparatus is assembled in a predetermined shape by combining the constituent units such as the body, legs, and head with a predetermined correlation.
[0004]
[Problems to be solved by the invention]
By the way, since various types of robot apparatuses having different types of mechanism systems perform operations depending on the respective mechanism systems, control is performed using commands defined corresponding to the mechanism systems for each apparatus. Therefore, in various types of robot devices having different types of mechanical systems, a control program must be prepared for each device even when performing operations that can be commonly defined such as forward, backward, and stop. There was a problem of having to.
[0005]
Therefore, an object of the present invention is to provide various types of robot apparatuses having different types of mechanism systems that can be controlled by a common control system using mechanism system independent commands independent of the mechanism system, and a control method thereof. is there.
[0006]
[Means for Solving the Problems]
  A robot apparatus according to the present invention receives a mechanism system having at least one mechanism unit driven by a drive unit and a mechanism system independent command independent of the mechanism system, and matches the mechanism system independent command to the mechanism system. A mechanism-dependent instruction conversion unit for converting into a mechanism-dependent instruction, a control instruction conversion unit for converting a mechanism-dependent instruction supplied from the mechanism-dependent instruction conversion unit into a control instruction for the mechanism system, and the control-dependent instruction A control unit that performs drive control of the drive unit according to a control command supplied from the conversion unit, and the mechanism-dependent command conversion unit searches for a mechanism-independent command for one or more mechanism-dependent commands. This mechanism system is registered before the mechanism independent command entered and registered as a key.IndependenceA function to extract one or more corresponding mechanism-dependent instructions registered using the instruction as a search key, and select and output one mechanism-dependent instruction from the extracted mechanism-dependent instructionsThe mechanical system dependent instruction conversion unit receives a mechanical system independent instruction, and outputs a mechanical system dependent target instruction according to the mechanical system in accordance with the mechanical system independent instruction; A mechanism-dependent instruction sequence generator for generating a mechanism-dependent instruction sequence comprising a posture transition sequence adapted to the mechanism system according to a mechanism-dependent target command supplied from the mechanism-dependent target instruction generator The control command conversion unit converts the mechanical system dependent command sequence supplied from the mechanical system dependent command sequence generation unit into a control command of the mechanical system, and the mechanical system dependent target command generation unit is independent of the same mechanical system. It has a function to select and output one mechanical system dependent target instruction stochastically from a plurality of mechanical system dependent target instructions corresponding to the instruction.It is characterized by that.
[0007]
  Also,Robot device according to the present inventionTakes as input a mechanism system having at least one mechanism section driven by a drive section and a mechanism-independent instruction that does not depend on the mechanism system, and converts this mechanism-independent instruction into a mechanism-dependent instruction that matches the above-mentioned mechanism system A mechanism-dependent instruction conversion unit that converts the mechanism-dependent instruction supplied from the mechanism-dependent instruction conversion unit into a control instruction for the mechanism system, and a control-dependent instruction conversion unit that supplies the control instruction. A control unit that performs drive control of the drive unit according to a control command, and the mechanical system dependent command conversion unit registers a mechanical system independent command as a search key for one or more mechanical system dependent commands, and inputs One or more corresponding mechanism-dependent instructions registered using the mechanism-independent instruction as a search key are extracted from the mechanism-related independent instruction, and one mechanism-dependent instruction is extracted from the extracted mechanism-dependent instructions. The mechanism-dependent instruction conversion unit receives a mechanism-independent instruction and outputs a mechanism-dependent target instruction according to the mechanism system according to the mechanism-independent instruction. A mechanism-dependent instruction that generates a mechanism-dependent instruction sequence comprising a system-dependent target instruction generation unit and an attitude transition sequence adapted to the mechanism system according to the mechanism-dependent target instruction supplied from the mechanism-dependent target instruction generation unit An instruction sequence generation unit, and the control instruction conversion unit converts the mechanism-dependent instruction sequence supplied from the mechanism-dependent instruction sequence generation unit into a control instruction for the mechanism system, and generates the mechanism-dependent target instruction The unit has a function of outputting, for the same mechanical system independent command, a different mechanical system dependent target command corresponding to the emotional state at the time when the mechanical system independent command is input.
[0008]
  The present invention is also a method for controlling a robot apparatus comprising a mechanism system having at least one mechanism section driven by a drive section, and converts the mechanism system independent command independent of the mechanism system into the mechanism system. When generating a combined mechanical system dependent instruction and performing drive control of the drive unit, one or more mechanical system dependent instructions are registered as a mechanism independent instruction search key, and the input mechanical system independent instruction is preceded. One or more corresponding mechanism-dependent instructions registered with the mechanism-independent instruction as a search key are extracted, and one mechanism-dependent instruction is selected from the extracted mechanism-dependent instructions. Drive control is performed, and one mechanical system dependent target instruction is selected stochastically from a plurality of mechanical system dependent target instructions corresponding to the same mechanical system independent instruction, and the mechanical system dependence according to the mechanical system dependent target instruction It generates a decree and performs drive control of the drive unit.
[0009]
  Furthermore, the present invention provides a control method for a robot apparatus comprising a mechanism system having at least one mechanism section driven by a drive section, and converts the mechanism system independent command independent of the mechanism system into the mechanism system. When generating a combined mechanical system dependent instruction and performing drive control of the drive unit, one or more mechanical system dependent instructions are registered as a mechanism independent instruction search key, and the input mechanical system independent instruction is preceded. One or more corresponding mechanism-dependent instructions registered with the mechanism-independent instruction as a search key are extracted, and one mechanism-dependent instruction is selected from the extracted mechanism-dependent instructions. Drive control is performed, and for the same mechanical system independent command, a different mechanical system dependent target command is selected corresponding to the emotional state at the time the mechanical system independent command is input, and the mechanical system dependent command is selected. It generates a mechanical system dependent command corresponding to the command and performs driving control of the drive unit.
[0015]
DETAILED DESCRIPTION OF THE INVENTION
Hereinafter, embodiments of the present invention will be described in detail with reference to the drawings.
[0016]
FIG. 1 is a block diagram showing a basic configuration of a robot apparatus 100 according to the present invention.
[0017]
The robot apparatus 100 includes a central processing unit (CPU) unit 101, a control unit 102, a drive unit 103, an external environment 104, and a sensor unit 105.
[0018]
The CPU unit 101 includes a CPU (Central Processing Unit) and peripheral circuit elements such as a memory. As described later, the CPU unit 101 converts a mechanism-independent instruction that does not depend on a mechanism system into a mechanism-dependent instruction, and sends a control command to the control unit 102. A plurality of control units 102 and drive units 103 are paired, and one control unit 102 controls one drive unit 103. The control unit 102 controls the driving unit 103 by using a detection output value from a sensor unit 105 that detects a predetermined physical quantity such as a position of a mechanical system constituting the external environment 104 of the robot apparatus 100. The driving unit 103 drives the mechanical system constituting the outside world 104. The sensor unit 105 is for autonomously operating the robot apparatus 100, and includes a potentiometer for detecting the position of the mechanical system.
[0019]
The software configuration of the CPU unit 101 in the robot apparatus 100 is shown in FIG.
[0020]
That is, the software configuration of the CPU unit 101 includes a sensor processing unit 111, a mechanical system independent command generation unit 112, a mechanical system dependent target command generation unit 113, a mechanical system dependent command sequence generation unit 114, and a control command generation unit 115. .
[0021]
The sensor processing unit 111 includes a timer, an obstacle sensor, and a sound sensor as inputs. Here, the timer counts in units of 1 millisecond, and is turned off when a certain time is set and turned on when the set time elapses. The obstacle sensor includes a pre-obstruction sensor, an obstacle right sensor, and an obstacle left sensor provided on the front side, the left side, and the right side of the main body of the apparatus for the sake of simplicity. Shall be. Further, the sound sensor is assumed to be turned on when a sound is picked up by a microphone, the sound pressure level is detected and a preset level is exceeded.
[0022]
The procedure for determining the state transition rule of the mechanical independent instruction generator 112 is shown in the flowcharts of FIGS. In this mechanical system independent instruction generation unit 112, when moving from one state to another state while performing state transition, a mechanical system independent instruction defined as described later is used as the next software module, a mechanical system dependent target instruction generation unit. It outputs to 113. The data output from the mechanical independent command generation unit 112 is data indicated by a character string and optional parameters accompanying the command.
[0023]
In this embodiment, as the mechanical system independent command,
(1) standing
(2) move (parameter angle [deg])
(3) sleeping
(4) hello
(5) laughing
5 types are defined.
[0024]
Then, as shown in the flowchart of FIG. 3, the mechanical system independent command generation unit 112 starts (starts) the process, first initializes in process S1 and sets the state to "rest", then moves to process S2 and proceeds to the present. Determine the state of. Then, according to the determination result in the process S2, the process SA, the process SB or the process SC in the current state is performed, and the process S2 is repeated to change the state, and the process SA of "rest" A “stop” process SB and a “move” process SC are performed.
[0025]
In the “rest” process SA, as shown in FIG. 4, first, the process SA1 for determining whether the sound sensor is on or off is performed. If the sound sensor is off, the process SA2 for determining whether the pre-failure sensor is on or off. If the pre-failure sensor is off, processing SA3 for determining on / off of the failure left sensor is performed, and if the failure left sensor is off, processing SA4 for determining on / off of the failure right sensor is performed. If the right sensor is off, the process SA5 for determining on / off of the timer is performed. If the timer is off, the process SA6 for setting the next state to "rest" is performed, and the process proceeds to the next state.
[0026]
In the “rest” process SA, if the sound sensor is on in the process SA1, a mechanical system independent command “standing” is output, and the process SA11 for setting the next state to “stop” is performed. Processing SA12 to be set is performed, and the process proceeds to the next state. If the pre-failure sensor is ON in the process SA2, the process SA21 for outputting the mechanism independent command “standing” and setting the next state to “stop” is performed, and the process SA22 for setting the timer is performed. To the next state. If the failure left sensor is ON in the process SA3, the process SA31 for outputting the mechanical independent command “standing” and setting the next state to “stop” is performed, and the process SA32 for setting the timer is performed. To the next state. If the failure right sensor is ON in the process SA4, the process SA41 for outputting the mechanism independent command “standing” and setting the next state to “stop” is performed, and the process SA42 for setting the timer is performed. To the next state. Further, if the timer is on in the process SA5, the process SA51 for outputting the mechanical independent command “standing” and setting the next state to “stop” is performed, and the process SA52 for setting the timer is performed. Move to the next state.
[0027]
Further, in the “stop” process SB, as shown in FIG. 5, first, a process SB1 for determining whether the sound sensor is on or off is performed. Process SB2 is performed. If the pre-failure sensor is off, process SB3 is performed to determine whether the fault left sensor is on or off. If the fault left sensor is off, process SB4 is performed to determine whether the fault right sensor is on / off. If the failure right sensor is off, the process SB5 for determining on / off of the timer is performed. If the timer is off, the process SB6 for setting the next state to “stop” is performed, and the process proceeds to the next state.
[0028]
In the “stop” process SB, if the sound sensor is turned on in the process SB1, the mechanism independent command “move (parameter angle [0 deg]” is output and the next state is set to “move”. Step SB11 is performed, and further processing SB12 for setting a timer is performed to move to the next state, and if the pre-failure sensor is on in the processing SB2, a mechanism independent command “hello” is output and the next state is output. SB21 is set to “stop”, and the timer SB22 is set to the next state, and if the failure left sensor is on in the process SB3, the mechanism independent command “laughing” is set. ”And a process SB31 for setting the next state to“ stop ”, a process SB32 for setting a timer, and the process proceeds to the next state. If the failure right sensor is ON in B4, the process SB41 for setting the next state to “stop” is performed, and the process SB42 for setting the timer is further performed, and the process proceeds to the next state. If is ON, the mechanism independent instruction “sleeping” is output, the process SB51 for setting the next state to “sleeping” is performed, and the process SB52 for setting the timer is further performed to move to the next state.
[0029]
Further, in the above-mentioned “movement” process SC, as shown in FIG. 6, first, a process SC1 for determining whether the sound sensor is on or off is performed. Process SC2 is performed. If the pre-failure sensor is off, process SC3 for determining on / off of the fault left sensor is performed. If the fault left sensor is off, process SC4 for determining on / off of the fault right sensor is performed. If the failure right sensor is off, the process SC5 for determining on / off of the timer is performed. If the timer is off, the process SC6 for setting the next state to “stop” is performed, and the process proceeds to the next state.
[0030]
In the “movement” process SC, if the sound sensor is turned on in the process SC1, the mechanism independent instruction “hello” is output and the next state is set to “stop”, and the timer is further set. The setting process SC12 is performed, and the process proceeds to the next state. If the pre-failure sensor is on in the process SC2, the mechanism independent command “move (parameter angle [180 deg]”) is output, and the process SC21 for setting the next state to “move” is performed. In step SC3, if the fault left sensor is on, the mechanism independent command "move (parameter angle [90 deg]" is output and the next state is entered. A process SC31 for setting the state to “move” is performed, and a process SC32 for setting a timer is further performed to move to the next state.If the failure right sensor is on in the process SC4, the mechanism independent instruction “ move (parameter angle [-90 deg] ”is output, and the process SC41 for setting the next state to“ move ”is performed, and the process SC42 for setting the timer is further performed to move to the next state. In addition, if the timer is ON in the process SC5, the process SC51 for outputting the mechanical independent command “standing” and setting the next state to “stop” is performed, and the process SC52 for setting the timer is performed. To the next state.
[0031]
In addition, the mechanical system dependent target command generation unit 113 responds to the mechanical system independent command output from the mechanical system independent command generation unit 112 to a mechanical system dependent target command that matches the mechanical system constituting the external world 104. Is supplied to the mechanism-dependent instruction sequence generator 114. The mechanical system dependent instruction sequence generation unit 114 controls a mechanical system dependent instruction sequence composed of posture transition sequences adapted to the mechanical system according to the mechanical system dependent target instruction supplied from the mechanical system dependent target instruction generation unit 113. This is supplied to the instruction generator 115. The control command generation unit 115 converts the mechanism-dependent command sequence supplied from the mechanism-dependent command sequence generation unit 114 into a control command for the mechanism system, and supplies the control command to the control unit 102.
[0032]
The control unit 102 performs drive control of the drive unit 103 in accordance with a control command supplied from the control command generation unit 115.
[0033]
Here, the mechanical system dependent target instruction generation unit 113 has a function of selecting and outputting one mechanical system dependent target instruction from a plurality of mechanical system dependent target instructions corresponding to the same mechanical system independent instruction. In this embodiment, the mechanical system dependent target command generation unit 113 stores a mechanical system dependent target command corresponding to the mechanical system independent command, and inputs the mechanical system independent target command according to the procedure shown in the flowchart of FIG. A corresponding mechanical system-dependent target instruction is selected stochastically for output.
[0034]
That is, as shown in the flowchart of FIG. 7, when the mechanical system independent command is input, the mechanical system dependent target command generation unit 113 sets the mechanical system independent command to “standing” in the first process S11. It is determined whether or not there is. If the mechanical system independent command is “standing”, the process proceeds to step S12 to output the mechanical system dependent target command “standing”, and the process for the input mechanical system independent command is terminated. If the mechanical independent command is not “standing”, the process proceeds to the next process S13.
[0035]
In this process S13, it is determined whether or not the input mechanical system independent instruction is “move”. If the mechanical independent command is “move”, the process proceeds to step S14 to output the mechanical dependent target command “walking”, and the processing for the inputted mechanical independent command is terminated. If the mechanical system independent instruction is not “move”, the process proceeds to the next process S15.
[0036]
In this process S15, it is determined whether or not the input mechanical system independent command is “laughing”. If the mechanical system independent command is “laughing”, the process proceeds to step S16 to output the mechanical system dependent target command “laughing”, and the process for the input mechanical system independent command is terminated. If the mechanism independent command is not “laughing”, the process proceeds to the next process S17.
[0037]
In this process S17, it is determined whether or not the input mechanical system independent instruction is “sleeping”. If the mechanical independent command is “sleeping”, the process proceeds to step S18 to output the mechanical dependent target command “sleeping”, and the processing for the input mechanical independent command is terminated. If the mechanism-independent instruction is not “sleeping”, the process proceeds to the next process S19.
[0038]
In this process S19, it is determined whether or not the input mechanical system independent instruction is “hello”. If the mechanical independent command is “hello”, the process proceeds to step S20. If the mechanical independent command is not “hello”, the process for the input mechanical independent command is terminated.
[0039]
In the process S20, any number of [1], [2], and [3] is randomly generated.
[0040]
In the next process S21, it is determined whether or not the number generated in the process S20 is [3]. If the number is [3], the process proceeds to step S22 to output the mechanical system dependent target instruction “hello”, and the process for the input mechanical system independent instruction is terminated. If the number is not [3], the process proceeds to the next process S23.
[0041]
In this process S23, it is determined whether or not the number generated in the process S20 is [2]. If the number is [2], the process proceeds to step S24 to output the mechanical system dependent target command “right_hand_up”, and the process for the input mechanical system independent command is terminated. If the number is not [2], the process proceeds to the next process S25.
[0042]
In this process S25, it is determined whether or not the number generated in the process S20 is [1]. If the number is [1], the process proceeds to step S26 to output the mechanical system dependent target instruction “left_hand_up”, and the process for the input mechanical system independent instruction is terminated. If the number is not [1], the process for the input mechanism-independent instruction is terminated.
[0043]
That is, the mechanism-dependent target command generation unit 113 performs “standing”, “move” for five types of mechanism-independent commands “standing”, “move”, “laughing”, “sleeping”, and “hello”. ”,“ Laughing ”,“ sleeping ”,“ hello ”,“ right_hand_up ”and“ left_hand_up ”can be output.
[0044]
Then, the mechanical system dependent instruction generation unit 114 converts the mechanical system dependent target instruction into a mechanical system dependent instruction sequence and supplies it to the control instruction generation unit 115. In other words, the mechanical system dependent instruction generation unit 114 supplies a mechanical system dependent instruction sequence from the current attitude to the attitude corresponding to the given mechanical system dependent target instruction to the control instruction generation unit 115.
That is, in this embodiment, the mechanical system dependent target instruction generation unit 113 and the mechanical system dependent instruction sequence generation unit 114 convert the mechanical system independent instruction supplied from the mechanical system independent instruction generation unit 111 into a mechanical system dependent instruction. The mechanism-dependent instruction conversion unit 116 is configured.
[0045]
Here, for example, in the self-contained walking robot apparatus, according to the control commands given to the control unit 102 by the CPU unit 101 having the software configuration shown in FIG. For the “move”, “laughing”, “sleeping”, and “hello”, seven types of mechanism-dependent target instructions “standing”, “move”, “laughing”, When taking the posture transition corresponding to “sleeping”, “hello”, “right_hand_up”, “left_hand_up”, there is a state that cannot be changed directly, so define “sitting” posture as an intermediate posture, Transition to the desired posture is made via the posture. The restraint state of this posture transition is shown in FIG. That is, when transitioning from the “sleeping” posture to the “walking” posture, a posture transition sequence of “sitting” → “standing” → “walking” is output from the CPU unit 101 to the control unit 102 as a control command.
[0046]
In this way, a mechanical system dependent instruction sequence is generated by the mechanical system dependent target instruction generating unit 113 and the mechanical system dependent instruction sequence generating unit 114 in accordance with the mechanical system independent instruction given to the mechanical system independent instruction generating unit 112. By converting the dependency instruction sequence into a control instruction by the control instruction generation unit 115, for example, when a movement instruction is issued by a mechanism independent instruction “move (parameter angle [deg]”, the tire type robot changes the rotation direction of the driving wheel. It is possible to execute a movement command by converting it into a designated movement command, and in a quadruped walking robot, it is possible to execute a movement command by converting it into a movement command that moves each leg according to a walking pattern. In addition, the mechanical system independent command “hello” is converted into a command that corresponds to, for example, a right-turning operation three times on the spot in a tire type robot. In a walking robot, for example, the mechanism independent command “hello” can be executed by either type of robot by converting it into a command corresponding to a motion of raising the right forefoot and swinging in a sitting posture. In this way, even in the same instruction, different movements are made to correspond to each other in the mechanism system, so that the software in the upper layer can be used at the source code or binary level by the mechanism system dependent target instruction generation unit 113. It is possible to promote parts development and reuse software that does not depend on the mechanical system, and software development can proceed efficiently.
[0047]
In addition, the mechanical system dependent target instruction generation unit 113 performs one mechanical system dependency from three types of mechanical system dependent target instructions “hello”, “right_hand_up”, and “left_hand_up” for the same mechanical system independent instruction “hello”. By having a function of selecting and outputting target commands, it is possible to increase the number of mechanism-dependent target commands and to provide diversity in robot operation.
[0048]
FIG. 9 is a diagram schematically showing a basic configuration of a mechanism system that forms an external portion of a self-supporting quadruped walking robot apparatus 200 configured by applying the present invention.
[0049]
This self-supporting walking robot apparatus 200 is an articulated robot that walks independently with four legs, and has a torso part 201 with a right front leg part 202, a left front leg part 203, a right rear leg part 204, a left rear leg part 205, and The neck head 206 is connected through joint portions 211, 212, 213, 214, and 215, respectively.
[0050]
The right front leg portion 202 is connected to the body portion 201 via a joint portion 211 corresponding to a shoulder joint, and is opened by driving two servo motors (not shown) provided as actuators in the joint portion 211. And a function to rotate back and forth. The right front leg portion 202 includes a right front leg upper portion 202U and a right front leg lower portion 202L which are connected via a joint portion 216 corresponding to a knee joint, and a servo motor (not shown) provided as an actuator on the joint portion 216. It has a function of rotating the right front leg lower portion 202L back and forth by driving.
[0051]
The left front leg 203 is connected to the body 201 via a joint 212 corresponding to a shoulder joint, and is driven by two servo motors (not shown) provided as actuators on the joint 212. It has a function to open legs and a function to rotate back and forth. The left front leg 203 includes a left front leg upper part 203U and a left front leg lower part 203L connected via a joint part 217 corresponding to the knee joint, and a servo motor (not shown) provided as an actuator in the joint part 217. It has a function of rotating the left front leg lower portion 203L back and forth by driving.
[0052]
The right rear leg portion 204 is connected to the body portion 201 via a joint portion 213 corresponding to a hip joint, and is rotated back and forth by driving a servo motor (not shown) provided as an actuator in the joint portion 213. It has the function to do. Further, the right rear leg portion 204 includes a right rear leg upper portion 204U and a right rear leg lower portion 204L connected via a joint portion 218 corresponding to a knee joint, and is provided in the joint portion 218 as an actuator (not shown). The right rear leg lower portion 204L is rotated forward and backward by driving the servo motor.
[0053]
The left hind leg portion 205 is connected to the body portion 201 via a joint portion 214 corresponding to a hip joint, and is rotated back and forth by driving a servo motor (not shown) provided as an actuator in the joint portion 214. It has the function to do. The left hind leg portion 205 includes a left hind leg upper portion 205U and a left hind leg lower portion 205L which are connected via a joint portion 219 corresponding to a knee joint, and is provided in the joint portion 219 as an actuator (not shown). It has the function of rotating the lower left leg lower portion 205L back and forth by driving the servo motor.
[0054]
Further, the neck head portion 206 is connected to the body portion 201 via a joint portion 215 corresponding to the neck joint, and is driven by two servo motors (not shown) provided as actuators on the joint portion 215. It has a function of rotating in the vertical direction and the horizontal direction.
[0055]
In this self-supporting walking robot apparatus 200, the mechanical system independent target generated by the mechanical system independent command generation unit 112 provided in the CPU unit 101 having the software configuration shown in FIG. The instruction generation unit 113, the mechanical system dependent instruction sequence generation unit 114, and the control instruction generation unit 115 convert the control instruction to a control system according to the mechanical system and give it to the control unit 102.
[0056]
That is, the mechanism independent command “standing” is converted into a control command including a posture transition sequence to standing. The control unit 102 drives the servo motor of the drive unit 103 in accordance with this control command, and stands with four legs, a right front leg 202, a left front leg 203, a right rear leg 204, and a left rear leg 205. Transition to a “standing” posture.
[0057]
In addition, the mechanism independent command “move (parameter angle [deg]” is converted into a control command consisting of a posture transition sequence to walking. Specifically, angle [deg] is a positive value using angle [deg] as a parameter. If so, the control unit 102 generates a control command composed of a posture transition sequence of a walking pattern for moving forward, and the control unit 102 drives the servo motor of the drive unit 103 in response to the control command, and the right front leg unit 202, A transition is made to a “walking” posture in which the left front leg 203, the right rear leg 204, and the left rear leg 205 are walked with four legs.
[0058]
Further, the mechanism independent command “sleeping” is converted into a control command including a posture transition sequence to sleeping. In response to this control command, the control unit 102 drives the servo motor of the drive unit 103 to extend the four legs of the right front leg 202, the left front leg 203, the right rear leg 204, and the left rear leg 205. Transition to a “sleeping” posture.
[0059]
Further, the mechanical system independent command “hello” is converted into a control command including a posture transition sequence to hello. In response to this control command, the control unit 102 drives the servo motor of the drive unit 103 to make a transition to a “hello” posture in which the user sits and bows.
[0060]
Further, the mechanical system independent command “laughing” is converted into a control command including a posture transition sequence to laughing. In response to this control command, the control unit 102 drives the servo motor of the drive unit 103 to shift to the “laughing” posture in which the right front leg 202 and the left front leg 203 are raised.
[0061]
Further, the mechanical system independent command “hello” is converted into a control command consisting of a posture transition sequence to hello, a control command consisting of a posture transition sequence to right_hand_up, or a control command consisting of a posture transition sequence to left_hand_up. The control unit 102 makes a transition to the “hello” posture in which the user sits and bows by driving the servo motor of the driving unit 103 in accordance with a control command including the posture transition sequence to the hello. Further, the control unit 102 drives the servo motor of the driving unit 103 in accordance with a control command including the posture transition sequence to the right_hand_up, thereby sitting and shifting to the “right_hand_up” posture in which the right front leg 202 is raised. . Furthermore, the control unit 102 drives the servo motor of the driving unit 103 in accordance with a control command including the posture transition sequence to the left_hand_up, thereby sitting and transitioning to the “left_hand_up” posture in which the left front leg 203 is raised. .
[0062]
Here, the mechanical system dependent target instruction generation unit 113 provided in the CPU unit 101 having the software configuration shown in FIG. 2 performs the process according to the procedure shown in the flowchart of FIG. For the system independent instruction “hello”, one mechanism system dependent target instruction is selected stochastically from 3 types of mechanism system dependent target instructions “hello”, “right_hand_up”, “left_hand_up” and output. The mechanism-dependent target command may be generated according to the processing procedure shown in the flowchart of FIG.
[0063]
In the case of the processing procedure shown in the flowchart of FIG. 10, when the mechanical system dependent target command generation unit 113 receives a mechanical system independent command, the input mechanical system independent command is “standing” in the first process S31. It is determined whether or not. If the mechanical system independent command is “standing”, the process proceeds to step S32 to output the mechanical system dependent target command “standing”, and the process for the input mechanical system independent command is terminated. If the mechanism independent command is not “standing”, the process proceeds to the next process S33.
[0064]
In this process S33, it is determined whether or not the input mechanical system independent instruction is “move”. If the mechanical independent command is “move”, the process proceeds to step S34 to output the mechanical dependent target command “walking”, and the processing for the input mechanical independent command is terminated. If the mechanism independent command is not “move”, the process proceeds to the next process S35.
[0065]
In this process S35, it is determined whether or not the input mechanical system independent command is “laughing”. If the mechanical system independent command is “laughing”, the process proceeds to step S36 to output the mechanical system dependent target command “laughing”, and the process for the input mechanical system independent command is terminated. If the mechanism independent command is not “laughing”, the process proceeds to the next step S37.
[0066]
In this process S37, it is determined whether or not the input mechanical system independent instruction is “sleeping”. If the mechanical independent command is “sleeping”, the process proceeds to step S38, where the mechanical dependent target command “sleeping” is output, and the processing for the input mechanical independent command is terminated. On the other hand, if the mechanism independent command is not “sleeping”, the process proceeds to the next process S39.
[0067]
In this process S39, it is determined whether or not the inputted mechanical independent command is “hello”. If the mechanical independent command is “hello”, the process proceeds to step S40. If the mechanical independent command is not “hello”, the processing for the input mechanical independent command is terminated.
[0068]
In the process S40, it is determined whether the current posture is a standing state, a sitting state, or a sleeping state. If the current posture is in the standing state, the process proceeds to step S41 to output the mechanical system dependent target command “standing_hello”, and the process for the input mechanical system independent command is terminated. On the other hand, if the current posture is in the sitting state or sleeping state, the process shifts to step S42 to output the mechanical system dependent target command “hello”, and the processing for the input mechanical system independent command is terminated.
[0069]
That is, the mechanism-dependent target command generation unit 113 performs “standing”, “move” for five types of mechanism-independent commands “standing”, “move”, “laughing”, “sleeping”, and “hello”. ”,“ Laughing ”,“ sleeping ”,“ hello ”, and“ standing_hello ”are output.
[0070]
In this case, the mechanism independent command “hello” is converted into a control command consisting of a posture transition sequence to hello or a control command consisting of a posture transition sequence to standing_hello, and supplied to the control unit 102.
[0071]
The control unit 102 makes a transition to the “hello” posture in which the user sits and bows by driving the servo motor of the driving unit 103 in accordance with a control command including the posture transition sequence to the hello. Further, the control unit 102 drives the servo motor of the driving unit 103 in accordance with a control command including the posture transition sequence to the standing_hello, thereby making a transition to the “standing_hello” posture in which the user stands and bows.
[0072]
As described above, the mechanical system dependent target command generation unit 113 responds to the same mechanical system independent command “hello” with different mechanical system dependent target commands corresponding to the posture at the time when the mechanical system independent command is input. By having the function of outputting “hello” and “standing_hello”, it is possible to give diversity to the operation of the robot.
[0073]
Further, the mechanism independent command generation unit 112 provided in the CPU unit 101 having the software configuration shown in FIG. 2 described above is a condition that operates based on the input from the sensor processing unit 111 as shown in FIG. The processing functions of the determination unit 112A and the emotion processing unit 112B may be provided.
[0074]
In this mechanical system independent command generation unit 112, the condition determination unit 112A has five types of mechanical system independent commands “standing”, “move”, “sleeping”, and the like according to the procedure shown in the flowcharts of FIGS. Generates “hello” and “laughing”.
[0075]
The emotion processing unit 111B changes the emotional state based on the input from the sensor processing unit 111 and outputs a state variable representing the emotional state. Here, two elements of joy and anger indicating emotion are used as emotion variables.
[0076]
Then, by passing the emotional variable generated by the mechanical system independent command generation unit 112 as an argument together with a mechanical system dependent target command corresponding to the mechanical system independent command or a mechanical system dependent command sequence, the same mechanical system depending on the emotion In response to the independent command, the control unit 102 performs different control operations according to emotions.
[0077]
In this embodiment, the emotional state is a two-dimensional vector em,
em = [joy, anger]
It shall be shown in Here, joy expresses a joy state, takes an integer value from 0 to 255, and interprets that the larger the value, the greater the joy. In addition, anger expresses an anger state, takes an integer value from 0 to 255, and interprets that the larger the value, the greater the joy.
[0078]
Then, the emotion processing unit 112B performs emotion processing SE for changing the emotional state em according to the procedure shown in the flowchart of FIG. 12 based on the input from the sensor processing unit 111.
[0079]
That is, in this emotion processing SE, as shown in FIG. 12, first, processing SE1 for determining on / off of the sound sensor is performed, and if the sound sensor is on, the processing shifts to processing SE2 to increase the joy value by “10”. Then, the process proceeds to processing SE3. If the sound sensor is off, the process immediately proceeds to step SE3.
[0080]
In this process SE3, it is determined whether the pre-failure sensor is on or off. If the pre-failure sensor is on, the process proceeds to process SE4, the anger value is increased by "10", and the process proceeds to process SE5. If the pre-failure sensor is off, the process immediately proceeds to process SE5.
[0081]
In this process SE5, it is determined whether the failure left sensor is on or off. If the failure left sensor is on, the process proceeds to process SE6, the anger value is increased by "50", and the process proceeds to process SE7. If the failure left sensor is off, the process immediately proceeds to step SE7.
[0082]
In this process SE7, it is determined whether the failure right sensor is on or off. If the failure right sensor is on, the process proceeds to process SE8, the anger value is increased by "50", and the process proceeds to process SE9. If the failure left sensor is off, the process immediately proceeds to step SE9.
[0083]
In this process SE9, the joy value and the anger value are respectively decreased by “1”.
[0084]
In the next processing SE10, the joy value is set to “0” when the joy value is smaller than “0”, and the joy value is set to “255” when the joy value is larger than “255”.
[0085]
In the next process SE11, the anger value is set to “0” when the anger value is smaller than “0”, and the anger value is set to “255” when the anger value is larger than “255”.
[0086]
That is, in the emotion processing SE shown in FIG. 12, the joy value and the anger value increase corresponding to the on / off of each sensor, and the emotion state em is expressed by a simple model in which they decrease with time. give. In this embodiment, the emotional state em is input to the mechanical system dependent target command generation unit 113 and also to the control command generation unit 115.
[0087]
Then, the mechanical system dependent target command generation unit 113 receives the emotional state em together with the mechanical system independent command from the mechanical system independent command generation unit 112, so that the mechanical system dependent target instruction 113 follows the processing procedure shown in the flowchart of FIG. Generate an instruction.
[0088]
In the case of the processing procedure shown in the flowchart of FIG. 13, when the mechanical system independent target command generation unit 113 receives a mechanical system independent command, the input mechanical system independent command is “standing” in the first process S51. It is determined whether or not. If the mechanical system independent command is “standing”, the process proceeds to step S52 to output the mechanical system dependent target command “standing”, and the processing for the input mechanical system independent command is terminated. If the mechanical independent command is not “standing”, the process proceeds to the next process S53.
[0089]
In this process S53, it is determined whether or not the input mechanical system independent instruction is “move”. If the mechanical independent command is “move”, the process proceeds to step S54 to output the mechanical dependent target command “walking”, and the processing for the input mechanical independent command is terminated. If the mechanism independent command is not “move”, the process proceeds to the next process S55.
[0090]
In this process S55, it is determined whether or not the input mechanical system independent command is “laughing”. If the mechanical system independent command is “laughing”, the process proceeds to step S56 to output the mechanical system dependent target command “laughing”, and the processing for the input mechanical system independent command is terminated. If the mechanism independent command is not “laughing”, the process proceeds to the next process S57.
[0091]
In this process S57, it is determined whether or not the input mechanical system independent instruction is “sleeping”. If the mechanical independent command is “sleeping”, the process proceeds to step S58 to output the mechanical dependent target command “sleeping”, and the processing for the input mechanical independent command is terminated. If the mechanical system independent command is not “sleeping”, the process proceeds to the next process S59.
[0092]
In this process S59, it is determined whether or not the input mechanical system independent instruction is “hello”. If the mechanical independent command is “hello”, the process proceeds to step S60. If the mechanical independent command is not “hello”, the processing for the input mechanical independent command is terminated.
[0093]
In the process S60, it is determined whether or not the joy value, which is a state variable indicating the emotional state em, is greater than the threshold value Thjoy. If the joy value is larger than the threshold value Thjoy, the process proceeds to step S61 to output the mechanical system dependent target command “hello-joy”, and the process for the input mechanical system independent command is terminated. If the joy value is not greater than the threshold value Thjoy, the process proceeds to step S62.
[0094]
In this process 62, it is determined whether or not the anger value that is a state variable indicating the emotional state em is larger than the threshold value Thanger. If the anger value is larger than the threshold value Thanger, the process proceeds to step S63 to output the mechanical system dependent target command “hello-anger”, and the process for the input mechanical system independent command is terminated. On the other hand, if the anger value is not larger than the threshold value Thanger, the process shifts to step S64 to output the mechanical system dependent target command “hello”, and the process for the input mechanical system independent command is terminated.
[0095]
That is, the mechanism-dependent target command generation unit 113 performs “standing”, “move” for five types of mechanism-independent commands “standing”, “move”, “laughing”, “sleeping”, and “hello”. ”,“ Laughing ”,“ sleeping ”,“ hello ”,“ hello-joy ”, and“ hello-anger ”are output.
[0096]
In this case, the mechanism-independent command “hello” is a control command consisting of a posture transition sequence to hello, a control command consisting of a posture transition sequence to hello-joy, or a control command consisting of a posture transition sequence to hello-anger. And is supplied to the control unit 102.
[0097]
The control unit 102 makes a transition to the “hello” posture in which the user sits and bows by driving the servo motor of the driving unit 103 in accordance with a control command including the posture transition sequence to the hello. Further, the control unit 102 drives the servo motor of the drive unit 103 in accordance with a control command including a posture transition sequence to the hello-joy, and sits and raises both right front legs “hello-joy”. Transition to posture. Further, the control unit 102 drives the servo motor of the drive unit 103 in accordance with a control command including a posture transition sequence to the hello-anger, thereby sitting and raising the left front leg portion. Transition to.
[0098]
As described above, the mechanical system dependent target command generation unit 113 responds to the same mechanical system independent command “hello” with different mechanical system dependent targets corresponding to the emotional state at the time when the mechanical system independent command is input. By having the function of outputting the commands “hello”, “hello-joy”, and “hello-anger”, it is possible to give diversity to the operation of the robot.
[0099]
Similarly, for other mechanical independent commands other than the mechanical independent command “hello”, another mechanical dependent target command is generated according to the value of joy, anger which is a state variable indicating the emotional state em indicating the emotional state. It is also possible to do so.
[0100]
Furthermore, the control command generation unit 115 supplies the control command to the control unit 102 with the speed of movement varied according to the emotional state em when the emotional state em is input as a parameter together with the mechanism-dependent command sequence. Can do.
[0101]
That is, in this embodiment, the mechanism-dependent instruction sequence is determined by searching for the mechanism-dependent target instruction using a storage structure that can be represented as a graph structure as shown in FIG. A control command generation program and data are stored corresponding to the edges defined between the nodes. The control command generator 115 generates this control command corresponding to the edge between nodes and supplies it to the controller 102.
[0102]
Here, as described above, the mechanism-dependent target instruction generation unit selects a mechanism-dependent target instruction from a plurality of mechanism-dependent target instructions corresponding to the same mechanism-independent instruction and outputs the function-dependent function. When the target command generation unit is given to give diversity to the operation of the robot, it is necessary to add a selection program corresponding to it to add a new mechanism independent command. Further, when increasing the mechanism-dependent instructions, it is necessary to add an if statement in an existing program. However, by registering the correspondence between the mechanical system independent instruction and the mechanical system dependent instruction in advance, registration to the storage unit and the mechanical system independent instruction can be performed without directly describing the mechanical system independent instruction and the mechanical system dependent instruction in the program. It is possible to find a corresponding mechanism-dependent instruction by performing a search using a key.
[0103]
  That is, for example, as shown in FIG. 14, a mechanism independent instruction conversion unit 116 that converts a mechanism independent instruction supplied from the mechanism independent instruction generating unit 112 into a mechanism dependent instruction is changed to a mechanism independent instruction-mechanism dependent. An instruction correspondence storage unit 116A and a mechanical system dependent instruction search unit 116B are provided, and each mechanical system dependent instruction is registered and input in the mechanical system independent instruction-mechanism dependent instruction correspondence storage unit 116A as a retrieval key. This mechanism system before the mechanical system independent commandIndependenceOne or more corresponding mechanism-dependent instructions registered using the instruction as a search key are extracted, and one mechanism-dependent instruction is selected from the extracted mechanism-dependent instructions and output.
[0104]
The mechanical system independent instruction-mechanical system dependent instruction correspondence storage unit 116A is realized, for example, by using a technique called Map as information representation of a computer. Map is information storage software provided as a basic library by many compilers such as the programming language C ++ and development environment software, and is a technique for searching using a search key. How to use simple Map <T, Key> and List <T> will be described with reference to an example of a program list shown in FIG.
[0105]
In this example, the name is registered in List, and the surname is registered in Map as the search key. That is, in the first to fifth lines of the program list shown in FIG. 15, the names masahiro, miu, and hiroko are registered in the list, and the names masaki, mao, and yoko are registered in another list. In line 17, the former List is registered in the Map with the search key “fujita”, and the latter List is registered in the Map with the search key “komoriya”. In lines 20 and 21, a search key “fujita” is used to extract a list from the map, and the first string in the list is extracted. What is contained in name1 that is the result of this differs depending on the implementation method of the class named List, but the implementation that “masahiro” that is registered first appears.
[0106]
Using such a map to register multiple mechanism-dependent instructions DepCMD using the mechanism-independent instruction IndCMD as a search key, for example,
Map <List <DepCMD>, IndCMD> map0fInd_DependCMD;
List <DepCMD> temp = map0fInd_DependCMD [Hello];
temp.push_back (Right_HandUp);
Thus, the mechanical system dependent instruction Right_HandUp is registered in the mechanical system independent instruction Hello.
[0107]
Therefore, the mechanical system dependent instruction conversion unit 116 may receive a mechanical system independent instruction, use it as a key, take out a List, select one mechanical system dependent instruction from this list, and output it. Various methods in the mechanical system dependent target instruction generation unit 113 described above can be used to select the mechanical system dependent instruction.
[0108]
【The invention's effect】
  As described above, in the robot apparatus according to the present invention,A mechanical system dependent target instruction generating unit that receives a mechanical system independent instruction and outputs a mechanical system dependent target instruction in accordance with the mechanical system in response to the mechanical system independent instruction, and the mechanical system dependent target instruction generating unit. A mechanism-dependent instruction conversion unit having a mechanism-dependent instruction sequence generating unit that generates a mechanism-dependent instruction sequence composed of posture transition sequences adapted to the above-mentioned mechanism system in accordance with a target mechanism-dependent target commandThe mechanism system can perform an operation corresponding to the mechanism system independent instruction, and the mechanism system independent instruction is registered as a search key for one or more mechanism system dependent instructions. This mechanism system before the independent commandIndependenceOne or more corresponding mechanism-dependent instructions registered using the instruction as a search key are extracted, and the mechanism-dependent instruction conversion function for selecting and outputting one mechanism-dependent instruction from the extracted mechanism-dependent instructions PartThe above-mentioned mechanism-dependent target instruction generation unit has a function to select and output one mechanism-dependent target instruction from a plurality of mechanism-dependent target instructions corresponding to the same mechanism-dependent independent instruction.By having it, it is possible to perform complex operations with a small amount of description.
Further, in the robot apparatus according to the present invention, a mechanical system independent target command generation unit that receives a mechanical system independent command as input and outputs a mechanical system dependent target command according to the mechanical system according to the mechanical system independent command; A mechanism system dependent instruction sequence generating unit that generates a mechanism system dependent instruction sequence composed of posture transition sequences in accordance with the mechanism system according to a mechanism system dependent target command supplied from the mechanism system dependent target instruction generating unit. By providing an instruction conversion unit, an operation corresponding to a mechanism-independent instruction can be performed in the mechanism system, and the mechanism-independent instruction is registered as a search key and input for one or more mechanism-dependent instructions. One or more corresponding mechanism-dependent instructions registered using the mechanism-independent instruction as a search key are extracted from the mechanism-independent instruction, and one mechanism-system-dependent instruction is extracted from the extracted mechanism-dependent instructions. The above-mentioned mechanism system dependent instruction conversion unit has a function to select and output instructions, and different mechanism systems corresponding to the emotional state at the time the mechanism system independent instruction is input for the same mechanism system independent command By providing the mechanism-dependent target command generation unit with a function of outputting a dependent target command, a complex operation can be performed with a small amount of description.
[0109]
  In the control method of the robot apparatus according to the present invention, the mechanism independent command that is not dependent on the mechanism system is converted to generate a mechanism dependent command that matches the mechanism system to perform drive control of the drive unit. One or more mechanical system dependent instructions are registered as a mechanical system independent instruction search key.IndependenceOne or more corresponding mechanism-dependent instructions registered using the instruction as a search key are extracted, one mechanism-dependent instruction is selected from the extracted mechanism-dependent instructions, and the drive control of the drive unit is performed.And randomly select one mechanical system dependent target instruction from a plurality of mechanical system dependent target instructions corresponding to the same mechanical system independent instruction, and generate a mechanical system dependent instruction corresponding to the mechanical system dependent target instruction. To control the drive unitAs a result, complex operation control can be performed with a small amount of description.
  Further, in the control method of the robot apparatus according to the present invention, when the mechanism independent command that is not dependent on the mechanism system is converted to generate a mechanism dependent command that matches the mechanism system, and the drive control of the drive unit is performed. One or more mechanical system dependent instructions are registered as a search key for a mechanical system independent instruction, and one or more corresponding ones registered with the mechanical system independent instruction as a search key before the input mechanical system independent instruction The mechanical system dependent instruction is taken out, one mechanical system dependent instruction is selected from the extracted mechanical system dependent instruction, the drive unit is controlled, and the same mechanical system independent instruction Select a different mechanism-dependent target command corresponding to the emotional state at the time of input, generate a mechanism-dependent command corresponding to the mechanism-dependent target command, and perform drive control of the drive unit More, it is possible to perform a complicated operation control with less amount of description.
[0110]
Therefore, according to the present invention, it is possible to provide various types of robot apparatuses having different types of mechanism systems that can be controlled by a common control system using mechanism system independent commands independent of the mechanism system, and a control method thereof. it can. As a result, even with the same instruction, different movements can be made to correspond to the mechanism system, and the software on the upper layer can be used at the source code or binary level by the mechanism system dependent instruction converter. As a result, it is possible to promote software componentization and reuse of the software that does not depend on the mechanism system, and software development can proceed efficiently.
[Brief description of the drawings]
FIG. 1 is a block diagram showing a basic configuration of a robot apparatus according to the present invention.
FIG. 2 is a diagram showing a software configuration of a CPU unit in the robot apparatus.
FIG. 3 is a flowchart showing a procedure for determining a state transition rule of a mechanism independent command generation unit in the robot apparatus.
FIG. 4 is a flowchart showing a processing procedure of “rest” in a procedure for determining a state transition rule of the mechanical system independent instruction generation unit.
FIG. 5 is a flowchart showing a “stop” processing procedure in a procedure for determining a state transition rule of the mechanical system independent instruction generation unit;
FIG. 6 is a flowchart showing a “move” processing procedure in a procedure for determining a state transition rule of the mechanical system independent instruction generation unit;
FIG. 7 is a flowchart showing a processing procedure for generating a mechanical system dependent target command by a mechanical system dependent target command generation unit in the robot apparatus.
FIG. 8 is a state transition diagram illustrating a graph structure for generating a mechanism-dependent instruction in a mechanism-dependent instruction sequence generation unit in the robot apparatus.
FIG. 9 is a diagram schematically showing a basic configuration of a mechanism system that forms an external part of a self-supporting quadruped walking robot apparatus configured by applying the present invention.
FIG. 10 is a flowchart showing another processing procedure for generating a mechanical system dependent target command by the mechanical system dependent target command generation unit.
FIG. 11 is a diagram illustrating a configuration example of a mechanism independent command generation unit in the robot apparatus.
FIG. 12 is a flowchart showing a procedure of emotion processing in an emotion processing unit provided in the mechanical system independent command generation unit.
FIG. 13 is a flowchart showing still another processing procedure for generating a mechanical system dependent target command by the mechanical system dependent target command generation unit.
FIG. 14 is a diagram showing a configuration of a mechanism-independent instruction generation unit having a mechanism-dependent instruction search function using Map provided in the mechanism-independent instruction generation unit;
FIG. 15 is a diagram showing a program list used to explain how to use Map <T, Key> and List <T>.
[Explanation of symbols]
DESCRIPTION OF SYMBOLS 100 Robot apparatus, 101 CPU part, 102 Control part, 103 Driving part, 104 Outside world, 105 Sensor part, 111 Sensor processing part, 112 Mechanical system independent command generation part, 113 Mechanical system dependent target command generation part, 114 Mechanical system dependence command Sequence generator, 115 control command generator, 116 mechanism dependent command converter

Claims (4)

駆動部により駆動される少なくとも1つの機構部を有する機構系と、
機構系に依存しない機構系独立命令を入力とし、この機構系独立命令を上記機構系にあわせた機構系依存命令に変換する機構系依存命令変換部と、
この機構系依存命令変換部から供給される機構系依存命令を上記機構系の制御命令に変換する制御命令変換部と、
この制御依存命令変換部から供給される制御命令に応じて上記駆動部の駆動制御を行う制御部とを備え、
上記機構系依存命令変換部は、1つ以上の機構系依存命令について機構系独立命令を検索のキーとして登録し、入力された機構系独立命令から先にこの機構系独立命令を検索のキーとして登録された対応する1つ以上の機構系依存命令を取り出し、取り出された機構系依存命令から1の機構系依存命令を選択して出力する機能を有し、
上記機構系依存命令変換部は、機構系独立命令を入力とし、この機構系独立命令に応じて上記機構系にあわせた機構系依存目標命令を出力する機構系依存目標命令発生部と、この機構系依存目標命令発生部から供給される機構系依存目標命令に応じて上記機構系にあわせた姿勢遷移列からなる機構系依存命令列を発生する機構系依存命令列発生部と有し、
上記制御命令変換部は、この機構系依存命令列発生部から供給される機構系依存命令列を上記機構系の制御命令に変換し、
上記機構系依存目標命令発生部は、同じ機構系独立命令に対応する複数の機構系依存目標命令から1の機構系依存目標命令を確率的に選択して出力する機能を有する
ことを特徴とするロボット装置。
A mechanism system having at least one mechanism section driven by the driving section;
A mechanism-dependent instruction conversion unit that receives a mechanism-independent instruction that does not depend on the mechanism system and converts the mechanism-independent instruction into a mechanism-dependent instruction that matches the mechanism system;
A control command conversion unit that converts the mechanical system dependent command supplied from the mechanical system dependent command conversion unit to the control command of the mechanical system;
A control unit that performs drive control of the drive unit according to a control command supplied from the control-dependent command conversion unit,
The mechanical system dependent command converter registers the mechanical system independent instructions as a search key for one or more mechanical system dependent instructions, as a key for searching the mechanism-based independent instructions from the input mechanism based independent instructions before One or more registered corresponding mechanical system dependent instructions are fetched, and one mechanical system dependent instruction is selected from the retrieved mechanical system dependent instructions and output .
The mechanism-dependent instruction conversion unit receives a mechanism-independent instruction and outputs a mechanism-dependent target instruction corresponding to the mechanism system according to the mechanism-independent instruction. A mechanism-dependent instruction sequence generator that generates a mechanism-dependent instruction sequence consisting of a posture transition sequence that matches the mechanism system according to a mechanism-dependent target instruction supplied from a system-dependent target instruction generator;
The control command conversion unit converts the mechanical system dependent command sequence supplied from the mechanical system dependent command sequence generation unit into a control command of the mechanical system,
The mechanical system dependent target instruction generation unit has a function of selecting and outputting one mechanical system dependent target instruction from a plurality of mechanical system dependent target instructions corresponding to the same mechanical system independent instruction. Robot device.
駆動部により駆動される少なくとも1つの機構部を有する機構系と、  A mechanism system having at least one mechanism section driven by the driving section;
機構系に依存しない機構系独立命令を入力とし、この機構系独立命令を上記機構系にあわせた機構系依存命令に変換する機構系依存命令変換部と、  A mechanism-dependent instruction conversion unit that receives a mechanism-independent instruction that does not depend on the mechanism system and converts the mechanism-independent instruction into a mechanism-dependent instruction that matches the mechanism system;
この機構系依存命令変換部から供給される機構系依存命令を上記機構系の制御命令に変換する制御命令変換部と、  A control command conversion unit that converts the mechanical system dependent command supplied from the mechanical system dependent command conversion unit into the control command of the mechanical system;
この制御依存命令変換部から供給される制御命令に応じて上記駆動部の駆動制御を行う制御部とを備え、  A control unit that performs drive control of the drive unit in accordance with a control command supplied from the control-dependent command conversion unit,
上記機構系依存命令変換部は、1つ以上の機構系依存命令について機構系独立命令を検索のキーとして登録し、入力された機構系独立命令から先にこの機構系独立命令を検索のキーとして登録された対応する1つ以上の機構系依存命令を取り出し、取り出された機構系依存命令から1の機構系依存命令を選択して出力する機能を有し、  The mechanism-dependent instruction conversion unit registers a mechanism-independent instruction as a search key for one or more mechanism-dependent instructions, and uses the mechanism-independent instruction as a search key before the input mechanism-related instruction. One or more registered corresponding mechanical system dependent instructions are fetched, and one mechanical system dependent instruction is selected from the retrieved mechanical system dependent instructions and output.
上記機構系依存命令変換部は、機構系独立命令を入力とし、この機構系独立命令に応じて上記機構系にあわせた機構系依存目標命令を出力する機構系依存目標命令発生部と、この機構系依存目標命令発生部から供給される機構系依存目標命令に応じて上記機構系にあわせた姿勢遷移列からなる機構系依存命令列を発生する機構系依存命令列発生部と有し、  The mechanism-dependent instruction conversion unit receives a mechanism-independent instruction and outputs a mechanism-dependent target instruction corresponding to the mechanism system according to the mechanism-independent instruction. A mechanism-dependent instruction sequence generator that generates a mechanism-dependent instruction sequence consisting of a posture transition sequence that matches the mechanism system according to a mechanism-dependent target instruction supplied from a system-dependent target instruction generator;
上記制御命令変換部は、この機構系依存命令列発生部から供給される機構系依存命令列を上記機構系の制御命令に変換し、  The control command conversion unit converts the mechanical system dependent command sequence supplied from the mechanical system dependent command sequence generation unit into the control command of the mechanical system,
上記機構系依存目標命令発生部は、同じ機構系独立命令に対して、その機構系独立命令が入力された時点での感情状態に対応して異なる機構系依存目標命令を出力する機能を有することを特徴とするロボット装置。  The mechanical system dependent target command generation unit has a function of outputting different mechanical system dependent target commands corresponding to the emotional state at the time when the mechanical system independent command is input with respect to the same mechanical system independent command. A robotic device characterized by
駆動部により駆動される少なくとも1つの機構部を有する機構系からなるロボット装置の制御方法であって、  A method for controlling a robot apparatus comprising a mechanism system having at least one mechanism section driven by a drive section,
機構系に依存しない機構系独立命令を変換することにより上記機構系にあわせた機構系依存命令を生成して上記駆動部の駆動制御を行うに当たり、  In performing the drive control of the drive unit by generating a mechanism-dependent instruction that matches the mechanism system by converting a mechanism-independent instruction that does not depend on the mechanism system,
1つ以上の機構系依存命令について機構系独立命令の検索のキーとして登録し、  Register one or more mechanism-dependent instructions as a key for searching for mechanism-independent instructions,
入力された機構系独立命令から先にこの機構系独立命令を検索のキーとして登録された  This mechanism independent command was registered as a search key before the input mechanical command. 対応する1つ以上の機構系依存命令を取り出し、Retrieve one or more corresponding mechanism-dependent instructions,
取り出された機構系依存命令から1の機構系依存命令を選択して、上記駆動部の駆動制御を行い、  Select one mechanical system dependent instruction from the extracted mechanical system dependent instructions and perform drive control of the drive unit,
同じ機構系独立命令に対応する複数の機構系依存目標命令から1の機構系依存目標命令を確率的に選択して、その機構系依存目標命令に応じた機構系依存命令を生成して上記駆動部の駆動制御を行うことを特徴とするロボット装置の制御方法。  Probably select one mechanical system dependent target instruction from a plurality of mechanical system dependent target instructions corresponding to the same mechanical system independent instruction, generate a mechanical system dependent instruction corresponding to the mechanical system dependent target instruction, and drive the above A control method of a robot apparatus, characterized in that drive control of a part is performed.
駆動部により駆動される少なくとも1つの機構部を有する機構系からなるロボット装置の制御方法であって、  A method for controlling a robot apparatus comprising a mechanism system having at least one mechanism section driven by a drive section,
機構系に依存しない機構系独立命令を変換することにより上記機構系にあわせた機構系依存命令を生成して上記駆動部の駆動制御を行うに当たり、  In performing the drive control of the drive unit by generating a mechanism-dependent instruction that matches the mechanism system by converting a mechanism-independent instruction that does not depend on the mechanism system,
1つ以上の機構系依存命令について機構系独立命令の検索のキーとして登録し、  Register one or more mechanism-dependent instructions as a key for searching for mechanism-independent instructions,
入力された機構系独立命令から先にこの機構系独立命令を検索のキーとして登録された対応する1つ以上の機構系依存命令を取り出し、取り出された機構系依存命令から1の機構系依存命令を選択して、上記駆動部の駆動制御を行い、  One or more corresponding mechanical system dependent instructions registered using the mechanical system independent instruction as a search key are extracted from the input mechanical system independent instruction, and one mechanical system dependent instruction is extracted from the extracted mechanical system dependent instruction. To perform drive control of the drive unit,
同じ機構系独立命令に対して、その機構系独立命令が入力された時点での感情状態に対応して異なる機構系依存目標命令を選択して、その機構系依存目標命令に応じた機構系依存命令を生成して上記駆動部の駆動制御を行うことを特徴とするロボット装置の制御方法。  For the same mechanical system independent command, select a different mechanical system dependent target command corresponding to the emotional state at the time when the mechanical system independent command is input, and depend on the mechanical system dependent command according to the mechanical system dependent target command A control method for a robot apparatus, characterized by generating a command and performing drive control of the drive unit.
JP22689597A 1997-08-22 1997-08-22 Robot apparatus and control method thereof Expired - Lifetime JP3879193B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP22689597A JP3879193B2 (en) 1997-08-22 1997-08-22 Robot apparatus and control method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP22689597A JP3879193B2 (en) 1997-08-22 1997-08-22 Robot apparatus and control method thereof

Publications (2)

Publication Number Publication Date
JPH1158280A JPH1158280A (en) 1999-03-02
JP3879193B2 true JP3879193B2 (en) 2007-02-07

Family

ID=16852276

Family Applications (1)

Application Number Title Priority Date Filing Date
JP22689597A Expired - Lifetime JP3879193B2 (en) 1997-08-22 1997-08-22 Robot apparatus and control method thereof

Country Status (1)

Country Link
JP (1) JP3879193B2 (en)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1327503B1 (en) 2000-10-11 2017-12-06 Sony Corporation Robot control system and robot control method
JP2002113675A (en) 2000-10-11 2002-04-16 Sony Corp Robot control system and introducing method for robot controlling software
JP2003308221A (en) * 2002-04-12 2003-10-31 Nec Corp System, method and program for robot control
JP6893410B2 (en) * 2016-11-28 2021-06-23 株式会社G−グロボット Communication robot

Also Published As

Publication number Publication date
JPH1158280A (en) 1999-03-02

Similar Documents

Publication Publication Date Title
Iscen et al. Policies modulating trajectory generators
KR100495963B1 (en) Robot device and its control method
US7072741B2 (en) Robot control algorithm constructing apparatus
Raibert et al. Animation of dynamic legged locomotion
JP4587738B2 (en) Robot apparatus and robot posture control method
JP3714268B2 (en) Robot device
US20020061504A1 (en) Legged robot and method for teaching motions thereof
JP4179230B2 (en) Robot apparatus and operation control method thereof
KR19990045689A (en) Robot device and its driving control method
JP2002301674A (en) Leg type moving robot, its motion teaching method and storage medium
KR20030007713A (en) Action teaching apparatus and action teaching method for robot system, and storage medium
JP2008304970A (en) Control device, method and program
KR20030051836A (en) Remote controller of biped robot
JP3858842B2 (en) Singing voice synthesis method and apparatus
JP3879193B2 (en) Robot apparatus and control method thereof
JPH02136904A (en) Motion controller containing its own producing function for action series
US20110106309A1 (en) Humanoid robot and control method of controlling joints thereof
US8805583B2 (en) Robot and control method thereof
JP2002307350A (en) Robot device, and operation control method, control system, program and recording medium for the same
Abdolmaleki et al. Omnidirectional walking with a compliant inverted pendulum model
JPH10207505A (en) Robot device and its controlling method
Castro et al. Postural control on a quadruped robot using lateral tilt: A dynamical system approach
Degallier et al. Movement generation using dynamical systems: a drumming humanoid robot
JPH10217174A (en) Robot device
Hu et al. Hybrid kinematic and dynamic simulation of running machines

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20031212

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A132

Effective date: 20060725

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060925

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20061017

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20061030

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20091117

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20101117

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111117

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121117

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131117

Year of fee payment: 7

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

EXPY Cancellation because of completion of term