Skip to content
On this page

算法模块

平滑移动函数

平滑移动函数

lua
local delta = Smooth_function(rel_x)
-- 参数1:目标相对距离

-- 返回值:本次移动的增量

IncrementalPID

创建新的PID控制器实例

lua
local pid = IncrementalPID()

设置PID控制器的参数

lua
pid:IncrementalPID_Updata(Kp, Ki, Kd)
-- 参数1:number 比例系数
-- 参数2:number 积分系数
-- 参数3:number 微分系数

归零PID内部状态

lua
pid:IncrementalPID_Reset()

执行PID计算

lua
local output = pid:IncrementalPID_Count(error)
-- 参数1:number 当前误差
-- 返回值:number 控制器输出

PID limit

创建新的PID控制器实例

lua
local pid = PID_limit(kp, ki, kd, limit)
-- 参数1:number 比例系数
-- 参数2:number 积分系数
-- 参数3:number 微分系数
-- 参数4:number 输出限制

-- 返回值:userdata (PID控制器对象)

设置PID参数

lua
pid:PID_limit_Updata(Kp, Ki, Kd)
-- 参数1:number 比例系数
-- 参数2:number 积分系数
-- 参数3:number 微分系数

归零PID内部状态

lua
pid:PID_limit_Reset()

执行PID计算

lua
local output = pid:PID_limit_Count(error)
-- 参数1:number 当前误差

-- 返回值:number 控制器输出

FeedForwardIncrementalPID

创建新的PID控制器实例

lua
local pid = FeedForwardIncrementalPID(kp, ki, kd, reaction_time, feedforward_gain)
-- 参数1:number 比例系数
-- 参数2:number 积分系数
-- 参数3:number 微分系数
-- 参数4:number 反应时间
-- 参数5:number 前馈增益

-- 返回值:userdata (PID控制器对象)

设置PID参数

lua
pid:FeedForwardIncrementalPID_Updata(Kp, Ki, Kd)
-- 参数1:number 比例系数
-- 参数2:number 积分系数
-- 参数3:number 微分系数

归零PID内部状态

lua
pid:FeedForwardIncrementalPID_Reset()

执行PID计算

lua
local output = pid:FeedForwardIncrementalPID_Count(error)
-- 参数1:number 当前误差

-- 返回值:number 控制器输出

ADRC

创建新的ADRC控制器实例

lua
local adrc = ADRC_X(w0, b0, w_n, sigma, time_delta)
-- w0: number (自然频率)
-- b0: number (阻尼系数)
-- w_n: number (自然频率)
-- sigma: number (阻尼比)
-- time_delta: number (时间步长)

-- 返回值: userdata (ADRC控制器对象)
--  默认参数推荐0.001, 2, 1, 0.01, 0.001

设置ADRC控制器参数

lua
adrc:ADRC_X_Updata(w0, b0, w_n, sigma, time_delta)
-- w0: number (自然频率)
-- b0: number (阻尼系数)
-- w_n: number (自然频率)
-- sigma: number (阻尼比)
-- time_delta: number (时间步长)

归零ADRC内部状态

lua
adrc:ADRC_X_Reset()

执行ADRC计算

lua
local output = adrc:ADRC_X_Count(y, yref)
-- y: number (当前测量值)
-- yref: number (目标值)

-- 返回值:number (控制器输出)
-- 注意: 输出为负值,即负反馈

动态补偿

坐标补偿阈值判断标准

lua
setAvgDetectTime(avgDetectTimeAAA)
-- avgDetectTimeAAA: number (单帧采集+推理延迟)

-- 返回值:number (控制器输出)
-- 注意: 输出为负值,即负反馈

计算补偿后的坐标值

lua
updatePred(FinalX, dynamicPrediction, predictThreshold)
-- FinalX: number (当前坐标位置)
-- dynamicPrediction: number (当前补偿值)
-- predictThreshold: number (当前进行阈值)

-- 返回值:number (控制器输出)
-- 注意: 返回的值不包括原先坐标,需要累加

初始化B版轨迹模型

初始化B版轨迹模型

lua
local am = TrajectoryPredictor_B(path,size,mod)

功能:初始化预测轨迹模型

参数

  • path:模型名称
  • size:模型尺寸
  • mod:0=抖动 1=无抖动

返回值:布尔值,表示初始化是否成功

示例

lua
local am = TrajectoryPredictor_B("npdata640.hmm",640,0)
if not am then
    print("TrajectoryPredictor_B 失败,模型路径不合法或文件不存在")
    return
end

预测轨迹

预测轨迹

lua
local dx_step, dy_step = am:Predict(dx_t, dy_t,step)

功能:预测轨迹

参数

  • dx_t:相对目标x坐标
  • dy_t:相对目标y坐标
  • step:步数

返回值:返回坐标XY