跳到主要内容

C++ API

Init

功能: 初始化 FSA 对象

参数:

  1. ip:目标执行器 IP;
  2. net_recv_mode:网络接收模式,可选 YIELD_WAIT (阻塞等待) 或 SPIN_WAIT (自旋等待)。

返回值: 状态码

Power

OpenRelay

功能: 开启电源控制板继电器

参数:

  1. timeout_ms:超时时间(ms),默认为 5ms;
  2. max_retry:最大重试次数,默认为 0 次。

返回值: 状态码

CloseRelay

功能: 关闭电源控制板继电器

参数:

  1. timeout_ms:超时时间(ms),默认为 5ms;
  2. max_retry:最大重试次数,默认为 0 次。

返回值: 状态码

Reboot

功能: 重启执行器

参数:

  1. timeout_ms:超时时间(ms),默认为 5ms;
  2. max_retry:最大重试次数,默认为 0 次。

返回值: 状态码

Control

EnableControl

功能: 使能执行器位置/速度/力矩/PD 模式

参数:

  1. ctrl_mode:控制模式枚举(位置/速度/力矩/PD);
  2. timeout_ms:超时时间(ms),默认为 5ms;
  3. max_retry:最大重试次数,默认为 0 次。

返回值: 状态码

注意: 该接口内部实现分别执行了以下命令,以下任何一步失败都会导致该接口直接返回某个状态码:

  1. 获取当前位置/速度/电流/力矩反馈;

  2. 设置目标位置/速度/电流指令;

    1. 设置目标位置为当前位置,前馈速度为 0,前馈电流为 0(若使能位置或 PD 模式);
    2. 设置目标速度为 0,前馈电流为 0(若使能速度模式);
    3. 设置目标电流为 0(若使能力矩模式)。
  3. 使能。

DisableControl

功能: 失能执行器

参数:

  1. timeout_ms:超时时间(ms),默认为 5ms;
  2. max_retry:最大重试次数,默认为 0 次。

返回值: 状态码

SetPositionNoAck

功能: 发送目标位置指令、前馈速度指令、前馈力矩指令,执行器不回复

参数:

  1. tx_pos:目标位置;
  2. tx_vel_ff:前馈速度;
  3. tx_tor_ff:前馈力矩;
  4. timeout_ms:超时时间(ms),默认为 5ms;
  5. max_retry:最大重试次数,默认为 0 次。

返回值: 状态码

注意: 该接口会将目标位置和前馈速度从弧度转换为角度值、将前馈力矩转换为电流值下发给执行器,使用前请检查执行器参数配置(电机型号和减速比)是否正确。

SetPosition

功能: 发送目标位置指令、前馈速度指令、前馈力矩指令,执行器回复状态

参数:

  1. tx_pos:目标位置;
  2. tx_vel_ff:前馈速度;
  3. tx_tor_ff:前馈力矩;
  4. timeout_ms:超时时间(ms),默认为 5ms;
  5. max_retry:最大重试次数,默认为 0 次。

返回值: 状态码

注意: 该接口会将目标位置和前馈速度从弧度转换为角度值、将前馈力矩转换为电流值下发给执行器,使用前请检查执行器参数配置(电机型号和减速比)是否正确。

SetVelocityNoAck

功能: 发送目标速度指令、前馈力矩指令,执行器不回复

参数:

  1. tx_vel:目标速度;
  2. tx_tor_ff:前馈力矩;
  3. timeout_ms:超时时间(ms),默认为 5ms;
  4. max_retry:最大重试次数,默认为 0 次。

返回值: 状态码

注意: 该接口会将目标速度从弧度转换为角度值、将前馈力矩转换为电流值下发给执行器,使用前请检查执行器参数配置(电机型号和减速比)是否正确。

SetVelocity

功能: 发送目标速度指令、前馈力矩指令,执行器回复状态

参数:

  1. tx_vel:目标速度;
  2. tx_tor_ff:前馈力矩;
  3. timeout_ms:超时时间(ms),默认为 5ms;
  4. max_retry:最大重试次数,默认为 0 次。

返回值: 状态码

注意: 该接口会将目标速度从弧度转换为角度值、将前馈力矩转换为电流值下发给执行器,使用前请检查执行器参数配置(电机型号和减速比)是否正确。

SetTorqueNoAck

功能: 发送目标力矩指令,执行器不回复

参数:

  1. tx_tor:目标力矩;
  2. timeout_ms:超时时间(ms),默认为 5ms;
  3. max_retry:最大重试次数,默认为 0 次。

返回值: 状态码

注意: 该接口会将目标力矩转换为电流值下发给执行器,使用前请检查执行器参数配置(电机型号和减速比)是否正确。

SetTorque

功能: 发送目标力矩指令,执行器回复状态

参数:

  1. tx_tor:目标力矩;
  2. timeout_ms:超时时间(ms),默认为 5ms;
  3. max_retry:最大重试次数,默认为 0 次。

返回值: 状态码

注意: 该接口会将目标力矩转换为电流值下发给执行器,使用前请检查执行器参数配置(电机型号和减速比)是否正确。

SetPDPositionVelocityNoAck

功能: 发送目标位置指令、目标速度指令、前馈力矩指令,执行器不回复

