跳到主要内容

C++ 接口

Init

功能: 初始化 FSA 对象

参数:

  1. ip:目标执行器 IP;
  2. net_recv_mode:网络接收模式,可选 YIELD_WAIT (阻塞等待) 或 SPIN_WAIT (自旋等待),默认为阻塞等待;
  3. rtcko_path:默认是空字符串,建议忽略此项。

返回值: 返回详细执行状态ret_e(int)

Power

OpenRelay

功能: 开启机器人电源板继电器

参数:

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

返回值: 返回详细执行状态ret_e(int)

注意: 开关的是机器人的电源管理板的电源,执行器本身不带有此功能

CloseRelay

功能: 关闭机器人电源板继电器

参数:

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

返回值: 返回详细执行状态ret_e(int)

注意: 开关的是机器人的电源管理板的电源,执行器本身不带有此功能

Reboot

功能: 重启执行器

参数:

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

返回值: 返回详细执行状态ret_e(int)

Control

EnableControl

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

参数:

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

返回值: 返回详细执行状态ret_e(int)

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

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

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

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

DisableControl

功能: 失能执行器

参数:

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

返回值: 返回详细执行状态ret_e(int)

SetPositionNoAck

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

参数:

  1. p_rad:目标位置;
  2. v_ff_radps:速度前馈;
  3. t_ff_Nm:力矩前馈。

返回值: 返回详细执行状态ret_e(int)

SetPosition

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

参数:

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

返回值: 返回详细执行状态ret_e(int)

SetVelocityNoAck

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

参数:

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

返回值: 返回详细执行状态ret_e(int)

SetVelocity

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

参数:

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

返回值: 返回详细执行状态ret_e(int)

SetTorqueNoAck

功能: 发送力矩目标指令,执行器不回复任何数据帧

参数:

  1. t_Nm:目标力矩。

返回值: 返回详细执行状态ret_e(int)

SetTorque

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

参数:

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

返回值: 返回详细执行状态ret_e(int)

SetPDPositionVelocityNoAck

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

参数:

  1. p_rad:目标位置;
  2. v_radps:目标速度;
  3. t_ff_Nm:力矩前馈。

返回值: 返回详细执行状态ret_e(int)

SetPDPositionVelocity

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

参数:

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

返回值: 返回详细执行状态ret_e(int)

State

GetPVCTTe

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

参数:

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

返回值: 返回详细执行状态ret_e(int)

EnableSubscribe

功能: 配置订阅模式

参数:

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

返回值: 返回详细执行状态ret_e(int)

GetSubsData

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

参数:

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

返回值: 状态码

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

GetTempVbus

功能: 获取执行器mos温度,绕组温度,电压

参数:

  1. rx_temp_vbus:存放获取的mos温度,绕组温度,电压;
  2. timeout_ms:超时时间(ms),默认为 5ms;
  3. max_retry:最大重试次数,默认为 1 次。

返回值: 返回详细执行状态ret_e(int)

GetErrCode

功能: 获取执行器当前错误码

参数:

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

返回值: 返回详细执行状态ret_e(int)

ParseErrCode

功能: 解析执行器错误码

参数:

  1. err_code:获取到的8个uint32_t错误码;
  2. parsed_err_code:解析后的错误码。

返回值: 返回详细执行状态ret_e(int)

GetTypeSubversion

功能: 获取执行器型号和子版本号

参数:

  1. type_subversion:存放获取的型号和子版本号;
  2. timeout_ms:超时时间(ms),默认为 5ms;
  3. max_retry:最大重试次数,默认为 1 次。

返回值: 返回详细执行状态ret_e(int)

Config

SetPIDParams

功能: 实时设置位置环速度环PID参数

参数:

  1. p_kp:位置环比例增益;
  2. v_kp:速度环比例增益;
  3. v_ki:速度环积分增益;
  4. timeout_ms:超时时间(ms),默认为 5ms;
  5. max_retry:最大重试次数,默认为 1 次。

返回值: 返回详细执行状态ret_e(int)

GetPIDParams

功能: 实时获取位置环速度环PID参数

参数:

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

返回值: 返回详细执行状态ret_e(int)

SetPDParams

功能: 实时设置 PD 参数

参数:

  1. pd_kp:PD比例增益;
  2. pd_kd:PD微分增益;
  3. timeout_ms:超时时间(ms),默认为 5ms;
  4. max_retry:最大重试次数,默认为 1 次。

返回值: 返回详细执行状态ret_e(int)

GetPDParams

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

参数:

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

返回值: 返回详细执行状态ret_e(int)

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 输入缓冲区前几帧数据导致指令不匹配