// Update is called once per frame public override void AgentReset() { for (int i = 0; i < 6; i++) // initialize robot component { transform_info component_tr = initial_transform_list[i]; robot_component_list[i].localPosition = new Vector3(component_tr._position_x, component_tr._position_y, component_tr._position_z); robot_component_list[i].localRotation = new Quaternion(component_tr._rot_x, component_tr._rot_y, component_tr._rot_z, component_tr._rot_w); //robot_component_list[i].SetPositionAndRotation(new Vector3(component_tr._position_x, component_tr._position_y, component_tr._position_z), // new Quaternion(component_tr._rot_x, component_tr._rot_y, component_tr._rot_z, component_tr._rot_w)) ; } //Item_Object.GetComponent<SpawnObject>().Reset(); doing_action = false; action_count = 0; }
// Start is called before the first frame update public override void InitializeAgent() { base.InitializeAgent(); rBody = GetComponent <Rigidbody>(); string[] name_list = { "Base", "part1", "part2", "part3", "leftGrip", "RightGrip" }; // name_list for joint string[] add_name_list = { "part0", "leftGrip", "RightGrip" }; // doesn't has hinge_joint Parent_Object = this.transform.parent.gameObject; parentNewName = Regex.Replace(Parent_Object.name, "[^0-9.]", ""); epsilon = 1e-4f; for (int i = 0; i <= Reward_MAX; i++) { reward_count_list.Add(0.0f); threshold_list.Add(threshold_value); } //below method works, its just REALLY slow //DirectoryInfo driveInfo = new DirectoryInfo("//143.248.32.61/bml/RobotArmData/"); //FileInfo[] files = driveInfo.GetFiles("*.*", SearchOption.AllDirectories); ////solution to storage problem but very very time consuming //long totalByteSize = files.Sum(f => f.Length); //print(totalByteSize); ////bigger than 75 gb //if (totalByteSize > 80530636800) //{ // pathCounter++; // bool exists = System.IO.Directory.Exists(writePath + pathCounter); // if (!exists) // { // System.IO.Directory.CreateDirectory(writePath + pathCounter); // writePath = writePath + pathCounter; // print("newPath: " + writePath); // } //} //randProb = UnityEngine.Random.Range(0.00f, 1.00f); //print(randProb); //curr_prob = randProb; int hinge_idx = 0; foreach (Transform child in transform) { for (int i = 0; i < 6; i++) { string object_name = name_list[i]; if (child.gameObject.name.Equals(object_name)) { if (object_name.Equals(add_name_list[1]) || object_name.Equals(add_name_list[2])) { Transform t = child.gameObject.transform; transform_info t_info = new transform_info(object_name, t.localPosition.x, t.localPosition.y, t.localPosition.z, t.localRotation.x, t.localRotation.y, t.localRotation.z, t.localRotation.w); robot_component_list.Add(child); initial_transform_list.Add(t_info); break; } else { Transform t = child.gameObject.transform; transform_info t_info = new transform_info(object_name, t.localPosition.x, t.localPosition.y, t.localPosition.z, t.localRotation.x, t.localRotation.y, t.localRotation.z, t.localRotation.w); robot_component_list.Add(child); initial_transform_list.Add(t_info); hinge_joints.Add(child.gameObject.GetComponent(typeof(HingeJoint)) as HingeJoint); joint_idx[i] = hinge_idx; hinge_idx += 1; break; } } else if (child.gameObject.name.Equals(add_name_list[0])) { Transform t = child.gameObject.transform; transform_info t_info = new transform_info(object_name, t.localPosition.x, t.localPosition.y, t.localPosition.z, t.localRotation.x, t.localRotation.y, t.localRotation.z, t.localRotation.w); robot_component_list.Add(child); initial_transform_list.Add(t_info); break; } } } foreach (Transform child in transform.parent) { if (child.gameObject.name.Equals("Item")) { Item_Object = child.gameObject; } else if (child.gameObject.name.Equals("ground")) { ground_Object = child.gameObject; } } Item_Object.GetComponent <ObjectVoxelDetection>(); }
// Start is called before the first frame update public override void InitializeAgent() { base.InitializeAgent(); rBody = GetComponent <Rigidbody>(); string[] name_list = { "Base", "part1", "part2", "part3", "leftGrip", "RightGrip" }; // name_list for joint string[] add_name_list = { "part0", "leftGrip", "RightGrip" }; // doesn't has hinge_joint float[] force_rate_arr = { 240, 320, 320, 240, 240, 240 }; Parent_Object = this.transform.parent.gameObject; int hinge_idx = 0; foreach (Transform child in transform) { for (int i = 0; i < 6; i++) { string object_name = name_list[i]; if (child.gameObject.name.Equals(object_name)) { if (object_name.Equals(add_name_list[1]) || object_name.Equals(add_name_list[2])) { Transform t = child.gameObject.transform; transform_info t_info = new transform_info(object_name, t.localPosition.x, t.localPosition.y, t.localPosition.z, t.localRotation.x, t.localRotation.y, t.localRotation.z, t.localRotation.w); robot_component_list.Add(child); initial_transform_list.Add(t_info); break; } else { Transform t = child.gameObject.transform; transform_info t_info = new transform_info(object_name, t.localPosition.x, t.localPosition.y, t.localPosition.z, t.localRotation.x, t.localRotation.y, t.localRotation.z, t.localRotation.w); robot_component_list.Add(child); initial_transform_list.Add(t_info); hinge_joints.Add(child.gameObject.GetComponent(typeof(HingeJoint)) as HingeJoint); hinge_rate.Add(force_rate_arr[i]); joint_idx[i] = hinge_idx; hinge_idx += 1; break; } } else if (child.gameObject.name.Equals(add_name_list[0])) { Transform t = child.gameObject.transform; transform_info t_info = new transform_info(object_name, t.localPosition.x, t.localPosition.y, t.localPosition.z, t.localRotation.x, t.localRotation.y, t.localRotation.z, t.localRotation.w); robot_component_list.Add(child); initial_transform_list.Add(t_info); break; } } } foreach (Transform child in transform.parent) { if (child.gameObject.name.Equals("Item")) { Item_Object = child.gameObject; } else if (child.gameObject.name.Equals("ground")) { ground_Object = child.gameObject; } } Item_Object.GetComponent <ObjectVoxelDetection>(); }