浏览代码

new curve

/active-variablespeed
HH 5 年前
当前提交
e2217a9a
共有 4 个文件被更改,包括 395 次插入399 次删除
  1. 347
      Project/Assets/ML-Agents/Examples/Walker/Prefabs/DynamicPlatformWalker.prefab
  2. 379
      Project/Assets/ML-Agents/Examples/Walker/Scenes/WalkerDynamic.unity
  3. 66
      Project/Assets/ML-Agents/Examples/Walker/Scripts/WalkerAgent.cs
  4. 2
      config/ppo/WalkerDynamic.yaml

347
Project/Assets/ML-Agents/Examples/Walker/Prefabs/DynamicPlatformWalker.prefab


cumulativeThisSession: 0
lastNaNStep: 0
maxSteps: 0
--- !u!114 &1651680225
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 498449230155494207}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 2d2b3caecf069467ebf3a650d8ee401e, type: 3}
m_Name:
m_EditorClassIdentifier:
rewardsList:
- rewardKey: matchSpeed
rawVal: 0
rewardScalar: 0.03
rewardThisStep: 0
cumulativeThisEpisode: 0
cumulativeThisSession: 0
lastNaNStep: 0
- rewardKey: lookAtTarget
rawVal: 0
rewardScalar: 0.01
rewardThisStep: 0
cumulativeThisEpisode: 0
cumulativeThisSession: 0
lastNaNStep: 0
- rewardKey: headHeightOverFeet
rawVal: 0
rewardScalar: 0.001
rewardThisStep: 0
cumulativeThisEpisode: 0
cumulativeThisSession: 0
lastNaNStep: 0
- rewardKey: hurryUp
rawVal: 0
rewardScalar: 0
rewardThisStep: 0
cumulativeThisEpisode: 0
cumulativeThisSession: 0
lastNaNStep: 0
- rewardKey: bpVel
rawVal: 0
rewardScalar: -0.001
rewardThisStep: 0
cumulativeThisEpisode: 0
cumulativeThisSession: 0
lastNaNStep: 0
- rewardKey: productOfAllRewards
rawVal: 0
rewardScalar: 1
rewardThisStep: 0
cumulativeThisEpisode: 0
cumulativeThisSession: 0
lastNaNStep: 0
maxSteps: 0
--- !u!114 &5891315090006581283
MonoBehaviour:
m_ObjectHideFlags: 0

- {fileID: 6065910098925129092}
- {fileID: 498449229878744708}
- {fileID: 4415586145491295474}
- {fileID: 498449230155494182}
m_Father: {fileID: 0}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}

