首页 / 资讯中心 / 文章详情

基于RBF神经网络的机器人路径跟踪控制:原理、仿真与避坑

基于RBF神经网络的机器人路径跟踪控制:原理、仿真与避坑 ★ FEATURED ARTICLE
简介“基于RBF神经网络的机器人的路径跟踪控制”是一篇来自合肥工业大学学报的学术论文PDF适合机器人控制、智能算法方向的研究生、工程师以及对神经网络、机器学习、深度学习等智能方法应用感兴趣的读者。文档以双轮移动机器人为对象针对其路径跟踪与姿态平衡问题设计了反演法运动学控制器与滑模动力学控制器相结合的方案并利用RBF神经网络对控制器中的不确定参数进行在线自适应学习实时修正控制增益从而在保持姿态稳定的同时提升跟踪精度。内容包含机器人运动学/动力学建模、控制器推导、仿真对比等完整环节可为相关课题提供可直接借鉴的建模与控制思路。资源为单个PDF文件大小385KB篇幅精炼便于快速查阅核心算法与关键结论。目前已有135人学习下载适合需要将神经网络引入机器人控制研究的数据建模与专业指导场景。1. 什么是基于RBF神经网络的机器人路径跟踪控制从PID失效场景说起做机器人路径跟踪控制的工程师十有八九被同一件事折磨过PID在某个速度下调得好好的换一个负载或者把速度提20%横向误差就开始画龙。背后的原因不是PID不够好而是机器人动力学里的摩擦、负载变化、打滑这些不确定项没法用一个固定增益去抵消。RBF神经网络在这里干的活就是在线逼近这些“说不清道不明的动力学不确定项”让路径跟踪控制律自动适应工况变化。下面按“原理 → 控制律 → 仿真 → 避坑”四条主线把这条路完整走一遍适合正在做轮式机器人、机械臂轨迹跟踪或者被调参玄学折磨的工程师和学生参考。2. RBF神经网络逼近原理路径跟踪的“模型不确定项”为什么只能靠它兜底2.1 RBF为什么适合做机器人控制里的“万能逼近器”在讲路径跟踪控制之前先把RBF神经网络的定位说清楚。机器人运动学和动力学方程里总有那么几项是不确定甚至写不出来的轮式机器人的滚动摩擦系数随路面变化、机械臂的负载惯量变化、长时间运行后关节死区变宽……这些项都满足同一个数学条件——在机器人正常工作的范围内可以看作一个有界的连续函数。而RBF神经网络的核心价值就是它能在紧集内以任意精度逼近任意连续函数且和BP网络不同它输出对输入的变化是局部敏感的不会出现“调一个权值把整个网络都带偏”的全局耦合问题。单看结构RBF是一个三层网络输入层直接接状态向量隐含层每个神经元的激活函数是径向基函数常见的是高斯核输出层把隐含层的响应加权求和。高斯核的表达式是h_j(x) exp(-‖x - c_j‖² / (2 b_j²))其中h_j是第j个隐含节点的输出x是网络输入向量c_j是中心向量b_j是基宽。这个表达式的物理含义很直观输入x离中心c_j越近激活值越高离得越远激活值迅速衰减到接近0。正是这种局部感受野特性让RBF在机器人控制这类对实时性敏感的场合里比多层感知机更受欢迎。原因有两点一是逼近能力足够二是在线更新权值时只影响当前输入附近的局部区域收敛快不容易来回震荡。在机器人控制场景里我一般把RBF用在两类地方。一类是机械臂的动力学辨识补偿把科氏力、重力、摩擦项揉成一个黑箱函数让RBF去逼近另一类是移动机器人的路径跟踪控制把打滑和驱动力矩死区这种根本建模不干净的部分交给RBF。这也是为什么这类方案里控制器中会大量出现f(x)的写法——f(x)就是被RBF盯上的未知项。2.2 RBF逼近器的数学表达重点在“逼近误差有界”这句话RBF逼近未知函数f(x)的标准写法是f(x) W*ᵀ h(x) ε其中h(x)是所有隐含层节点输出组成的向量W是理论最优权值矩阵ε是逼近残差。工程实践里理想权值W当然拿不到能拿到的是它的估计值Ŵ估计值由自适应律在控制过程中在线更新。于是实装的逼近器写成f̂(x) Ŵᵀ h(x)这里有两个容易忽略但控制律设计时非常关键的边界条件。第一个是逼近误差ε有界即存在正数ε_max使‖ε‖ ≤ ε_max对定义域内所有x都成立——正是这个上界决定了滑模控制里补偿项的最小增益。第二个是理想权值W有界权值估计值最终要收敛到W附近而不是无限增长这在后面避坑章节会牵扯到自适应律的投影修正。把f(x)写成W*ᵀ h(x) ε而不是直接写f̂(x)是控制器稳定性证明的关键手法只有把模型误差显式放进Lyapunov函数里才能推出系统的稳定边界条件。提示ε_max不需要精确值只需要数量级。它最终被滑模增益吸收取值大了代价是抖振更强取值小了跟踪误差里会残留一个偏置。在设计控制律时我习惯先问三个问题RBF的输入x取哪些量隐层节点数N取多少逼近误差上界ε_max大概是多少输入向量一般取当前的系统状态和参考信号比如速度误差、参考加速度这些与未知项强相关的量节点数N在仿真阶段先取5到10个多了CPU吃不消少了逼近能力不够。2.3 和PID、纯跟踪、MPC的边界RBF解决的不是几何跟踪路径跟踪控制里有一个常被混淆的问题RBF神经网络到底解决的是哪一部分纯粹的上位路径跟踪即根据当前位姿误差算目标速度几何方法就已经很成熟了。比如纯跟踪算法根据预瞄距离选一个路径点用圆弧几何关系算出期望角速度简单可靠在AGV和巡检机器人上大量使用。它解决的是“怎么走”不关心机器人为什么走偏。PID控制器解决的则是线性反馈对固定工况有效速度一变、负载一换增益就需要重新整定。真正让RBF神经网络进场的是最下面那一层机器人动力学模型里的非线性、时变、不确定项。负载从空载变成满载、地面从瓷砖变成地毯、轮胎磨损之后打滑特性改变这些变化会让PID的固定增益失效也会让MPC的模型预测出现系统性偏差。RBF自适应控制做的事情是在控制器里增加一个在线更新的补偿通道滑模项压住未知函数的硬上界RBF逼近项把这个上界逐步吃掉最终让滑模补偿项退居后台只剩下边界层抖动。从系统分工来说几何跟踪负责参考轨迹生成RBF负责收拾模型不确定性两者是上下游关系不是替代关系。明白了这条边界线就能理解为什么基于RBF的路径跟踪控制方案在仿真里通常比PID表现好它没有把摩擦力建模成常数而是让网络在线去追那个变化的摩擦函数。也能理解为什么这类方案不适合用在模型极精确、计算资源紧张的场合——如果被控对象是伺服电机加高精度减速器且负载恒定RBF的在线学习反而是多余的开销固定前馈就够。3. 基于RBF的自适应滑模路径跟踪控制控制律设计与稳定性边界3.1 路径跟踪误差建模从机器人运动学位姿误差说起路径跟踪控制里第一步不是调控制器而是把跟踪误差定义清楚。以差速轮式机器人为例机器人在全局坐标系下的位姿是(x, y, θ)θ是航向角参考路径上有一个参考点参考位姿记为(x_r, y_r, θ_r)。路径跟踪的目标就是让这两个位姿的偏差收敛到零。直接拿全局坐标做差有一个问题机器人控制器的输出比如前进速度v和角速度ω是在机器人本体坐标系里定义的而全局坐标差随着机器人的朝向在变化。直接用全局偏差做控制器整定的增益会随姿态变化很难稳定。所以标准做法是先把全局坐标差通过旋转矩阵投影到机器人本体坐标系得到本体坐标系下的纵向误差e_x、横向误差e_y和航向误差e_θ[e_x, e_y, e_θ]ᵀ R(θ) · [x_r - x, y_r - y, θ_r - θ]ᵀ对时间求导代入运动学方程得到误差动力学模型ė_x -v v_r cos e_θ ω e_y ė_y v_r sin e_θ - ω e_x ė_θ ω_r - ω其中v_r和ω_r是参考速度与参考角速度。这组方程是后续设计滑模面和运动学控制律的起点。它假设机器人满足纯滚动无侧滑的非完整约束条件这是差速轮式机器人最常用的一阶模型也适用于六轴机器人运动轨迹算法里末端轨迹跟踪的上层抽象。实际中如果机器人速度很高、侧滑明显需要在模型里额外加一个侧向速度项RBF的输入向量里也得把这个量加进去。3.2 分层控制结构运动学级给期望速度动力学级用RBF收拾不确定项把路径跟踪控制拆成分层结构是工程验证里最稳妥的做法。上层是运动学控制器它根据误差模型和参考路径信息输出期望速度v_d和期望角速度ω_d下层是动力学控制器它把期望速度与实际速度的偏差作为输入输出驱动力矩τ_v和τ_ω同时用RBF网络逼近摩擦力、打滑力矩、电机死区这些不确定项。运动学控制律采用反步法思路常见形式是v_d v_r cos e_θ k_1 e_x ω_d ω_r k_2 v_r e_y k_3 sin e_θk_1、k_2、k_3是正常数增益。这个控制律的直观含义是纵向误差由前向速度修正横向误差和航向误差由角速度修正当e_y较大时角速度增加把车头扭回来。参考速度v_r和参考角速度ω_r每一项都要保留否则跟踪弯道时会出现拐弯跟不上的滞后。动力学级才是RBF的主战场。考虑包含不确定项的简化动力学模型M v̇ τ_v f_v(x) d_v J ω̇ τ_ω f_ω(x) d_ωM和J是等效质量与转动惯量τ_v、τ_ω是待设计的控制力矩f_v、f_ω是未知非线性项d_v、d_ω是外部扰动。定义速度跟踪误差e_v v_d - v、e_ω ω_d - ω取滑模面s_v e_v、s_ω e_ω一阶滑模面即可也可以加积分项消除静差。动力学控制律设计为τ_v M(v̇_d k_v s_v) - Ŵ_vᵀ h(x) - K_v tanh(s_v / φ) τ_ω J(ω̇_d k_ω s_ω) - Ŵ_ωᵀ h(x) - K_ω tanh(s_ω / φ)RBF网络的输入x取[v, ω, v_d, ω_d, v̇_d, ω̇_d]隐层输出h(x)由高斯核函数计算。tanh替代sign是为了避免抖振φ是边界层厚度。3.3 Lyapunov稳定性条件K_v、K_ω的最小值是怎么推出来的有经验的读者看到Ŵ会问一个问题这个权值凭什么收敛自适应律怎么设计才能保证整个闭环稳定答案是靠Lyapunov函数。定义V 1/2 M s_v² 1/2 J s_ω² 1/2 tr(Ẇ_vᵀ Γ_v⁻¹ Ẇ_v) 1/2 tr(Ẇ_ωᵀ Γ_ω⁻¹ Ẇ_ω)其中Ẇ_v Ŵ_v - W*_v是权值估计误差Γ_v、Γ_ω是自适应增益矩阵。对V求导代入控制律和自适应律Ŵ̇_v Γ_v h(x) s_v Ŵ̇_ω Γ_ω h(x) s_ω整理后V̇表达式里所有带W的项全部抵消剩下的部分可以压缩为V̇ -k_v s_v² - k_ω s_ω² - K_v s_v tanh(s_v/φ) - K_ω s_ω tanh(s_ω/φ) s_v(ε_v d_v) s_ω(ε_ω d_ω)只要选择K_v ε_v_max d_v_max、K_ω ε_ω_max d_ω_max最后两项就会被滑模项压住V̇ ≤ 0成立系统渐进稳定。这个推导在工程上的实际意义有两点。一是它明确给出了滑模增益K_v、K_ω的下限不是拍脑袋调的而是要覆盖住RBF逼近误差上界和扰动上界之和。二是它解释了为什么RBF能把滑模切换到后台当逼近误差逐步减小ε变小K的有效利用率就高抖振的副作用自然被压住。如果仿真里发现跟踪误差在某个平稳值来回振荡不用怀疑网络失效先按这个条件检查K是否小于ε_max d_max。4. MATLAB仿真搭建从差速轮式机器人模型到RBF控制器落地4.1 机器人仿真平台怎么选先用MATLAB把控制律跑透再考虑ROS2实现做RBF控制仿真可选平台无非三个MATLAB/Simulink、Python配合numpy/scipy、ROS2环境下的C/Python。我的建议是首版方案和算法验证放在MATLAB里做理由很朴素MATLAB的ode45变步长积分器和矩阵运算库对这种“连续控制律离散化仿真”的组合最省事调试时可以在一条命令里把状态、控制量、权值矩阵全部可视化出来。ROS2的强项是节点通信和实车部署但开发周期长在算法还没有跑通前用ROS2只会放大排查难度。也顺便给一个折中方案如果团队其他成员习惯Python可以用numpy重写一遍运动学模型和RBF控制律用scipy.integrate.solve_ivp替换ode45。仿真结果与MATLAB基本一致但RBF控制和自适应律相关的调试工具链没有MATLAB那么顺手。对于第一次接触这个方案的读者我强烈建议先在MATLAB里把这个方案跑通再决定是否移植到ROS2机器人开发框架、用于具身机器人或足球机器人这类实时平台。4.2 差速轮式机器人被控对象模型状态方程代码仿真第一步是把被控对象模型搭起来。这里采用包含动力学不确定项的差速轮式机器人模型文件保存为diff_robot.m。function dq diff_robot(t, q, u, param) % 差速轮式机器人状态 q [x; y; theta; v; w] % u [tau_v; tau_w] 驱动力矩 % param: m 质量, J 转动惯量, r 轮半径, a 轴距一半 x q(1); y q(2); th q(3); v q(4); w q(5); tau_v u(1); tau_w u(2); % 运动学部分 dx v * cos(th); dy v * sin(th); dth w; % 动力学部分简化带未知摩擦项 c_v 0.5; % 摩擦系数未知项来源 c_w 0.3; f_unk_v -c_v * v - 0.2 * v * abs(v); % 未知非线性阻力 f_unk_w -c_w * w - 0.3 * w * abs(w); % 未知转动阻力 d_v 0.2 * sin(3*t); % 外部扰动 d_w 0.1 * sin(5*t); dv (tau_v f_unk_v d_v) / param.m; dw (tau_w f_unk_w d_w) / param.J; dq [dx; dy; dth; dv; dw]; end这段代码里运动学部分直接对应上一节的误差模型约束动力学部分刻意引入了两个厂商不会写进参数的摩擦项——那个c_v、c_w系数以及v*abs(v)的非线性项就是RBF网络要在线逼近的对象。实际机器人上也存在类似的项只是你不知道系数是多少。这里把仿真做成上帝视角模型里知道f_unk_v的形式控制器里故意忽略它只当它不存在留给RBF去逼近和补偿。参数结构体param建议把m、J、r、a分开传实验时可以快速改负载。提示仿真里摩擦项和扰动项是作为上帝视角给出的实际项目中这些项不存在于模型文件里但RBF控制器根本没有用到这些项的具体形式所以从被控对象文件中删除它们不会影响控制器代码的完整性。4.3 RBF网络逼近器与自适应滑模控制器代码控制器是这套方案的核心。按下面的结构把它保存为rbf_smc_controller.m。要重点说明的是控制器里根本不知道上面模型文件里的f_unk_v的具体形式它只靠RBF网络去逼近。function [tau, W, hx, s] rbf_smc_controller(q, q_ref, dq_ref, ddq_ref, W_v, W_w, c, b, param, ctrl) % q 实际状态 [x; y; th; v; w] % q_ref 参考状态 % W_v, W_w 径向基网络权值列向量 % c, b 中心点矩阵与基宽向量 % 运动学层由位姿误差计算期望速度 ex cos(q(3))*(q_ref(1)-q(1)) sin(q(3))*(q_ref(2)-q(2)); ey -sin(q(3))*(q_ref(1)-q(1)) cos(q(3))*(q_ref(2)-q(2)); etheta wrapToPi(q_ref(3) - q(3)); v_r dq_ref(1); w_r dq_ref(2); v_d v_r*cos(etheta) ctrl.k1 * ex; w_d w_r ctrl.k2 * v_r * ey ctrl.k3 * sin(etheta); % 动力学层速度误差滑模面 ev v_d - q(4); ew w_d - q(5); s [ev; ew]; % RBF输入状态期望速度参考加速度 net_in [q(4); q(5); v_d; w_d; ddq_ref(1); ddq_ref(2)]; H zeros(size(c,2), 1); for j 1:size(c,2) dist norm(net_in - c(:,j))^2; H(j) exp(-dist / (2*b(j)^2)); end % 控制律标称项 RBF补偿 滑模项 tau_v param.m * ddq_ref(1) ctrl.kv * ev - W_v * H - ctrl.K_v * tanh(ev/ctrl.phi); tau_w param.J * ddq_ref(2) ctrl.kw * ew - W_w * H - ctrl.K_w * tanh(ew/ctrl.phi); tau [tau_v; tau_w]; W [W_v, W_w]; hx H; end这里有几个参数要特别说清楚。RBF中心点矩阵c的选取直接决定网络的激活质量中心点要覆盖net_in的实际运行范围。以net_in的前两维v和w为例如果机器人速度范围是0到1 m/s角速度范围是-1到1 rad/s中心点在二维平面上就要按网格或K-means聚类铺满不能全部堆在原点。基宽b决定每个节点的感受野半径取值太大则所有节点同时激活失去局部性取值太小则绝大多数输入落在激活函数的平台区输出恒为0网络根本学不动。滑模增益K_v、K_w按第3.3节的稳定性推导取大于扰动上界与逼近误差上界之和。参数名含义建议取值调节依据NRBF隐层节点数5~10输入维度高或非线性强时取大b基宽中心距离的0.5~1倍太大失去局部性太小输出恒为0Γ自适应学习率0.1~10以调试时不发散的为上限K滑模增益 ε_max d_max从稳定性条件推算φ边界层厚度0.02~0.1平衡抖振与稳态误差dt仿真步长0.005s自适应律欧拉离散需要4.4 参考路径生成与仿真主循环先跑圆形再上8字形控制律写完需要一条参考路径和参考速度信号。圆形路径是最低标准曲率恒定、速度规划简单适合验证控制律基本正确。8字形路径则引入曲率突变用于观察RBF逼近器在大动态输入下是否依然稳定。% 圆形参考路径半径R参考速度恒定 R 1.0; % 半径单位m v_r 0.8; % 参考线速度单位m/s w_r v_r / R; % 仿真主循环固定步长RK4步长dt0.005s dt 0.005; simT 20; q [0.2; 0; 0; 0; 0]; % 初始位姿故意偏离参考路径 q_ref zeros(5,1); dq_ref [v_r; w_r]; ddq_ref [0;0]; W_v zeros(6,1); W_w zeros(6,1); % 权值初始化为0 for k 1:simT/dt t (k-1)*dt; q_ref(1) R*sin(w_r*t); q_ref(2) R*(1-cos(w_r*t)); q_ref(3) w_r*t; % 用RK4积分被控对象此处调用diff_robot q rk4_step(diff_robot, q, tau, dt, t, param); % 控制器 自适应律 [tau, W, H, s] rbf_smc_controller(q, q_ref, dq_ref, ddq_ref, W_v, W_w, c, b, param, ctrl); W_v W_v Gamma_v * H * s(1) * dt; W_w W_w Gamma_w * H * s(2) * dt; end主循环里最关键的一行是自适应律的离散化W_v W_v Gamma_v * H * s(1) * dt对应连续形式Ŵ̇ Γ h(x) s的欧拉离散配合固定步长0.005s在仿真里通常够用。控制器结构里把参考加速度ddq_ref放进RBF输入是因为未知摩擦项依赖速度的变化趋势不放进去网络逼近的滞后会明显。仿真结束后把横向误差ey的绝对值时间序列画出来如果曲线在10到20秒内收敛且不振荡说明控制律和参数基本合格。之后再换8字形路径看曲率变化时RBF是否依然稳定。注意如果你把dt调到0.01s以上自适应律的欧拉离散可能会出现周期性振荡这不是控制器的问题是离散步长超出了网络权值时间尺度的分辨能力。5. 避坑RBF路径跟踪仿真的五个常见问题与排查思路5.1 现象一RBF输出“学不动”跟踪误差长时间高频振荡最常见的翻车现场是把论文里的控制律原样抄到仿真里发现横向误差不但不收敛还在某个均值附近以10Hz以上的频率抖动。把RBF的隐层输出打出来发现绝大部分通道输出恒为0或者恒为1。原因几乎都集中在中心点和基宽设置上中心点没有覆盖网络输入的实际工作范围或者基宽b取值过大造成全部节点糊成一团失去局部逼近能力。解决方法是先用仿真数据统计net_in各维度的范围用K-means聚类定中心b取同一簇内样本到中心平均距离的0.5到1倍。没有必要追求节点数多5到10个节点在六维输入下已经够用。5.2 现象二权值“跑飞”控制量冲到饱和限幅第二个常见问题是自适应律发散仿真跑到某一时刻控制量突然跳到上下限权值向量的范数指数增长。原因有几个维度学习率Γ过大、滑模面s在某段时间持续同号导致权值持续单向增长、输入信号出现跳变让激活值猛增。工程上的处理有三个层次一招是降低Γ从0.1起步每次翻十倍测试范围二招是在自适应律更新时对权值范数加约束当‖Ŵ‖超过预设上限W_max就把增长向量按比例收缩这就是投影修正三招是把自适应律里的s替换成带死区的版本当|s|小于某个阈值时不更新防止误差已经收敛到死区内仍然无意义地更新权值。注意投影修正不是调参技巧是稳定性边界的一部分。去掉投影长时间运行后权值大概率漂移这在实车上比在仿真里出现得更早。5.3 现象三滑模控制量抖振明显力曲线像锯齿波如果RBF逼近器工作正常但输出力矩仍在零附近频繁正负切换这通常不是网络的问题而是滑模项使用了符号函数sign(s)。符号函数在滑模面穿越零点的一瞬间会产生高频切换在仿真里表现为锯齿波在实车上表现为电机电流抖动和齿轮箱异响。解决方法是把sign(s)换成饱和函数tanh(s/φ)或sat(s/φ)φ是边界层厚度。φ太小没有平滑效果φ太大会直接贡献稳态误差。我的经验是从0.02开始调观察跟踪误差和控制量平滑度的平衡。注意更换后只要K仍大于ε_max d_max最终有界稳定性仍然成立但稳态误差会随φ增大而增大。5.4 现象四跟踪误差收敛但不为零稳定在一个小的偏置有些场景仿真看起来挺稳误差不再振荡但始终在0.02到0.05米之间压不下去。排查顺序是先看滑模增益K是否小于扰动上界与逼近误差上界之和若是加K再看边界层φ是否过大若是减小φ最后看自适应律是否还在更新如果权值在仿真0.5秒以后就停住不动可能是进入了死区或Γ太小网络没有真正逼近未知项。这个现象在负载突变时尤其明显——空载仿真调好了加负载后误差上浮说明RBF输入里没有包含负载相关的状态变量网络输入维度不够需要加入新的状态量重新训练。5.5 现象五圆形路径没问题换高速8字形路径直接发散这是仿真验证时最容易漏掉的一关。圆形路径曲率恒定、参考速度恒定RBF输入几乎落在一个很小的局部区域里换成8字形路径后曲率变化导致参考角速度、参考加速度出现大跳变网络输入短时间冲出中心点覆盖范围高斯核全部趋近0RBF的补偿输出归零系统退化成普通滑模控制如果滑模增益又没有留足裕量发散是必然的。解决方法是两条腿走路先在路径生成端做速度规划平滑限制参考加速度再扩展RBF中心点覆盖范围让中心网格覆盖整个可能的速度-加速度区域。仿真阶段可以参考真实场景的速度上限来定网格范围而不是只在工作点附近布置中心。6. 从仿真到实车验证RBF路径跟踪控制的“最后一公里”仿真跑通只是第一步真正落地到实车还有几件具体的事。第一件事是状态估计。仿真里状态是上帝视角直接拿到的实车上只有轮式编码器和惯性传感器位姿要靠里程计或者SLAM融合出来。RBF控制器的输入是本体坐标系误差状态估计的延迟会直接折算到误差信号里所以我一般在实车测试前先跑一段开环确认里程计位姿在连续5分钟内漂移不超过0.1米再启用闭环控制器。第二件事是控制频率。仿真用RK4积分步长0.005秒实车控制器一般跑在50到100Hz这个频率下自适应律的离散化误差不可忽略。我只有让速度误差的绝对值大于0.01时才更新权值避免稳态抖动造成权值持续漂移。权值的投影修正也必须保留实车运行一小时后哪怕很小的系统性问题也会让权值累积到饱和投影修正就是针对这个问题的后悔药。第三件事是验证方法。建议在固定负载下分别跑纯滑模控制和滑模加RBF两组实验记录横向误差的均方根值和最大值做成对比表再在底盘上增加配重块模拟负载变化重复实验观察RBF组的误差是否比纯滑模组保持得更平稳。这是判断RBF逼近器是否真正学到未知项的最直接证据。最后一件事是落地平台。如果是差速轮式底盘现在ROS2生态下TurtleBot或自研底盘都能用标准cmd_vel接口接收期望速度把动力学控制器输出的力矩折算到底层驱动轮力矩指令并不复杂如果是机械臂RBF逼近的就是关节上的摩擦和惯性耦合项。我的血泪经验是仿真里把RBF调到完美之后上实车第一步先把仿真里的未知项置零并关闭自适应律确认底层执行器没有饱和问题否则自适应律在实车上的第一个小时就会被链路延迟带偏。希望帮到你。本文还有配套的精品资源点击获取
阅读完成 · 觉得有帮助?
咨询建站