【ナオ-04】Naoqiフレームワーク&ブローカー&プロキシ&モジュール

アウトライン

それでも更新

ここに画像を挿入説明


一、NAOqiフレームワーク

1. NAOqiフレームワークとは何ですか

  Naoqiは、メインプログラムの制御を達成するために、当社のロボットとロボットに実行されている、とNaoqi Frameworkがためであるソフトバンクロボットのロボット設計されたプログラミングフレームワーク。並列処理、資源、同期、およびイベント:この枠組みを通じて、我々には、ロボットの私たちの共通の需要を解決することができます。

  同型通信、プログラミング及び同型同型Naoqi Framwork情報共有は間で異なるモジュール(モーション、オーディオ、ビデオ)を可能にします。一方Naoqi Frameworkは、クロスプラットフォーム、クロス言語をサポートしています。

2.クロスプラットフォーム

  Windows、Linux、およびMacとの互換性Naoqi Framworkので、Windows、Linux、およびMacの環境下で、我々はNaoqiフレームワーク関連の開発を活用することができます。

  • Pythonは:あなたは、簡単にコンピュータ上でコードを実行することができます。また、ロボットに直接コードを実行することができます。
  • C ++:およびC ++はコンパイル言語で、あなたがロボットのC ++のコードを実行したい場合ので、それがターゲットオペレーティングシステム上でコードをコンパイルする最初の必要があり、あなたがエネルギーを生成するために、クロスコンパイルツールを使用する必要があるため、Pythonは、異なっていますコードを実行しているロボット・オペレーティング・システム(OS Naoqi)。

C ++の開発を使用するには、その後、続くC ++ SDKのインストール・ガイドを使用すると、すべてのツールを持っていることを確認します

3.クロスランゲージ

  ロボット上で実行されているソフトウェアはPythonで、あなたはまた、C ++を使用することができ、そして二つの言語のいずれかを開発することができた方法が同一で開発しています。

ここに画像を挿入説明

Pythonはより良く、より速く、良くなって、Pythonのから学習を開始してからの要求を完了するために、初心者にお勧めします。
熟練したC ++開発者が開発に多くの時間を費やす必要があります:
  1. Pythonの行動に
  モジュール2. C ++。

4.分散

  Naoqiフレームワークは、以下の2点を中心に分布します。

  1. Aリアルタイムアプリケーションは、実行可能ファイルとすることができるだけではなく、又は複数のプロセスはまた、いくつかのモジュールロボット上に分散させることができます。あなたが選択した1どんなに、メソッド呼び出しは同じです。

  APIメソッドの呼び出しから、他のロボット上の実行可能ファイルに接続するために、ロボット2とIPポートを使用することにより、他の実行可能ファイルは、ローカルメソッド呼び出しと完全に一致しています。

ここに画像を挿入説明

接続が自動的に迅速Naoqi直接(LPC)またはリモートコール(RPC)を使用して、選択された場合。

5.どのように使用します

  内観

  イントロスペクションは、アンロードは、ライブラリファイルは、その後、ロボットが自動的に対応するAPI関数を削除する場合はモジュール内のものは、あなたが、イントロスペクションロボット自体を介して利用可能なすべてのAPI関数を知ることができ、APIロボットの基礎、機能を監視し、監視する機能ですBIND_METHODによって定義することができる機能がAPIに追加します。(BIND_METHODはalmodule.hで定義されました)

  あなたはBIND_METHODによって機能をバインドする場合、この関数は唯一の3行ですが、あなたはまた、次の恩恵を受けることができます:

  • この機能を使用すると、また、Pythonで呼び出すことができ、C ++のいずれかで呼び出すことができます。(クロスランゲージはNaoqiフレームワークの特徴)
  • あなたは、この関数が呼び出されるかどうかを知ることができます。
  • ローカルでこの関数を呼び出すことができるだけでなく、あなたはまた、リモート経由で関数を呼び出すことができます。(分散性のNaoqiフレームワーク)
  • あなたは、関数内の関数をisRunning、停止を待つことができます。

  Naoqiプロセス

  機械Naoqi実行可能ファイルを実行すると、Naoqiの起動時に、それはのautoload.iniという名前の設定ファイルをロードし、ライブラリをロードする必要があるものを読みます実際にエージェントに相当し、各ライブラリーは、開口へのプロキシアプローチを使用している一つまたは複数のモジュール。

ここに画像を挿入説明

  また、このエージェントは、検索機能を提供しますので、我々はそれが便利な方法は、木に対応するか、ネットワークAPIで見つけます。

  ツリーは、このモジュールに関連する方法、およびモジュールを確立する際にモジュールがロードされるたびに、エージェントに関連付けることができます。

ここに画像を挿入説明

二、ブローカー

ブローカーは、実際に提供するオブジェクトです。

  • ディレクトリサービス:あなたはすべてのモジュールとメソッドを検索することができます。
  • ネットワークアクセス:モジュールプロセスの外部から呼ばれる追加のメソッドを許可します。

彼らは単に透過的に仕事を行うされているので、時間のほとんどは、我々はあなたが、分散特性を持つ関数を書くため、この機関に注意を払うする必要はありません。

三、プロキシ

ブロガーが離れてテキストを放棄した(偽)

四、モジュール

ブロガーが離れてテキストを放棄した(あなたを得ました)

(実際には、それは本当にZU﹏⊂です)

公開された26元の記事 ウォン称賛24 ビュー30000 +

おすすめ

転載: blog.csdn.net/iSunwish/article/details/85019003