top of page

Java 12.34. Robot Load Identification Example

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;
}

robotic arm
FAIRINO ROBOTIC ARMS

Contact

Location: 10637 Scripps Summit Court,

San Diego, CA. 92131
Phone: (619) 333-FAIR
Email: hello@fairino.us

© 2023 Fairino US official site Proudly created By G2T

bottom of page