チュートリアル(rtshell入門、Raspberry Pi Mouse)

はじめに

ここではシミュレータ上のRaspberry Piマウスを操作するRTシステムの起動、終了を自動化するバッチファイル、シェルスクリプトの作成方法について説明します。 今まで実行ファイルをダブルクリックして起動したり、RTSystemEditorから操作してポートを接続したりしていたのが、スクリプトを実行するだけでシステムの起動に必要な処理を全て実行してくれます。

この実習ではRTコンポーネントの作成入門で作成したRobotControllerコンポーネントを使用します。

RTCの起動とRTSystemEditor上での操作を自動化するバッチファイル、シェルスクリプトを作成する実習を行います。

/ja/node/7097

rtshell

rtshellはコマンドラインからRTCを操作するためのツールで、RTSystemEditorと同等の機能を持ちます。

RTシステム起動の自動化

シミュレータ上のRaspberryPiマウスをRobotControllerコンポーネントで制御するシステムの起動、終了手順は以下の通りです。

  1. RaspberryPiMouseSimulatorコンポーネント、RobotControllerコンポーネントを起動する。
  2. ポートをコネクタで接続する
  3. RTCをアクティブ化する
  4. RTCを終了する

事前準備

この実習ではコマンドラインによる操作を行うため、コマンドプロンプト(Windows)、ターミナル(Ubuntu)を起動してください。

コマンドプロンプト、ターミナルを起動したら「rtls」と入力してください。 ‘rtls’ は、内部コマンドまたは外部コマンド、操作可能なプログラムまたはバッチ ファイルとして認識されていません。と表示された場合、PythonのScriptsフォルダ(例えば「C:\Python38\Scripts」)が環境変数Pathに設定されていません。 Pythonをインストール場所を確認して環境変数を設定してください。

ポートの接続自動化

データポートの接続を自動化する手順は以下の通りです。

  • RTSystemEditor(もしくはrtshellのrtconコマンド)でポートを接続する。
  • rtshellのrtcryoコマンドで接続情報をファイルに保存する。
  • 再起動時にrtshellのrtresurrectコマンドで接続を復元する。

前準備として接続情報を保存したXMLファイルを保存し、自動起動時にはrtresurrectコマンドで状態を復元します。

RobotControllerCompRaspberryPiMouseSimulatorCompを起動後、RTSystemEditor上でポートを接続してください。

現在の状態は以下のようになっています。

/ja/node/7097

接続後、以下のコマンドでXMLファイルを保存します。 XMLファイルの保存場所は自分で分かる場所に変更してください。

 rtcryo -o C:\work\robotcontroller.xml localhost

次にrtresurrectコマンドを試してみます。 まずは全てのコネクタを削除してください。 RTSystemEditorでコネクタをクリックしてDeleteキーを押すか、右クリックしてDeleteを選択してください。

/ja/node/7097

現在は以下の状態になっています。

/ja/node/7097

以下のコマンドを入力してください。 XMLファイルの場所は保存した場所に変更してください。

 rtresurrect C:\work\robotcontroller.xml

ポートが接続された状態に戻ったかを確認してください。 現在は以下の状態になっているはずです。

/ja/node/7097

RTCのアクティブ化の自動処理

rtshellのrtstartでRTCをアクティブ化します。 以下のコマンドを入力してください。

 rtstart C:\work\robotcontroller.xml

現在は以下の状態になっており、シミュレータ上のRaspberryPiマウスが操作可能になっているはずです。

/ja/node/7097

次にRTCの非アクティブ化を試してみます。 以下のrtstopコマンドを入力してください。

 rtstop C:\work\robotcontroller.xml

これでRTCが非アクティブ化されて以下の状態になっているはずです。

/ja/node/7097

RTCの終了の自動化

rtshellのrtexitでRTCを終了します。

以下のコマンドを試してみてください。

 rtexit localhost/RaspberryPiMouseSimulator0.rtc
 rtexit localhost/%COMPUTERNAME%.host_cxt/RobotController0.rtc

RTCはデフォルトの設定でホスト名.host_cxtのコンテキストの下にコンポーネントを登録します。

/ja/node/7097

※Ubuntuの場合はHOSTNAME=`hostname`を追加して、%COMPUTERNAME%${HOSTNAME}に変更してください。

これでRTCが終了したはずです。

バッチファイル、シェルスクリプトの作成

RTシステムを起動、終了するバッチファイル、シェルスクリプトを作成します。

Windowsの場合は以下のバッチファイルを作成してください。

  • robotcontroller_start.bat
  • robotcontroller_exit.bat

バッチファイルの作成手順は以下の通りです。

名前変更時に、エクスプローラーで拡張子を非表示にしている場合は注意してください。

バッチファイルはメモ帳などで開いてください。

Ubuntuの場合は以下のシェルスクリプトを作成してください。

  • robotcontroller_start.sh
  • robotcontroller_exit.sh

起動スクリプトの作成

まずはrobotcontroller_start.batrobotcontroller_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.batrobotcontroller_exit.shを編集します。

以下のコマンドを記述してください。

 rtexit localhost/RaspberryPiMouseSimulator0.rtc
 rtexit localhost/%COMPUTERNAME%.host_cxt/RobotController0.rtc

Ubuntuの場合は以下のコマンドを記述してください。

 HOSTNAME=`hostname`
 rtexit localhost/RaspberryPiMouseSimulator0.rtc
 rtexit localhost/${HOSTNAME}.host_cxt/RobotController0.rtc

編集が終わったら、robotcontroller_exit.bat、robotcontroller_exit.shを実行してみてください。 問題がなければ実行中のRTCが終了するはずです。

ダウンロード

最新バージョン : 2.0.1-RELESE

統計

Webサイト統計
ユーザ数:2160
プロジェクト統計
RTコンポーネント307
RTミドルウエア35
ツール22
文書・仕様書2

Choreonoid

モーションエディタ/シミュレータ

OpenHRP3

動力学シミュレータ

OpenRTP

統合開発プラットフォーム

産総研RTC集

産総研が提供するRTC集

TORK

東京オープンソースロボティクス協会

DAQ-Middleware

ネットワーク分散環境でデータ収集用ソフトウェアを容易に構築するためのソフトウェア・フレームワーク