Webots仿真测试
为了验证本文所设计的轮足机器人的算法的可行性和有效性,在进行实物制作与测试前,采用Webots机器人仿真平台进行预先的验证和测试。该平台具有高度的可定制性和实用性,可以模拟真实的机器人运动和环境。除了基本的节点构建,Webots还支持给机器人添加碰撞边界、质量、摩擦力等物理特征,极大提高了仿真测试结果的真实性。
机器人模型的建立与优化
在Webots中,导入的STEP格式可以转换为Shape(形状)节点。Shape节点用于在世界中创建渲染可见物体,由几何形状和外观构成,并不具备物理属性。Solid节点用于表示具有物理属性的对象,例如碰撞箱、接触材料和质量属性等,Solid类是碰撞检测对象的基类,但Solid节点并不可见。因此,需要使用Shape节点作为Solid节点的子节点,才能将一个实体的物理属性实体化。
在仿真测试之初,将SolidWorks中设计的轮足机器人结构在添加旋转轴、坐标系后直接导入Webots中(图1),使用生成的机械构件的Shape节点作为Solid节点的碰撞箱,没有考虑Webots对STEP格式文件的处理流程,导致在运行过程中频繁出现模型崩溃的现象。因为导入的曲面在Webots中会进行三角形栅格化处理, 具体体现为一个圆柱体在导入世界后,其表面并非圆滑的曲线而是由一个个三角形组成,形成了复杂的多面体(图2),与在Webots中直接添加的圆柱体有很大区别(图3)。



所导入的机器人模型碰撞箱的异常导致在模型运行时机器人与地面存在多个接触点/线,使得仿真软件需要大量的计算实现这些异常碰撞点之间的物理表现,并且模型会频繁崩溃,极大地影响了仿真测试效果。
虚拟仿真环境中的机器人仅仅是控制算法的载体,并不需要考虑机器人结构上的设计。因此,为了在Webots仿真软件中验证轮足机器人的控制算法,将轮足机器人的模型做了简化处理,只保留前文建立的物理模型中的基本机械结构,即机体、闭链五连杆和驱动轮,简化模型见图4。

仿真 结果
为了测试机器人在不同地形下的运行鲁棒性,在Webots仿真环境中添加了许多测试场景,如高台、斜坡、非平整地面等道具。为了更好地迁移控制代码,在仿真中使用C语言作为机器人的控制器语言,配合Matlab绘图引擎实时绘制4个关节电机和2个轮电机的扭矩、转速数据,机器人机体重量为5Kg,测试结果如图5,图6所示。


简化模型的大腿长为105mm,小腿长为205mm,驱动轮直径为80mm,机体重量为5Kg,驱动轮重量为1Kg。观察仿真测试扭矩变化图,可以发现在进行跳跃动作时,关节电机的扭矩达到最大值,约为6Nm;在落地时,驱动轮电机的扭矩达到最大值,约为1Nm。观察仿真测试转速变化图,发现在初次进行跳跃时,驱动轮电机的转速出现了比较大的突变,峰值约为60rpm;在落地和跳跃时,关节电机的转速达到最大值,约为20rpm。
综上所述,仿真测试验证了所设计的轮足机器人控制算法的有效性,且在测试过程中记录的关节电机扭矩转速、驱动轮电机扭矩转速数据均小于第二章节中所选的电机,说明所选的电机是满足要求的。
参考资料
[1]. CSDN-Webots调用MATLAB引擎实时绘制图像
[2]. WangShuoKai/BalanceSimulation: 平衡步兵仿真代码
[3]. LiuDingchuan/Graduate_Project: Webots Simulation of A Wheeled Bipedal Robot Using Model Based LQR
Last update on: 2025/02/10