cumulativeThisSession: 0
lastNaNStep: 0
maxSteps: 0
--- !u!1001 &758428434284045564
PrefabInstance:
m_ObjectHideFlags: 0
serializedVersion: 2
m_Modification:
m_TransformParent: {fileID: 4715983678655513245}
m_Modifications:
- target: {fileID: 693499830, guid: 765582efd9dda46ed98564603316353f, type: 3}
propertyPath: targetToLookAt
value:
objectReference: {fileID: 4714470935848893865}
- target: {fileID: 895268871264836333, guid: 765582efd9dda46ed98564603316353f,
type: 3}
propertyPath: agentDoneOnGroundContact
value: 1
objectReference: {fileID: 0}
- target: {fileID: 895268871264836333, guid: 765582efd9dda46ed98564603316353f,
type: 3}
propertyPath: penalizeGroundContact
value: 1
objectReference: {fileID: 0}
- target: {fileID: 895268871377934275, guid: 765582efd9dda46ed98564603316353f,
type: 3}
propertyPath: m_Name
value: WalkerRagdoll (3)
objectReference: {fileID: 0}
- target: {fileID: 895268871377934275, guid: 765582efd9dda46ed98564603316353f,
type: 3}
propertyPath: m_IsActive
value: 0
objectReference: {fileID: 0}
- target: {fileID: 895268871377934297, guid: 765582efd9dda46ed98564603316353f,
type: 3}
propertyPath: m_Model
value:
objectReference: {fileID: 11400000, guid: 5ae39043f159147e6a07d4e59027512a,
type: 3}
- target: {fileID: 895268871377934297, guid: 765582efd9dda46ed98564603316353f,
type: 3}
propertyPath: m_BrainParameters.VectorObservationSize
value: 238
objectReference: {fileID: 0}
- target: {fileID: 895268871377934298, guid: 765582efd9dda46ed98564603316353f,
type: 3}
propertyPath: m_LocalPosition.x
value: -1.8
objectReference: {fileID: 0}
- target: {fileID: 895268871377934298, guid: 765582efd9dda46ed98564603316353f,
type: 3}
propertyPath: m_LocalPosition.y
value: 3.07
objectReference: {fileID: 0}
- target: {fileID: 895268871377934298, guid: 765582efd9dda46ed98564603316353f,
type: 3}
propertyPath: m_LocalPosition.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 895268871377934298, guid: 765582efd9dda46ed98564603316353f,
type: 3}
propertyPath: m_LocalRotation.x
value: -0
objectReference: {fileID: 0}
- target: {fileID: 895268871377934298, guid: 765582efd9dda46ed98564603316353f,
type: 3}
propertyPath: m_LocalRotation.y
value: 0.7071068
objectReference: {fileID: 0}
- target: {fileID: 895268871377934298, guid: 765582efd9dda46ed98564603316353f,
type: 3}
propertyPath: m_LocalRotation.z
value: -0
objectReference: {fileID: 0}
- target: {fileID: 895268871377934298, guid: 765582efd9dda46ed98564603316353f,
type: 3}
propertyPath: m_LocalRotation.w
value: 0.7071068
objectReference: {fileID: 0}
- target: {fileID: 895268871377934298, guid: 765582efd9dda46ed98564603316353f,
type: 3}
propertyPath: m_RootOrder
value: 6
objectReference: {fileID: 0}
- target: {fileID: 895268871377934298, guid: 765582efd9dda46ed98564603316353f,
type: 3}
propertyPath: m_LocalEulerAnglesHint.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 895268871377934298, guid: 765582efd9dda46ed98564603316353f,
type: 3}
propertyPath: m_LocalEulerAnglesHint.y
value: 90
objectReference: {fileID: 0}
- target: {fileID: 895268871377934298, guid: 765582efd9dda46ed98564603316353f,
type: 3}
propertyPath: m_LocalEulerAnglesHint.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 895268871377934303, guid: 765582efd9dda46ed98564603316353f,
type: 3}
propertyPath: jointDampen
value: 5000
objectReference: {fileID: 0}
- target: {fileID: 895268871377934303, guid: 765582efd9dda46ed98564603316353f,
type: 3}
propertyPath: maxJointForceLimit
value: 15000
objectReference: {fileID: 0}
- target: {fileID: 895268871635378176, guid: 765582efd9dda46ed98564603316353f,
type: 3}
propertyPath: m_Materials.Array.data[0]
value:
objectReference: {fileID: 2100000, guid: c9fa44c2c3f8ce74ca39a3355ea42631, type: 2}
- target: {fileID: 895268872378336987, guid: 765582efd9dda46ed98564603316353f,
type: 3}
propertyPath: m_Materials.Array.data[0]
value:
objectReference: {fileID: 2100000, guid: c9fa44c2c3f8ce74ca39a3355ea42631, type: 2}
- target: {fileID: 895268873051627260, guid: 765582efd9dda46ed98564603316353f,
type: 3}
propertyPath: m_Materials.Array.data[0]
value:
objectReference: {fileID: 2100000, guid: c9fa44c2c3f8ce74ca39a3355ea42631, type: 2}
- target: {fileID: 7408209125961349353, guid: 765582efd9dda46ed98564603316353f,
type: 3}
propertyPath: target
value:
objectReference: {fileID: 5064725739247198300}
- target: {fileID: 7408209125961349353, guid: 765582efd9dda46ed98564603316353f,
type: 3}
propertyPath: rewardManager
value:
objectReference: {fileID: 1651680225}
- target: {fileID: 7408209125961349353, guid: 765582efd9dda46ed98564603316353f,
type: 3}
propertyPath: randomizeWalkSpeedEachEpisode
value: 1
objectReference: {fileID: 0}
- target: {fileID: 7933235353030744119, guid: 765582efd9dda46ed98564603316353f,
type: 3}
propertyPath: m_Mass
value: 5
objectReference: {fileID: 0}
- target: {fileID: 7933235353030744139, guid: 765582efd9dda46ed98564603316353f,
type: 3}
propertyPath: m_ConnectedAnchor.x
value: -0.7000002
objectReference: {fileID: 0}
- target: {fileID: 7933235353041637844, guid: 765582efd9dda46ed98564603316353f,
type: 3}
propertyPath: agentDoneOnGroundContact
value: 1
objectReference: {fileID: 0}
- target: {fileID: 7933235353041637844, guid: 765582efd9dda46ed98564603316353f,
type: 3}
propertyPath: penalizeGroundContact
value: 1
objectReference: {fileID: 0}
- target: {fileID: 7933235353041637846, guid: 765582efd9dda46ed98564603316353f,
type: 3}
propertyPath: m_Mass
value: 3
objectReference: {fileID: 0}
- target: {fileID: 7933235353041637847, guid: 765582efd9dda46ed98564603316353f,
type: 3}
propertyPath: m_ConnectedAnchor.x
value: -0.70000064
objectReference: {fileID: 0}
- target: {fileID: 7933235353195701959, guid: 765582efd9dda46ed98564603316353f,
type: 3}
propertyPath: m_Mass
value: 4
objectReference: {fileID: 0}
- target: {fileID: 7933235353195701979, guid: 765582efd9dda46ed98564603316353f,
type: 3}
propertyPath: m_ConnectedAnchor.x
value: 0.5000005
objectReference: {fileID: 0}
- target: {fileID: 7933235353228551180, guid: 765582efd9dda46ed98564603316353f,
type: 3}
propertyPath: m_ConnectedAnchor.x
value: -0.39999408
objectReference: {fileID: 0}
- target: {fileID: 7933235353228551181, guid: 765582efd9dda46ed98564603316353f,
type: 3}
propertyPath: agentDoneOnGroundContact
value: 1
objectReference: {fileID: 0}
- target: {fileID: 7933235353228551181, guid: 765582efd9dda46ed98564603316353f,
type: 3}
propertyPath: penalizeGroundContact
value: 1
objectReference: {fileID: 0}
- target: {fileID: 7933235353240438150, guid: 765582efd9dda46ed98564603316353f,
type: 3}
propertyPath: m_Mass
value: 4
objectReference: {fileID: 0}
- target: {fileID: 7933235353240438170, guid: 765582efd9dda46ed98564603316353f,
type: 3}
propertyPath: m_ConnectedAnchor.x
value: -0.5000005
objectReference: {fileID: 0}
- target: {fileID: 7933235353272702555, guid: 765582efd9dda46ed98564603316353f,
type: 3}
propertyPath: m_ConnectedAnchor.x
value: -0.00000011920929
objectReference: {fileID: 0}
- target: {fileID: 7933235353655703554, guid: 765582efd9dda46ed98564603316353f,
type: 3}
propertyPath: m_ConnectedAnchor.x
value: 0.00000011920929
objectReference: {fileID: 0}
- target: {fileID: 7933235353711811619, guid: 765582efd9dda46ed98564603316353f,
type: 3}
propertyPath: m_ConnectedAnchor.x
value: 0.00000011920929
objectReference: {fileID: 0}
- target: {fileID: 7933235353713167636, guid: 765582efd9dda46ed98564603316353f,
type: 3}
propertyPath: m_ConnectedAnchor.x
value: 0.39999408
objectReference: {fileID: 0}
- target: {fileID: 7933235353713167637, guid: 765582efd9dda46ed98564603316353f,
type: 3}
propertyPath: agentDoneOnGroundContact
value: 1
objectReference: {fileID: 0}
- target: {fileID: 7933235353713167637, guid: 765582efd9dda46ed98564603316353f,
type: 3}
propertyPath: penalizeGroundContact
value: 1
objectReference: {fileID: 0}
- target: {fileID: 7933235354074184697, guid: 765582efd9dda46ed98564603316353f,
type: 3}
propertyPath: m_Mass
value: 6
objectReference: {fileID: 0}
- target: {fileID: 7933235354616748523, guid: 765582efd9dda46ed98564603316353f,
type: 3}
propertyPath: agentDoneOnGroundContact
value: 1
objectReference: {fileID: 0}
- target: {fileID: 7933235354616748523, guid: 765582efd9dda46ed98564603316353f,
type: 3}
propertyPath: penalizeGroundContact
value: 1
objectReference: {fileID: 0}
- target: {fileID: 7933235354616748525, guid: 765582efd9dda46ed98564603316353f,
type: 3}
propertyPath: m_Mass
value: 3
objectReference: {fileID: 0}
- target: {fileID: 7933235354882597209, guid: 765582efd9dda46ed98564603316353f,
type: 3}
propertyPath: m_ConnectedAnchor.x
value: -0.00000011920929
objectReference: {fileID: 0}
- target: {fileID: 7933235355057813909, guid: 765582efd9dda46ed98564603316353f,
type: 3}
propertyPath: m_Mass
value: 5
objectReference: {fileID: 0}
- target: {fileID: 7933235355057813929, guid: 765582efd9dda46ed98564603316353f,
type: 3}
propertyPath: m_ConnectedAnchor.x
value: 0.7000002
objectReference: {fileID: 0}
m_RemovedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: 765582efd9dda46ed98564603316353f, type: 3}
--- !u!1 &498449230155494207 stripped
GameObject:
m_CorrespondingSourceObject: {fileID: 895268871377934275, guid: 765582efd9dda46ed98564603316353f,
type: 3}
m_PrefabInstance: {fileID: 758428434284045564}
m_PrefabAsset: {fileID: 0}
--- !u!4 &498449230155494182 stripped
Transform:
m_CorrespondingSourceObject: {fileID: 895268871377934298, guid: 765582efd9dda46ed98564603316353f,
type: 3}
m_PrefabInstance: {fileID: 758428434284045564}
m_PrefabAsset: {fileID: 0}
--- !u!1001 &758428434560909662
PrefabInstance:
m_ObjectHideFlags: 0

