top of page
public static int TestIdentify(Robot robot)
{
int retval = 0;
retval = robot.LoadIdentifyDynFilterInit();
retval = robot.LoadIdentifyDynVarInit();
JointPos posJ = new JointPos(0,0,0,0,0,0);
DescPose posDec = new DescPose(0,0,0,0,0,0);
List<Number> joint_toq=new ArrayList<>();
robot.GetActualJointPosDegree( posJ);
posJ.J2 = posJ.J2 + 10;
joint_toq=robot.GetJointTorques(0);
Object[] gain =new Object[] { 0,0.05,0,0,0,0,0,0.02,0,0,0,0 };
double weight = 0;
DescTran load_pos=new DescTran(0,0,0);
List<Number> num=new ArrayList<>();
num = robot.LoadIdentifyGetResult(gain);
robot.CloseRPC();
return 0;
}
12.35. Force Sensor Assisted Dragging
Changed in version Java: SDK-v1.0.6-3.8.3
/**
* @brief Force sensor assisted dragging
* @param [in] status Control status, 0-Disable; 1-Enable
* @param [in] asaptiveFlag Adaptive enable flag, 0-Disable; 1-Enable
* @param [in] interfereDragFlag Interference zone dragging flag, 0-Disable; 1-Enable
* @param [in] ingularityConstraintsFlag Singularity strategy, 0-Avoid; 1-Traverse
* @param [in] forceCollisionFlag Robot collision detection flag during assisted dragging; 0-Disable; 1-Enable
* @param [in] M Inertia coefficient
* @param [in] B Damping coefficient
* @param [in] K Stiffness coefficient
* @param [in] F Dragging six-dimensional force threshold
* @param [in] Fmax Maximum dragging force limit in Nm
* @param [in] Vmax Maximum joint speed limit in °/s
* @return Error code
*/
int EndForceDragControl(int status, int asaptiveFlag, int interfereDragFlag,int ingularityConstraintsFlag, int forceCollisionFlag, Object[] M, Object[] B, Object[] K, Object[] F, double Fmax, double Vmax)
12.36. Get Force Sensor Dragging Switch Status
/**
* @brief Get force sensor dragging switch status
* @return List[0]: Error code; List[1]: dragState Force sensor assisted dragging control status, 0-Disable; 1-Enable; List[1]: sixDimensionalDragState Six-dimensional force assisted dragging control status, 0-Disable; 1-Enable
*/
List<Integer> GetForceAndTorqueDragState();
12.37. Force Sensor Auto-Enable After Error Clearance
/**
* @brief Force sensor auto-enable after error clearance
* @param [in] status Control status, 0-Disable; 1-Enable
* @return Error code
*/
int SetForceSensorDragAutoFlag(int status)
12.38. Force Sensor Assisted Dragging Example
public static int TestEndForceDragCtrl(Robot robot)
{
DescTran tr1=new DescTran(0,0,0);
robot.SetForceSensorPayload(0);
robot.SetForceSensorPayloadCog(tr1);
robot.SetForceSensorDragAutoFlag(1);
Object[] M =new Object[] { 15.0, 15.0, 15.0, 0.5, 0.5, 0.1 };
Object[] B =new Object[] { 150.0, 150.0, 150.0, 5.0, 5.0, 1.0 };
Object[] K =new Object[] { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 };
Object[] F =new Object[] { 10.0, 10.0, 10.0, 1.0, 1.0, 1.0 };
robot.EndForceDragControl(1, 0, 0, 0, M, B, K, F, 50, 100);
robot.Sleep(10000);
int dragState = 0;
int sixDimensionalDragState = 0;
List<Integer> state=new ArrayList<>();
state=robot.GetForceAndTorqueDragState();
robot.EndForceDragControl(0, 0, 0, 0, M, B, K, F, 50, 100);
return 0;
}
12.39. Set Six-Dimensional Force and Joint Impedance Hybrid Dragging Switch and Parameters
/**
* @brief Set six-dimensional force and joint impedance hybrid dragging switch and parameters
* @param [in] status Control status, 0-Disable; 1-Enable
* @param [in] impedanceFlag Impedance enable flag, 0-Disable; 1-Enable
* @param [in] lamdeGain Dragging gain
* @param [in] KGain Stiffness gain
* @param [in] BGain Damping gain
* @param [in] dragMaxTcpVel Maximum end-effector linear velocity limit during dragging
* @param [in] dragMaxTcpOriVel Maximum end-effector angular velocity limit during dragging
* @return Error code
*/
int ForceAndJointImpedanceStartStop(int status, int impedanceFlag, Object[] lamdeGain, Object[] KGain, Object[] BGain, double dragMaxTcpVel, double dragMaxTcpOriVel);
12.40. Six-Dimensional Force and Joint Impedance Hybrid Dragging Example
public static int TestForceAndJointImpedance(Robot robot)
{
robot.DragTeachSwitch(1);
Object[] lamdeDain =new Object[] { 3.0, 2.0, 2.0, 2.0, 2.0, 3.0 };
Object[] KGain = new Object[]{ 0, 0, 0, 0, 0, 0 };
Object[] BGain =new Object[] { 150, 150, 150, 5.0, 5.0, 1.0 };
int rtn = robot.ForceAndJointImpedanceStartStop(1, 0, lamdeDain, KGain, BGain, 1000.0, 180.0);
robot.Sleep(10000);
robot.DragTeachSwitch(0);
rtn = robot.ForceAndJointImpedanceStartStop(0, 0, lamdeDain, KGain, BGain, 1000.0, 180.0);
robot.CloseRPC();
return 0;
}
bottom of page