86Duino Motion Editor v1.95

86Duino Motion Editor (86ME) は、86Duino 開発ボード上でロボットのモーション編集をサポートし、ロボットのモーション編集プロセスを高速化するとともに、ロボットの操作とモーション編集のための 86Duino プログラムを自動的に生成します。

86ME コンセプトビデオ:

 

インストールチュートリアル

現在、86ME は Windows XP/Vista/7/8/10 をサポートしており、Microsoft .NET Framework 4.0 がインストールされている必要があります。 86MEをダウンロードし、解凍して86MEフォルダを入手してください。フォルダ内のファイルは下図のとおりです。86ME実行ファイル、必要なライブラリ、関連命令などが含まれています。対応環境では、86ME.exeを直接実行することで86MEを起動できます。

86ME16_content

準備

  1. 86Duinoと86ME間のブリッジを構築する: 86MEはFirmataライブラリを介して86Duinoにコマンドを送信します。そのため、86MEを使用する前に、以下のサンプルドラフトをBurnする必要があります。 86Duino Coding 210([ファイル] > [例] > [Servo86] > [MotionEditor])を86Duinoにインストールします。両者間の通信ブリッジが確立されると、86MEを正式に操作できるようになります。
  2. 接続方法と手順: 現在、86MEはCOMポートを介してコンピュータと86Duinoを接続し、モーション信号を送信することができます。86MEは、ユーザーが86Duinoとコンピュータ間のインターフェースを選択できるようにし、接続の初期化には自動、オフライン、選択の3つのモードがあります。86ME.exeを実行する前に、これらのモードを理解しておく必要があります。図の–auto–オプションは最後に追加されたCOMポートを開きます。COM4は86MEが現在コンピュータ上で検出したCOMポートです。–offline–オプションはオフラインモードを意味し、86Duinoと通信しません。

86ME19start

そのため、オフラインモードではファイルの編集と86Duinoプログラムの生成のみが可能で、リアルタイムのモーター制御はサポートされません。モーターを直接制御して動作を編集したい場合は、まず86DuinoのUSBデバイスをコンピュータのUSBポートに接続し、86Duinoが接続されているCOMポートを選択する必要があります(自動モードを使用するか、既知のCOMポートを選択できます)。86Duinoがどのポートに接続されているかを確認したい場合は、デバイスマネージャーで86Duinoとそれに接続されているCOMポートを検索してみてください。以下の例に示すように、86DuinoがコンピュータのCOM4に接続されていることがわかります。86Duinoを接続せずに自動モードを選択した場合、プログラムは実行中にオフラインモードに戻ります。

P_20150508_172230

一般的に、オフラインモードは、ロボットの動作に既に慣れているユーザーに適しており、既存のファイルを簡単に編集して調整することができます。 自動モードを使用すると、86MEを簡単に使い始めることができますが、コンピューターに多数の86Duinoまたは複数のCOMポートが接続されている場合は、混乱を避けるために選択モードを使用することをお勧めします。COMポートインターフェースを設定した後、「開始」ボタンを押して86MEのメインウィンドウに入るか、「終了」ボタンを押して86MEを終了できます。

86ME19_start

86ME19_Main

機能説明

ここでは、まずプログラムインターフェースをいくつかのブロックに分けて説明します。 86ME19_area

  1. このセクションには、ファイル、オプション、ヘルプ の 3 つのドロップダウンメニューがあり、展開されたオプションは次のとおりです 86ME19_filetool
    • ファイルメニューには、新しいプロジェクトの追加、プロジェクトの読み込み、プロジェクトの保存、プログラムの終了が含まれます。鋭い目を持つ読者の方は、最初は多くのボタンがグレー表示でクリックできないことに気付くかもしれません。アクションを編集またはテストするには、「ファイル」->「新規プロジェクト」でプロジェクトを作成するか、「ファイル」->「プロジェクトを開く」で以前に保存したプロジェクトを読み込んでください。「ファイル」->「プロジェクトを保存」で現在編集中のプロジェクトを保存し、「ファイル」->「終了」でプログラムを終了できます。では、新しいプロジェクトを追加するにはどうすればよいでしょうか?「ファイル」->「新規プロジェクト」をクリックすると、ロボット設定ウィンドウがポップアップ表示され、ロボットに関する4つの設定を行うことができます。

