Skip to content

Commit

Permalink
use sensor from mlagents extensions package
Browse files Browse the repository at this point in the history
  • Loading branch information
Chris Elion committed Jul 23, 2020
1 parent 68d70de commit 64ffdd9
Show file tree
Hide file tree
Showing 10 changed files with 49 additions and 41 deletions.
8 changes: 0 additions & 8 deletions ArmRobot/Assets/ML-Agents/Timers.meta

This file was deleted.

This file was deleted.

This file was deleted.

Binary file modified ArmRobot/Assets/Models/TouchCubeSample.nn
Binary file not shown.
29 changes: 27 additions & 2 deletions ArmRobot/Assets/Scenes/ArticulationRobot.unity
Original file line number Diff line number Diff line change
Expand Up @@ -1412,13 +1412,14 @@ GameObject:
- component: {fileID: 1390582875}
- component: {fileID: 1390582874}
- component: {fileID: 1390582877}
- component: {fileID: 1390582878}
m_Layer: 0
m_Name: MLAgents
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 0
m_IsActive: 1
--- !u!114 &1390582874
MonoBehaviour:
m_ObjectHideFlags: 0
Expand Down Expand Up @@ -1451,7 +1452,7 @@ MonoBehaviour:
m_Name:
m_EditorClassIdentifier:
m_BrainParameters:
VectorObservationSize: 79
VectorObservationSize: 9
NumStackedVectorObservations: 1
VectorActionSize: 03000000030000000300000003000000030000000300000003000000
VectorActionDescriptions: []
Expand All @@ -1462,6 +1463,7 @@ MonoBehaviour:
m_BehaviorName: TouchCube
TeamId: 0
m_UseChildSensors: 1
m_ObservableAttributeHandling: 0
--- !u!4 &1390582876
Transform:
m_ObjectHideFlags: 0
Expand Down Expand Up @@ -1490,6 +1492,29 @@ MonoBehaviour:
m_EditorClassIdentifier:
DecisionPeriod: 20
TakeActionsBetweenDecisions: 1
--- !u!114 &1390582878
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1390582873}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: e57a788acd5e049c6aa9642b450ca318, type: 3}
m_Name:
m_EditorClassIdentifier:
RootBody: {fileID: 1442213769}
Settings:
UseModelSpaceTranslations: 1
UseModelSpaceRotations: 1
UseLocalSpaceTranslations: 0
UseLocalSpaceRotations: 0
UseModelSpaceLinearVelocity: 0
UseLocalSpaceLinearVelocity: 0
UseJointPositionsAndAngles: 1
UseJointForces: 0
sensorName:
--- !u!1 &1442213767
GameObject:
m_ObjectHideFlags: 0
Expand Down
30 changes: 11 additions & 19 deletions ArmRobot/Assets/Scripts/RobotAgent.cs
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ public class RobotAgent : Agent
RobotController robotController;
TouchDetector touchDetector;
TablePositionRandomizer tablePositionRandomizer;


void Start()
{
Expand All @@ -41,30 +41,15 @@ public override void CollectObservations(VectorSensor sensor)
// No robot is present, no observation should be added
return;
}
// current rotations
float[] rotations = robotController.GetCurrentJointRotations();
foreach (float rotation in rotations)
{
// normalize rotation to [-1, 1] range
float normalizedRotation = (rotation / 360.0f) % 1f;
sensor.AddObservation(normalizedRotation);
}

foreach (var joint in robotController.joints)
{
sensor.AddObservation(joint.robotPart.transform.position - robot.transform.position);
sensor.AddObservation(joint.robotPart.transform.forward);
sensor.AddObservation(joint.robotPart.transform.right);
}

// relative cube position
Vector3 cubePosition = cube.transform.position - robot.transform.position;
sensor.AddObservation(cubePosition);

// relative end position
Vector3 endPosition = endEffector.transform.position - robot.transform.position;
sensor.AddObservation(endPosition);
sensor.AddObservation(cubePosition - endPosition);
sensor.AddObservation(endPosition);
sensor.AddObservation(cubePosition - endPosition);
}

public override void OnActionReceived(float[] vectorAction)
Expand All @@ -76,6 +61,13 @@ public override void OnActionReceived(float[] vectorAction)
robotController.RotateJoint(jointIndex, rotationDirection, false);
}

// Knocked the cube off the table
if (cube.transform.position.y < -1.0)
{
SetReward(-1f);
EndEpisode();
}

// end episode if we touched the cube
if (touchDetector.hasTouchedTarget)
{
Expand All @@ -86,7 +78,7 @@ public override void OnActionReceived(float[] vectorAction)

//reward
float distanceToCube = Vector3.Distance(endEffector.transform.position, cube.transform.position); // roughly 0.7f


var jointHeight = 0f; // This is to reward the agent for keeping high up // max is roughly 3.0f
for (int jointIndex = 0; jointIndex < robotController.joints.Length; jointIndex ++)
Expand Down
9 changes: 8 additions & 1 deletion ArmRobot/Packages/manifest.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,8 @@
"com.unity.ext.nunit": "1.0.0",
"com.unity.ide.rider": "2.0.1",
"com.unity.ide.vscode": "1.2.0",
"com.unity.ml-agents": "1.0.0-preview",
"com.unity.ml-agents": "1.2.0-preview",
"com.unity.ml-agents.extensions": "git+https://github.com/Unity-Technologies/ml-agents.git?path=com.unity.ml-agents.extensions",
"com.unity.test-framework": "1.1.13",
"com.unity.textmeshpro": "3.0.0-preview.1",
"com.unity.ugui": "1.0.0",
Expand Down Expand Up @@ -38,5 +39,11 @@
"com.unity.modules.vr": "1.0.0",
"com.unity.modules.wind": "1.0.0",
"com.unity.modules.xr": "1.0.0"
},
"lock": {
"com.unity.ml-agents.extensions": {
"revision": "HEAD",
"hash": "4e8f08c6260742a936d6881f9e3a48b31ea45993"
}
}
}
4 changes: 2 additions & 2 deletions ArmRobot/ProjectSettings/ProjectVersion.txt
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
m_EditorVersion: 2020.1.0b7
m_EditorVersionWithRevision: 2020.1.0b7 (6cfebb967dcd)
m_EditorVersion: 2020.1.0b8
m_EditorVersionWithRevision: 2020.1.0b8 (726fc0bca2bc)
Binary file modified images/reward.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
2 changes: 1 addition & 1 deletion ur3_config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ TouchCube:
init_entcoef: 1.0
learning_rate: 3.0e-4
learning_rate_schedule: constant
max_steps: 5.0e5
max_steps: 1.25e5
memory_size: 128
normalize: false
num_update: 1
Expand Down

0 comments on commit 64ffdd9

Please sign in to comment.