type: 3}
propertyPath: m_Model
value:
objectReference: {fileID: 11400000, guid: 976f2b5823b0f4ffd933de703cb7e826,
objectReference: {fileID: 11400000, guid: 6a1a5f52be3cd416b9a11860378b10ae,
type: 3}
- target: {fileID: 895268871377934297, guid: 765582efd9dda46ed98564603316353f,
type: 3}

- target: {fileID: 895268871377934303, guid: 765582efd9dda46ed98564603316353f,
type: 3}
propertyPath: maxJointForceLimit
value: 15000
value: 20000
objectReference: {fileID: 0}
- target: {fileID: 895268871635378176, guid: 765582efd9dda46ed98564603316353f,
type: 3}

propertyPath: onCollisionEnterEvent.m_PersistentCalls.m_Calls.Array.data[0].m_Target
value:
objectReference: {fileID: 6333411881204380609}
- target: {fileID: 3631016866778687563, guid: 46734abd0de454192b407379c6a4ab8d,
type: 3}
propertyPath: onCollisionEnterEvent.m_PersistentCalls.m_Calls.Array.data[0].m_CallState
value: 0
objectReference: {fileID: 0}
- target: {fileID: 3839136118347789758, guid: 46734abd0de454192b407379c6a4ab8d,
type: 3}
propertyPath: m_LocalPosition.x

379
Project/Assets/ML-Agents/Examples/Walker/Scenes/WalkerDynamic.unity


- target: {fileID: 4712600297668500197, guid: f51e8260728fd4c8fa87bcda9d0e2027,
type: 3}
propertyPath: m_IsActive
value: 0
value: 1
objectReference: {fileID: 0}
- target: {fileID: 4715983678655513245, guid: f51e8260728fd4c8fa87bcda9d0e2027,
type: 3}

objectReference: {fileID: 0}
m_RemovedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: f51e8260728fd4c8fa87bcda9d0e2027, type: 3}
--- !u!114 &443910202 stripped
MonoBehaviour:
m_CorrespondingSourceObject: {fileID: 5064725739247198300, guid: f51e8260728fd4c8fa87bcda9d0e2027,
type: 3}
m_PrefabInstance: {fileID: 758428434940870731}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 3c8f113a8b8d94967b1b1782c549be81, type: 3}
m_Name:
m_EditorClassIdentifier:
--- !u!4 &443910207 stripped
Transform:
m_CorrespondingSourceObject: {fileID: 4714470935848893865, guid: f51e8260728fd4c8fa87bcda9d0e2027,
type: 3}
m_PrefabInstance: {fileID: 758428434940870731}
m_PrefabAsset: {fileID: 0}
--- !u!1001 &461174134
PrefabInstance:
m_ObjectHideFlags: 0

