top of page

Java 12. Robot Force Control

12.1. Configure Force Sensor

/**
* @brief  Configure force sensor
* @param  config company: Force sensor manufacturer, 17-Kunwei Technology, 19-Aerospace 11th Academy, 20-ATI Sensor, 21-Zhongke Midian, 22-Weihang Minxin, 23-NBIT, 24-Xinjingcheng (XJC), 26-NSR
* @param  config device: Device number, Kunwei (0-KWR75B), Aerospace 11th Academy (0-MCS6A-200-4), ATI (0-AXIA80-M8), Zhongke Midian (0-MST2010), Weihang Minxin (0-WHC6L-YB-10A), NBIT (0-XLH93003ACS), Xinjingcheng XJC (0-XJC-6F-D82), NSR (0-NSR-FTSensorA)
* @param  config softvesion: Software version number, not currently used, default is 0
* @param  config bus: Device bus location, not currently used, default is 0
* @return  Error code
*/
int FT_SetConfig(DeviceConfig config);

12.2. Get Force Sensor Configuration

/**
* @brief Get force sensor configuration
* @param [out] config company: Force sensor manufacturer, 17-Kunwei Technology, 19-Aerospace 11th Academy, 20-ATI Sensor, 21-Zhongke Midian, 22-Weihang Minxin
* @param [out] config device: Device number, Kunwei (0-KWR75B), Aerospace 11th Academy (0-MCS6A-200-4), ATI (0-AXIA80-M8), Zhongke Midian (0-MST2010), Weihang Minxin (0-WHC6L-YB-10A)
* @param [out] config softvesion: Software version number, not currently used, default is 0
* @param [out] config bus: Device bus location, not currently used, default is 0
* @return Error code
*/
int FT_GetConfig(DeviceConfig config);

12.3. Activate Force Sensor

/**
* @brief  Activate force sensor
* @param  [in] act  0-Reset, 1-Activate
* @return  Error code
*/
int FT_Activate(int act);

12.4. Zero Calibration for Force Sensor

/**
* @brief  Zero calibration for force sensor
* @param  [in] act  0-Remove zero point, 1-Zero calibration
* @return  Error code
*/
int FT_SetZero(int act);

12.5. Set Force Sensor Reference Coordinate System

/**
* @brief  Set force sensor reference coordinate system
* @param  [in] type  0-Tool coordinate system, 1-Base coordinate system, 2-Free coordinate system
* @param  [in] coord  Free coordinate system value
* @return  Error code
*/
int FT_SetRCS(int type, DescPose coord);

12.6. Set Load Weight Under Force Sensor

/**
* @brief Set load weight under force sensor
* @param [in] weight Load weight in kg
* @return Error code
*/
int SetForceSensorPayLoad(double weight);

12.7. Set Load Center of Gravity Under Force Sensor

/**
* @brief Set load center of gravity under force sensor
* @param [in] cog Load center of gravity in mm
* @return Error code
*/
int SetForceSensorPayLoadCog(DescTran cog);

12.8. Get Load Weight Under Force Sensor

/**
* @brief Get load weight under force sensor
* @return List[0]: Error code; List[1]: weight Load weight in kg
*/
List<Number> GetForceSensorPayLoad();

12.9. Get Load Center of Gravity Under Force Sensor

/**
* @brief Get load center of gravity under force sensor
* @param [out] cog Load center of gravity in mm
* @return Error code
*/
int GetForceSensorPayLoadCog(DescTran cog);

12.10. Automatic Zero Calibration for Force Sensor

/**
* @brief Automatic zero calibration for force sensor
* @param [in] massCenter Sensor mass (kg) and center of gravity (mm)
* @return Error code
*/
int ForceSensorAutoComputeLoad(MassCenter massCenter);

12.11. Get Force/Torque Data in Reference Coordinate System

/**
* @brief  Get force/torque data in reference coordinate system
* @param  [in] flag 0-Blocking, 1-Non-blocking
* @param  [out] ft  Force/torque, fx,fy,fz,tx,ty,tz
* @return  Error code
*/
int FT_GetForceTorqueRCS(int flag, ForceTorque ft);

12.12. Get Raw Force/Torque Data from Force Sensor

/**
* @brief  Get raw force/torque data from force sensor
* @param  [in] flag 0-Blocking, 1-Non-blocking
* @param  [out] ft  Force/torque, fx,fy,fz,tx,ty,tz
* @return  Error code
*/
int FT_GetForceTorqueOrigin(int flag, ForceTorque ft);

12.13. Force Sensor Configuration and Automatic Zero Calibration Example

public static int TestFTInit(Robot robot)
{
    DescTran tr1=new DescTran(0,0,0);
    robot.SetForceSensorPayload(0);
    robot.SetForceSensorPayloadCog(tr1);

    int company = 24;
    int device = 0;
    int softversion = 0;
    int bus = 1;
    int index = 1;

    DeviceConfig con=new DeviceConfig(company,device,softversion,bus);
    robot.FT_SetConfig(con);
    robot.Sleep(1000);
    robot.FT_GetConfig(con);
    robot.Sleep(1000);

    robot.FT_Activate(0);
    robot.Sleep(1000);
    robot.FT_Activate(1);
    robot.Sleep(1000);

    robot.Sleep(1000);
    robot.FT_SetZero(0);
    robot.Sleep(1000);

    ForceTorque ft=new ForceTorque(0,0,0,0,0,0);
    robot.FT_GetForceTorqueOrigin(0, ft);
    robot.FT_SetZero(1);
    robot.Sleep(1000);

    DescPose ftCoord = new DescPose();
    robot.FT_SetRCS(0, ftCoord);

    robot.SetForceSensorPayload(0.824);

    DescTran tr=new DescTran(0.778, 2.554, 48.765);
    robot.SetForceSensorPayloadCog(tr);
    List<Number> weight = new ArrayList<>();
    double x = 0, y = 0, z = 0;
    weight=robot.GetForceSensorPayload();
    robot.GetForceSensorPayloadCog(tr);
    tr.x=0;
    tr.y=0;
    tr.z=0;
    robot.SetForceSensorPayload(0);
    robot.SetForceSensorPayloadCog(tr);

    double computeWeight = 0;
    DescTran tran = new DescTran();
    MassCenter mass=new MassCenter();
    mass.weight=weight.get(1).doubleValue();
    mass.cog=tran;
    robot.ForceSensorAutoComputeLoad(mass);
    return 0;
}

12.14. Load Weight Identification Record

/**
* @brief  Load weight identification record
* @param  [in] id  Sensor coordinate system number, range [1~14]
* @return  Error code
*/
int FT_PdIdenRecord(int id);

12.15. Load Weight Identification Calculation

/**
* @brief  Load weight identification calculation
* @return  List[0]: Error code; List[1]: double weight Load weight in kg
*/
List<Number> FT_PdIdenCompute();

12.16. Load Center of Gravity Identification Record

/**
* @brief  Load center of gravity identification record
* @param  [in] id  Sensor coordinate system number, range [1~14]
* @param  [in] index Point number, range [1~3]
* @return  Error code
*/
int FT_PdCogIdenRecord(int id, int index);

12.17. Load Center of Gravity Identification Calculation

/**
* @brief  Load center of gravity identification calculation
* @param  [out] cog  Load center of gravity in mm
* @return  Error code
*/
int FT_PdCogIdenCompute(DescTran cog);

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