参数:

  1. tx_pos:目标位置;
  2. tx_vel:目标速度;
  3. tx_tor_ff:前馈力矩;
  4. timeout_ms:超时时间(ms),默认为 5ms;
  5. max_retry:最大重试次数,默认为 0 次。

返回值: 状态码

注意: 该接口会将目标位置和目标速度从弧度转换为角度值、PD 模式无需将前馈力矩转换为电流值下发,FSA 默认视为前馈力矩,使用前请检查执行器参数配置(电机型号和减速比)是否正确。

SetPDPositionVelocity

功能: 发送目标位置指令、目标速度指令、前馈力矩指令,执行器回复状态

参数:

  1. tx_pos:目标位置;
  2. tx_vel:目标速度;
  3. tx_tor_ff:前馈力矩;
  4. timeout_ms:超时时间(ms),默认为 5ms;
  5. max_retry:最大重试次数,默认为 0 次。

返回值: 状态码

注意: 该接口会将目标位置和目标速度从弧度转换为角度值、PD 模式无需将前馈力矩转换为电流值下发,FSA 默认视为前馈力矩,使用前请检查执行器参数配置(电机型号和减速比)是否正确。

State

GetPVCTTe

功能: 获取执行器反馈的位置、速度、电流、负载转矩和电磁转矩

参数:

  1. rx_pvctte:存放获取的位置、速度、电流、负载转矩和电磁转矩;
  2. timeout_ms:超时时间(ms),默认为 5ms;
  3. max_retry:最大重试次数,默认为 0 次。

返回值: 状态码

注意: 该接口会将反馈位置和反馈速度从角度转换为弧度值、将反馈电流转换为电磁转矩,使用前请检查执行器参数配置(电机型号和减速比)是否正确。

EnableSubscribe

功能: 使能订阅模式

参数:

  1. tx_subs_config:订阅模式配置;
  2. timeout_ms:超时时间(ms),默认为 5ms;
  3. max_retry:最大重试次数,默认为 0 次。

返回值: 状态码

GetSubsData

功能: 获取最新的订阅数据

参数:

  1. subs_data:存放获取的订阅数据;

返回值: 状态码

注意: 该接口保证每次调用时均为最新一帧订阅数据,并丢弃 Socket 缓冲区中的缓存数据帧。

GetTempVbus

功能: 获取执行器温度和母线电压

参数:

  1. rx_temp_vbus:存放获取的执行器温度和母线电压;
  2. timeout_ms:超时时间(ms),默认为 5ms;
  3. max_retry:最大重试次数,默认为 0 次。

返回值: 状态码

注意: 该接口内部实现分别执行了以下命令:

  1. 获取执行器温度;
  2. 获取执行器母线电压。

GetErrCode

功能: 获取执行器错误

参数:

  1. rx_error:存放获取的错误码数组, 共 8 个错误码;
  2. timeout_ms:超时时间(ms),默认为 5ms;
  3. max_retry:最大重试次数,默认为 0 次。

返回值: 状态码

Config

SetPIDParams

功能: 设置临时立即生效(imm)PID 参数

参数:

  1. tx_pos_kp:位置环 Kp;
  2. tx_vel_kp:速度环 Kp;
  3. tx_vel_ki:速度环 Ki;
  4. timeout_ms:超时时间(ms),默认为 5ms;
  5. max_retry:最大重试次数,默认为 0 次。

返回值: 状态码

GetPIDParams

功能: 获取临时立即生效(imm)PID 参数

参数:

  1. rx_pid_param:存放获取的临时立即生效(imm)PID 参数;
  2. timeout_ms:超时时间(ms),默认为 5ms;
  3. max_retry:最大重试次数,默认为 0 次。

返回值: 状态码

SetPDParams

功能: 设置临时立即生效(imm)PD 参数

参数:

  1. tx_pd_kp:PD 环 Kp;
  2. tx_pd_kd:PD 环 Kd;
  3. timeout_ms:超时时间(ms),默认为 5ms;
  4. max_retry:最大重试次数,默认为 0 次。

返回值: 状态码

GetPDParams

功能: 获取临时立即生效(imm)PD 参数

参数:

  1. rx_pd_param:存放获取的临时立即生效(imm)PD 参数;
  2. timeout_ms:超时时间(ms),默认为 5ms;
  3. max_retry:最大重试次数,默认为 0 次。

返回值: 状态码

Advanced

待实现

状态码

状态码SUCCESSSDK_VER_NOT_MATCHCTRL_PARAM_ERRINTERFACE_HANDLE_ERRARG_ERRNET_ERRTIMEOUTNET_RXBUF_DATA_ERR
数值0-101-102-201-202-301-302-303
含义操作成功SDK 版本不匹配执行器获取配置参数错误执行器对象未初始化接口参数非法网络错误网络接收超时网络接收缓冲区数据与发送指令不匹配
可能原因/执行器固件版本过低或 SDK 动态库与头文件版本不匹配型号和版本号未获取成功未执行 init 函数传入接口的参数不符合要求对应 IP 的 FSA 网络已断开接收执行器返回数据等待时间超过指定超时时间接收到系统 socket 输入缓冲区前几帧数据导致指令不匹配