(1) 86Duinoボード:ロボットが使用する86Duinoモデルを選択します。現在、86Duino One/Zero/EduCakeから選択できます。異なる86Duinoモデルを選択すると、設定可能なSetServoの数が異なります。例えば、86Duino Oneにはモーターを制御できるピンが45個あるため、SetServo 0~44が表示されます。一方、86Duino ZeroにはSetServo 0~13と42~44のみが表示されます。 86ME191_boardver

(2) IMU設定:ロボットが使用する慣性計測ユニット(IMU)を設定します。現在サポートされているIMUモデルには、86Duino One内蔵IMUとRM-G146が含まれます。 IMUモデルを選択し、接続モードに入ったら、「IMU初期化」ボタンを使用して86Duinoに接続されたIMUを初期化し、「自動方向検出」ボタンを使用して現在のIMUのベース方向を検出できます。これらの設定が完了した後、IMU補正が正しく機能します。ロボットのバランス調整を容易にする機能です。86ME191_IMU

(3) SetServo:86Duinoに接続されたモーターの設定に使用します。ここでは、モーターモデル、オフセット、ホームフレーム、モーターがサポートする最大値(Max)、最小値(min)を設定できます。現在サポートされているモーターモデルは次のとおりです。 86ME191_servos モーターを選択した後、下図のスクロールコントロールオプションでオフセットと開始位置を調整できます。同期コントロール項目にチェックを入れると、オフセットと開始位置の角度がモーターと同期され、リアルタイムで調整できます。モーターの許容値の範囲は、モーターを選択すると自動的に変更されます。手動で変更する場合は、まず右上隅の最小/最大コントロール項目にチェックを入れる必要があります。 IMUをセットアップしている場合は、「IMU Src」を設定することでIMU補正機能を有効にし、補正ソースを選択できます。また、「Gain」フィールドで補正係数を設定することもできます。2つ目の補正ソースを追加する場合は、「Src 1」アイコンをクリックして「Src 2」に切り替え、2つ目の補正ソースを設定できます。 86ME191_robotconfig

(4) ロボット画像の読み込み:ロボットの各部へのモータ位置のマッピングを容易にするため、ロボットの代表画像として画像を選択できます。フレーム編集時に、サーボと画像に対応する位置を選択できるため、サーボと実際のロボットの対応関係を容易に把握できます。 (5) ミラー設定の読み込み:この機能は、ヒューマノイドロボットなど、対称的な関係を持つロボットの編集を容易にする、ユーザー定義のミラー設定を読み込むことができます。アクションの左半分を編集する場合、この機能を使用すると、アクションの左半分を右半分にコピーできるため、アクション編集プロセスを高速化できます。ミラー設定は、拡張子がcfgのファイルに保存されます。この内容は、サーボ間の1対1の対応関係を示します。各行には、対応関係のセットが「-」記号で区切られて含まれています。たとえば、1-2はピン1と2のサーボが対称側であることを意味し、1は左側、2は右側を表します。

  • オプションメニューには、現在のロボット関連の設定を編集するための「ロボット設定」オプションがあります。含まれる内容は、「ファイル」->「新規プロジェクト」と同じです。
  • 設定メニューでは、操作インターフェースの言語を選択できます。現在、英語中国語(繁体字)中国語(簡体字)日本語がサポートされています。
  • ヘルプメニューには、「チュートリアル」と「バージョン情報」のオプションがあります。 「チュートリアル」をクリックすると、86Duino ウェブサイトの 86ME ドキュメントにジャンプします。「About」をクリックすると、作者情報や 86Duino 公式ファンページなど、86ME に関する情報が表示されます。
  1. 「Edit Settings」ブロックには以下の機能があります。

86ME19_editsettings

(1) Sync機能を使用すると、現在選択されているフレームを同期させ、ロボットに即座に反映させるかどうかを選択できます。

(2) スロットマシンで、同期中のモーターの速度を設定できます。速度は全部で5段階あり、右側が最も速く、左側が最も遅くなります。

(3) モーターを解放して電力出力を停止します。

