• - Aseba(テキストプログラミング) -

    文字を打ってプログラミング

    Aseba Studio for Thymioを起動

    まずThymioをパソコンに接続し、このアイコンをクリックする

    Aseba Studio(Thymioをテキストモードでプログラムするためのソフトウェア)が起動

    Thymioが繋がっていない場合

    Thymioが繋がっていない場合、又はAseba Studio(「for Thymio」ではない方)を起動した場合は、ロボット選択ウィンドウが表示されます。

    Asebaバージョン1.5.5以前

    Asebaバージョン1.6以降

    Aseba StudioとAseba Studio for Thymioの違いは、単純に後者はThymioがパソコンに繋がっている場合、ロボット選択ウィンドウを表示せずに直接Studioを開く点です。

    テキストプログラミングのチュートリアル

    テキストプログラミングは初めてですか?最も簡単な始め方はテキストチュートリアルに従うことです。Aseba Studioとは何か、どこを見ればいいか、何をすればいいかを説明します。

  • 環境とコンセプト

    Studioーテキストプログラミング環境

    Aseba Studioは、Asebaネットワークに接続されている任意のノード(ネットワーク内の各プロセッサ)のプログラムを編集したりデバッグ(修正)することのできる一体型の開発環境です

     

    1.同時編集
    Studio内には、Asebaネットワークに接続されている各ノードのプログラム、メモリの内容、実行ステータス、デバッグなどのコマンドタブがあります。 また、ツールバーにはすべてのノードをコントロールできる一般的なコマンドがあります。これにより、ネットワーク全体と、特定の各ノードを同時に制御することが可能になります。
     

    2. スマートエディタ

    プログラムエディタには、プログラム構文の強調表示、ブロック字下げ、変数名をメモリからドラッグできる機能があります。また、「ステップバイステップ」モードではプログラム実行の現在位置が表示され、エラーは赤色で表示されます。
     
    3. 即時コンパイル

    ユーザーがコード入力している間も、プログラムを再コンパイルします。コンパイルの結果(成功またはエラーの説明)は、エディタの下に表示されるので、すぐにエラーを修正することができ、コードの品質が向上します。
     

    4. データ検査
    各ノードで使用可能な変数とその値がリストで表示され、ワンクリックでリストを更新することができます。このリストには、その機器の状態の概要が表示されてます。
     
    5. デバッガ(修正機能)
    Studioには一体型のデバッガ機能があり、各ノードの現在の実行ステータスが表示されます。この機能は連続実行、ステップバイステップモードとブレークポイントをサポートしています。プログラムエディタ内で右クリックすると、選択した行のブレークポイントを設定または削除することができます。各ブレークポイントまたはステップの後、変数の値が更新されます。
     

    6. 定数を定義する
    ユーザーはすべてのノードで使用可能な定数を定義することができます。また、定数はドラッグとドロップで並べ替えることができます。
     

    7. ネットワーク全体のイベント
    ユーザーはイベントの名前を指定でき、名前をダブルクリックすると対応するイベントを送信することができます。イベントを右クリックすると、時間経過とともにグラフに表示することができます。イベントはドラッグ&ドロップで並べ替えることができます。
    イベント名のリストの下には、最近のイベントがタイムスタンプ・パラメータと共にログで表示されます。これにより、ネットワーク内でばらばらに行われた分散処理を監視することができます。
     
    8. ローカルイベント、ネイティブ関数、プラグイン

    各ノードで使用できるローカルイベントとネイティブ関数のリストが表示されます。各関数にカーソルを合わせると、ツールチップに簡単な説明が表示されます。ノードに特定のプラグインがあれば、そのリストも表示されます。
     

    ヒント
    1. 時間の節約
    変数、ネイティブ関数、イベント、定数の名前をドラッグすることで、入力する時間を節約することができます。
     

    2. ヘルプ
    ヘルプメニューから、このページとAsebaプログラミング言語について説明している文書にすぐアクセスできます

    Studio内でイベントデータを集計する

     

    Aseba Studioでは、ネットワーク全体のイベントのデータを時間軸と共にプロット(グラフ化)することができます。ノード・タブでグローバル・イベントを右クリックし、「イベントデータのプロット」を選択するとイベントデータの2Dグラフを示した新しいタブが作成されます

     

    y軸は自動的に拡大・縮小されます。x軸はイベントデータ記録の全期間をカバーし、もし終わりが設定されていれば最大時間枠が表示されます。 記録はいつでも開始/停止することができ、データも消去することができます。 タブの右下にある「名前を付けて保存」ボタンを押すと、イベントデータをテキストファイルに保存できます。 各行にはタイムスタンプとイベントデータの値が表示され、それぞれスペースで区切られています。

    Asebaの背景にあるコンセプト

     

    Aseba
    Asebaとはモバイルロボットをリアルタイムに分散制御する、イベント駆動型のアーキテクチャで、現実世界でもシミュレーション上でも一体型のマルチプロセッサ・ロボットやシングルプロセッサのユニットを対象としています。 Asebaの核となるのは、マイクロコントローラ上でも動くほど軽量の仮想マシンです。 Asebaを使えば、快適な統合開発環境で、ユーザに使いやすいプログラミング言語を使ってロボットをプログラミングすることができます。

     

    ノード
    Aseba上では、同じネットワーク上で複数のロボットまたは複数のプロセッサを搭載した1台のロボットを実行でき、 このネットワークは、ソフトウェア(TCP)、ハードウェア(CAN)、または両方の組み合わせからなっています。 「ノード」と呼ばれるネットワーク内の各プロセッサは小さなバーチャルマシンを動かします。各ノードはAseba Studioにそれぞれタブがあり、各ノードを個別にプログラムすることができます。また、イベントを通じてインタラクティブなやりとりも可能です。
     
     
    イベント
    Asebaはイベント駆動型のアーキテクチャです。これはつまり、コードの実行が非同期的に、イベントがトリガー(きっかけ)となって行われることを意味しています。イベントには識別子とオプションのペイロードデータがあります。 Asebaのノードはイベントを交換することができ、これには以下のは2つのタイプがあります。
     

    • AsebaノードがAsebaネットワーク内で交換するイベントは、「グローバルイベント」と呼ばれます。
    • ひとつのノード内部のイベントは、「ローカルイベント」と呼ばれ、更新されたデータを提供するセンサによって発生するイベントなどがその例です。


    イベントを受信するためのコードが定義されている場合、イベントが受信されるとそれに対応するコードブロックが実行されます。さらに、別のノード上のコード実行のトリガーとなったり、外部のプログラムとの通信を可能にするイベントを発生させることもできます。新しいイベントを受信したときに関連コードの実行をスタートするためには、プログラムがブロックされていてはならないので、プログラムに同じ処理がずっと繰り返される無限ループが含まれていてはいけません。たとえば、ロボット工学の流れの中において、従来のロボット制御プログラムは無限ループ内でも一部の処理を実行するのに対し、Asebaプログラムはただセンサ関連のイベントを実行するのみです。

    ※以下は未翻訳(英語コンテンツへのリンク)になります

  • Thymioのシミュレーター

    Thymioにはバーチャル環境で動作させるシミュレーターがあります