概要
メタバースを使った、ライントレースシュミレーターを提供します。
写真
詳細
エージェント(ローバー)が環境で、ライントレースするシュミレータを作り、結果をwebsocketに出力、neosvrで受け取り、BOXを移動させる。
websocketサーバーは、elixirで準備します。
エージェントと環境は、Plunkerで提供します。
設定は、ローバーが、ライントレースを続けるシュミレーターです。
var Agent = function() {
this.act = 2;
};
Agent.prototype.get_action = function(observation, reward, done) {
var res = this.act;
if (observation[3] < 100)
{
res = 0;
}
else
{
res = 1;
}
return res;
}
Agent.prototype.l = function() {
this.act = 0;
}
Agent.prototype.r = function() {
this.act = 1;
}
画面の下にある5つのグレーがセンサーです。
ちなみに、aは、回転角、xyzは、座標です。
10ミリ秒毎にagentが呼び出されて、アクションを求められます。
その際、センサーの値だけが送られます。
r = agent.get_action(observation, reward, done);
observation: [255, 255, 0, 0, 0]
reward: 1.0
done: false
その値でagentがアクションを返します。
アクションは、2が真っ直ぐ、0が右、1が左です。
環境は、60fpsで更新し、ローバーを移動し、位置を更新します。
ローバーは、センサーの値を受け取り、方向量ベクトルを出力します。
さらに、ローバーの位置情報をwebsocketで、垂れ流しします。
neosvrは、ローバーの位置情報をwebsocketで受け取り、BOXを移動させます。
成果物
以上。