このページでは2台のEV3を連携したRTシステムの構築を行います。
1台目のEV3をアクセスポイントとして、ノートPCと2台目のEV3をアクセスポイントに接続します。
※EV3(1台目)は奇数番号のものを配布します。EV3のシールに記載された番号を確認してください。 EV3(2台目)はEV3(1台目)の次の番号のものを配布します。(例:EV3(1台目):7、EV3(2台目):8)
第二部の手順に従って2台目のEducator Vehicleを組み立ててください。
第二部の、実機での動作確認まで完了してください。 この時点でノートPCとアクセスポイントのEV3が接続されているはずです。
まずはEV3(2台目)の電源を投入してください。 起動後にEV3(1台目)に自動接続します。 自動接続できた場合は、EV3の画面左上にIPアドレスが表示されます。 IPアドレスは192.168.11.yyyが表示されます。
EV3(2台目)の画面上の操作でネームサーバーとRTCを起動します。
EV3 の操作画面から「File Browser」→「scripts」を選択してください。
ネームサーバー、RTCはstart_rtcs.shのスクリプトを実行することで起動します。
------------------------------ 192.168.11.yyy ------------------------------ File Browser ------------------------------ /home/robot/scripts ------------------------------ ../ Component/ ・・ [start_rtcs.sh ] ------------------------------
RTシステムエディタから、192.168.11.yyyのネームサーバーに接続してください。
この時点でRTシステムエディタのネームサービスビューにはlocalhost、192.168.0.1、192.168.11.yyyのネームサーバーが登録されています。 192.168.11.yyyのネームサーバーに登録されているRTCの名前はEducatorVehicle1となります。
EducatorVehicle0(192.168.0.1)とEducatorVehicle1(192.168.11.yyy)をシステムダイアグラム上で接続してください。 EducatorVehicle1の現在の速度出力をEducatorVehicle0の目標速度入力に接続することで、EV3(2台目)の動きにEV3(1台目)が追従するようになります。
これで実習は一通り終了ですが、時間が余っている場合は以下のような課題に挑戦してみてください。
ジョイスティックコンポーネントはOpenRTM-aist Python版のサンプルにあります(TkJoyStickComp.py)。 TkJoyStickComp.pyのアウトポートのデータ型はTimedFloatSeq型であるため、TimedVelocity2D型に変換するRTCを作成する必要があります。
EducatorVehicleRTCのsoundという名前のインポートに文字列(TimedString型)を入力すると、EV3が発声します。
文字列(const char*)をデータポートで出力する際はCORBA::string_dup関数で文字列をコピーする必要があります。
m_out.data= CORBA::string_dup("abc");
モーションエディタ/シミュレータ
動力学シミュレータ
統合開発プラットフォーム
産総研が提供するRTC集
東京オープンソースロボティクス協会
ネットワーク分散環境でデータ収集用ソフトウェアを容易に構築するためのソフトウェア・フレームワーク
このページでは2台のEV3を連携したRTシステムの構築を行います。
1台目のEV3をアクセスポイントとして、ノートPCと2台目のEV3をアクセスポイントに接続します。
※EV3(1台目)は奇数番号のものを配布します。EV3のシールに記載された番号を確認してください。 EV3(2台目)はEV3(1台目)の次の番号のものを配布します。(例:EV3(1台目):7、EV3(2台目):8)
EV3(2台目)の組立て
第二部の手順に従って2台目のEducator Vehicleを組み立ててください。
EV3との接続
ノートPCとEV3(1台目)の接続
第二部の、実機での動作確認まで完了してください。 この時点でノートPCとアクセスポイントのEV3が接続されているはずです。
EV3(1台目)とEV3(2台目)の接続
まずはEV3(2台目)の電源を投入してください。 起動後にEV3(1台目)に自動接続します。 自動接続できた場合は、EV3の画面左上にIPアドレスが表示されます。 IPアドレスは192.168.11.yyyが表示されます。
他のIPアドレスが表示されている場合は、配布したEV3の番号が違う可能性があるため確認してください。
ネームサーバー、RTCの起動
EV3(2台目)の画面上の操作でネームサーバーとRTCを起動します。
EV3 の操作画面から「File Browser」→「scripts」を選択してください。
ネームサーバー、RTCはstart_rtcs.shのスクリプトを実行することで起動します。
ネームサーバー追加
RTシステムエディタから、192.168.11.yyyのネームサーバーに接続してください。
この時点でRTシステムエディタのネームサービスビューにはlocalhost、192.168.0.1、192.168.11.yyyのネームサーバーが登録されています。 192.168.11.yyyのネームサーバーに登録されているRTCの名前はEducatorVehicle1となります。
動作確認
EducatorVehicle0(192.168.0.1)とEducatorVehicle1(192.168.11.yyy)をシステムダイアグラム上で接続してください。 EducatorVehicle1の現在の速度出力をEducatorVehicle0の目標速度入力に接続することで、EV3(2台目)の動きにEV3(1台目)が追従するようになります。
RTCをアクティベートして2台目のEducator Vehicleの車輪を転がすと、1台目のEducator Vehicleがそれに合わせて動作します。
自由課題
これで実習は一通り終了ですが、時間が余っている場合は以下のような課題に挑戦してみてください。
例
ジョイスティックコンポーネントはOpenRTM-aist Python版のサンプルにあります(TkJoyStickComp.py)。 TkJoyStickComp.pyのアウトポートのデータ型はTimedFloatSeq型であるため、TimedVelocity2D型に変換するRTCを作成する必要があります。
EducatorVehicleRTCのsoundという名前のインポートに文字列(TimedString型)を入力すると、EV3が発声します。
文字列(const char*)をデータポートで出力する際はCORBA::string_dup関数で文字列をコピーする必要があります。