(4) Captureは、モーターの現在の角度を読み取るために使用されます。現在サポートされているモーターは、Kondo、Hitec、およびFutabaシリーズです。Capture機能は最初にすべてのモーターを解放するため、使用時にはご注意ください。ロボットがしっかりと支えられていない場合、転倒する可能性があります。

  1. アクションブロックは、以下で使用できます。

86ME19_action

(1) このアクションに移動する時間をミリ秒単位で設定します。

(2) 選択されたアクションがフレームの場合、アクションエリアに「86Duino フレームファイルの保存/読み込み」という2つのボタンが表示されます。「保存」機能は現在選択されているフレームのサーボ角度をテキストファイルに保存し、「読み込み」機能では保存されたフレームファイルの値を現在のフレームに読み込みます。

86ME15_slframefile

  1. ヒントブロック:このブロックでは、アクションリストの追加方法やアクション実行時の注意事項など、ユーザー向けの操作ヒントが提供されます。86MEの操作に慣れている方は、ご自身の考えに合わせてプログラムを操作できます。これらのヒントは、86MEを使い始めたばかりのユーザーが次のステップに進むためのヒントとして役立ちます。

 

  1. モーションブロックは、ロボットの動きを編集およびテストするために使用します。各アクションは「モーション名」で区切られます。例えば、歩く、パンチする、しゃがむなどのアクションを追加できます。「+」ボタンを押すと、以下のように「モーション名」を入力するためのウィンドウがポップアップ表示されます。

86ME19_motionanme

「OK」を押すと、新しいモーションが追加されます。別のモーションを追加するには、「+」を押して同じ手順を繰り返します。既存のモーションを編集するには、「モーション名」列のスクロールバーを使用します。右端にある歯車型のボタンには、コピー、名前の変更、削除、インポート、エクスポートなど、モーションを管理するための機能がいくつか用意されています。

86ME19_addmotion

アクションリスト:

モーションを作成したら、アクションリスト(アクションリスト)の編集を開始できます。例えば、あるアクションの表示に4フレーム必要な場合は、「アクションリスト」に移動して、アクションを追加するには、マウスの右ボタンをクリックします。t/uploads/2015/04/86ME191_addaction.png">86ME191_addaction

アクションリストの主な操作は以下のとおりです。

(1) アクションを追加(アクションは全部で9種類あります)

(2) 選択したフレームに対して、ミラーリング操作(上記右図のように、合計5つの操作)を実行します。ミラーリング(左から右、右から左。左右の関係はミラーファイルで定義されます)、逆値でのミラーリング(サーボホーム値を基準)、左右の入れ替えが含まれます。

(3) 選択したアクションを削除

(4) フレームまたはホームフレームを次のグリッドにコピーできます。アクションの上下移動は、下の2つのボタンを使って実行できます。

86ME19_arrow

アクションリストには便利な機能もあります。フレームの後にフレームが続く場合、フレームを挿入する機能が有効になります。各モーターの角度は、前後2つのフレームの対応するモーターの角度を加算し、2で割った値になります。この機能を使うと、移動距離の大きい2つのフレーム間のアクションを簡単に編集できます。アクションパラメータの調整方法については、ブロック6と使用例で説明します。

86ME191_intermediate

アクションリストを編集した後、86Duino に接続している場合は、再生ボタンを押すと、アクションリストの最初のアクションから最後のアクションまでをテストできます。ユーザーはこの機能を使ってアクションをテストできます。

86ME19_motiontest.png

トリガー:

下部にある2つのボタンは、現在のプロジェクトを86Duinoに書き込めるinoプログラムファイルに出力します。「86Duinoスケッチ生成(フレームファイル付き)」はinoファイルと複数のアクション設定ファイルを生成し、「86Duinoスケッチ生成(オールインワン)」はすべての設定をinoプログラムに書き込みます。ファイルは、現在編集中のすべてのアクションと、各アクションのトリガーとプロパティに基づいて生成されます。トリガー:トリガーモードを設定するには、モーションを選択し、「トリガー」タブに移動します。現在、自動、キーボード、Bluetooth、PS2コントローラー、加速度センサーの5つのトリガーモードがサポートされています。

86ME16_triggers (1) 「自動」の下には、「常時オン」、「常時オフ」、「起動時」があります。これは、このアクションが常に表示されることを表します。「常時オフ」は、このアクションが一度も表示されないことを表します。「起動時」は、86Duino 起動時に一度だけ表示されることを意味します。

