Grasp soft body with rigid fingers.

This commit is contained in:
yunfeibai
2016-11-01 15:46:09 -07:00
parent f01389ded2
commit 9d54f0cf8d
5 changed files with 518 additions and 17 deletions

View File

@@ -346,7 +346,7 @@ public:
if (1)
{
b3RobotSimLoadFileArgs args("");
args.m_fileName = "gripper/wsg50_one_motor_gripper_new.sdf";
args.m_fileName = "gripper/wsg50_one_motor_gripper_no_finger.sdf";
args.m_fileType = B3_SDF_FILE;
args.m_useMultiBody = true;
b3RobotSimLoadFileResults results;
@@ -365,7 +365,7 @@ public:
b3Printf("joint[%d].m_jointName=%s",i,jointInfo.m_jointName);
}
for (int i=0;i<8;i++)
for (int i=0;i<6;i++)
{
b3JointMotorArgs controlArgs(CONTROL_MODE_VELOCITY);
controlArgs.m_maxTorqueValue = 0.0;
@@ -374,7 +374,27 @@ public:
}
}
{
b3RobotSimLoadFileArgs args("");
args.m_fileName = "gripper/wsg50_one_motor_gripper_left_finger.urdf";
args.m_startPosition.setValue(-0.05,0,0.27);
args.m_startOrientation.setEulerZYX(0,0,3.14);
args.m_forceOverrideFixedBase = false;
args.m_useMultiBody = false;
b3RobotSimLoadFileResults results;
m_robotSim.loadFile(args,results);
}
{
b3RobotSimLoadFileArgs args("");
args.m_fileName = "gripper/wsg50_one_motor_gripper_right_finger.urdf";
args.m_startPosition.setValue(0.05,0,0.27);
args.m_startOrientation.setEulerZYX(0,0,3.14);
args.m_forceOverrideFixedBase = false;
args.m_useMultiBody = false;
b3RobotSimLoadFileResults results;
m_robotSim.loadFile(args,results);
}
if (1)
{
b3RobotSimLoadFileArgs args("");
@@ -391,16 +411,16 @@ public:
m_robotSim.loadBunny();
b3JointInfo revoluteJoint1;
revoluteJoint1.m_parentFrame[0] = -0.055;
revoluteJoint1.m_parentFrame[0] = -0.007;
revoluteJoint1.m_parentFrame[1] = 0;
revoluteJoint1.m_parentFrame[2] = 0.02;
revoluteJoint1.m_parentFrame[2] = 0.0735;
revoluteJoint1.m_parentFrame[3] = 0;
revoluteJoint1.m_parentFrame[4] = 0;
revoluteJoint1.m_parentFrame[5] = 0;
revoluteJoint1.m_parentFrame[6] = 1.0;
revoluteJoint1.m_childFrame[0] = 0;
revoluteJoint1.m_childFrame[1] = 0;
revoluteJoint1.m_childFrame[2] = 0;
revoluteJoint1.m_childFrame[2] = -0.05;
revoluteJoint1.m_childFrame[3] = 0;
revoluteJoint1.m_childFrame[4] = 0;
revoluteJoint1.m_childFrame[5] = 0;
@@ -410,16 +430,16 @@ public:
revoluteJoint1.m_jointAxis[2] = 0.0;
revoluteJoint1.m_jointType = ePoint2PointType;
b3JointInfo revoluteJoint2;
revoluteJoint2.m_parentFrame[0] = 0.055;
revoluteJoint2.m_parentFrame[0] = 0.007;
revoluteJoint2.m_parentFrame[1] = 0;
revoluteJoint2.m_parentFrame[2] = 0.02;
revoluteJoint2.m_parentFrame[2] = 0.0735;
revoluteJoint2.m_parentFrame[3] = 0;
revoluteJoint2.m_parentFrame[4] = 0;
revoluteJoint2.m_parentFrame[5] = 0;
revoluteJoint2.m_parentFrame[6] = 1.0;
revoluteJoint2.m_childFrame[0] = 0;
revoluteJoint2.m_childFrame[1] = 0;
revoluteJoint2.m_childFrame[2] = 0;
revoluteJoint2.m_childFrame[2] = -0.05;
revoluteJoint2.m_childFrame[3] = 0;
revoluteJoint2.m_childFrame[4] = 0;
revoluteJoint2.m_childFrame[5] = 0;
@@ -428,8 +448,128 @@ public:
revoluteJoint2.m_jointAxis[1] = 0.0;
revoluteJoint2.m_jointAxis[2] = 0.0;
revoluteJoint2.m_jointType = ePoint2PointType;
m_robotSim.createJoint(0, 2, 0, 4, &revoluteJoint1);
m_robotSim.createJoint(0, 3, 0, 6, &revoluteJoint2);
b3JointInfo revoluteJoint3;
revoluteJoint3.m_parentFrame[0] = -0.207;
revoluteJoint3.m_parentFrame[1] = 0;
revoluteJoint3.m_parentFrame[2] = 0.0735;
revoluteJoint3.m_parentFrame[3] = 0;
revoluteJoint3.m_parentFrame[4] = 0;
revoluteJoint3.m_parentFrame[5] = 0;
revoluteJoint3.m_parentFrame[6] = 1.0;
revoluteJoint3.m_childFrame[0] = -0.2;
revoluteJoint3.m_childFrame[1] = 0;
revoluteJoint3.m_childFrame[2] = -0.05;
revoluteJoint3.m_childFrame[3] = 0;
revoluteJoint3.m_childFrame[4] = 0;
revoluteJoint3.m_childFrame[5] = 0;
revoluteJoint3.m_childFrame[6] = 1.0;
revoluteJoint3.m_jointAxis[0] = 1.0;
revoluteJoint3.m_jointAxis[1] = 0.0;
revoluteJoint3.m_jointAxis[2] = 0.0;
revoluteJoint3.m_jointType = ePoint2PointType;
b3JointInfo revoluteJoint4;
revoluteJoint4.m_parentFrame[0] = 0.207;
revoluteJoint4.m_parentFrame[1] = 0;
revoluteJoint4.m_parentFrame[2] = 0.0735;
revoluteJoint4.m_parentFrame[3] = 0;
revoluteJoint4.m_parentFrame[4] = 0;
revoluteJoint4.m_parentFrame[5] = 0;
revoluteJoint4.m_parentFrame[6] = 1.0;
revoluteJoint4.m_childFrame[0] = 0.2;
revoluteJoint4.m_childFrame[1] = 0;
revoluteJoint4.m_childFrame[2] = -0.05;
revoluteJoint4.m_childFrame[3] = 0;
revoluteJoint4.m_childFrame[4] = 0;
revoluteJoint4.m_childFrame[5] = 0;
revoluteJoint4.m_childFrame[6] = 1.0;
revoluteJoint4.m_jointAxis[0] = 1.0;
revoluteJoint4.m_jointAxis[1] = 0.0;
revoluteJoint4.m_jointAxis[2] = 0.0;
revoluteJoint4.m_jointType = ePoint2PointType;
b3JointInfo revoluteJoint5;
revoluteJoint5.m_parentFrame[0] = -0.007;
revoluteJoint5.m_parentFrame[1] = 0;
revoluteJoint5.m_parentFrame[2] = 0.2735;
revoluteJoint5.m_parentFrame[3] = 0;
revoluteJoint5.m_parentFrame[4] = 0;
revoluteJoint5.m_parentFrame[5] = 0;
revoluteJoint5.m_parentFrame[6] = 1.0;
revoluteJoint5.m_childFrame[0] = 0;
revoluteJoint5.m_childFrame[1] = 0;
revoluteJoint5.m_childFrame[2] = 0.15;
revoluteJoint5.m_childFrame[3] = 0;
revoluteJoint5.m_childFrame[4] = 0;
revoluteJoint5.m_childFrame[5] = 0;
revoluteJoint5.m_childFrame[6] = 1.0;
revoluteJoint5.m_jointAxis[0] = 1.0;
revoluteJoint5.m_jointAxis[1] = 0.0;
revoluteJoint5.m_jointAxis[2] = 0.0;
revoluteJoint5.m_jointType = ePoint2PointType;
b3JointInfo revoluteJoint6;
revoluteJoint6.m_parentFrame[0] = 0.007;
revoluteJoint6.m_parentFrame[1] = 0;
revoluteJoint6.m_parentFrame[2] = 0.2735;
revoluteJoint6.m_parentFrame[3] = 0;
revoluteJoint6.m_parentFrame[4] = 0;
revoluteJoint6.m_parentFrame[5] = 0;
revoluteJoint6.m_parentFrame[6] = 1.0;
revoluteJoint6.m_childFrame[0] = 0;
revoluteJoint6.m_childFrame[1] = 0;
revoluteJoint6.m_childFrame[2] = 0.15;
revoluteJoint6.m_childFrame[3] = 0;
revoluteJoint6.m_childFrame[4] = 0;
revoluteJoint6.m_childFrame[5] = 0;
revoluteJoint6.m_childFrame[6] = 1.0;
revoluteJoint6.m_jointAxis[0] = 1.0;
revoluteJoint6.m_jointAxis[1] = 0.0;
revoluteJoint6.m_jointAxis[2] = 0.0;
revoluteJoint6.m_jointType = ePoint2PointType;
b3JointInfo revoluteJoint7;
revoluteJoint7.m_parentFrame[0] = -0.055;
revoluteJoint7.m_parentFrame[1] = 0;
revoluteJoint7.m_parentFrame[2] = 0.02;
revoluteJoint7.m_parentFrame[3] = 0;
revoluteJoint7.m_parentFrame[4] = 0;
revoluteJoint7.m_parentFrame[5] = 0;
revoluteJoint7.m_parentFrame[6] = 1.0;
revoluteJoint7.m_childFrame[0] = 0;
revoluteJoint7.m_childFrame[1] = 0;
revoluteJoint7.m_childFrame[2] = 0;
revoluteJoint7.m_childFrame[3] = 0;
revoluteJoint7.m_childFrame[4] = 0;
revoluteJoint7.m_childFrame[5] = 0;
revoluteJoint7.m_childFrame[6] = 1.0;
revoluteJoint7.m_jointAxis[0] = 1.0;
revoluteJoint7.m_jointAxis[1] = 0.0;
revoluteJoint7.m_jointAxis[2] = 0.0;
revoluteJoint7.m_jointType = ePoint2PointType;
b3JointInfo revoluteJoint8;
revoluteJoint8.m_parentFrame[0] = 0.055;
revoluteJoint8.m_parentFrame[1] = 0;
revoluteJoint8.m_parentFrame[2] = 0.02;
revoluteJoint8.m_parentFrame[3] = 0;
revoluteJoint8.m_parentFrame[4] = 0;
revoluteJoint8.m_parentFrame[5] = 0;
revoluteJoint8.m_parentFrame[6] = 1.0;
revoluteJoint8.m_childFrame[0] = 0;
revoluteJoint8.m_childFrame[1] = 0;
revoluteJoint8.m_childFrame[2] = 0;
revoluteJoint8.m_childFrame[3] = 0;
revoluteJoint8.m_childFrame[4] = 0;
revoluteJoint8.m_childFrame[5] = 0;
revoluteJoint8.m_childFrame[6] = 1.0;
revoluteJoint8.m_jointAxis[0] = 1.0;
revoluteJoint8.m_jointAxis[1] = 0.0;
revoluteJoint8.m_jointAxis[2] = 0.0;
revoluteJoint8.m_jointType = ePoint2PointType;
m_robotSim.createJoint(0, 4, 1, 0, &revoluteJoint1);
m_robotSim.createJoint(0, 5, 2, 0, &revoluteJoint2);
m_robotSim.createJoint(0, 4, 1, 0, &revoluteJoint3);
m_robotSim.createJoint(0, 5, 2, 0, &revoluteJoint4);
m_robotSim.createJoint(0, 4, 1, 0, &revoluteJoint5);
m_robotSim.createJoint(0, 5, 2, 0, &revoluteJoint6);
m_robotSim.createJoint(0, 2, 0, 4, &revoluteJoint7);
m_robotSim.createJoint(0, 3, 0, 5, &revoluteJoint8);
}
}
virtual void exitPhysics()
@@ -479,7 +619,7 @@ public:
int fingerJointIndices[2]={0,1};
double fingerTargetVelocities[2]={sGripperVerticalVelocity,sGripperClosingTargetVelocity
};
double maxTorqueValues[2]={50.0,50.0};
double maxTorqueValues[2]={50.0,10.0};
for (int i=0;i<2;i++)
{
b3JointMotorArgs controlArgs(CONTROL_MODE_VELOCITY);