- target: {fileID: 4712600297668500197, guid: f51e8260728fd4c8fa87bcda9d0e2027,
type: 3}
propertyPath: m_IsActive
value: 0
value: 1
objectReference: {fileID: 0}
- target: {fileID: 4715983678655513245, guid: f51e8260728fd4c8fa87bcda9d0e2027,
type: 3}

- target: {fileID: 4712600297668500197, guid: f51e8260728fd4c8fa87bcda9d0e2027,
type: 3}
propertyPath: m_IsActive
value: 0
value: 1
objectReference: {fileID: 0}
- target: {fileID: 4715983678655513245, guid: f51e8260728fd4c8fa87bcda9d0e2027,
type: 3}

objectReference: {fileID: 0}
m_RemovedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: f51e8260728fd4c8fa87bcda9d0e2027, type: 3}
--- !u!1001 &691709111
PrefabInstance:
m_ObjectHideFlags: 0
serializedVersion: 2
m_Modification:
m_TransformParent: {fileID: 2040484151}
m_Modifications:
- target: {fileID: 693499830, guid: 765582efd9dda46ed98564603316353f, type: 3}
propertyPath: targetToLookAt
value:
objectReference: {fileID: 443910207}
- target: {fileID: 895268871264836333, guid: 765582efd9dda46ed98564603316353f,
type: 3}
propertyPath: agentDoneOnGroundContact
value: 1
objectReference: {fileID: 0}
- target: {fileID: 895268871264836333, guid: 765582efd9dda46ed98564603316353f,
type: 3}
propertyPath: penalizeGroundContact
value: 1
objectReference: {fileID: 0}
- target: {fileID: 895268871377934275, guid: 765582efd9dda46ed98564603316353f,
type: 3}
propertyPath: m_Name
value: WalkerRagdoll (3)
objectReference: {fileID: 0}
- target: {fileID: 895268871377934275, guid: 765582efd9dda46ed98564603316353f,
type: 3}
propertyPath: m_IsActive
value: 1
objectReference: {fileID: 0}
- target: {fileID: 895268871377934297, guid: 765582efd9dda46ed98564603316353f,
type: 3}
propertyPath: m_Model
value:
objectReference: {fileID: 11400000, guid: 5ae39043f159147e6a07d4e59027512a,
type: 3}
- target: {fileID: 895268871377934297, guid: 765582efd9dda46ed98564603316353f,
type: 3}
propertyPath: m_BrainParameters.VectorObservationSize
value: 238
objectReference: {fileID: 0}
- target: {fileID: 895268871377934298, guid: 765582efd9dda46ed98564603316353f,
type: 3}
propertyPath: m_LocalPosition.x
value: -1.8
objectReference: {fileID: 0}
- target: {fileID: 895268871377934298, guid: 765582efd9dda46ed98564603316353f,
type: 3}
propertyPath: m_LocalPosition.y
value: 3.07
objectReference: {fileID: 0}
- target: {fileID: 895268871377934298, guid: 765582efd9dda46ed98564603316353f,
type: 3}
propertyPath: m_LocalPosition.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 895268871377934298, guid: 765582efd9dda46ed98564603316353f,
type: 3}
propertyPath: m_LocalRotation.x
value: -0
objectReference: {fileID: 0}
- target: {fileID: 895268871377934298, guid: 765582efd9dda46ed98564603316353f,
type: 3}
propertyPath: m_LocalRotation.y
value: 0.7071068
objectReference: {fileID: 0}
- target: {fileID: 895268871377934298, guid: 765582efd9dda46ed98564603316353f,
type: 3}
propertyPath: m_LocalRotation.z
value: -0
objectReference: {fileID: 0}
- target: {fileID: 895268871377934298, guid: 765582efd9dda46ed98564603316353f,
type: 3}
propertyPath: m_LocalRotation.w
value: 0.7071068
objectReference: {fileID: 0}
- target: {fileID: 895268871377934298, guid: 765582efd9dda46ed98564603316353f,
type: 3}
propertyPath: m_RootOrder
value: 6
objectReference: {fileID: 0}
- target: {fileID: 895268871377934298, guid: 765582efd9dda46ed98564603316353f,
type: 3}
propertyPath: m_LocalEulerAnglesHint.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 895268871377934298, guid: 765582efd9dda46ed98564603316353f,
type: 3}
propertyPath: m_LocalEulerAnglesHint.y
value: 90
objectReference: {fileID: 0}
- target: {fileID: 895268871377934298, guid: 765582efd9dda46ed98564603316353f,
type: 3}
propertyPath: m_LocalEulerAnglesHint.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 895268871377934303, guid: 765582efd9dda46ed98564603316353f,
type: 3}
propertyPath: jointDampen
value: 5000
objectReference: {fileID: 0}
- target: {fileID: 895268871377934303, guid: 765582efd9dda46ed98564603316353f,
type: 3}
propertyPath: maxJointForceLimit
value: 15000
objectReference: {fileID: 0}
- target: {fileID: 895268871635378176, guid: 765582efd9dda46ed98564603316353f,
type: 3}
propertyPath: m_Materials.Array.data[0]
value:
objectReference: {fileID: 2100000, guid: c9fa44c2c3f8ce74ca39a3355ea42631, type: 2}
- target: {fileID: 895268872378336987, guid: 765582efd9dda46ed98564603316353f,
type: 3}
propertyPath: m_Materials.Array.data[0]
value:
objectReference: {fileID: 2100000, guid: c9fa44c2c3f8ce74ca39a3355ea42631, type: 2}
- target: {fileID: 895268873051627260, guid: 765582efd9dda46ed98564603316353f,
type: 3}
propertyPath: m_Materials.Array.data[0]
value:
objectReference: {fileID: 2100000, guid: c9fa44c2c3f8ce74ca39a3355ea42631, type: 2}
- target: {fileID: 7408209125961349353, guid: 765582efd9dda46ed98564603316353f,
type: 3}
propertyPath: target
value:
objectReference: {fileID: 443910202}
- target: {fileID: 7408209125961349353, guid: 765582efd9dda46ed98564603316353f,
type: 3}
propertyPath: rewardManager
value:
objectReference: {fileID: 1651680225}
- target: {fileID: 7408209125961349353, guid: 765582efd9dda46ed98564603316353f,
type: 3}
propertyPath: randomizeWalkSpeedEachEpisode
value: 1
objectReference: {fileID: 0}
- target: {fileID: 7933235353030744119, guid: 765582efd9dda46ed98564603316353f,
type: 3}
propertyPath: m_Mass
value: 5
objectReference: {fileID: 0}
- target: {fileID: 7933235353030744139, guid: 765582efd9dda46ed98564603316353f,
type: 3}
propertyPath: m_ConnectedAnchor.x
value: -0.7000002
objectReference: {fileID: 0}
- target: {fileID: 7933235353041637844, guid: 765582efd9dda46ed98564603316353f,
type: 3}
propertyPath: agentDoneOnGroundContact
value: 1
objectReference: {fileID: 0}
- target: {fileID: 7933235353041637844, guid: 765582efd9dda46ed98564603316353f,
type: 3}
propertyPath: penalizeGroundContact
value: 1
objectReference: {fileID: 0}
- target: {fileID: 7933235353041637846, guid: 765582efd9dda46ed98564603316353f,
type: 3}
propertyPath: m_Mass
value: 3
objectReference: {fileID: 0}
- target: {fileID: 7933235353041637847, guid: 765582efd9dda46ed98564603316353f,
type: 3}
propertyPath: m_ConnectedAnchor.x
value: -0.70000064
objectReference: {fileID: 0}
- target: {fileID: 7933235353195701959, guid: 765582efd9dda46ed98564603316353f,
type: 3}
propertyPath: m_Mass
value: 4
objectReference: {fileID: 0}
- target: {fileID: 7933235353195701979, guid: 765582efd9dda46ed98564603316353f,
type: 3}
propertyPath: m_ConnectedAnchor.x
value: 0.5000005
objectReference: {fileID: 0}
- target: {fileID: 7933235353228551180, guid: 765582efd9dda46ed98564603316353f,
type: 3}
propertyPath: m_ConnectedAnchor.x
value: -0.39999408
objectReference: {fileID: 0}
- target: {fileID: 7933235353228551181, guid: 765582efd9dda46ed98564603316353f,
type: 3}
propertyPath: agentDoneOnGroundContact
value: 1
objectReference: {fileID: 0}
- target: {fileID: 7933235353228551181, guid: 765582efd9dda46ed98564603316353f,
type: 3}
propertyPath: penalizeGroundContact
value: 1
objectReference: {fileID: 0}
- target: {fileID: 7933235353240438150, guid: 765582efd9dda46ed98564603316353f,
type: 3}
propertyPath: m_Mass
value: 4
objectReference: {fileID: 0}
- target: {fileID: 7933235353240438170, guid: 765582efd9dda46ed98564603316353f,
type: 3}
propertyPath: m_ConnectedAnchor.x
value: -0.5000005
objectReference: {fileID: 0}
- target: {fileID: 7933235353272702555, guid: 765582efd9dda46ed98564603316353f,
type: 3}
propertyPath: m_ConnectedAnchor.x
value: -0.00000011920929
objectReference: {fileID: 0}
- target: {fileID: 7933235353655703554, guid: 765582efd9dda46ed98564603316353f,
type: 3}
propertyPath: m_ConnectedAnchor.x
value: 0.00000011920929
objectReference: {fileID: 0}
- target: {fileID: 7933235353711811619, guid: 765582efd9dda46ed98564603316353f,
type: 3}
propertyPath: m_ConnectedAnchor.x
value: 0.00000011920929
objectReference: {fileID: 0}
- target: {fileID: 7933235353713167636, guid: 765582efd9dda46ed98564603316353f,
type: 3}
propertyPath: m_ConnectedAnchor.x
value: 0.39999408
objectReference: {fileID: 0}
- target: {fileID: 7933235353713167637, guid: 765582efd9dda46ed98564603316353f,
type: 3}
propertyPath: agentDoneOnGroundContact
value: 1
objectReference: {fileID: 0}
- target: {fileID: 7933235353713167637, guid: 765582efd9dda46ed98564603316353f,
type: 3}
propertyPath: penalizeGroundContact
value: 1
objectReference: {fileID: 0}
- target: {fileID: 7933235354074184697, guid: 765582efd9dda46ed98564603316353f,
type: 3}
propertyPath: m_Mass
value: 6
objectReference: {fileID: 0}
- target: {fileID: 7933235354616748523, guid: 765582efd9dda46ed98564603316353f,
type: 3}
propertyPath: agentDoneOnGroundContact
value: 1
objectReference: {fileID: 0}
- target: {fileID: 7933235354616748523, guid: 765582efd9dda46ed98564603316353f,
type: 3}
propertyPath: penalizeGroundContact
value: 1
objectReference: {fileID: 0}
- target: {fileID: 7933235354616748525, guid: 765582efd9dda46ed98564603316353f,
type: 3}
propertyPath: m_Mass
value: 3
objectReference: {fileID: 0}
- target: {fileID: 7933235354882597209, guid: 765582efd9dda46ed98564603316353f,
type: 3}
propertyPath: m_ConnectedAnchor.x
value: -0.00000011920929
objectReference: {fileID: 0}
- target: {fileID: 7933235355057813909, guid: 765582efd9dda46ed98564603316353f,
type: 3}
propertyPath: m_Mass
value: 5
objectReference: {fileID: 0}
- target: {fileID: 7933235355057813929, guid: 765582efd9dda46ed98564603316353f,
type: 3}
propertyPath: m_ConnectedAnchor.x
value: 0.7000002
objectReference: {fileID: 0}
m_RemovedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: 765582efd9dda46ed98564603316353f, type: 3}
--- !u!1 &781961355
GameObject:
m_ObjectHideFlags: 0

