Readd mlagents 0.8.1

This commit is contained in:
Tobi 2019-04-28 13:12:57 +02:00
parent bacd6125d5
commit 19fa5027ee
960 changed files with 1524 additions and 327 deletions

68
.gitignore vendored
View File

@ -35,3 +35,71 @@ sysinfo.txt
*.apk
*.unitypackage
envs/
# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio and WebStorm
# Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839
# User-specific stuff
.idea/**/workspace.xml
.idea/**/tasks.xml
.idea/**/usage.statistics.xml
.idea/**/dictionaries
.idea/**/shelf
# Generated files
.idea/**/contentModel.xml
# Sensitive or high-churn files
.idea/**/dataSources/
.idea/**/dataSources.ids
.idea/**/dataSources.local.xml
.idea/**/sqlDataSources.xml
.idea/**/dynamic.xml
.idea/**/uiDesigner.xml
.idea/**/dbnavigator.xml
# Gradle
.idea/**/gradle.xml
.idea/**/libraries
# Gradle and Maven with auto-import
# When using Gradle or Maven with auto-import, you should exclude module files,
# since they will be recreated, and may cause churn. Uncomment if using
# auto-import.
# .idea/modules.xml
# .idea/*.iml
# .idea/modules
# CMake
cmake-build-*/
# Mongo Explorer plugin
.idea/**/mongoSettings.xml
# File-based project format
*.iws
# IntelliJ
out/
# mpeltonen/sbt-idea plugin
.idea_modules/
# JIRA plugin
atlassian-ide-plugin.xml
# Cursive Clojure plugin
.idea/replstate.xml
# Crashlytics plugin (for Android Studio and IntelliJ)
com_crashlytics_export_strings.xml
crashlytics.properties
crashlytics-build.properties
fabric.properties
# Editor-based Rest Client
.idea/httpRequests
# Android studio 3.1+ serialized cache file
.idea/caches/build_file_checksums.ser

View File

@ -10,19 +10,19 @@ MonoBehaviour:
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 8b23992c8eb17439887f5e944bf04a40, type: 3}
m_Name: CozmoLearning
m_Name: CozmoLearningBrain
m_EditorClassIdentifier:
brainParameters:
vectorObservationSize: 0
numStackedVectorObservations: 1
vectorActionSize: 0300000003000000
vectorActionSize: 0200000002000000
cameraResolutions:
- width: 84
height: 84
blackAndWhite: 1
blackAndWhite: 0
vectorActionDescriptions:
- forward
- rotate
- rotation
vectorActionSpaceType: 0
model: {fileID: 0}
inferenceDevice: 0

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 94e62c225e4fe8148a7543c5fd1acfd4
guid: 0d9d5ce547064a648b466ad7f208cf3d
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000

View File

@ -506,7 +506,7 @@ MonoBehaviour:
agentCameras:
- {fileID: 589453882}
agentRenderTextures: []
maxStep: 1000
maxStep: 0
resetOnDone: 1
onDemandDecision: 0
numberOfActionsBetweenDecisions: 1
@ -560,7 +560,7 @@ MonoBehaviour:
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7570006596986120123}
m_Enabled: 0
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 4265d0764c65d26409f0f920e5293c82, type: 3}
m_Name:

View File

@ -24,7 +24,7 @@ public class CozmoMovement : MonoBehaviour
private void OnEnable()
{
// When the tank is turned on, make sure it's not kinematic.
// When the cozmo is turned on, make sure it's not kinematic.
m_Rigidbody.isKinematic = false;
// Also reset the input values.
@ -35,17 +35,15 @@ public class CozmoMovement : MonoBehaviour
private void OnDisable()
{
// When the tank is turned off, set it to kinematic so it stops moving.
// When the cozmo is turned off, set it to kinematic so it stops moving.
m_Rigidbody.isKinematic = true;
}
private void Start()
{
// The axes names are based on player number.
m_MovementAxisName = "Vertical";
m_TurnAxisName = "Horizontal";
}
@ -66,7 +64,7 @@ public class CozmoMovement : MonoBehaviour
public void Move(float directionValue)
{
// Create a vector in the direction the tank is facing with a magnitude based on the input, speed and the time between frames.
// Create a vector in the direction the cozmo is facing with a magnitude based on the input, speed and the time between frames.
Vector3 movement = directionValue * transform.forward * m_Speed * Time.deltaTime;
// Apply this movement to the rigidbody's position.

View File

@ -4,7 +4,7 @@ using System.Collections.Generic;
using System.Diagnostics;
using UnityEngine;
public enum TestStates { MovementSpeed, RotationSpeed }
public enum TestStates { MovementSpeed, RotationSpeed } // enum to determine test scenarios
[RequireComponent(typeof(CozmoMovement))]
public class CozmoMovementTester : MonoBehaviour
@ -16,7 +16,6 @@ public class CozmoMovementTester : MonoBehaviour
private CozmoMovement movement; // Reference to the movement script of cozmo
private Vector3 startPositionCozmo; // Original position of cozmo
private float lastY; // Last Y of cozmo
private float curAngleX = 0; // Current angle in the x axis of cozmo
private Stopwatch movementWatch; // Stopwatch to measure the time for the movement usecase
private Stopwatch rotationWatch; // Stopwatch to measure the time for the rotation usecase
@ -31,7 +30,7 @@ public class CozmoMovementTester : MonoBehaviour
startPositionCozmo = movement.transform.position; // Cache the starting position of Cozmo
lastY = movement.transform.rotation.y; // Cache the rotation Vector of Cozmo
lastY = movement.transform.rotation.y; // Cache the rotation Vector of Cozmo
}
private void FixedUpdate()
@ -58,7 +57,7 @@ public class CozmoMovementTester : MonoBehaviour
{
rotationWatch.Stop();
UnityEngine.Debug.Log("Cozmo: " + gameObject.name +
"/nElapsed time in milliseconds (Rotation): " + rotationWatch.ElapsedMilliseconds);
"\nElapsed time in milliseconds (Rotation): " + rotationWatch.ElapsedMilliseconds);
}
return;

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 7dc1ce4b31c63e34da34775dd888c0dc
guid: cab51972497b97040814f06bb409e7c0
folderAsset: yes
DefaultImporter:
externalObjects: {}

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 239a923e346c7564eab507004b9293df
guid: fa7ea7fa4ff2dea4eaf717b9f695b516
folderAsset: yes
DefaultImporter:
externalObjects: {}

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 48abdf8d850ee0b4890625559ec6f520
guid: a667ec11dafd88c4882174cec99ff9bd
folderAsset: yes
DefaultImporter:
externalObjects: {}

