浏览代码

[AddVectorObs] Modified the Examples (#409)

* [AddVectorObs] Converted the Examples to use the new AddVectorObs

* [AddVectorObs] Converted the Reacher to use the new AddVectorObs

* [Improvement] One liner for adding the rotation
/develop-generalizationTraining-TrainerController
GitHub 6 年前
当前提交
addadada
共有 5 个文件被更改,包括 28 次插入57 次删除
  1. 8
      unity-environment/Assets/ML-Agents/Examples/3DBall/Scripts/Ball3DAgent.cs
  2. 4
      unity-environment/Assets/ML-Agents/Examples/3DBall/Scripts/Ball3DHardAgent.cs
  3. 33
      unity-environment/Assets/ML-Agents/Examples/Crawler/Scripts/CrawlerAgentConfigurable.cs
  4. 32
      unity-environment/Assets/ML-Agents/Examples/Reacher/Scripts/ReacherAgent.cs
  5. 8
      unity-environment/Assets/ML-Agents/Scripts/Agent.cs

8
unity-environment/Assets/ML-Agents/Examples/3DBall/Scripts/Ball3DAgent.cs


{
AddVectorObs(gameObject.transform.rotation.z);
AddVectorObs(gameObject.transform.rotation.x);
AddVectorObs((ball.transform.position.x - gameObject.transform.position.x));
AddVectorObs((ball.transform.position.y - gameObject.transform.position.y));
AddVectorObs((ball.transform.position.z - gameObject.transform.position.z));
AddVectorObs(ball.transform.GetComponent<Rigidbody>().velocity.x);
AddVectorObs(ball.transform.GetComponent<Rigidbody>().velocity.y);
AddVectorObs(ball.transform.GetComponent<Rigidbody>().velocity.z);
AddVectorObs((ball.transform.position - gameObject.transform.position));
AddVectorObs(ball.transform.GetComponent<Rigidbody>().velocity);
SetTextObs("Testing "+gameObject.GetInstanceID());
}

4
unity-environment/Assets/ML-Agents/Examples/3DBall/Scripts/Ball3DHardAgent.cs


{
AddVectorObs(gameObject.transform.rotation.z);
AddVectorObs(gameObject.transform.rotation.x);
AddVectorObs((ball.transform.position.x - gameObject.transform.position.x));
AddVectorObs((ball.transform.position.y - gameObject.transform.position.y));
AddVectorObs((ball.transform.position.z - gameObject.transform.position.z));
AddVectorObs((ball.transform.position - gameObject.transform.position));
}
public override void AgentAction(float[] vectorAction, string textAction)

33
unity-environment/Assets/ML-Agents/Examples/Crawler/Scripts/CrawlerAgentConfigurable.cs


public override void CollectObservations()
{
AddVectorObs(body.transform.rotation.eulerAngles.x);
AddVectorObs(body.transform.rotation.eulerAngles.y);
AddVectorObs(body.transform.rotation.eulerAngles.z);
AddVectorObs(body.transform.rotation.eulerAngles);
AddVectorObs(bodyRB.velocity.x);
AddVectorObs(bodyRB.velocity.y);
AddVectorObs(bodyRB.velocity.z);
AddVectorObs(bodyRB.velocity);
AddVectorObs((bodyRB.velocity.x - past_velocity.x) / Time.fixedDeltaTime);
AddVectorObs((bodyRB.velocity.y - past_velocity.y) / Time.fixedDeltaTime);
AddVectorObs((bodyRB.velocity.z - past_velocity.z) / Time.fixedDeltaTime);
AddVectorObs((bodyRB.velocity - past_velocity) / Time.fixedDeltaTime);
AddVectorObs(limbs[i].localPosition.x);
AddVectorObs(limbs[i].localPosition.y);
AddVectorObs(limbs[i].localPosition.z);
AddVectorObs(limbs[i].localRotation.x);
AddVectorObs(limbs[i].localRotation.y);
AddVectorObs(limbs[i].localRotation.z);
AddVectorObs(limbs[i].localRotation.w);
AddVectorObs(limbRBs[i].velocity.x);
AddVectorObs(limbRBs[i].velocity.y);
AddVectorObs(limbRBs[i].velocity.z);
AddVectorObs(limbRBs[i].angularVelocity.x);
AddVectorObs(limbRBs[i].angularVelocity.y);
AddVectorObs(limbRBs[i].angularVelocity.z);
AddVectorObs(limbs[i].localPosition);
AddVectorObs(limbs[i].localRotation);
AddVectorObs(limbRBs[i].velocity);
AddVectorObs(limbRBs[i].angularVelocity);
}
for (int index = 0; index < 4; index++)

AddVectorObs(1.0f);
AddVectorObs(1);
AddVectorObs(0.0f);
AddVectorObs(0);
}
leg_touching[index] = false;
}

32
unity-environment/Assets/ML-Agents/Examples/Reacher/Scripts/ReacherAgent.cs


/// </summary>
public override void CollectObservations()
{
AddVectorObs(pendulumA.transform.rotation.eulerAngles.x / 180.0f - 1.0f);
AddVectorObs(pendulumA.transform.rotation.eulerAngles.y / 180.0f - 1.0f);
AddVectorObs(pendulumA.transform.rotation.eulerAngles.z / 180.0f - 1.0f);
AddVectorObs(rbA.angularVelocity.x);
AddVectorObs(rbA.angularVelocity.y);
AddVectorObs(rbA.angularVelocity.z);
AddVectorObs(rbA.velocity.x);
AddVectorObs(rbA.velocity.y);
AddVectorObs(rbA.velocity.z);
AddVectorObs(pendulumA.transform.rotation.eulerAngles / 180.0f - Vector3.one);
AddVectorObs(rbA.angularVelocity);
AddVectorObs(rbA.velocity);
AddVectorObs(pendulumB.transform.rotation.eulerAngles.x / 180.0f - 1.0f);
AddVectorObs(pendulumB.transform.rotation.eulerAngles.y / 180.0f - 1.0f);
AddVectorObs(pendulumB.transform.rotation.eulerAngles.z / 180.0f - 1.0f);
AddVectorObs(rbB.angularVelocity.x);
AddVectorObs(rbB.angularVelocity.y);
AddVectorObs(rbB.angularVelocity.z);
AddVectorObs(rbB.velocity.x);
AddVectorObs(rbB.velocity.y);
AddVectorObs(rbB.velocity.z);
AddVectorObs(pendulumB.transform.rotation.eulerAngles / 180.0f - Vector3.one);
AddVectorObs(rbB.angularVelocity);
AddVectorObs(rbB.velocity);
AddVectorObs(localGoalPosition.x);
AddVectorObs(localGoalPosition.y);
AddVectorObs(localGoalPosition.z);
AddVectorObs(localGoalPosition);
AddVectorObs(localHandPosition.x);
AddVectorObs(localHandPosition.y);
AddVectorObs(localHandPosition.z);
AddVectorObs(localHandPosition);
}
/// <summary>

8
unity-environment/Assets/ML-Agents/Scripts/Agent.cs


{
_info.vectorObservation.AddRange(observation);
}
internal void AddVectorObs(Quaternion observation)
{
_info.vectorObservation.Add(observation.x);
_info.vectorObservation.Add(observation.y);
_info.vectorObservation.Add(observation.z);
_info.vectorObservation.Add(observation.w);
}

正在加载...
取消
保存