ロビプログラムコンパイラー
免責事項
本アプリケーションを使用することによって、発生した損失や損害に対して株式会社メディアクラフトは一切責任を負いません。
なおロビで動くプログラムでも本プログラムではコンパイルできない場合がありますのでご了承ください。

ロビプログラムコンパイラーはロビのRM4形式のプログラムをロビ2で動かせるバイナリ形式のプログラムに変換するソフトウェアです。
変換したプログラムはロビ2のプログラムであるSTARTUP.BINに組み込組み対応する認識語を指定してその認識語で動かす事ができます。
また変換したプログラムはバイナリ形式で保存できますので後から別の認識語で組み込む事ができます。
プログラムの読込み
「読込み」ボタンを押してロビのブログラムを読込みます。
「開く」ダイアログで変換するRM4プログラムを指定して開きます。

本プログラムで保存したバイナリ形式のファイルを読込むにはファイル形式の指定(右下プルダウンリスト)をロビプログラム(*.RM4)からバイナリファイル(*.BIN)に切替てください。
jump adr命令で飛び先がバイトアドレスではなくブロック名で記載したテキスト形式のファイルを読込むにはファイル形式の指定(右下プルダウンリスト)をロビプログラム(*.RM4)からテキストファイル(*.TXT)に切替てください。
本プログラムでjump adr命令の飛び先をブロック名からバイトアドレスに変換してRM4ファイル(拡張子変更)に出力してからRM4ファイルを読込みます。

RM4ファイルへの変換が成功すると上記のメッセージが表示されます。
なおジャンプ命令が検出されない場合はエラーとなります。
その場合は拡張子をRM4に変更してRM4形式で読み込んでください。

ロビプログラムアナライザーで出力されたプログラムリストを読込んだ場合は上記のダイアログが表示されます。
その場合は「はい」を答えてアドレスアドレスをブロック名として変換してください。
プログラムのコンパイル
「変換」ボタンを押してロビのプログラムを変換(コンパイル)します。

正常にコンパイルできると上記のダイアログが表示されます。
サブプログラムをコールしている場合は自動的にサブプロログラムを読込んでコンパイルします。
その際サブプログラムが見つからない場合は次のダイアログが表示されます。

このダイアログに対して「はい」を答えるとフォルダーの設定をメインプログラムがある場所に変更してサブプログラムを読み込みます。
変更しても見つからない場合はフォルダーの設定でサブプログラムのある場所を設定してください。

コンパイル時にロビ2のプログラムに正しく変換できない場合は上記のダイアログが表示されます。
正しく変換できなかったプログラム名とバイトアドレス(行番号)が表示されるので記述に間違いがないか調べてください。
なおロビで動くプログラムでも本プログラムではコンパイルできない場合があります。
その場合はプログラムの記述方法をロビの標準プログラムに合わせてください。
本プログラムはロビ1のRM4形式にないcall adrコマンドに対応しています。
このコマンドはロビ2のプログラムのコマンドでサブルーチンがファイル名でなくアドレスで指定されています。
ロビプログラムアナライザーのプログラムリストに表示されるコマンドがそのまま使えます。
jump命令やcall adr命令のアドレスは絶対アドレスとプログラム内の相対アドレスがあります。
プログラムのバイトサイズを越えるアドレスは絶対アドレスとして扱われます。
相対アドレスの場合はSTARTUP.BINに組み込まれる時にSTARTUP.BIN内のアドレス(絶対アドレス)に変換されます。
ブログラムの書出し
「書出し」ボタンを押してバイナリファイルを書き出します。

直接ロビ2のプログラムに書き出す場合はSTARTUP.BINを指定します。