- target: {fileID: 4712600297668500197, guid: f51e8260728fd4c8fa87bcda9d0e2027,
type: 3}
propertyPath: m_IsActive
value: 0
value: 1
objectReference: {fileID: 0}
- target: {fileID: 4715983678655513245, guid: f51e8260728fd4c8fa87bcda9d0e2027,
type: 3}

- target: {fileID: 4712600297668500197, guid: f51e8260728fd4c8fa87bcda9d0e2027,
type: 3}
propertyPath: m_IsActive
value: 0
value: 1
objectReference: {fileID: 0}
- target: {fileID: 4715983678655513245, guid: f51e8260728fd4c8fa87bcda9d0e2027,
type: 3}

- target: {fileID: 4712600297668500197, guid: f51e8260728fd4c8fa87bcda9d0e2027,
type: 3}
propertyPath: m_IsActive
value: 0
value: 1
objectReference: {fileID: 0}
- target: {fileID: 4715983678655513245, guid: f51e8260728fd4c8fa87bcda9d0e2027,
type: 3}

- target: {fileID: 4712600297668500197, guid: f51e8260728fd4c8fa87bcda9d0e2027,
type: 3}
propertyPath: m_IsActive
value: 0
value: 1
objectReference: {fileID: 0}
- target: {fileID: 4715983678655513245, guid: f51e8260728fd4c8fa87bcda9d0e2027,
type: 3}

