在学习webots过程中,对于URDF文件生成、PROTO文件的生成,学习了CSDN上的多篇博客,终于实现了自己的文件导入及初步仿真动作的实现。现做一简单汇总,并简要介绍,希望能帮助到有需要的人。

      一点体会,有时候很难照着一篇博客从头到尾跟下来就能复现,涉及很多因素,包括软件版本不同(solidworks版本不同,对应SW2URDF版本就不同;webots版本不同;python版本不同;URDF2webots版本不同)系统不同(WIN、Linux+ROS)、机器人构型不同(三轴、四轴、六轴),因此需要多多参考别人的多篇文章,找出最接近自己需要的2-3篇,再加上自己实操,才能完成自己的目的和解决自己遇到的问题。

1、下面这篇文章介绍了URDF模型的joint标签详解,了解基本概念还是很有必要的。

ROS中URDF模型的joint标签详解_ros joint-CSDN博客

要点:

1.1 joint中的属性

关节一共有如下六个类型:

continuous: 一个不受限制的, 绕着一根轴的转动副.
revolute: 一个转动角度受到限制的, 绕着一根轴的转动副.
prismatic: 一个沿着一根轴的滑动副, 并且有限位.
fixed: 固定关节.
floating: 这个关节允许六个自由度的运动, 浮动关节.
planar: wiki上的原话是: This joint allows motion in a plane perpendicular to the axis. 我理解是, 这个关节允许再垂直于轴的一个平面内进行运动, 参考”ROS机器人开发实践”第115页上的内容. 这里的运动应该即包括平移, 也包括旋转.

1.2 joint中的元素

(可选, 默认为0)  这是一个可选的参数, 并不必须.它反应了从parent link到child link之间的一个变换
(必须) 指定了这个关节的parent link
(必须) 指定了这个关节的parent link
(可选, 默认为(1, 0, 0)) 相对于child link也就是joint link的坐标系:
(可选, 非必须)

用于校准关节的参考位置:
rising: 当关节沿正方向移动, 将除法上升沿.
falling: 反之.

(可选, 非必须, 默认为0)

反映了这个关节的一些物理参数, 比如阻尼值或者静摩擦力等:

(仅仅在prismatic和revolute的关节时需要设置)
其中包含如下几个属性:
lower和upper(可选, 默认为0): 反映了关节移动的最小值或者最大值. 如果关节是continuous类型的话, 就会被自动忽略. 如果不填的话全部默认为0.
effort(必须存在): 其中包含如下几个属性:
lowerupper(可选, 默认为0): 反映了关节移动的最小值或者最大值. 如果关节是continuous类型的话, 就会被自动忽略. 如果不填的话全部默认为0.effort(必须存在): 

velocity(必须): 设定了关节运动的最大速度.

(可选)

这个标签用于明确定义的关节和其他关节之间的关系. 其中包括multiplier和offset

(可选)

这个元素可以包含一下属性:
soft_lower_limit(可选, 默认为0)
soft_upper_limit(可选, 默认为0)
k_position(可选, 默认为0)

k_velocity(必须)

2、命令行下使用python转换urdf为 proto,及各参数的设置

【webots】urdf文件转换为webots文件 详细步骤-CSDN博客

 python -m urdf2webots.importer --input=urdf所在目录 --box-collision --static-base --tool-slot=base_link --multi-file --rotation="1 0 0 -1.5708"

3、四轴机械臂URDF导出前在solidworks中的设置讲解的很细,对初学者最有参考价值的文章之一

导出后的package文件ubuntu下使用暂未使用,使用时再参考学习。

提到导出文件时,改成不带下标点并且全都为小写字母的名称,否则编译会出错。

sw2urdf使用探索_sw2urdfsetup-CSDN博客

4、这个博主的两篇文章,尤其是第二篇文章也不错,对初学者最有参考价值的文章之一

第一篇文章讲了meshlab软件处理修复网格文件,可能以后用的上。

webots使用以及第三方模型导入装配、运动学仿真教程_webots六轴机械臂仿真-CSDN博客

第二篇文章简单介绍了六轴工业机械臂的模型导入。

将SolidWorks机器人模型导入webots的快捷方法_solidworks 导入webots-CSDN博客

5、导入proto文件前需要将其/\替换一下。就像下面这篇文章末尾里提到的。

利用插件将solidworks模型转化为URDF文件,再转化为proto文件并导入Webots_ubuntu_逆风的少年-CSDN学习社区

6、下面这个是一个四轮小车的导入过程,暂未涉及,留着备查。

webots导入solidworks模型_webots导入模型-CSDN博客

7、导入之后可能遇到的坑:控制台报错接触点超限

webots警告:WARNING: Contact joints between materials will only be created for the 10……_warning: close contact of 0.861590 angstroms betwe-CSDN博客

我的解决思路是在场景树中将BoundingObject设置为box类型,默认的可能太过复杂,用box可以大大简化计算量。

补充1:

这篇站外的文章也不错。

如何将URDF转为PROTO并导入Webots – C-Alen – 博客园 (cnblogs.com)

谢谢阅读~~

本站无任何商业行为
个人在线分享 » webots学习笔记——URDF和PROTO文件生成及导入综述参考
E-->