(2) 「キーボード」では、キーとタイプを設定できます。キーは現在、A~Z、上、下、左、右、空白、ESC です。タイプは、「初回押下」、「押下」、「解放」です。キーと対応する条件が満たされると、モーションが実行されます。例えば、ロボットの歩行は「キー A、押下」に設定され、ロボットの起立位置への復帰は「キー A、解放」に設定されています。A キーを押すと、ロボットは歩行を続け、A キーを離すと起立位置に戻ります。より完璧な動作を実現するために、「半歩」などの開始ステップとして「キー A、初回押下」を追加することもできます。

(3) Bluetoothでは、1文字キー入力、モード、ボーレート、Bluetoothモジュールが接続されているシリアルポートを選択できます。例えば、Bluetoothモジュールを86Duino Serial1に組み込み、前進キーをBに設定しました。プログラムを生成して書き込んだ後、携帯電話のアプリソフトウェア(現在は1文字アプリのみをサポート)を使用して信号を送信し、ロボットを前進させることができます。モードオプションはOneShotとContinuousです。OneShotモードはアクションを1回だけトリガーし、ロボットにパンチやキックなどの動作をさせることができます。Continuousモードはアクションを連続的にトリガーし、前進、後退などの動作をさせることができます。

(4) PS2コントローラー PS2ジョイスティックのボタンをキーとして選択し、キーボードのようにボタンのトリガータイプを設定できます。また、PS2ジョイスティックを使用してロボットを制御する場合は、 PS2と86Duinoを接続する4つのピン、DAT(データ)、CMD(コマンド)、ATT(アテンション)、CLK(クロック)も設定します。これらの4つのピンは86Duinoのピンに対応しています。

86ME19_acc

(5) 加速度センサー 加速度センサーのX、Y、Z軸の読み取り値を開始条件として選択できます。3軸の範囲と、読み取り値がその範囲内に留まる時間を設定するだけです。「自動検出」ボタンは、IMUがロボット構成に正しく設定されている場合に有効です。初期化後、IMUは現在の加速度センサーの読み取り値を自動的に検出し、空白を埋めるための範囲を自動的に選択します。

86ME19_wifi602

(6) 86ME19_wifi602app

86ME191_analogtrigger

(7) Analog は、下図に示すように、アナログ信号を介してアクションをトリガーできます。Pin はアナログソースピンの設定に使用し、中央のコンボボックスは =、≠、≧、≦、>、< などの判定条件の選択に使用し、Value は値の選択に使用します。条件が満たされると、アクションがトリガーされます。

86ME195_esp8266trigger

(8) ESP8266トリガーは現在、このアプリをサポートしています。まず、ESP8266を86Duinoに接続し、APベースステーションモードに設定します。次に、対応するボーレート、接続されたシリアルポート、そしてESP8266のCH_PDピンに接続されている86DuinoのPINを設定します。そして、アプリ内の画像に対応するキーを設定すれば完了です。アプリ内のボタンは下図のとおりです。キーの値は、画像番号に「$PM」を加算したものです。例えば、左ボタンのキーは「$PM00」です。

86ME195_jrobotapp

最後に、生成されたプログラムをコンパイルする前に、コーディングIDEのライブラリインポート機能を使用してESP8266ライブラリをインポートする必要があります。コンパイルが成功すると、ESP8266、86Duino、およびAPP間の接続が完了します。

プロパティ:

86ME19_property