- target: {fileID: 4712600297668500197, guid: f51e8260728fd4c8fa87bcda9d0e2027,
type: 3}
propertyPath: m_IsActive
value: 0
value: 1
objectReference: {fileID: 0}
- target: {fileID: 4715983678655513245, guid: f51e8260728fd4c8fa87bcda9d0e2027,
type: 3}

- target: {fileID: 4712600297668500197, guid: f51e8260728fd4c8fa87bcda9d0e2027,
type: 3}
propertyPath: m_IsActive
value: 0
value: 1
objectReference: {fileID: 0}
- target: {fileID: 4715983678655513245, guid: f51e8260728fd4c8fa87bcda9d0e2027,
type: 3}

objectReference: {fileID: 0}
m_RemovedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: f51e8260728fd4c8fa87bcda9d0e2027, type: 3}
--- !u!1 &1651680223 stripped
GameObject:
m_CorrespondingSourceObject: {fileID: 895268871377934275, guid: 765582efd9dda46ed98564603316353f,
type: 3}
m_PrefabInstance: {fileID: 691709111}
m_PrefabAsset: {fileID: 0}
--- !u!114 &1651680225
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1651680223}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 2d2b3caecf069467ebf3a650d8ee401e, type: 3}
m_Name:
m_EditorClassIdentifier:
rewardsList:
- rewardKey: matchSpeed
rawVal: 0
rewardScalar: 0.03
rewardThisStep: 0
cumulativeThisEpisode: 0
cumulativeThisSession: 0
lastNaNStep: 0
- rewardKey: lookAtTarget
rawVal: 0
rewardScalar: 0.01
rewardThisStep: 0
cumulativeThisEpisode: 0
cumulativeThisSession: 0
lastNaNStep: 0
- rewardKey: headHeightOverFeet
rawVal: 0
rewardScalar: 0.001
rewardThisStep: 0
cumulativeThisEpisode: 0
cumulativeThisSession: 0
lastNaNStep: 0
- rewardKey: hurryUp
rawVal: 0
rewardScalar: 0
rewardThisStep: 0
cumulativeThisEpisode: 0
cumulativeThisSession: 0
lastNaNStep: 0
- rewardKey: bpVel
rawVal: 0
rewardScalar: -0.001
rewardThisStep: 0
cumulativeThisEpisode: 0
cumulativeThisSession: 0
lastNaNStep: 0
- rewardKey: productOfAllRewards
rawVal: 0
rewardScalar: 1
rewardThisStep: 0
cumulativeThisEpisode: 0
cumulativeThisSession: 0
lastNaNStep: 0
maxSteps: 0
--- !u!4 &2040484151 stripped
Transform:
m_CorrespondingSourceObject: {fileID: 4715983678655513245, guid: f51e8260728fd4c8fa87bcda9d0e2027,
type: 3}
m_PrefabInstance: {fileID: 758428434940870731}
m_PrefabAsset: {fileID: 0}
--- !u!1 &2095421678
GameObject:
m_ObjectHideFlags: 0

