40 #ifndef AUBO_SDK_FORCE_CONTROL_INTERFACE_H 41 #define AUBO_SDK_FORCE_CONTROL_INTERFACE_H 46 #include <aubo/global_config.h> 50 namespace common_interface {
180 int setTargetForce(
const std::vector<double> &feature,
181 const std::vector<bool> &compliance,
182 const std::vector<double> &wrench,
183 const std::vector<double> &limits,
209 int setDynamicModel(
const std::vector<double> &m,
210 const std::vector<double> &d,
211 const std::vector<double> &k);
280 int setCondForce(
const std::vector<double> &min,
281 const std::vector<double> &max,
bool outside,
324 int setCondOrient(
const std::vector<double> &frame,
double max_angle,
325 double max_rot,
bool outside,
double timeout);
362 int setCondPlane(
const std::vector<double> &plane,
double timeout);
389 int setCondCylinder(
const std::vector<double> &axis,
double radius,
390 bool outside,
double timeout);
417 int setCondSphere(
const std::vector<double> ¢er,
double radius,
418 bool outside,
double timeout);
459 int setCondTcpSpeed(
const std::vector<double> &min,
460 const std::vector<double> &max,
bool outside,
478 int setCondDistance(
double distance,
double timeout);
496 int setCondAdvanced(
const std::string &type,
497 const std::vector<double> &args,
double timeout);
544 bool isCondFullfiled();
577 int setSupvForce(
const std::vector<double> &min,
578 const std::vector<double> &max);
616 int setSupvOrient(
const std::vector<double> &frame,
double max_angle,
617 double max_rot,
bool outside);
645 int setSupvPosBox(
const std::vector<double> &frame,
const Box &box);
668 int setSupvPosCylinder(
const std::vector<double> &frame,
692 int setSupvPosSphere(
const std::vector<double> &frame,
733 int setSupvReoriSpeed(
const std::vector<double> &speed_limit,
bool outside,
773 int setSupvTcpSpeed(
const std::vector<double> &speed_limit,
bool outside,
806 int setLpFilter(
const std::vector<double> &cutoff_freq);
856 int speedChangeEnable(
double ref_force);
881 int speedChangeDisable();
906 int speedChangeTune(
int speed_levels,
double speed_ratio_min);
947 int setDamping(
const std::vector<double> &damping,
double ramp_time);
990 int softFloatEnable();
1008 int softFloatDisable();
1024 bool isSoftFloatEnabled();
1037 int setSoftFloatParams(
bool joint_space,
const std::vector<bool> &select,
1038 const std::vector<double> &stiff_percent,
1039 const std::vector<double> &stiff_damp_ratio,
1040 const std::vector<double> &force_threshold,
1041 const std::vector<double> &force_limit);
1051 int toolContact(
const std::vector<bool> &direction);
1054 void *d_{
nullptr };
1059 #define ForceControl_DECLARES \ 1060 _INST(ForceControl, 0, fcEnable) \ 1061 _INST(ForceControl, 0, fcDisable) \ 1062 _FUNC(ForceControl, 0, isFcEnabled) \ 1063 _INST(ForceControl, 5, setTargetForce, feature, compliance, wrench, limits, type) \ 1064 _INST(ForceControl, 3, setDynamicModel, m, d, k) \ 1065 _FUNC(ForceControl, 0, getDynamicModel) \ 1066 _INST(ForceControl, 4, setCondForce, min, max, outside, timeout) \ 1067 _INST(ForceControl, 5, setCondOrient, frame, max_angle, max_rot, outside, timeout) \ 1068 _INST(ForceControl, 2, setCondPlane, plane, timeout) \ 1069 _INST(ForceControl, 4, setCondCylinder, axis, radius, outside, timeout) \ 1070 _INST(ForceControl, 4, setCondSphere, center, radius, outside, timeout) \ 1071 _INST(ForceControl, 4, setCondTcpSpeed, min, max, outside, timeout) \ 1072 _INST(ForceControl, 0, setCondActive) \ 1073 _INST(ForceControl, 2, setCondDistance, distance, timeout) \ 1074 _INST(ForceControl, 3, setCondAdvanced, type, args, timeout) \ 1075 _FUNC(ForceControl, 0, isCondFullfiled) \ 1076 _INST(ForceControl, 2, setSupvForce, min, max) \ 1077 _INST(ForceControl, 4, setSupvOrient, frame, max_angle, max_rot, outside) \ 1078 _INST(ForceControl, 2, setSupvPosBox, frame, box) \ 1079 _INST(ForceControl, 2, setSupvPosCylinder, frame, cylinder) \ 1080 _INST(ForceControl, 2, setSupvPosSphere, frame, sphere) \ 1081 _INST(ForceControl, 3, setSupvReoriSpeed, speed_limit, outside, timeout) \ 1082 _INST(ForceControl, 3, setSupvTcpSpeed, speed_limit, outside, timeout) \ 1083 _INST(ForceControl, 1, setLpFilter, cutoff_freq) \ 1084 _INST(ForceControl, 0, resetLpFilter) \ 1085 _INST(ForceControl, 2, speedChangeTune, speed_levels, speed_ratio_min) \ 1086 _INST(ForceControl, 1, speedChangeEnable, ref_force) \ 1087 _INST(ForceControl, 0, speedChangeDisable) \ 1088 _INST(ForceControl, 2, setDamping, damping, ramp_time) \ 1089 _INST(ForceControl, 0, resetDamping) \ 1090 _INST(ForceControl, 0, softFloatEnable) \ 1091 _INST(ForceControl, 0, softFloatDisable) \ 1092 _FUNC(ForceControl, 0, isSoftFloatEnabled) \ 1093 _INST(ForceControl, 6, setSoftFloatParams, joint_space, select, stiff_percent, stiff_damp_ratio, force_threshold, force_limit) \ 1094 _FUNC(ForceControl, 1, toolContact, direction) 1099 #endif // AUBO_SDK_FORCE_CONTROL_INTERFACE_H
std::vector< double > Box
std::shared_ptr< ForceControl > ForceControlPtr
std::vector< double > Cylinder
std::vector< double > Sphere
std::tuple< std::vector< double >, std::vector< double >, std::vector< double >> DynamicsModel