プロパティ設定は現在、以下の2つに分かれています。
(1) ブロッキングとノンブロッキング:ブロッキングモーションは、生成されたプログラム内の他のモーションによって中断されません。ノンブロッキングモーションは、他のモーションによって中断されます。
(2) モーションレイヤー:モーションが配置されているレイヤーを設定します。この機能により、異なるレイヤーのモーションを同時にトリガーできます。例えば、ヒューマノイドロボットが移動しているときに、パンチモーションをトリガーできます。ただし、2つのモーションレイヤーで同じサーボが使用されている場合、優先順位の問題が発生します。この場合、レイヤー1のモーションはレイヤー0のモーションよりも優先されます。そのため、アクションをモーションレイヤー1に設定した場合、ユーザーはフレームプロパティで使用するサーボを選択する必要があります(下図を参照)。このようにすることで、レイヤー0とレイヤー1のアクションが同時にトリガーされた場合、選択されたサーボ CH 2 と CH 3 は、レイヤー 1 で編集されたアクションを優先します。
86ME19_chooseServo
(3) 軌道:動作軌道計画の方法を設定します。現在、線形と制約軌道がサポートされています。計画方法は、Cubic、Natural Cubic、Catmull-Rom Splineの4つがあります。3つのCubic計画方法は、線形軌道に比べて動作中に発生する振動を低減でき、Natural Cubicの効果が最も顕著です。ただし、Natural Cubic計画方法はオーバーシュート、つまり動作の曲線が大きくなりすぎる可能性があります。Catmull-Rom Spline計画方法とConstrained Cubic計画方法はこの問題を回避できます。これらのうち、Constrained Cubicはオーバーシュートを最も抑制できますが、振動低減効果はNatural Cubicほど顕著ではありません。3つのCubic計画方法は、現在、すべてフレームである動作のみをサポートしています。つまり、フレーム以外の動作を含めることはできません。他の動作がある場合は、自動的に線形軌道に戻ります。使用時には特に注意してください。
(4) IMU補正範囲: IMU補正機能の有効角度(0~180度、0は補正機能のオフを意味します)。(-設定値~+設定値)の角度内でのみ、IMUは補正値を生成します。この機能は、補正の有効範囲を設定できます。補正が不要なアクションの場合は、0に設定して補正をオフにすることもできます。

最終的に生成されるプログラムには2種類あり、書き込み方法が若干異なります。
86ME19_program.png

86Duinoスケッチ(フレームファイル付き)を生成。inoプログラムを86Duinoに書き込むだけでなく、生成された設定ファイルフォルダを86Duino SDカード(86Duino SDカードの作成)のルートディレクトリに配置することで、正しく実行できます。「86Duinoスケッチ(オールインワン)」はinoプログラムのみを生成します。生成されたプログラムを86Duinoに書き込むだけです。

  1. このブロックは、アクションリスト内の各アクションの詳細(各フレームにおけるモーターの角度など)を変更するために使用されます。詳細な操作方法を示すために、より完全な使用例を以下で示します。

使用例

この使用例は、86MEの操作プロセスを理解していただくことを目的としています。86MEでは、3つのサーボモーターで構成された6脚ロボットを例として使用します。この6脚ロボットは、86Duino Zeroと3つのDMP_RS0263チップで構成されています。左脚、中脚、右脚は、86Duinoの11番ピン、43番ピン、44番ピンに対応しています。

86ME_hexapod.png

ステップ 1:
86ME19_step1.png

  1. 86MEフォルダ内の86ME.exeをダブルクリックして実行します。
  2. COMポートに自動的に接続するには、「自動」を選択し、「開始」ボタンを押します。

ステップ 2:
86ME191_step2.png

  1. 「New Project」をクリックして新しいプロジェクトを追加すると、「Robot Configuration」ウィンドウがポップアップ表示されます。
  2. 「86Duino Board」を、この例の 86Duino モデルである「86Duino Zero」に設定します。この例には IMU がないため、「None」に設定されています。
  3. ピン11、43、44をDMP_RS0263サーボモーターに設定します。オフセット、ホームフレーム、最大値と最小値は、ユーザーのニーズに応じて設定できます。この例ではデフォルト値を使用しています。IMU補正は「補正なし」に設定されています。
  4. 「OK」ボタンを押して設定を完了します。

ステップ 3:
86ME19_step3.png

  1. プロジェクトを作成すると、「+」ボタンが点灯します。このボタンを使って新しいアクションを追加できます。「+」ボタンを押します。
  2. 「新しいモーションの作成」ウィンドウがポップアップ表示されます。「モーション名」フィールドに追加するアクションの名前を入力します。ここでの例は right(右折)です。
  3. 「OK」を押してアクションの作成を完了します。

ステップ 4:
86ME19_step4.png

アクションリストの下の空白部分を右クリックし、最初のフィールドで「アクションを追加」を選択して、アクションリストに追加するアクションを選択します。
アクションには9種類あり、それぞれの機能は以下のように説明されています。

