ここではシミュレータ上のRaspberry Piマウスを操作するRTシステムの起動、終了を自動化するバッチファイル、シェルスクリプトの作成方法について説明します。 今まで実行ファイルをダブルクリックして起動したり、RTSystemEditorから操作してポートを接続したりしていたのが、スクリプトを実行するだけでシステムの起動に必要な処理を全て実行してくれます。
この実習ではRTコンポーネントの作成入門で作成したRobotControllerコンポーネントを使用します。
RTCの起動とRTSystemEditor上での操作を自動化するバッチファイル、シェルスクリプトを作成する実習を行います。
rtshellはコマンドラインからRTCを操作するためのツールで、RTSystemEditorと同等の機能を持ちます。
シミュレータ上のRaspberryPiマウスをRobotControllerコンポーネントで制御するシステムの起動、終了手順は以下の通りです。
この実習ではコマンドラインによる操作を行うため、コマンドプロンプト(Windows)、ターミナル(Ubuntu)を起動してください。
コマンドプロンプト、ターミナルを起動したら「rtls」と入力してください。 ‘rtls’ は、内部コマンドまたは外部コマンド、操作可能なプログラムまたはバッチ ファイルとして認識されていません。と表示された場合、PythonのScriptsフォルダ(例えば「C:\Python38\Scripts」)が環境変数Pathに設定されていません。 Pythonをインストール場所を確認して環境変数を設定してください。
データポートの接続を自動化する手順は以下の通りです。
前準備として接続情報を保存したXMLファイルを保存し、自動起動時にはrtresurrectコマンドで状態を復元します。
RobotControllerComp、RaspberryPiMouseSimulatorCompを起動後、RTSystemEditor上でポートを接続してください。
現在の状態は以下のようになっています。
接続後、以下のコマンドでXMLファイルを保存します。 XMLファイルの保存場所は自分で分かる場所に変更してください。
rtcryo -o C:\work\robotcontroller.xml localhost
次にrtresurrectコマンドを試してみます。 まずは全てのコネクタを削除してください。 RTSystemEditorでコネクタをクリックしてDeleteキーを押すか、右クリックしてDeleteを選択してください。
現在は以下の状態になっています。
以下のコマンドを入力してください。 XMLファイルの場所は保存した場所に変更してください。
rtresurrect C:\work\robotcontroller.xml
ポートが接続された状態に戻ったかを確認してください。 現在は以下の状態になっているはずです。
rtshellのrtstartでRTCをアクティブ化します。 以下のコマンドを入力してください。
rtstart C:\work\robotcontroller.xml
現在は以下の状態になっており、シミュレータ上のRaspberryPiマウスが操作可能になっているはずです。
次にRTCの非アクティブ化を試してみます。 以下のrtstopコマンドを入力してください。
rtstop C:\work\robotcontroller.xml
これでRTCが非アクティブ化されて以下の状態になっているはずです。
rtshellのrtexitでRTCを終了します。
以下のコマンドを試してみてください。
rtexit localhost/RaspberryPiMouseSimulator0.rtc rtexit localhost/%COMPUTERNAME%.host_cxt/RobotController0.rtc
RTCはデフォルトの設定でホスト名.host_cxtのコンテキストの下にコンポーネントを登録します。
※Ubuntuの場合はHOSTNAME=`hostname`を追加して、%COMPUTERNAME%を${HOSTNAME}に変更してください。
これでRTCが終了したはずです。
RTシステムを起動、終了するバッチファイル、シェルスクリプトを作成します。
Windowsの場合は以下のバッチファイルを作成してください。
バッチファイルの作成手順は以下の通りです。
名前変更時に、エクスプローラーで拡張子を非表示にしている場合は注意してください。
バッチファイルはメモ帳などで開いてください。
Ubuntuの場合は以下のシェルスクリプトを作成してください。
まずはrobotcontroller_start.bat、robotcontroller_start.shを編集します。
robotcontroller_start.batをメモ帳などで開いて、RobotControllerComp、RaspberryPiMouseSimulatorCompを起動する手順をバッチファイル、シェルスクリプトに記述します。
Windowsの場合は以下のコマンドを記述してください。
start "" /d C:\workspace\RobotController\build\src\Release RobotControllerComp.exe start "" /d C:\work\RTM_Tutorial\EXE RaspberryPiMouseSimulatorComp.exe timeout 2
Ubuntuの場合は以下のコマンドを記述してください。
cd ~/workspace/RobotController/build/src/ ./RobotControllerComp& cd ~/RasPiMouseSimulatorRTC/build src/RaspberryPiMouseSimulatorComp& sleep 2
RobotControllerComp、RaspberryPiMouseSimulatorCompのパスは環境に合わせて変更してください。 RTCが起動しないと後のコマンドが実行できないためtimeout、sleepコマンドで待機するようにしてあります。
次にポートの接続、RTCのアクティブ化を実行するコマンドを記述してください。
rtresurrect C:\work\robotcontroller.xml rtstart C:\work\robotcontroller.xml
編集が終わったら、robotcontroller_start.bat、robotcontroller_start.shを実行してみてください。 問題がなければRTCが自動起動してシミュレータが実行されているはずです。 RTCが起動しない、ポートが接続されないなどの場合は、実行ファイルのパス、XMLファイルのパスを確認してください。
次にrobotcontroller_exit.bat、robotcontroller_exit.shを編集します。
以下のコマンドを記述してください。
HOSTNAME=`hostname` rtexit localhost/RaspberryPiMouseSimulator0.rtc rtexit localhost/${HOSTNAME}.host_cxt/RobotController0.rtc
編集が終わったら、robotcontroller_exit.bat、robotcontroller_exit.shを実行してみてください。 問題がなければ実行中のRTCが終了するはずです。
モーションエディタ/シミュレータ
動力学シミュレータ
統合開発プラットフォーム
産総研が提供するRTC集
東京オープンソースロボティクス協会
ネットワーク分散環境でデータ収集用ソフトウェアを容易に構築するためのソフトウェア・フレームワーク
はじめに
ここではシミュレータ上のRaspberry Piマウスを操作するRTシステムの起動、終了を自動化するバッチファイル、シェルスクリプトの作成方法について説明します。 今まで実行ファイルをダブルクリックして起動したり、RTSystemEditorから操作してポートを接続したりしていたのが、スクリプトを実行するだけでシステムの起動に必要な処理を全て実行してくれます。
この実習ではRTコンポーネントの作成入門で作成したRobotControllerコンポーネントを使用します。
RTCの起動とRTSystemEditor上での操作を自動化するバッチファイル、シェルスクリプトを作成する実習を行います。
rtshell
rtshellはコマンドラインからRTCを操作するためのツールで、RTSystemEditorと同等の機能を持ちます。
RTシステム起動の自動化
シミュレータ上のRaspberryPiマウスをRobotControllerコンポーネントで制御するシステムの起動、終了手順は以下の通りです。
事前準備
この実習ではコマンドラインによる操作を行うため、コマンドプロンプト(Windows)、ターミナル(Ubuntu)を起動してください。
コマンドプロンプト、ターミナルを起動したら「rtls」と入力してください。 ‘rtls’ は、内部コマンドまたは外部コマンド、操作可能なプログラムまたはバッチ ファイルとして認識されていません。と表示された場合、PythonのScriptsフォルダ(例えば「C:\Python38\Scripts」)が環境変数Pathに設定されていません。 Pythonをインストール場所を確認して環境変数を設定してください。
ポートの接続自動化
データポートの接続を自動化する手順は以下の通りです。
前準備として接続情報を保存したXMLファイルを保存し、自動起動時にはrtresurrectコマンドで状態を復元します。
RobotControllerComp、RaspberryPiMouseSimulatorCompを起動後、RTSystemEditor上でポートを接続してください。
現在の状態は以下のようになっています。
接続後、以下のコマンドでXMLファイルを保存します。 XMLファイルの保存場所は自分で分かる場所に変更してください。
次にrtresurrectコマンドを試してみます。 まずは全てのコネクタを削除してください。 RTSystemEditorでコネクタをクリックしてDeleteキーを押すか、右クリックしてDeleteを選択してください。
現在は以下の状態になっています。
以下のコマンドを入力してください。 XMLファイルの場所は保存した場所に変更してください。
ポートが接続された状態に戻ったかを確認してください。 現在は以下の状態になっているはずです。
RTCのアクティブ化の自動処理
rtshellのrtstartでRTCをアクティブ化します。 以下のコマンドを入力してください。
現在は以下の状態になっており、シミュレータ上のRaspberryPiマウスが操作可能になっているはずです。
次にRTCの非アクティブ化を試してみます。 以下のrtstopコマンドを入力してください。
これでRTCが非アクティブ化されて以下の状態になっているはずです。
RTCの終了の自動化
rtshellのrtexitでRTCを終了します。
以下のコマンドを試してみてください。
RTCはデフォルトの設定でホスト名.host_cxtのコンテキストの下にコンポーネントを登録します。
※Ubuntuの場合はHOSTNAME=`hostname`を追加して、%COMPUTERNAME%を${HOSTNAME}に変更してください。
これでRTCが終了したはずです。
バッチファイル、シェルスクリプトの作成
RTシステムを起動、終了するバッチファイル、シェルスクリプトを作成します。
Windowsの場合は以下のバッチファイルを作成してください。
バッチファイルの作成手順は以下の通りです。
名前変更時に、エクスプローラーで拡張子を非表示にしている場合は注意してください。
バッチファイルはメモ帳などで開いてください。
Ubuntuの場合は以下のシェルスクリプトを作成してください。
起動スクリプトの作成
まずはrobotcontroller_start.bat、robotcontroller_start.shを編集します。
robotcontroller_start.batをメモ帳などで開いて、RobotControllerComp、RaspberryPiMouseSimulatorCompを起動する手順をバッチファイル、シェルスクリプトに記述します。
Windowsの場合は以下のコマンドを記述してください。
Ubuntuの場合は以下のコマンドを記述してください。
RobotControllerComp、RaspberryPiMouseSimulatorCompのパスは環境に合わせて変更してください。 RTCが起動しないと後のコマンドが実行できないためtimeout、sleepコマンドで待機するようにしてあります。
次にポートの接続、RTCのアクティブ化を実行するコマンドを記述してください。
編集が終わったら、robotcontroller_start.bat、robotcontroller_start.shを実行してみてください。 問題がなければRTCが自動起動してシミュレータが実行されているはずです。 RTCが起動しない、ポートが接続されないなどの場合は、実行ファイルのパス、XMLファイルのパスを確認してください。
終了スクリプトの作成
次にrobotcontroller_exit.bat、robotcontroller_exit.shを編集します。
以下のコマンドを記述してください。
Ubuntuの場合は以下のコマンドを記述してください。
編集が終わったら、robotcontroller_exit.bat、robotcontroller_exit.shを実行してみてください。 問題がなければ実行中のRTCが終了するはずです。