71#ifndef AUBO_SDK_FORCE_CONTROL_INTERFACE_H
72#define AUBO_SDK_FORCE_CONTROL_INTERFACE_H
77#include <aubo/global_config.h>
81namespace common_interface {
374 const std::vector<bool> &compliance,
375 const std::vector<double> &wrench,
376 const std::vector<double> &limits,
436 const std::vector<double> &damp_scale,
437 const std::vector<double> &stiff_scale);
494 const std::vector<double> &damp_scale,
495 const std::vector<double> &stiff_scale);
550 const std::vector<double> &stiff_scale);
605 const std::vector<double> &stiff_scale);
663 const std::vector<double> &damp_scale,
664 const std::vector<double> &stiff_scale);
743 const std::vector<double> &d,
744 const std::vector<double> &k);
1073 const std::vector<double> &max,
bool outside,
1167 double max_rot,
bool outside,
double timeout);
1288 bool outside,
double timeout);
1349 bool outside,
double timeout);
1432 const std::vector<double> &max,
bool outside,
1528 const std::vector<double> &args,
double timeout);
1698 const std::vector<double> &max);
1768 double max_rot,
bool outside);
2341 int setDamping(
const std::vector<double> &damping,
double ramp_time);
2518 const std::vector<double> &stiff_percent,
2519 const std::vector<double> &stiff_damp_ratio,
2520 const std::vector<double> &force_threshold,
2521 const std::vector<double> &force_limit);
2568 void *d_{
nullptr };
Abstract class for force control interface
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::vector< double > Box
std::vector< double > Sphere
std::shared_ptr< ForceControl > ForceControlPtr
std::vector< double > Cylinder