private static UrdfJoint AddCorrectJointType(GameObject linkObject, JointTypes jointType) { UrdfJoint urdfJoint = null; switch (jointType) { case JointTypes.Fixed: urdfJoint = UrdfJointFixed.Create(linkObject); break; case JointTypes.Continuous: urdfJoint = UrdfJointContinuous.Create(linkObject); break; case JointTypes.Revolute: urdfJoint = UrdfJointRevolute.Create(linkObject); break; case JointTypes.Floating: urdfJoint = UrdfJointFloating.Create(linkObject); break; case JointTypes.Prismatic: urdfJoint = UrdfJointPrismatic.Create(linkObject); break; case JointTypes.Planar: urdfJoint = UrdfJointPlanar.Create(linkObject); break; } UnityEngine.Joint unityJoint = linkObject.GetComponent<UnityEngine.Joint>(); unityJoint.connectedBody = linkObject.transform.parent.gameObject.GetComponent<Rigidbody>(); unityJoint.autoConfigureConnectedAnchor = true; return urdfJoint; }
public static UrdfJoint Create(GameObject linkObject) { UrdfJointContinuous urdfJoint = linkObject.AddComponent <UrdfJointContinuous>(); urdfJoint.UnityJoint = linkObject.AddComponent <HingeJoint>(); urdfJoint.UnityJoint.autoConfigureConnectedAnchor = true; return(urdfJoint); }
public static UrdfJoint Create(GameObject linkObject) { UrdfJointContinuous urdfJoint = linkObject.AddComponent <UrdfJointContinuous>(); urdfJoint._jointType = JointTypes.Continuous; urdfJoint.UnityJoint = linkObject.AddComponent <HingeJoint>(); urdfJoint.UnityJoint.autoConfigureConnectedAnchor = true; linkObject.AddComponent <HingeJointAngleCalculator>(); return(urdfJoint); }
public static UrdfJoint Create(GameObject linkObject) { UrdfJointContinuous urdfJoint = linkObject.AddComponent <UrdfJointContinuous>(); urdfJoint._jointType = JointTypes.Continuous; urdfJoint.UnityJoint = linkObject.AddComponent <HingeJoint>(); urdfJoint.UnityJoint.autoConfigureConnectedAnchor = true; // add custom angle calculation linkObject.AddComponent <CorrectHingeAngle>(); return(urdfJoint); }
public static UrdfJoint Create(GameObject linkObject) { UrdfJointContinuous urdfJoint = linkObject.AddComponent <UrdfJointContinuous>(); #if UNITY_2020_1_OR_NEWER urdfJoint.unityJoint = linkObject.GetComponent <ArticulationBody>(); urdfJoint.unityJoint.jointType = ArticulationJointType.RevoluteJoint; #else urdfJoint.unityJoint = linkObject.AddComponent <HingeJoint>(); urdfJoint.unityJoint.autoConfigureConnectedAnchor = true; #endif return(urdfJoint); }
private static UrdfJoint AddCorrectJointType(GameObject linkObject, JointTypes jointType) { UrdfJoint urdfJoint = null; switch (jointType) { case JointTypes.Fixed: urdfJoint = UrdfJointFixed.Synchronize(linkObject); break; case JointTypes.Continuous: urdfJoint = UrdfJointContinuous.Synchronize(linkObject); break; case JointTypes.Revolute: urdfJoint = UrdfJointRevolute.Synchronize(linkObject); break; case JointTypes.Floating: urdfJoint = UrdfJointFloating.Synchronize(linkObject); break; case JointTypes.Prismatic: urdfJoint = UrdfJointPrismatic.Synchronize(linkObject); break; case JointTypes.Planar: urdfJoint = UrdfJointPlanar.Synchronize(linkObject); break; } //SynchTodo: This assignment probably does not break stuff, but is not necessary. UnityEngine.Joint unityJoint = linkObject.GetComponent <UnityEngine.Joint>(); unityJoint.connectedBody = linkObject.transform.parent.gameObject.GetComponent <Rigidbody>(); unityJoint.autoConfigureConnectedAnchor = true; return(urdfJoint); }