View File

Before

Width:  |  Height:  |  Size: 4.9 KiB

After

Width:  |  Height:  |  Size: 4.9 KiB

View File

Before

Width:  |  Height:  |  Size: 4.8 KiB

After

Width:  |  Height:  |  Size: 4.8 KiB

View File

Before

Width:  |  Height:  |  Size: 5.1 KiB

After

Width:  |  Height:  |  Size: 5.1 KiB

View File

@ -28,9 +28,16 @@ namespace MLAgents
"agentParameters.onDemandDecision");
SerializedProperty cameras = serializedAgent.FindProperty(
"agentParameters.agentCameras");
SerializedProperty renderTextures = serializedAgent.FindProperty(
"agentParameters.agentRenderTextures");
EditorGUILayout.PropertyField(brain);
if (cameras.arraySize > 0 && renderTextures.arraySize > 0)
{
EditorGUILayout.HelpBox("Brain visual observations created by first getting all cameras then all render textures.", MessageType.Info);
}
EditorGUILayout.LabelField("Agent Cameras");
for (int i = 0; i < cameras.arraySize; i++)
{
@ -51,6 +58,28 @@ namespace MLAgents
}
EditorGUILayout.EndHorizontal();
EditorGUILayout.LabelField("Agent RenderTextures");
for (int i = 0; i < renderTextures.arraySize; i++)
{
EditorGUILayout.PropertyField(
renderTextures.GetArrayElementAtIndex(i),
new GUIContent("RenderTexture " + (i + 1).ToString() + ": "));
}
EditorGUILayout.BeginHorizontal();
if (GUILayout.Button("Add RenderTextures", EditorStyles.miniButton))
{
renderTextures.arraySize++;
}
if (GUILayout.Button("Remove RenderTextures", EditorStyles.miniButton))
{
renderTextures.arraySize--;
}
EditorGUILayout.EndHorizontal();
EditorGUILayout.PropertyField(
maxSteps,

View File

@ -97,7 +97,7 @@ namespace MLAgents
property.FindPropertyRelative(NumVecObsPropName),
new GUIContent("Stacked Vectors",
"Number of states that will be stacked before " +
"beeing fed to the neural network."));
"being fed to the neural network."));
position.y += LineHeight;
EditorGUI.indentLevel--;
}

View File

@ -0,0 +1,37 @@
using UnityEngine;
using NUnit.Framework;
namespace MLAgents.Tests
{
public class RayPerceptionTests : MonoBehaviour
{
[Test]
public void TestPerception3D()
{
var angles = new[] {0f, 90f, 180f};
var tags = new[] {"test", "test_1"};
var go = new GameObject("MyGameObject");
RayPerception3D rayPer3D = go.AddComponent<RayPerception3D>();
var result = rayPer3D.Perceive(1f, angles ,
tags, 0f, 0f);
Debug.Log(result.Count);
Assert.IsTrue(result.Count == angles.Length * (tags.Length + 2));
}
[Test]
public void TestPerception2D()
{
var angles = new[] {0f, 90f, 180f};
var tags = new[] {"test", "test_1"};
var go = new GameObject("MyGameObject");
RayPerception2D rayPer2D = go.AddComponent<RayPerception2D>();
var result = rayPer2D.Perceive(1f, angles,
tags);
Debug.Log(result.Count);
Assert.IsTrue(result.Count == angles.Length * (tags.Length + 2));
}
}
}

View File

@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: 29010426d01b4569830a85795f4f345b
timeCreated: 1552498773

Some files were not shown because too many files have changed in this diff Show More