【ROS-Gazebo】pigot开源四足机器人项目改进(2)

979
0
2020年4月23日 22时30分

这几天继续琢磨Gazebo仿真环境。

 

上一篇文章完成时,顺便提出了一些改进建议。想着估计也没人闲着来改进,于是就自己做了一些修改,主要有以下几个方面:

1、导入Solidworks模型

2、增加腿部自由度,添加转向步态

3、仿真环境参数调整

 

导入Solidworks模型

在大多数教程中为了简单起见,都使用了Gazebo默认的三种模型:球体、圆柱体和长方体。上一个版本建模使用了这些默认模型,发现有的复杂结构表达起来很困难,用到太多固定关节(fixed joint)。于是这一次琢磨了怎么用Solidworks进行建模并导入gazebo。

 

一个方法是,在Gazebo的模型编辑器(model editor)中可以看到一个导入模型的选项,里面介绍了可以使用stl模型。但实际使用并没有成功,问题尚未解决。

 

另一个方法是用插件从solidworks中直接导出urdf,这样会很方便,诸如关节轴线(joint axis)的方向都能自动识别。网上教程很多就不赘述,给两个最有用的链接:

 

sw_urd插件 官方下载

sw_urdf插件 安装与使用教程

 

几个注意事项:

·   solidworks版本不要太老,官方说至少2012版以后,我用2016版可行

·   如果要直接从装配体导出带所有连杆和关节的完整模型(见教程),可在solidworks中进行装配,但必须留出相应的自由度。不可以把关节约束死,否则插件无法识别

·   模型是以package功能包文件夹的形式导出的,因此导出时命名要符合ros功能包的规范,例如robot_description,不能用默认的XXX.SLDASM名称,否则在ros中无法编译。

 

改进后的四足机器人模型如图所示,上面的方块配重是为了模拟后续可能会增加的一个机械臂:

 

【ROS-Gazebo】pigot开源四足机器人项目改进(2)插图

 

经solidworks导入Gazebo的模型

 

增加腿部自由度

 

在参考了一些四足机器人的结构后发现,多数四足的腿都有三个自由度,而不是上一个模型中的两个。因此增加了肩部的翻滚自由度,机器的整体自由度如图:

 

【ROS-Gazebo】pigot开源四足机器人项目改进(2)插图(1)

12自由度四足机器人结构简图[1]

 

增加自由度后就可以实现转向步态了,效果见文末动图与视频。

 

仿真参数调整

 

在之前的仿真中,总感觉模型动作不自然,比如总是打滑、振荡。仔细研究后发现,是Gazebo仿真参数设置不合理。这一块还没有弄得太明白,只能把目前的经验分享一下:

·   对于驱动关节,其关节限位、最大扭矩、最大速度、阻尼和摩擦要进行设置。当动作指令通信正常,但机器人就是不动,一般是速度或扭矩不够。

·   整体环境,例如地面摩擦系数等要合理。如果移动机器人模型打滑,除了改进结构以外,注意检查模型与地面的摩擦系数(mu和mu2在0到1之间,超过1则视为1)。

·   使用ros_control插件时,注意调节PID参数,详见自控原理。

 

 

对于仿真参数,有一个Gazebo官方论坛上的回答值得记录一下:Object slips out of the gripper after jitters​answers.gazebosim.org

 

仿真效果

 

Gazebo四足机器人仿真

 

Github链接

XM522706601/pigot_project​github.com

 

参考文献

[1]勾文浩, 袁立鹏, 宫赤坤, et al. 基于足端轨迹的仿生四足机器人运动学分析与步态规划[J]. 现代制造工程, 2017(7).

[2]ROS wiki, Question-Gazebo, 古月居 等网络资料

发表评论

后才能评论