9#ifndef XCORESDK_SRC_MANAGED_FORCE_CONTROL_CLI_HPP_
10#define XCORESDK_SRC_MANAGED_FORCE_CONTROL_CLI_HPP_
12#include <unordered_map>
14#include "exception_cli.hpp"
16using namespace System;
17using namespace System::Collections::Generic;
18using namespace System::Runtime::InteropServices;
21 class BaseForceControl;
22 template<
unsigned short DoF>
38 rokae::BaseForceControl* fc_base;
64 array<double>^% joint_torque_measured,
65 array<double>^% external_torque_measured,
66 array<double>^% cart_torque,
67 array<double>^% cart_force, [Out]
ErrorCode^% ec);
152 void setSineOverlay(
int line_dir,
double amplify,
double frequency,
double phase,
167 double frequency_two,
double phase_diff, [Out]
ErrorCode^% ec);
void setCartesianMaxVel(array< double >^ velocity, [Out] ErrorCode^% ec)
设置力控模式下, 机械臂末端相对基坐标系的最大速度
void setControlType(int type, [Out] ErrorCode^% ec)
设置阻抗控制类型
void setSineOverlay(int line_dir, double amplify, double frequency, double phase, double bias, [Out] ErrorCode^% ec)
设置绕单轴旋转的正弦搜索运动。 设置阻抗控制类型为笛卡尔阻抗(即setControlType(1))之后, startOverlay()之前调用生效。 各机型的搜索运动幅值上限和搜索运动频率上限不同,请...
void setForceCondition(array< double >^ range, bool isInside, double timeout, [Out] ErrorCode^% ec)
设置与接触力有关的终止条件
void setPoseBoxCondition(Frame^ supervising_frame, array< double >^ box, bool isInside, double timeout, [Out] ErrorCode^% ec)
设置与接触位置有关的终止条件
void setJointMaxVel(array< double >^ velocity, [Out] ErrorCode^% ec)
设置力控模式下的轴最大速度
void setLissajousOverlay(int plane, double amplify_one, double frequency_one, double amplify_two, double frequency_two, double phase_diff, [Out] ErrorCode^% ec)
设置平面内的莉萨如搜索运动。 设置阻抗控制类型为笛卡尔阻抗(即setControlType(1))之后, startOverlay()之前调用生效。
void startOverlay([Out] ErrorCode^% ec)
开启搜索运动,fcStart()之后调用生效。 搜索运动为前序设置的 setSineOverlay()或 setLissajousOverlay()的叠加
void fcInit(FrameType type, [Out] ErrorCode^% ec)
力控初始化
void fcStart([Out] ErrorCode^% ec)
开始力控,fcInit()之后调用。 如需在力控模式下执行运动指令,fcStart()之后可执行。 注意,如果在fcStart()之前通过moveAppend()下发了运动指令但未开始运动,fcStar...
void setCartesianStiffness(array< double >^ stiffness, [Out] ErrorCode^% ec)
设置笛卡尔阻抗刚度, fcInit()之后调用生效.
void setTorqueCondition(array< double >^ range, bool isInside, double timeout, [Out] ErrorCode^% ec)
设置与接触力矩有关的终止条件
void setJointMaxMomentum(array< double >^ momentum, [Out] ErrorCode^% ec)
设置力控模式下轴最大动量。 计算方式:F* t,可以理解为冲量,F为力矩传感器读数,t为控制周期,如果超过30个周期都超过动量阈值则触发保护
void waitCondition([Out] ErrorCode^% ec)
激活前序设置的终止条件并等待,直到满足这些条件或者超时
void setCartesianNullspaceStiffness(double stiffness, [Out] ErrorCode^% ec)
设置笛卡尔零空间阻抗刚度。fcInit()之后调用生效
void pauseOverlay([Out] ErrorCode^% ec)
暂停搜索运动。startOverlay()之后调用生效
void fcStop([Out] ErrorCode^% ec)
停止力控
void restartOverlay([Out] ErrorCode^% ec)
重新开启暂停的搜索运动。pauseOverlay()之后调用生效。
void setJointDesiredTorque(array< double >^ torque, [Out] ErrorCode^% ec)
设置关节期望力矩。fcStart()之后可调用
void stopOverlay([Out] ErrorCode^% ec)
停止搜索运动
void setCartesianDesiredForce(array< double >^ value, [Out] ErrorCode^% ec)
设置笛卡尔期望力/力矩。fcStart()之后可调用
void getEndTorque(FrameType ref_type, array< double >^% joint_torque_measured, array< double >^% external_torque_measured, array< double >^% cart_torque, array< double >^% cart_force, [Out] ErrorCode^% ec)
获取当前力矩信息
void setJointMaxEnergy(array< double >^ energy, [Out] ErrorCode^% ec)
设置力控模式下轴最大动能。 计算方式:F* v,可以理解为功率,F为力矩传感器读数,v为关节速度, 如果超过30个周期都超过动能阈值则触发保护
void fcMonitor(bool enable, [Out] ErrorCode^% ec)
启动/关闭力控模块保护监控。 设置监控参数(setJointMaxVel, setJointMaxMomentum, setJointMaxEnergy, setCartesianMaxVel)后,不立...
void setLoad(Load^ load, [Out] ErrorCode^% ec)
设置力控模块使用的负载信息,fcStart()之后可调用。
void setJointStiffness(array< double >^ stiffness, [Out] ErrorCode^% ec)
设置关节阻抗刚度, fcInit()之后调用生效.