利索能及
我要发布
收藏
专利号: 2025100371885
申请人: 江苏科技大学
专利类型:发明专利
专利状态:已下证
更新日期:2026-03-02
缴费截止日期: 暂无
联系人

摘要:

权利要求书:

1.一种基于改进多线程PPO强化学习的机械臂抓取方法,其特征在于,包括如下步骤:S1:初始化环境状态,包括工作子线程的数量、Actor策略网络和Critic评价网络;

S2:多个工作子线程开始并行工作,获取机械臂的初始状态信息,并将其输入到Actor策略网络,Actor策略网络采用改进的PPO强化学习算法进行数据收集;

S3:将收集的数据放入到经验池中,采用广义优势估计GAE算法计算出所有的优势值;

S4:对优势值进行正则化处理,同时对奖励进行缩放处理;

S5:根据正则化后的优势值和缩放后的奖励,对Actor策略网络和Critic评价网络进行更新;

S6:根据Actor策略网络输出的最新动作指令,控制机械臂的关节运动和夹爪动作。

2.根据权利要求1所述的一种基于改进多线程PPO强化学习的机械臂抓取方法,其特征在于,所述步骤S2中状态信息包括机械臂关节角度、夹爪状态以及目标物体相对于机械臂的位置和距离信息。

3.根据权利要求1所述的一种基于改进多线程PPO强化学习的机械臂抓取方法,其特征在于,所述步骤S2中Actor策略网络的数据收集方法包括:将多个工作子线程引入到PPO强化学习算法中,设置一个共享网络,Actor策略网络将权重给到共享网络,通过共享网络分给每一个工作子线程,每个子线程与环境交互。

4.根据权利要求1所述的一种基于改进多线程PPO强化学习的机械臂抓取方法,其特征在于,所述步骤S3的经验池中设置一个回放缓冲区buffer,将每次从环境中采样得到的四元组数据存放到回放缓冲区中,训练的时候再从缓冲区中随机采样若干数据来进行训练。

5.根据权利要求1所述的一种基于改进多线程PPO强化学习的机械臂抓取方法,其特征在于,所述步骤S3中优势值的计算公式为:其中,γ为折扣因子,λ是0~1之间的常数,V代表状态价值,rt+l为第t+l时刻的单步总奖励,l为经历的步数,st+l为t+l时刻的状态,st+l+1为t+l+1时刻的状态。

6.根据权利要求1所述的一种基于改进多线程PPO强化学习的机械臂抓取方法,其特征在于,所述步骤S4中正则化处理包括:计算经验池中所有优势值的均值和标准差;

根据均值和标准差对每个优势值进行正则化处理,公式如下:

其中At是原始优势值,μA是经验池内所有优势值的均值,σA是经验池内所有优势值的标准差,∈是防止分母为零的小常数, 是正则化之后的优势值。

7.根据权利要求1所述的一种基于改进多线程PPO强化学习的机械臂抓取方法,其特征在于,所述步骤S4中缩放处理包括:A1:设计奖励函数:

R=γrd+Isuccessrsuccess

计算机械臂夹爪中心与目标物体中心在三维空间中的欧几里得距离d;当距离较远时给予较小的奖励,随着距离逐渐减小,奖励逐渐增加;使用一个简单的非线性函数来实现这种关系;其中kd是一个缩放系数,决定了距离对奖励的影响程度,dmax是一个预先设定的最大距离阈值;当dmax=d时,rd=0;当d=0时,rd=kd;这样可以鼓励机械臂逐渐靠近目标物体;Isuccess是指示函数,当成功抓取时,Isuccess=1;当抓取失败时,Isuccess=0;

A2:滚动计算一个奖励的折扣总和,公式为Rt=γRt‑1+rt,其中Rt是每一步计算的累计奖励,γ是折扣因子,rt是当前步的奖励;

动态计算每一步奖励的标准差σR;

用标准差缩放得到奖励,公式为 其中rt'是缩放后的奖励。

8.根据权利要求1所述的一种基于改进多线程PPO强化学习的机械臂抓取方法,其特征在于,所述步骤S5中采用clip函数对Actor策略网络进行更新,具体如下:其中,θ为模型参数,∈为裁剪系数, 是更新前的策略函数,πθ是更新后的策略函数,at是t时刻正在执行的动作, 是t时刻目标函数的期望。

9.根据权利要求1所述的一种基于改进多线程PPO强化学习的机械臂抓取方法,其特征在于,所述步骤S5中采用改进的损失函数对Critic评价网络进行更新,具体如下:其中,rt'是t'时刻的奖励,t是当前时刻,V是状态价值函数,是模型参数,st是t时刻的状态。

10.一种基于改进多线程PPO强化学习的机械臂抓取系统,其特征在于,包括:状态获取模块,用于获取机械臂的状态信息,状态信息包括机械臂关节角度、夹爪状态以及目标物体相对于机械臂的位置和距离信息;

多线程计算模块,包括多个并行计算线程,用于执行基于改进PPO强化学习算法的计算过程;

动作执行模块,用于根据多线程计算模块输出的动作指令控制机械臂执行相应动作;

奖励反馈模块,用于根据机械臂的动作结果和抓取任务目标计算奖励值,并将奖励值反馈给多线程计算模块。