m_Modification:
m_TransformParent: {fileID: 0}
m_Modifications:
- target: {fileID: 4415586145491295473, guid: f51e8260728fd4c8fa87bcda9d0e2027,
type: 3}
propertyPath: m_Model
value:
objectReference: {fileID: 11400000, guid: 6a1a5f52be3cd416b9a11860378b10ae,
type: 3}
- target: {fileID: 4712600297668500197, guid: f51e8260728fd4c8fa87bcda9d0e2027,
type: 3}
propertyPath: m_Name

66
Project/Assets/ML-Agents/Examples/Walker/Scripts/WalkerAgent.cs


public class WalkerAgent : Agent
{
[Header("Walk Speed")]
// float m_maxWalkingSpeed = 15; //The max walking speed
float m_maxWalkingSpeed = 15; //The max walking speed
[Header("Target To Walk Towards")] [Space(10)]
[Header("Target To Walk Towards")]
[Header("Body Parts")] [Space(10)] public Transform hips;
[Header("Body Parts")] public Transform hips;
public Transform chest;
public Transform spine;
public Transform head;

JointDriveController m_JdController;
EnvironmentParameters m_ResetParams;
private WalkGroup walkGroup;
// private WalkGroup walkGroup;
walkGroup = FindObjectOfType<WalkGroup>();
// walkGroup = FindObjectOfType<WalkGroup>();
//Setup each body part
m_JdController = GetComponent<JointDriveController>();
m_JdController.SetupBodyPart(hips);

rewardManager.ResetEpisodeRewards();
// walkingSpeed = randomizeWalkSpeedEachEpisode? Random.Range(0.0f, m_maxWalkingSpeed): walkingSpeed; //Random Walk Speed
walkingSpeed = randomizeWalkSpeedEachEpisode? Random.Range(0.0f, m_maxWalkingSpeed): walkingSpeed; //Random Walk Speed
SetResetParameters();
}

