71#ifndef AUBO_SDK_FORCE_CONTROL_INTERFACE_H
72#define AUBO_SDK_FORCE_CONTROL_INTERFACE_H
77#include <aubo/global_config.h>
381 const std::vector<bool> &compliance,
382 const std::vector<double> &wrench,
383 const std::vector<double> &limits,
444 const std::vector<double> &damp_scale,
445 const std::vector<double> &stiff_scale);
503 const std::vector<double> &damp_scale,
504 const std::vector<double> &stiff_scale);
560 const std::vector<double> &stiff_scale);
616 const std::vector<double> &stiff_scale);
675 const std::vector<double> &damp_scale,
676 const std::vector<double> &stiff_scale);
756 const std::vector<double> &d,
757 const std::vector<double> &k);
1092 const std::vector<double> &max,
bool outside,
1187 double max_rot,
bool outside,
double timeout);
1310 bool outside,
double timeout);
1372 bool outside,
double timeout);
1456 const std::vector<double> &max,
bool outside,
1554 const std::vector<double> &args,
double timeout);
1727 const std::vector<double> &max);
1798 double max_rot,
bool outside);
2382 int setDamping(
const std::vector<double> &damping,
double ramp_time);
2564 const std::vector<double> &stiff_percent,
2565 const std::vector<double> &stiff_damp_ratio,
2566 const std::vector<double> &force_threshold,
2567 const std::vector<double> &force_limit);
int setSoftFloatParams(bool joint_space, const std::vector< bool > &select, const std::vector< double > &stiff_percent, const std::vector< double > &stiff_damp_ratio, const std::vector< double > &force_threshold, const std::vector< double > &force_limit)
Set soft float parameters
int speedChangeEnable(double ref_force)
The speedChangeEnable is used to activate FC SpeedChange function with desired reference and recover ...
int setDynamicModel1(const std::vector< double > &env_stiff, const std::vector< double > &damp_scale, const std::vector< double > &stiff_scale)
Set force control dynamics model
int setSupvReoriSpeed(const std::vector< double > &speed_limit, bool outside, double timeout)
setSupvReoriSpeed is used to set up reorientation speed supervision in Force Control.
int setDynamicModelSearch(const std::vector< double > &damp_scale, const std::vector< double > &stiff_scale)
Set force control dynamics model for hole searching scenario
int fcDisable()
End force control
int setCondDistance(double distance, double timeout)
Force control termination condition - distance
bool isSoftFloatEnabled()
Returns whether soft float is enabled
int setSupvTcpSpeed(const std::vector< double > &speed_limit, bool outside, double timeout)
setSupvTcpSpeed is used to set up TCP speed supervision in Force Control.
int setCondActive()
Activate force control termination condition
bool isCondFullfiled()
Check if the force control termination condition has been fulfilled
int setDynamicModelInsert(const std::vector< double > &damp_scale, const std::vector< double > &stiff_scale)
Set force control dynamics model for insertion/extraction scenario
int setCondCylinder(const std::vector< double > &axis, double radius, bool outside, double timeout)
Specify a valid force control cylinder by providing the central axis and cylinder radius,...
int setDamping(const std::vector< double > &damping, double ramp_time)
setDamping is used to tune the damping in the force control coordinate systems.
int resetLpFilter()
Reset low-pass filter
int setCondAdvanced(const std::string &type, const std::vector< double > &args, double timeout)
Advanced force control termination condition
int setLpFilter(const std::vector< double > &cutoff_freq)
Set low-pass filter
std::vector< double > getActualJointPositionsHistory(int steps)
int resetDamping()
Reset damping parameters
int setCondTcpSpeed(const std::vector< double > &min, const std::vector< double > &max, bool outside, double timeout)
setCondTcpSpeed is used to setup an end condition for the TCP speed.
int setCondForce(const std::vector< double > &min, const std::vector< double > &max, bool outside, double timeout)
Set force control termination condition: Force.
int setDynamicModelContact(const std::vector< double > &env_stiff, const std::vector< double > &damp_scale, const std::vector< double > &stiff_scale)
Set force control dynamics model for contact scenario
int setCondSphere(const std::vector< double > ¢er, double radius, bool outside, double timeout)
Specify a valid force control sphere by providing the center and radius, and specify whether the insi...
int setCondPlane(const std::vector< double > &plane, double timeout)
Specify a valid force control plane, x-y plane, z direction is valid
bool isFcEnabled()
Check if force control is enabled
int setSupvPosBox(const std::vector< double > &frame, const Box &box)
setSupvPosBox is used to set up position supervision in Force Control.
int setSupvPosSphere(const std::vector< double > &frame, const Sphere &sphere)
int setSupvForce(const std::vector< double > &min, const std::vector< double > &max)
setSupvForce is used to set up force supervision in Force Control.
std::vector< double > getFcSensorLimits()
Get maximum force limits
int speedChangeDisable()
Deactivate FC SpeedChange function.
int fcSetSensorThresholds(const std::vector< double > &thresholds)
Set force control thresholds
int setSupvPosCylinder(const std::vector< double > &frame, const Cylinder &cylinder)
int setDynamicModel(const std::vector< double > &m, const std::vector< double > &d, const std::vector< double > &k)
Set force control dynamics model
int fcSetSensorLimits(const std::vector< double > &limits)
Set force control maximum force limits
DynamicsModel getDynamicModel()
Get force control dynamics model
int setTargetForce(const std::vector< double > &feature, const std::vector< bool > &compliance, const std::vector< double > &wrench, const std::vector< double > &limits, TaskFrameType type=TaskFrameType::FRAME_FORCE)
Set force control reference (target) value
DynamicsModel fcCalDynamicModel(const std::vector< double > &env_stiff, const std::vector< double > &damp_scale, const std::vector< double > &stiff_scale)
Calculate force control dynamics model
int fcEnable()
Start force control
int setSupvOrient(const std::vector< double > &frame, double max_angle, double max_rot, bool outside)
setSupvOrient is used to set up an supervision for the tool orientation.
std::vector< double > getFcSensorThresholds()
Get force control thresholds
int speedChangeTune(int speed_levels, double speed_ratio_min)
speedChangeTune is used to set FC SpeedChange system parameters to a new value.
int softFloatEnable()
Enable soft float function.
int toolContact(const std::vector< bool > &direction)
Detect contact between the tool and external objects
int setCondOrient(const std::vector< double > &frame, double max_angle, double max_rot, bool outside, double timeout)
setCondOrient is used to set up an end condition for the tool orientation.
int softFloatDisable()
Disable soft float function.
std::tuple< std::vector< double >, std::vector< double >, std::vector< double > > DynamicsModel
std::shared_ptr< ForceControl > ForceControlPtr
std::vector< double > Box
std::vector< double > Sphere
std::vector< double > Cylinder