浏览代码

addforce and static walls

/asymm-envs
Andrew Cohen 4 年前
当前提交
d5428487
共有 3 个文件被更改,包括 27 次插入22 次删除
  1. 20
      Project/Assets/ML-Agents/Examples/Tennis/Prefabs/TennisArea.prefab
  2. 27
      Project/Assets/ML-Agents/Examples/Tennis/Scripts/TennisAgent.cs
  3. 2
      config/trainer_config.yaml

20
Project/Assets/ML-Agents/Examples/Tennis/Prefabs/TennisArea.prefab


m_TagString: iWall
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_StaticEditorFlags: 4294967295
m_IsActive: 1
--- !u!4 &4732304271615694
Transform:

m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_StaticEditorFlags: 4294967295
m_IsActive: 1
--- !u!4 &4011186677764578
Transform:

m_TagString: iWall
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_StaticEditorFlags: 4294967295
m_IsActive: 1
--- !u!4 &4522776505819358
Transform:

m_TagString: iWall
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_StaticEditorFlags: 4294967295
m_IsActive: 1
--- !u!4 &4733128113887812
Transform:

m_TagString: iWall
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_StaticEditorFlags: 4294967295
m_IsActive: 1
--- !u!4 &4859823443517042
Transform:

m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_StaticEditorFlags: 4294967295
m_IsActive: 1
--- !u!4 &4471539065941630
Transform:

m_TagString: iWall
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_StaticEditorFlags: 4294967295
m_IsActive: 1
--- !u!4 &4821769212579210
Transform:

m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_StaticEditorFlags: 4294967295
m_IsActive: 1
--- !u!4 &4989061702213290
Transform:

m_TagString: iWall
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_StaticEditorFlags: 4294967295
m_IsActive: 1
--- !u!4 &4535263776590958
Transform:

m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_StaticEditorFlags: 4294967295
m_IsActive: 1
--- !u!4 &4275308033819996
Transform:

27
Project/Assets/ML-Agents/Examples/Tennis/Scripts/TennisAgent.cs


var moveX = Mathf.Clamp(vectorAction[0], -1f, 1f) * m_InvertMult;
var moveY = Mathf.Clamp(vectorAction[1], -1f, 1f);
var rotate = Mathf.Clamp(vectorAction[2], -1f, 1f) * m_InvertMult;
var upward = 0.0f;
m_AgentRb.velocity = new Vector3(m_AgentRb.velocity.x, moveY * 20f, 0f);
upward = moveY;
//m_AgentRb.velocity = new Vector3(m_AgentRb.velocity.x, moveY * 20f, 0f);
m_AgentRb.velocity = new Vector3(moveX * 30f, m_AgentRb.velocity.y, 0f);
m_AgentRb.AddForce(new Vector3(moveX * 30f, upward * 20f, 0f), ForceMode.VelocityChange);
//m_AgentRb.velocity = new Vector3(moveX * 30f, m_AgentRb.velocity.y, 0f);
m_AgentRb.transform.rotation = Quaternion.Euler(0f, -180f, 55f * rotate + m_InvertMult * 90f);

transform.position.y,
transform.position.z);
}
timePenalty += -1f / 3000f;
var rgV = m_AgentRb.velocity;
m_AgentRb.velocity = new Vector3(Mathf.Clamp(rgV.x, -35f, 35f), Mathf.Clamp(rgV.y, -25f, 25f), rgV.z);
//timePenalty += -1f / 3000f;
m_TextComponent.text = score.ToString();
}

actionsOut[2] = Input.GetAxis("Vertical"); // Racket Rotation
}
void OnCollisionEnter(Collision c)
{
if (c.gameObject.CompareTag("ball"))
{
AddReward(.4f * m_BallTouch);
}
}
//void OnCollisionEnter(Collision c)
//{
// if (c.gameObject.CompareTag("ball"))
// {
// AddReward(.4f * m_BallTouch);
// }
//}
void FixedUpdate()
{

2
config/trainer_config.yaml


Tennis:
normalize: true
max_steps: 5.0e7
learning_rate: 1.0e-4
learning_rate: 3.0e-4
learning_rate_schedule: constant
batch_size: 2048
buffer_size: 20480

正在加载...
取消
保存