var cubeForward = orientationCube.transform.forward;
// avgVelValue = GetVelocity();
//normalized value of the difference in avg speed vs target walking speed.
//value of 0 means we are matching velocity perfectly
//value of 1 means we are not matching velocity
sensor.AddObservation(VelocityInverseLerp( cubeForward * walkGroup.walkingSpeed));
// sensor.AddObservation(VelocityInverseLerp( cubeForward * walkingSpeed));
//current ragdoll velocity. normalized
// sensor.AddObservation(VelocityInverseLerp( cubeForward * walkGroup.walkingSpeed)); //
sensor.AddObservation(VelocityInverseLerp( cubeForward * walkingSpeed));
// sensor.AddObservation(walkingSpeed/m_maxWalkingSpeed);
sensor.AddObservation(walkGroup.walkingSpeed/walkGroup.m_maxWalkingSpeed);
//current speed goal. normalized.
sensor.AddObservation(walkingSpeed/m_maxWalkingSpeed);
// sensor.AddObservation(walkGroup.walkingSpeed/walkGroup.m_maxWalkingSpeed);
sensor.AddObservation(Quaternion.FromToRotation(hips.forward, cubeForward));
sensor.AddObservation(Quaternion.FromToRotation(head.forward, cubeForward));

{
counter++;
velSum += item.rb.velocity;
// velSum += Mathf.Clamp(item.rb.velocity.magnitude, 0, m_maxWalkingSpeed);
// velSum += Vector3.ClampMagnitude(item.rb.velocity, m_maxWalkingSpeed);
}
avg = velSum/counter;
return avg;

// velSum += m_JdController.bodyPartsDict[head].rb.velocity;
// avgVelValue = velSum/4;
// velInverseLerpVal = VelocityInverseLerp(cubeForward * walkingSpeed, avgVelValue);
// velInverseLerpVal = VelocityInverseLerp(cubeForward * walkingSpeed);
velInverseLerpVal = VelocityInverseLerp(cubeForward * walkGroup.walkingSpeed);
velInverseLerpVal = VelocityInverseLerp(cubeForward * walkingSpeed);
// velInverseLerpVal = VelocityInverseLerp(cubeForward * walkGroup.walkingSpeed);
rewardManager.UpdateReward("productOfAllRewards", velInverseLerpVal * lookAtTargetReward);
// rewardManager.UpdateReward("productOfAllRewards", velInverseLerpVal * lookAtTargetReward * headHeightOverFeetReward);
// velInverseLerpVal = VelocityInverseLerp(Vector3.zero, cubeForward * walkingSpeed, avgVelValue);

// {
// counter++;
// velSum += item.rb.velocity;
//// velSum += Mathf.Clamp(item.rb.velocity.magnitude, 0, m_maxWalkingSpeed);
//// velSum += Vector3.ClampMagnitude(item.rb.velocity, m_maxWalkingSpeed);
// }
// avgVelValue = velSum/counter;
// //This reward will approach 1 if it matches and approach zero as it deviates

// rewardManager.UpdateReward("productOfAllRewards", matchSpeedReward * lookAtTargetReward * headHeightOverFeetReward);
}
public Vector3 avgVelValue;
public Vector3 bodyVelocity;
//value of 0 means we are matching velocity perfectly
//value of 1 means we are not matching velocity
//normalized value of the difference in avg speed vs goal walking speed.
avgVelValue = GetVelocity();
bodyVelocity = GetVelocity();
velDeltaDistance = Vector3.Distance(avgVelValue, velocityGoal);
// float percent = Mathf.InverseLerp(m_maxWalkingSpeed, 0, velDeltaDistance);
// velDeltaDistance = Vector3.Distance(avgVelValue, velocityGoal);
// velDeltaDistance = Vector3.Distance(avgVelValue, velocityGoal);
// velDeltaDistance = Mathf.Clamp(Vector3.Distance(bodyVelocity, velocityGoal), 0, walkGroup.walkingSpeed);
velDeltaDistance = Mathf.Clamp(Vector3.Distance(bodyVelocity, velocityGoal), 0, walkingSpeed);
float percent = Mathf.InverseLerp(velocityGoal.magnitude, 0, velDeltaDistance);
// float percent = Mathf.InverseLerp(velocityGoal.magnitude, 0, velDeltaDistance);
// float percent = Mathf.Pow(1 - Mathf.Pow(velDeltaDistance/walkGroup.walkingSpeed, 2), 2);
float percent = Mathf.Pow(1 - Mathf.Pow(velDeltaDistance/walkingSpeed, 2), 2);
// public float VelocityInverseLerp(Vector3 velocityGoal)
// {
// avgVelValue = GetVelocity();
//
// velDeltaDistance = Vector3.Distance(avgVelValue, velocityGoal);
//// float percent = Mathf.InverseLerp(walkingSpeed, 0, velDeltaDistance);
// float percent = Mathf.InverseLerp(velocityGoal.magnitude, 0, velDeltaDistance);
// return percent;
// }
// public float VelocityInverseLerp(Vector3 velocityGoal, Vector3 currentVel)
// {

//// float percent = Mathf.InverseLerp(m_maxWalkingSpeed, 0, velDeltaDistance);
// float percent = Mathf.InverseLerp(walkingSpeed, 0, velDeltaDistance);
// return percent;
// }

2
config/ppo/WalkerDynamic.yaml


gamma: 0.995
strength: 1.0
keep_checkpoints: 5
max_steps: 20000000
max_steps: 25000000
time_horizon: 1000
summary_freq: 30000
threaded: true
正在加载...
取消
保存