狠狠撸

狠狠撸Share a Scribd company logo
rtshell入門
宮本 信彦
国立研究開発法人産業技術総合研究所
インダストリアルCPS研究センター
ソフトウェアプラットフォーム研究チーム
2
2
資料
? 配布資料の「 WEBpage 」のHTMLファイルを開く
– チュートリアル(rtshell入門、Raspberry Pi Mouse) _ OpenRTM-aist.html
? もしくは以下のリンク
– https://openrtm.org/openrtm/ja/node/7097
3
3
RTシステム起動の自動化
ダブルクリックして起動
RTC起動 ポート接続、アクティブ化
GUIでの操作でポート接続、
RTCのアクティブ化
? 先ほどまでのRTシステム起動手順を再起動時も実行するのは
手間がかかる
? これらの処理を自動化するバッチファイル、シェルスクリプトの
作成手順を説明する。
4
4
? rtshellはコマンドラインでRTコンポーネントやRTシステム
を操作するツール
rtshell
> rtcon localhost/ConsoleIn0.rtc:out localhost/ConsoleOut0.rtc:in
> rtact localhost/ConsoleIn0.rtc localhost/ConsoleOut0.rtc
rtconコマンドで
ポートの接続
rtactコマンドで
アクティブ化
5
5
? 今回開発した「シミュレータ + RobotController」のシステ
ムを起動、終了するための手順は以下のとおりである。
1. RaspberryPiMouseSimulatorコンポーネント、
RobotControllerコンポーネントを起動する。
2. ポートをコネクタで接続する
3. RTCをアクティブ化する
4. RTCを終了する
RTシステムの起動、終了を自動化
? 1~4を実行するスクリプトファイル(バッチファイル、シェルスクリ
プト)を作成し、簡単にRTシステムを起動、終了できるようにする
– 1については以下のプログラムを実行するコマンドを記述するだけ
? RaspberryPiMouseSimulatorComp.exe
? RobotControllerComp.exe
– 2、3、4についてはrtshellのコマンドを使用する
6
6
事前準備
? この実習ではコマンドラインによる操作を行うため、コマンドプ
ロンプト(Windows)、ターミナル(Ubuntu)を起動してください。
– Windowsの場合は左下の「検索」に「コマンド プロンプト」と入力して検索する。
– コマンドプロンプトが起動したら「rtls」を入力してみてください。「‘rtls’ は、内部コ
マンドまたは外部コマンド、操作可能なプログラムまたはバッチ ファイルとして認
識されていません。」と表示された場合、Pythonのインストールフォルダ内の
Scriptsフォルダが環境変数Pathに設定されていません。
? 「C:?Python38?Scripts」といったフォルダを環境変数Pathに追加する必要
がありますが、分からない場合は質問してください。
7
7
1. RTSystemEditor上でデータポートを接続する。
2. コネクタの接続情報をファイルに保存する。
3. 再起動時にファイルの情報からコネクタを復元する。
ポート接続の自動化
> rtcryo -o C:?work?robotcontroller.xml localhost
RTSystemEditorで
ポートを接続する
rtcryoコマンドで接続情報な
どをXMLファイルに保存する
前準備
8
8
RTシステムの保存、復元
> rtresurrect C:?work?robotcontroller.xml
? 作成したXMLファイルからポートの接続情報を読み込み、
元のシステムを復元できる。
rtresurrectコマンドでXMLファイルの
情報からポートを接続する。
? rtcryoコマンドを試してみる
– RTSystemEditorでポートを接続した状態にする。
– rtcryoコマンドでシステムの情報をXMLファイルに保存する
– Pyyamlがインストールされていないとエラーになる
? pip install pyyaml
9
9
RTシステムの保存、復元
> rtcryo -o C:?work?robotcontroller.xml localhost
XMLファイルを保存するパスを
指定する。適宜パスは分かりや
すい場所に変更してください
ネームサーバーを指定する。
今回はlocalhostのみ。
? rtresurrectコマンドを試してみる
1. RTSystemEditorでコネクタを切断した状態にする。
? コネクタを切断するには、コネクタを選択してDeleteキーを押すか、右
クリックしてDeleteを選択する。
2. rtresurrectコマンドでポートの接続情報を復元する
10
10
RTシステムの保存、復元
> rtresurrect C:?work?robotcontroller.xml
XMLファイルのパスはrtcryoコマンドで保存したパスに変更する
? rtstartコマンドでXMLファイルに保存したシステムのRTCをアクティ
ブ化する
– 以下のコマンドを試してみてください
11
11
RTCのアクティブ化の自動処理
> rtstart C:?work?robotcontroller.xml
XMLファイルのパスはrtcryoコマンドで保存したパスに変更する
? rtstopコマンドでXMLファイルに保存したシステムのRTCを非アク
ティブ化する
– 以下のコマンドを試してみてください
12
12
RTCの非アクティブ化
> rtstop C:?work?robotcontroller.xml
XMLファイルのパスはrtcryoコマンドで保存したパスに変更する
? rtexitコマンドでXMLファイルに保存したシステムのRTCを非アク
ティブ化する
– 以下のコマンドを試してみてください
13
13
RTCの終了の自動化
> rtexit localhost/RaspberryPiMouseSimulator0.rtc
> rtexit localhost/%COMPUTERNAME%.host_cxt/RobotController0.rtc
デフォルトの設定でRobotControllerはネームサーバーで
ホスト名.host_cxtの下に登録される。
※Ubuntuの場合は「%COMPUTERNAME%」
を「${HOSTNAME}」に変更する。
? rtshellのコマンドを用いて、RTシステムの起動、終了を自動化す
るバッチファイル(Windows)、シェルスクリプト(Ubuntu)を作成す
る。
– まずは適当な場所に以下のファイルを作成
? Windowsの場合はバッチファイル(拡張子.bat)
– 今回は「robotcontroller_start.bat」、
「robotcontroller_exit.bat」というファイルを作成
– テキストファイルを新規作成後、 名前を変更することで作成する。
– エクスプローラーで拡張子を非表示にしている場合は注意
? Ubuntuの場合はシェルスクリプト(拡張子.sh)
– 今回は「robotcontroller_start.sh」、
「robotcontroller_exit.sh」というファイルを作成
14
14
スクリプトファイルの作成
15
15
バッチファイル作成,編集
エクスプローラーで
右クリックして、
「新規作成」->
「テキスト ドキュメント」
を選択する
名前を
「robotcontroller_start.bat」、
「robotcontroller_exit.bat」に
変更する。
ファイルを右クリックして「編集」を選
択する。
? まずは「robotcontroller_start.bat」、
「robotcontroller_start.sh」を編集する。
? RaspberryPiMouseSimulator、RobotControllerのプログラ
ムを実行するコマンドを記述する。
– バッチファイル
? ファイルのパスは適宜変更する
– シェルスクリプト
? ファイルのパスは適宜変更する
16
16
起動自動化のスクリプトファイルの作成
start "" /d C:?workspace?RobotController?build?src?Release RobotControllerComp.exe
start "" /d C:?work?RTM_Tutorial?EXE RaspberryPiMouseSimulatorComp.exe
timeout 2
cd ~/workspace/RobotController/build/src/
./RobotControllerComp&
cd ~/RasPiMouseSimulatorRTC/build/src
./RaspberryPiMouseSimulatorComp&
sleep 2
? RTシステムを復元、RTCのアクティブ化を実行するコマンドを
記述する。
– XMLファイルのパスは適宜変更する。
? 記述が完了したら、robotcontroller_start.bat、
robotcontroller_start.shを実行してシミュレータが起動する
かを確認してください。
– RTCが起動しない場合、実行ファイルのパスが違う可能性があるため
確認してください。
17
17
起動自動化のスクリプトファイルの作成
rtresurrect C:?work?robotcontroller.xml
rtstart C:?work?robotcontroller.xml
? まずは「robotcontroller_exit.bat」、
「robotcontroller_exit.sh」を編集する。
? RTC終了のコマンドを記述する。
– Windows
– Ubuntu
? 記述が完了したら、robotcontroller_exit.bat、
robotcontroller_exit.shを実行して以下の事を確認してくださ
い。
– シミュレータが終了する(ウィンドウが消える)。
– ネームサーバーからRTCが消える。
18
18
終了自動化のスクリプトファイルの作成
rtexit localhost/RaspberryPiMouseSimulator0.rtc
rtexit localhost/ %COMPUTERNAME%.host_cxt/RobotController0.rtc
HOSTNAME=`hostname`
rtexit localhost/RaspberryPiMouseSimulator0.rtc
rtexit localhost/${HOSTNAME}.host_cxt/RobotController0.rtc

More Related Content

搁迟蝉丑别濒濒入门