(57)【要約】【課題】ロボット開発の学習者にとってロボットの仕組みを習得することを目的としたロボット教材を提供する【解決手段】ロボット教材１は、入出力の対象とされるハードウェアと前記ハードウェアを制御するハードウェア入出力用のミドルウェア２２とを少なくとも含むロボット１０と、前記ロボットに前記ミドルウェアを用いて所望の動作をさせるための設定要領が少なくとも記載され前記ロボットと対をなす専用テキスト４０と、を備えたロボット制御及びロボット開発を学習するためのロボット教材であって、前記ロボットには、前記ミドルウェア及び汎用のオペレーティングシステムが搭載されており、前記ミドルウェアは、前記テキストに記載の設定要領に基づいて、学習者によって書き換え自在に生成可能とされ、ロボット制御及びロボット開発の学習環境がすでに構築されている。【選択図】図１
2020064321.tif 000002
【特許請求の範囲】
【請求項１】
入出力の対象とされるハードウェアと前記ハードウェアを制御するハードウェア入出力用のミドルウェアとを少なくとも含むロボットと、前記ロボットに前記ミドルウェアを用いて所望の動作をさせるための設定要領が少なくとも記載され前記ロボットと対をなす専用テキストと、を備えたロボット制御及びロボット開発を学習するためのロボット教材であって、
前記ロボットには、前記ミドルウェア及び汎用のオペレーティングシステムが搭載されており、
前記ミドルウェアは、前記テキストに記載の設定要領に基づいて、学習者によって書き換え自在に生成可能とされ、ロボット制御及びロボット開発の学習環境がすでに構築されていることを特徴とするロボット教材。
【請求項２】
請求項１において、
前記ロボットは、入出力機器と接続可能な端子を有していることを特徴とするロボット教材。
【請求項３】
請求項１または請求項２において、
前記ミドルウェアは、前記ハードウェアの通信プロトコルに対応しているとともに、前記ロボットが所望の動作を行うために必要なプログラムが利用可能に設定されたライブラリを有していることを特徴とするロボット教材。
【請求項４】
請求項１〜請求項３のいずれか１項において、
前記テキストには、プログラムレベルの前記ハードウェアのアクセス例、コマンドレベルでの入力方法及びプログラムのコード上での入力方法が記載されていることを特徴とするロボット教材。
【請求項５】
請求項１〜４のいずれか１項において、
前記ミドルウェアは、ＲＯＳ（ロボット・オペレーティングシステム）であることを特徴とするロボット教材。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ハードウェア入出力用ミドルウェアを使用可能としたロボットと、その説明書等を含むテキストとを備えたロボット教材に関する。
【背景技術】
【０００２】
近年、種々の分野でロボットが利用されている。ロボットの利用者は目的に合致したロボットを用いることで、ルーチンワークの効率化を実現でき、また人工知能を搭載したものであれば、習得に時間を要する高度な作業でさえもロボットにさせることで仕事の効率化を図ることができる。
【０００３】
このようなロボットを開発する開発技術者は、即時処理をさせるためのＯＳや、センサーやモーターとの入出力を簡易にアクセスするためのハードウェア入出力用ミドルウェアをロボットに搭載することで、開発自体を簡易に行えるようになっている。このハードウェア入出力用ミドルウェアとしては近時、ＲＯＳ（ロボット・オペレーティングシステム）が多く利用されている（例えば、特許文献１参照）。
【０００４】
ＲＯＳは、ロボット用の入出力プログラムの製作を簡素化する目的として形成されたもので、おもに各種のハードウェアに関する入出力ドライバとして位置づけられ、ハードウェアのアクセスに関する種々のライブラリを含んだ構成とされている。換言すれば、ＲＯＳのコア部分は、ＲＯＳの対象とされるハードウェアのノード間の通信をとりまとめる管制塔の役割を担っている。
【０００５】
このようなＲＯＳを利用することにより、ロボット開発者は、プログラム内で、多種のハードウェアについて、ハードウェアごとに異なる手続を実行しながら直接アクセスする必要がなく、簡易な手続で、センサーからの情報を得たり、モーターを駆動させたりすることができる。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１８−１８５０２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、このように簡易にロボット開発ができるようになってきているものの、ロボット開発者を目指す学習者にとっては、ロボットを利用する（動作させる）だけではロボットの仕組みを習得できたとは到底言えない。したがって、ロボットを開発しようとする学習者が、たとえロボットを使いこなすことができたとしても、容易にロボットの開発に着手することはできない。
【０００８】
また、ロボット開発の学習者にとって、例えばロボットの動作を観察することで、センサーの入力値にしたがいモーターを制御していることをある程度、理解できたとしても、具体的にどのようにして、そのようなプログラムが作成されているのかを知ることはできない。
【０００９】
また、ＲＯＳについては、ＲＯＳに対応したロボットは存在するものの、そのロボットが学習用ではなく、学習を容易にするための対となるテキストが存在しない。よって、そのことが指導者にも学習者にも大きな障害となっている。
【００１０】
ロボット開発の学習者にとって、ロボットを利用することでロボット開発の足掛かりとなればよいが、従来には上記のように、それ自体（ロボット自体）が学習テキストを担ってくれるようなロボットあるいはロボット教材は存在しない。
【００１１】
本発明は、このような事情を考慮して提案されたもので、その目的は、ロボット開発の学習者にとってロボットの仕組みを習得することを目的としたロボット教材を提供することにある。
【課題を解決するための手段】
【００１２】
上記目的を達成するために、本発明のロボット教材は、入出力の対象とされるハードウェアと前記ハードウェアを制御するハードウェア入出力用のミドルウェアとを少なくとも含むロボットと、前記ロボットに前記ミドルウェアを用いて所望の動作をさせるための設定要領が少なくとも記載され前記ロボットと対をなす専用テキストと、を備えたロボット制御及びロボット開発を学習するためのロボット教材であって、前記ロボットには、前記ミドルウェア及び汎用のオペレーティングシステムが搭載されており、前記ミドルウェアは、前記テキストに記載の設定要領に基づいて、学習者によって書き換え自在に生成可能とされ、ロボット制御及びロボット開発の学習環境がすでに構築されていることを特徴とする。
【発明の効果】
【００１３】
本発明のロボット教材は上述した構成とされているため、ハードウェア入出力用ミドルウェアに関する知識をはじめとする、ロボットに関する知識や仕組みを習得できる。さらに、それだけにはとどまらず、種々の世界標準技術をベースとしたロボット工学の知識を包括的に習得することもできる。
【図面の簡単な説明】
【００１４】
【図１】本発明の一実施形態に係るロボット教材の概略構成図である。
【図２】同ロボット教材に含まれるロボットの一例を示す概略制御基本ブロック図である。
【図３】同ロボット教材に含まれるテキストの内容を目次で示した図である。
【図４】本発明の他の実施形態に係るロボット教材の概略構成図である。
【発明を実施するための形態】
【００１５】
以下に、本発明の実施の形態について、添付図面をもとに説明する。
以下には、複数の実施形態を開示しており、まずそれらの共通的事項について説明する。
【００１６】
本ロボット教材１は、ハードウェア入出力用ミドルウェア２２を使用可能としたロボット１０と、そのロボット１０に所望の動作をさせるための説明書をすくなくとも含むテキスト４０とを備えている（図１および図４参照）。
【００１７】
ここで、ロボット１０としては、以下の実施形態として説明した人型自律ロボットのほか、動物型ロボットや、産業用ロボット、遠隔操作で動作するロボット１０も含まれる。そして、ロボット１０は、目的に応じたロボット１０としての外郭（フレーム）を有し、それを動作させる駆動機構（モーター３２）や検知機構（センサー３１）を備えている。
【００１８】
本ロボット教材１は、テキスト４０を精読することでロボット１０の制御の仕組みをわかりやすい形式でロボット開発の学習者に習得させることを目的としたもので、このロボット教材１を用いることで、ロボット開発を志す者のロボット入門教材となり得るものである。
【００１９】
このような目的であるから、ロボット１０に所望の動作をさせるように、利用者（学習者）に未完成のロボット１０を提供し、学習者がロボット１０として動作可能なように完成させるものであってもよく、ロボット１０を動作させるためのアプリケーションプログラム２３を学習者が作成してもよい。つまり、本ロボット教材１は、教材（テキスト４０）付きのロボットキットであってもよい。
【００２０】
また、ハードウェア入出力用ミドルウェア２２は、ロボット１０がそれを使用できるように、ネットワーク５（図４参照）上に配されていればよいが、以下の実施形態では、ロボット１０の本体にハードウェア入出力用ミドルウェア２２が搭載されている。ロボット１０を単独で利用する場合には、このようにハードウェア入出力用ミドルウェア２２をロボット１０ごとに搭載することが望ましい。
【００２１】
ハードウェア入出力用ミドルウェア２２は、ロボット１０に搭載するハードウェア（センサー３１やモーター３２など）と、アプリケーションプログラム２３との橋渡しを行うもので、本実施形態のロボット１０には近年普及しているＲＯＳ２２が用いられているが、これには限られず、その他のミドルウェアであってもよい。入出力ドライバとして利用できるミドルウェアであれば、どのようなものであってもよい。
【００２２】
まず、図１に示したロボット教材１について説明する。図１はロボット教材１の概略構成図である。図２は、このロボット教材１に含まれるロボット１０の概略制御基本ブロック図である。図３は、ロボット教材１に含まれるテキスト４０の内容を目次４１で示した図である。
【００２３】
図１に示したロボット１０は、頭部１１、首部１２、胴部１３、腕部１４および脚部１５などのフレームを備えた人型ロボットである。腕部１４や脚部１５などの種々の部位には関節部１６を有し、頭部１１の回転や曲げ動作や、関節部１６での曲げ動作、立ち上がり、片足立ち動作など、人とおおむね同様の動作ができる骨格となっている。
【００２４】
ロボット１０の胴部１３には、ＣＰＵ２０などの電子部品が実装された電子基板が内装されている。また、フレームの各部には、検知機構（センサー３１類）（軸加速センサー、超音波距離センサー、カメラなど）と、駆動機構（モーター３２類）（アクチュエータ、サーボモータなどの）、モニター３３（ＬＣＤ、ＬＥＤなど）が目的に応じた部位に搭載されている。また、本ロボット１０は、ロボット開発機としても使用できる。そのため、キーボードなどの周辺機器３５を接続できるように端子（不図示）を備えている。また、ロボット１０には、バッテリー、ケーブルなどが含まれていることは言うまでもない。
【００２５】
図２は、本ロボット１０の制御基本構成をブロック図で示した図である。図２に示すように、ロボット１０は、ＣＰＵ２０と、ＯＳ２１（オペレーティングシステム）と、ＲＯＳ２２と、アプリケーションプログラム群２３と、記憶部２４と、センサー３１、モーター３２、有線・無線通信装置（不図示）などのハードウェアとを備えている。
【００２６】
ＣＰＵ２０としては特に限定はないが、本ロボット１０で用いられるＯＳ２１やＲＯＳ２２に対応したものである必要があることは言うまでもない。
【００２７】
ＯＳ２１としては、少なくともマルチタスク動作（即時処理）を可能としたものであれば限定はない。また、ＯＳ２１としては、ユーザが利用可能なライブラリを含んでいるものが望ましい。例えば、近年普及しているＬｉｎｕｘ（登録商標）などが挙げられる。
【００２８】
ＲＯＳ２２は、上述したようにハードウェア入出力用ミドルウェア２２であり、ハードウェアとアプリケーションプログラム２３との橋渡しを行うパッケージソフトウェアである。これにもユーザが利用可能なライブラリを含んでいることが望ましい。
【００２９】
ロボット１０に所望の動作をさせるためには、ＲＯＳ２２をアプリケーションプログラム２３で利用可能なかたちに生成する必要がある。ＲＯＳ２２としては、入出力の対象とされるハードウェアとの通信をとりまとめる管制塔の役割を担うＲＯＳコア２２ａ、および、ＲＯＳ２２の最小の構成要素であり、個別の処理ごとに実行プログラムとして作成されたＲＯＳノード２２ｂ（プログラム群）が含まれる。
【００３０】
なお、ＲＯＳ２２、特にＲＯＳコア２２ａはロボット１０の本体内に搭載されていなくてもよく、本ロボット１０が接続可能としたネットワーク５（後述する図４参照）上に配されたものとしてもよい。
【００３１】
アプリケーションプログラム２３としては、ロボット１０に目的に応じた動作をさせるための、ＲＯＳ２２を利用した入出力プログラムや、内部処理プログラムが含まれる。
【００３２】
さらに、上記種々のソフトウェアが生成したデータや、あらかじめ生成されているデータを格納するディスクファイルやデータベースを有した、メモリ、記録ディスクなどの記憶部２４も本ロボット１０に搭載されている。
【００３３】
一方、テキスト４０は、本ロボット１０に関する、いわゆる取扱説明書であるが、それだけにはとどまらず、ロボット１０に所望の動作をさせるための説明書が含まれている。具体的には、本テキスト４０には、図１に示したように、ハードウェアの仕様、ソフトウェア（ＯＳ２１などの基本ソフトウェア）の仕様などの搭載されているハードウェア、ソフトウェアの説明書と、ＲＯＳ２２の構造やＲＯＳ２２を用いたプログラミング例の説明書などが含まれる。テキスト４０にはさらに、ＲＯＳ２２を利用したプログラミング手順およびプログラミングサンプルも含まれる。ようするに、テキスト４０には、ＲＯＳ２２を用いたプログラムの生成マニュアルが含まれている。
【００３４】
このように、本テキスト４０は、本ロボット教材１に含まれるロボット１０に特化したテキスト４０ではあるが、ロボット開発、特にＲＯＳ２２を用いてハードウェアをアクセスするプログラムの開発の入門書としても利用できる。さらに、その他の世界標準技術をベースとしたロボット技術や、一般の制御工学、電子工学、機械工学などの教科書（入門書、専門書）を含んだものであってもよい。
【００３５】
図３は、本テキスト４０の目次４１の一例を示した図である。この目次４１を参照しながらテキスト４０の記載内容を説明する。テキスト４０としては、一般的な取扱説明書としての位置づけのもの、具体的には、本製品の取り扱い（Ｌｅｓｓｏｎ１）、初回設定（Ｌｅｓｓｏｎ２）、手入れなど利用に関する注意（Ｌｅｓｓｏｎ３）などが含まれる。
【００３６】
また、テキスト４０には、それら以外に、ＯＳ２１や言語の説明（Ｌｅｓｓｏｎ４）や、その言語を使った制御のプログラミング例（Ｌｅｓｓｏｎ５）、ハードウェアの仕様やプログラムレベルのハードウェアのアクセス例（Ｌｅｓｓｏｎ６〜９）なども含まれる。
【００３７】
さらに、本テキスト４０には、ＲＯＳ２２の概要と、ＲＯＳ２２のコマンドレベル使用例とが記載されている（Ｌｅｓｓｏｎ１０）。ＲＯＳ２２のコマンドレベルの使用とは、所望のハードウェア（例えばセンサー３１）を、周辺機器３５（キーボードなど）により対話型のコマンドで入力する方法である。テキスト４０には、そのコマンドレベルでの入力方法に加え、プログラムのコード上での入力方法が説明してある。
【００３８】
具体的には、ＲＯＳ２２に含まれるＰｕｂｌｉｓｈｅｒ（情報送信機能を担うＲＯＳノード２２ｂの総称）と、Ｓｕｂｓｃｒｉｂｅｒ（情報受信機能を担うＲＯＳノード２２ｂの総称）を用いることで、所望のセンサー３１の値を取得することができるが、その例が、コマンドレベルとプログラムレベルで例示してある。
【００３９】
学習者は、Ｐｕｂｌｉｓｈｅｒを実行することで任意のセンサー３１からの情報をＲＯＳコア２２ａ内部の変数に格納することができ、その更新頻度を自由に設定することができる。そして、それをプログラムとしてどのようにコード化すればよいかがプログラミング例として開示され、そのコードを参照することで、ＲＯＳ２２を通じた、ハードウェアに対するプログラム（命令語）レベルでのアクセス（入出力）方法を理解することができる。
【００４０】
そして学習者は、Ｓｕｂｓｃｒｉｂｅｒを用いることで、ＲＯＳコア２２ａ内部で定期的に更新される情報を任意の頻度で取得することができ、それについても、プログラムとしてどのようにコード化すればよいかプログラミング例を参照して理解することができる。また、取得したセンサー値にもとづく、モーター３２の制御についても、プログラミング例が開示されている。
【００４１】
このように、テキスト４０には、ＲＯＳ２２を用いたプログラムの生成マニュアルが掲載されているため、ロボット１０（特にＲＯＳ２２）を分解したように仕組みが明確になり、その結果、学習者はＲＯＳ２２の理解を深めることができる。また、プログラミングの試行も実施でき、学習者は実機による訓練により、ロボット動作の基礎を習得することができる。
【００４２】
また、本テキストには、図４に示したように、付録としてコマンドリファレンス、使用言語の簡易ルール、それを使用した簡易なサンプルプログラムが掲載してある。
【００４３】
このように、本テキスト４０は、本ロボット教材１に含まれるロボット１０に対応した、ロボット１０の仕組みが開示されているため、ロボット開発者育成のための簡易な教材として利用することができる。また、一部のプログラムだけではなく、テキスト４０に全プログラムをコードレベルで開示し、ＲＯＳ２２や制御動作と対応させて表現するようにしてもよい。さらに、ロボット工学の一般知識や専門書レベルの内容をテキスト４０に含ませてもよい。
【００４４】
以上のように、本ロボット教材１によれば、ロボット学習者は、ロボット技術の学習のための環境構築やカリキュラムを用意することなく、世界標準技術や次世代技術を包括的に学ぶことができる。
【００４５】
また、テキスト４０は、他の実施形態を示した図４のように、電子データであってもよい。この電子テキストデータ４０Ａは例えば、クラウド５１に配置して、他の電子機器５２で参照できるようにしてもよい。また、電子テキストデータ４０Ａは、特定のパソコンなどの電子機器５２の記憶媒体５３やネットワーク上に保存されるようにしてもよいし、ロボット１０内に保存されるようにしてもよい。また、この電子テキストデータ４０Ａは電子機器５２で読み取り可能なように保存されていればよい。図例に示すように、この記憶媒体５３はロボット１０からアクセスできるように接続可能とされていれば、ＲＯＳ２２がハードウェアの変更により更新されたときに、それに関する事項をタイムリーに更新するようにしてもよい。テキスト４０が保存される電子機器５２は、例えばロボット１０を遠隔操作するリモコンであってもよい。
【００４６】
また、本実施形態では、ネットワーク５を介して複数のロボット１０が接続されており、それらのうちの１台の親機用のロボット１０にＲＯＳ２２が搭載されている。このような１つのＲＯＳ２２で複数のロボット１０を個別に動作させることができる。
【００４７】
以上では、ロボット１０にはＯＳ２１、ＲＯＳ２２、アプリケーションプログラム２３などのソフトウェアが準備されたものについて説明したが、これらの一部あるいは全部を学習者が生成するようにしたロボット教材１であってもよい。つまり、ロボット１０は、センサー３１やモーター３２が搭載されているだけで、ロボット１０として動作しないものであってもよい。
【００４８】
例えば、ロボット１０にはセンサー３１やモーター３２などが搭載されているが、ＲＯＳ２２への割り付けがないものであってもよい。その場合に、ＲＯＳ２２への割り付けを支援するために、学習者が書き込みできる入出力対応表用のワークシートがテキスト４０や電子テキストデータ４０Ａに含まれたものであってもよい。
【００４９】
また、アプリケーションプログラム２３についても学習者が作成してインストールできるようにしてもよい。その場合に、作成したプログラムをＯＳ２１と関連づけるＯＳ２１の生成、更新などの手順がテキスト４０に掲載されたものであってもよい。
【００５０】
このように、学習者がロボット１０を上記のような手順でソフトウェアを動作可能な状態に生成するロボット教材１の場合、いったん完成させたのち、他の学習者が同様に学習できるように、初期状態にリセットできるコマンドまたはスイッチを設けてもよい。例えば、ＯＳ２１、ＲＯＳ２２、アプリケーションプログラム２３ごとにリセットできるようにしてもよい。
【００５１】
また、ロボット１０はＡＩ型ロボットであってもよい。ロボット１０は、ＡＩによる自律動作用の意思決定エンジン（不図示）を備えており、その意思決定エンジンにもとづく種々の動作の概要を電子テキストデータ４０Ａやデータベースに保存するようにしてもよい。ロボット１０は学習し、種々の知識を習得するが、その習得結果にもとづく動作を電子テキストデータ４０Ａやデータベースに対して更新するようにしてもよい。
【符号の説明】
【００５２】
１          ロボット教材
５          ネットワーク
１０        ロボット
１１        頭部
１２        首部
１３        胴部
１４        腕部
１５        脚部
１６        関節部
２０        ＣＰＵ
２１        ＯＳ
２２        ＲＯＳ（ハードウェア入出力用ミドルウェア）
２２ａ      ＲＯＳコア
２２ｂ      ＲＯＳノード
２３        アプリケーションプログラム（群）
２４        記憶部
３１        センサー
３２        モーター
３３        モニター
３５        周辺機器
４０        テキスト
４１        目次
５１        クラウド
５２        電子機器
５３        記憶媒体
【図１】
2020064321.tif 000003
【図２】
2020064321.tif 000004
【図３】
2020064321.tif 000005
【図４】
2020064321.tif 000006