PD実践:LEGO EV3RTシミュレータ「FutureKreate×箱庭」の設定
lecture
2020.09.01

PD実践の授業で使うレゴEV3シミュレータ「FutureKreate×箱庭」の設定を説明する。箱庭とUnityを使う場合は参考サイトを参照されたい。
参考サイト
手 順
- 授業サンプルプログラムのダウンロード
- 以下のリンクをc:\edu\athrill-sample\ev3rt\ev3rt-beta7-release\asp3\sdkにダウンロードして解凍する。既にsdkディレクトリ下にworkspaceフォルダがあるが気にせず、エクスプローラを使い上書き保存する。
- ファイルのコピー
- 以下のファイルをエクスプローラを使いc:\eduにコピーする。
- c:\edu\athrill-sample\ev3rt\ev3rt-beta7-release\asp3\sdk\workspace\toppers_conference\athrill_mmap.bin
- c:\edu\athrill-sample\ev3rt\ev3rt-beta7-release\asp3\sdk\workspace\toppers_conference\unity_mmap.bin
- リンク(ショートカット)の作成
- パスが長いのでworkspaceのリンク(ショートカット)を作っておく。これにより~/workspaceというフォルダを/mnt/c/edu/athrill-sample/ev3rt/ev3rt-beta7-release/asp3/sdk/workspace workspaceの代わりに使うことができる。ここではlnに-sのオプションを付けてシンボリックリンクとしているのでディスク容量はほとんど消費されない。
$ cd
$ ln -s /mnt/c/edu/athrill-sample/ev3rt/ev3rt-beta7-release/asp3/sdk/workspace workspace
- 上のコマンドを実行してエラーが出る場合は、以下のコマンドを実行してディレクトリやファイルが表示されるか確認してください。ない場合は「PD実践:講義第1回目(9/24)までの準備」」の「3. Athrillのインストール」からやり直してください。
$ ls /mnt/c/edu/athrill-sample/ev3rt/ev3rt-beta7-release/asp3/sdk/workspace
- エイリアス設定
- athrill2の実行コマンドはとても長いので楽するために以下のファイルを~/.bashrcに追加する。これによりarunと入力するだけで済む。
- 次のコマンドでホームディレクトリに移動する。
- 次のコマンドでエディタnanoを使い.bashrcファイルを開く。
- ファイルが開くので以下を.bashrcに挿入して保存する。この例では、#some more ls aliases(89行目)の下に追加している。
alias arun='athrill2 -c1 -t -1 -m config/memory_mmap.txt -d config/device_config_mmap.txt asp'
- mmapファイルの設定
- Ubuntu上で実行しているathrillとWindows上で実行しているFutureKreateが通信してシミュレーションを実施する。通信には共有メモリを使っており、同じファイルにアクセスする必要がある。サンプルプログラムのフォルダの中に共有メモリファイルが入っているが、プログラム毎に設定を変更するのは面倒なのでここでは共有メモリファイルをc:\eduの中に配置する。この作業は1度だけすればよい。他のサンプルプログラムでは必要ない。ただし、この設定では2つのサンプルプログラムを同時に動かすことはできない。
$ cp ~/workspace/athrillsample/athrill_mmap.bin /mnt/c/edu
$ cp ~/workspace/athrillsample/unity_mmap.bin /mnt/c/edu
以上
").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),C.head.appendChild(r[0])},abort:function(){i&&i()}}});var Jt,Kt=[],Zt=/(=)\?(?=&|$)|\?\?/;ce.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Kt.pop()||ce.expando+"_"+jt.guid++;return this[e]=!0,e}}),ce.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Zt.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Zt.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=v(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Zt,"$1"+r):!1!==e.jsonp&&(e.url+=(At.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||ce.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=ie[r],ie[r]=function(){o=arguments},n.always(function(){void 0===i?ce(ie).removeProp(r):ie[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,Kt.push(r)),o&&v(i)&&i(o[0]),o=i=void 0}),"script"}),le.createHTMLDocument=((Jt=C.implementation.createHTMLDocument("").body).innerHTML="
",2===Jt.childNodes.length),ce.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(le.createHTMLDocument?((r=(t=C.implementation.createHTMLDocument("")).createElement("base")).href=C.location.href,t.head.appendChild(r)):t=C),o=!n&&[],(i=w.exec(e))?[t.createElement(i[1])]:(i=Ae([e],t,o),o&&o.length&&ce(o).remove(),ce.merge([],i.childNodes)));var r,i,o},ce.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1
").append(ce.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},ce.expr.pseudos.animated=function(t){return ce.grep(ce.timers,function(e){return t===e.elem}).length},ce.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=ce.css(e,"position"),c=ce(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=ce.css(e,"top"),u=ce.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),v(t)&&(t=t.call(e,n,ce.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):c.css(f)}},ce.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){ce.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===ce.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===ce.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=ce(e).offset()).top+=ce.css(e,"borderTopWidth",!0),i.left+=ce.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-ce.css(r,"marginTop",!0),left:t.left-i.left-ce.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===ce.css(e,"position"))e=e.offsetParent;return e||J})}}),ce.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;ce.fn[t]=function(e){return M(this,function(e,t,n){var r;if(y(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),ce.each(["top","left"],function(e,n){ce.cssHooks[n]=Ye(le.pixelPosition,function(e,t){if(t)return t=Ge(e,n),_e.test(t)?ce(e).position()[n]+"px":t})}),ce.each({Height:"height",Width:"width"},function(a,s){ce.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){ce.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return M(this,function(e,t,n){var r;return y(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?ce.css(e,t,i):ce.style(e,t,n,i)},s,n?e:void 0,n)}})}),ce.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){ce.fn[t]=function(e){return this.on(t,e)}}),ce.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)},hover:function(e,t){return this.on("mouseenter",e).on("mouseleave",t||e)}}),ce.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){ce.fn[n]=function(e,t){return 0
タイトルとURLをコピーしました
コメント
3.のリンクの作成で
ln -s /mnt/c/edu/athrill-sample/ev3rt/ev3rt-beta7-release/asp3/sdk/workspace workspace
を打つと
ln:シンボリックリンク’workspace’の作成に失敗しました:ファイルが存在します
と表示されます。
どのようにすれば上手くいきますか?
もう、成功したのだと思います。次の作業に進んでください。
手順5のコマンドを打ち込むと「そのようなファイルやディレクトリはありません」と出るのですがどうしたらいいですか。
4.エイリアス設定の$ nano ./bashrcのコマンドですが、$nano ~/.bashrcではありませんか?
$ nano ./bashrcのコマンドを実行すると、nanoによって新しいファイルが作られてしまいます。
ありがとう! ミスです。修正しておきました。
cd -P ~/workspace と入力したところ、
「-bash: cd: /home/bbttt/workspace: そのようなファイルやディレクトリはありません」
と表示されました。
また、ls と入力したところ、
「bashrc nano.save noproxy.sh proxy.sh workspace wsl.conf」と表示されました。
wsl.conf の前の workspace の文字の色が違っていますが、関係ありますか?
これだけではよくわからないので、以下のコマンドの出力を教えてください。
$ cd
$ ls -al
事前作業の athrilのインストールからやり直したところ、
手順3のリンク(ショートカット)の作成でエラーが起きなくなり、
$ cd、$ ls -alのコマンドを入力したら、以下の様に表示されました。
合計 16
drwxr-xr-x 1 bbttt bbttt 4096 9月 26 14:04 .
drwxr-xr-x 1 root root 4096 9月 25 20:30 ..
-rw——- 1 bbttt bbttt 4741 9月 26 16:50 .bash_history
-rw-r–r– 1 bbttt bbttt 220 9月 25 20:30 .bash_logout
-rw-r–r– 1 bbttt bbttt 4055 9月 26 12:13 .bashrc
-rw-r–r– 1 bbttt bbttt 56 9月 26 00:59 .gitconfig
drwxr-xr-x 1 bbttt bbttt 4096 9月 25 20:30 .landscape
drwxr-xr-x 1 bbttt bbttt 4096 9月 25 20:39 .local
-rw-r–r– 1 bbttt bbttt 0 9月 26 00:06 .motd_shown
-rw-r–r– 1 bbttt bbttt 807 9月 25 20:30 .profile
-rw-r–r– 1 bbttt bbttt 0 9月 25 20:31 .sudo_as_admin_successful
drwxr-xr-x 1 bbttt bbttt 4096 9月 25 23:58 .vscode-server
-rw-r–r– 1 bbttt bbttt 165 9月 25 23:18 .wget-hsts
-rw-r–r– 1 bbttt bbttt 1 9月 26 12:21 bashrc
-rw-r–r– 1 bbttt bbttt 215 9月 26 00:57 noproxy.sh
-rw-r–r– 1 bbttt bbttt 264 9月 26 00:55 proxy.sh
lrwxrwxrwx 1 bbttt bbttt 70 9月 25 23:39 workspace -> /mnt/c/edu/athrill-sample/ev3rt/ev3rt-beta7-release/asp3/sdk/workspace
-rw-r–r– 1 bbttt bbttt 33 9月 26 12:04 wsl.conf
また、もう一度 $ cd -P ~/workspace、$ ls のコマンドを入力したところ、コメント欄の改行で少しおかしくなっていますが、以下の様に表示されました。
LEGOsampleProgram bttest ev3way-cpp hwbrickbench motor_l_1 multi-task3 sonar2 test-spp-master
Makefile color fstest lcd motor_l_2 multitask1 sonar_listen test-spp-slave
appdir config gyro_angle light motor_m_1 periodic-task sound_1 toppers_conference
asp cyc-task gyro_rate linetrace motor_m_2 sample sound_2 touch
athrillsample dlinetrace gyroboy log.txt multi-task1 sensor_test test-cpp workspace
bluetooth dmotor1 helloev3 motor_infinity multi-task2 sonar test-cyc wsl.conf
両方とも正しく行えているということでしょうか?
うまくいっていると思います。お疲れ様!
手順3のリンク(ショートカット)の作成で、コマンドを入力したら
In:シンボリックリンク ‘workspace’ の作成に失敗しました:ファイルが存在します
と表示されてうまくできませんでした。
どうすれば ~/workspaceを使えるようになりますか?
以下を実行してディレクトリやファイルが表示されるか確認してください。
ls /mnt/c/edu/athrill-sample/ev3rt/ev3rt-beta7-release/asp3/sdk/workspace
ない場合は、講義第1回目(9/24)までの準備作業のathril2のインストールからやり直してください。
「そのようなファイルやディレクトリはありません」と表示されます。
しかし、Windorws(C;)の中にはeduからはじまってworkspaceまでファイルがありました。
また、手順1でそのworkspaceには上書きしています。
「In:シンボリックリンク ‘workspace’ の作成に失敗しました:ファイルが存在します」
「ファイルが存在します」であっていますか。その場合、すでにworkspaceが作成されています。
$ ls -al
とうち、出力を教えてください。
はい、「ファイルが存在します」と表示されます。
また、$ ls -al と入力したら、このように表示されました。
合計 36
drwxr-xr-x 1 bbttt bbttt 4096 9月 25 09:57 .
drwxr-xr-x 1 root root 4096 9月 24 21:57 ..
-rw——- 1 bbttt bbttt 3068 9月 25 10:01 .bash_history
-rw-r–r– 1 bbttt bbttt 220 9月 24 21:57 .bash_logout
-rw-r–r– 1 bbttt bbttt 3905 9月 24 23:49 .bashrc
-rw-r–r– 1 bbttt bbttt 3816 9月 24 23:07 .bashrc.save
-rw-r–r– 1 bbttt bbttt 15555 9月 24 23:08 .bashrc.save.1
-rw-r–r– 1 bbttt bbttt 3716 9月 24 23:19 .bashrc.save.2
drwxr-xr-x 1 bbttt bbttt 4096 9月 24 21:57 .landscape
drwxr-xr-x 1 bbttt bbttt 4096 9月 24 23:04 .local
-rw-r–r– 1 bbttt bbttt 0 9月 25 00:03 .motd_shown
-rw-r–r– 1 bbttt bbttt 807 9月 24 21:57 .profile
-rw-r–r– 1 bbttt bbttt 0 9月 24 21:58 .sudo_as_admin_successful
-rw-r–r– 1 bbttt bbttt 165 9月 24 23:36 .wget-hsts
-rw-r–r– 1 bbttt bbttt 95 9月 25 01:22 bashrc
-rw——- 1 bbttt bbttt 49 9月 24 23:24 nano.save
lrwxrwxrwx 1 bbttt bbttt 70 9月 25 01:20 workspace -> /mnt/c/edu/athrill-sample/ev3rt/ev3rt-beta7-release/asp3/sdk/workspace
-rw-r–r– 1 bbttt bbttt 33 9月 25 00:07 wsl.conf
見た感じよさそうです。以下のコマンドを実行して結果を教えてください。
$ cd -P ~/workspace$ ls~/.bashrcはどこにありますか?
もしくは自分で作る必要があるのでしょうか。
ホームディレクトリ/home/ユーザ名にあります。nano ~/.bashrc で開けます。
エイリアス設定 をもう少し詳しく教えていただけませんでしょうか。.bashrcはどこで開くことができますか?
説明を加えました。この説明でわかりますか?