どの音声認識語のプログラムと置き換えるかこのダイアログで指定してください。
プルダウンリストから音声認識語を選択するか音声認識語番号を直接入力して指定してください。
置き替えたモーションはロビ2の音声認識、ロビボイスプレイヤーやRoVoCoMo2のリモート接続またはQ-boのBluetooth送信で動かす事ができます。
認識語に割り当てられている本来のプログラムは動かせなくなるので注意してください。
一部置き換えられない認識語があります。その場合はエラー表示されますので他の認識語を指定してください。
モーションプログラムはSTARTUP.BINの最後に追加されるので書き込まれる度にSTARTUP.BINはファイルサイズが大きくなっていきます。
同じ認識語に対して変更したモーションを書込みだ場合も新たに追加されて前のモーションプログラムはそのまま残ります。
STARTUP.BIN以外のファイル名で書き出した場合はコンパイルした結果をバイナリファイルに保存する事ができます。
本プログラムで読み込んでの任意の認識語でSTARTUP.BINに組み込んだり直接実行で実行する事ができます。
直接実行
「直接実行」ボタンを押すとリモート接続されたロビ2を直接動かす事ができます。
なおコンパイルした結果が大きいと直接実行出来ない場合があります。
その場合はSTARTUP.BINに組み込んで実行してください。
この機能を使うにはロビ2がリモート接続されている必要がありますがファイル転送が伴うのでBluetoothによる接続の場合はこの機能は使えません。
なおロビ2のリモート接続対応はロビ2のココロに含まれるSTARTUP.BINに対してロビ設定ファイルエディタ2を使って行ってください。
またFlashAirでリモート接続を行う場合はMergeFile.luaをFlashAirに入れて設定ファイルの設定が必要です。
FlashAirでリモート接続されている場合は「FlashAir」のチェックを入れおく必要があります。

USB接続されている場合は、リモート接続ファイルを指定する必要があります。
このファイルが見つからない場合は上記のダイアログが表示されるのでロビのSDカードのADDONフォルダーにあるREMOTE.LOGを指定してください。
リモート設定ボタンは明示的にリモートファイルを指定する事ができます。
変換設定
ロビ1のプログラムをロビ2で動かす場合はプログラムの値を変更する必要があります。
これらの値を変更しながらコンパイルする事ができます。
LEDアドレス変更
ロビ2では目や口のLEDの制御アドレスが変更されています。
そのままのアドレスでロビ2で動かすとは目や口のLEDは点灯しないので変換する必要があります。
「LEDアドレス変更」をチェックしておいてコンパイルしてください。
なおこの設定をするとポーズデータは128バイトに変換して余分なデータは転送されないようになります。
サーボトルク変更
ロビ2のプログラムのサーボのトルクはほとんどが80%以下で作られています。
ロビ1のプログラムはほとんど100%で作られているのでトルクを押さえる場合は変換する必要があります。
「サーボトルク変更」をチェックしておいてコンパイルすると設定した値以上のサーボトルクは設定値に変更されます。
顔の向き判定
ロビ2では顔の向きのステータスがロビは3段階でしたがロビ2は5段階に変更されています。
ロビ2で正面を向いていてもロビのプログラムは右を向いていると判定されます。
「顔の向き判定変更」をチェックしてコンパイルすると顔の向きのステータスをロビ2用に変更します。
なおロビ2で増えたステータス(少し右や少し左)は正面のステータスとして判定するように変更します。
CALL時間調整
ロビ2ではサブプログラムをSTARTUP.BINに展開するので実行時にサブプログラムファイルの読み込みが行われません。
そのためロビより実行速度が速くなります。
ロビ1と同期させるようなプログラムを動かすとロビ2の処理が先に進んでしまいます。
これを調整するためにWAITコマンドをサブプログラムの先頭に入れます。
WAIT時間はファイルの大きさで自動的に計算して入れられます。
なおメインプログラムも実行時に読み込まれますのでこの設定でWAIT命令が入れられます。
フォルダー設定

プログラムを指定するダイアログが表示されるのでサブプログラムが存在するフォルダーを指定してください。
サブプログラムがフォルダーの下にあってプログラムからそのフォルダーを指定して呼び出している場合はそのフォルダーの上にあるプログラムを指定してください。
その場所にプログラムがない場合は仮に任意のプログラムを置いておいてそれを指定してください。
プログラムのダウンロード
本プログラムの最新版は以下のリンクからダウンロードする事ができます。
RBCompiler.zip
なおロビのプログラム変更やSDカードの書き換えは、ロビ本体への影響を及ぼす可能性があるのであくまでも自己責任という事でお願いします。
また必ずオリジナルのSDカードのバックアップは取っておいてください。
問題があったらオリジナルのSDカードに戻してください。
目次に戻る