フレーム
86ME19_addframe.png

フレームを選択すると、元々設定されている3つのモーターを調整できるようになり、ユーザーが調整できるいくつかの機能が有効になります。

  1. 同期にチェックを入れると、ロボットは現在設定されている値に即座に反応します。 Syncにチェックが入っている場合、下のスクロールバーを動かすか数値を変更すると、ロボットは即座に反応します。Syncの横にあるスロットマシンは、Syncがオンの時のモーターの速度を調整できます。
  2. Free Motorsボタンは、出力状態にあるすべてのモーターを解放し、出力を停止することができます。
  3. Captureは、現在のモーターの角度を読み取るために使用されます。現在サポートされているモーターは、Kondo、Hitec、Futabaシリーズです。Capture機能は最初にすべてのモーターを解放するため、使用時には注意してください。ロボットが適切にサポートされていない場合、転倒する可能性があります。
  4. Play Timeは、現在設定されているモーターの角度まで移動するのにかかる時間(ミリ秒)です。数値を直接入力して設定できます。0に設定するとアクションがスキップされるため、Play Timeの設定を忘れないようにしてください。
  5. モーターに送信するPWM信号値を設定します。スクロールまたは数値入力で設定できます。右端にある丸いボタンは、モーターを個別に同期させるかどうかを決定するために使用されます。デフォルトでは、同期するとすべてのモーターが指定された目標PWM値に従って回転し、緑色の「ON」と表示されます。このボタンをクリックすると、画像が赤色の「OFF」に変わり、モーターの出力が停止します。この機能により、編集する必要のないモーターを休止させることで、長時間の出力による焼損を防ぐことができます。

遅延
86ME19_adddelay.png

ユーザーは遅延を設定できます。ここでの遅延は単なる停止であり、ロボットに何らかのアクションを引き起こすことはありません。

フラグ & Goto

  • Goto と Flag を使うと、長いフレーム列を記述することなく、ループ内でアクションをテストできます。Flag に名前を付けるだけで、アクションリスト内のフラグに指定した名前が付いているかどうかを確認できます。名前が一致していれば、設定は成功です。

86ME19_addflag.png

  • Goto では、名前の設定に加えて、ループ回数、トリガーの有無、Goto 回数も設定する必要があります。また、無限にジャンプさせることもできます。Goto の詳細な動作は、再生状態で Goto を実行すると、この Goto を実行するかどうかを確認します。実行する場合は、Goto で設定された対象のフラグ名を検索し、見つかった場合はフラグ側からアクションを再開します。

86ME19_addgoto.png

  1. 対象のフラグ名を記述します。先ほど作成したフラグと同じテストを記述します。
  2. 実行するかどうかを設定します。
  3. Goto を無限に実行するかどうかを設定します。
  4. 実行回数を設定します。

ホームフレーム
ホームフレームを選択すると、初期位置の値を持つフレームが追加されます。このフレームは変更できません。ホームフレームの値を変更するには、「オプション」→「ロボット設定」でのみ変更できます。このオプションは、ユーザーがホーム状態に戻る際に便利であり、ホームに戻るアクションが実行される場所を特定できます。

86ME19_addhomeframe.png
 

GotoMotion
GotoMotionを使用すると、ロボットに他のモーションコンテンツを簡単に操作させることができます。ターゲットモーションとメソッドを設定するだけです。GotoMotionは生成されたプログラムにのみ反映され、現在、テスト用の86ME再生には対応していません。

  1. ターゲットモーション:実行するモーションです。ターゲットモーションを選択する際は、86MEは現在、自身や互いの呼び出しといった再帰呼び出しをサポートしていないことにご注意ください。これらの状況は予期せぬ動作を引き起こす可能性があります。ご注意ください!
  2. 方法:ターゲットモーションの呼び出しとターゲットモーションへのジャンプの2つに分かれています。ターゲットモーションの呼び出しは、ターゲットモーション実行後も現在のモーションの残りの動作を継続して実行します。ターゲットモーションへのジャンプは、現在のモーションに戻りません。

86ME19_addgotomotion.png
If
If はアクション編集の柔軟性を提供します。現在、50個の変数といくつかの実用的なシステム変数がユーザー向けに提供されています。判定条件を設定するだけで、指定されたフラグにジャンプします。

  1. 左のサブ数式の変数を設定します。「V0~V49」はユーザーが使用できる変数です。これらの変数はすべてのアクションで共有されることに注意してください。その他のシステム変数には、86Duinoの現在時刻(ミリ秒)を示す「NowTime」、乱数を示す「Random」、86DuinoのA0~A5の読み取り値を示す「Analog0~Analog5&Prime」、加速度センサーのX軸、Y軸、Z軸の読み取り値を示す「AccX/Y/Z」、ベース方向に対するIMUの現在の傾斜角度を示す「GyroRoll」と「GyroPitch」があります。RollはX軸、PitchはY軸に対応します。「VKeyUp」と「VKeyDown」は仮想ボタンです。ボタンが押されていないときは0、押されているときは0以外の値になります。仮想キーボードはPS2ジョイスティックに対応します。
  2. 左右の変数の述語を設定します。等しい、等しくない、以上、以下、より大きい、より小さいをサポートします。
  3. 右のサブ式を設定します。左のサブ式と同じですが、仮想ボタンは選択できません。
  4. 右のサブ式が定数の場合、このメソッドを選択して数値を入力できます。
  5. Ifがtrueの場合にジャンプするターゲットを設定します。

86ME195_addif.png
Compute
Compute を使用すると、簡単な計算を実行し、指定された変数(V0~V49)に値を格納することができます。

  1. 左側のサブ数式の変数を設定します。「V0~V49」を選択できます。
  2. 使用する数式を選択します。最初の数式は、2つの変数に対して加算、減算、乗算、除算、累乗、剰余、AND 演算、OR 演算などの演算を実行できます。2番目の数式は、特定の変数に対してNOT、平方根、指数、対数、絶対値、マイナス記号、sin、cosなどの演算を実行できます。3番目の数式は単純な代入です。4番目の数式では定数を指定できます。
  3. 選択した数式を設定すれば完了です。

86ME19_addcompute.png
リリース

リリースを実行すると、すべてのサーボの出力が停止します。このアクションは設定不要です。実行後すぐに動作します。ロボットが危険(落下など)に遭遇しそうになった際に、過度の力によるモーターの損傷を防ぐために使用できます。

ステップ 5:
目的のアクションを編集したら、再生、一時停止、停止ボタンを使ってテストできます。一般的な実行順序は左下の図のとおりです。Goto を実行する場合は、右下の図のとおりです。

86ME19_mtest.png

その後、ユーザーは別のプロジェクトの編集を続けるか(ステップ 2 に戻る)、別のアクションの編集を続けるか(ステップ 3 に戻る)を選択できます。または、「プロジェクトを保存」を選択して.rbmファイルを生成します。次回「ファイル」->「プロジェクトの読み込み」を使用する際は、最後に保存したプロジェクトを引き続き使用できます。

画像の追加:
この機能の目的は、プロジェクトを読み込むたびにモーターのどの位置が対応するかを覚えておく必要がなくなり、モーターのマッチングが簡単に行えるようにすることです。ロボットの画像は、新しいプロジェクトを追加する際(「ファイル」->「新規プロジェクト」)またはプロジェクト設定を変更する際(「オプション」->「ロボット設定」)に追加できます。「ロボット画像の読み込み」ボタンを使用すると、PNG、JPG、GIFファイルをロボット画像として読み込むことができます。一度読み込んだ画像は削除できません。設定後、「アクションリスト」の「フレーム」タイプのアクションを使用すると、モーターを自由に動かして、ロボットパーツとモーターをマッチングさせる効果が得られます。
86ME19_picmode.png
画像を読み込んだ後に保存すると、保存された.rbmファイルにコンピュータ内の画像のパスが記憶されます。そのため、画像の場所を変更または削除すると、次回プロジェクトを読み込んだ際に画像が見つからない場合があります。ご注意ください。

ソースコード

86MEはオープンソースのアクションエディターです。 ソースコードはGitHubで公開されています。ご興味のある方はダウンロードまたは共有してください。このプロジェクトはWindows 7/10 + Visual Studio 2013 Community Editionで構築されています。