您现在的位置是:首页 > 短信大全

webots学习笔记——URDF和PROTO文件生成及导入综述参考

作者:付梓时间:2024-04-14 15:39:09分类:短信大全

简介  文章浏览阅读896次,点赞19次,收藏8次。在学习webots过程中,对于URDF文件生成、PROTO文件的生成,学习了CSDN上的多篇博客,终于实现了自己的文件导入及初步仿真动作的实现。现做一简单汇总,并简要介绍,希望能帮助到有需要的人。一点体会,有时候很难

点击全文阅读

    在学习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中的元素

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

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

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

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

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

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

<mimic>(可选)

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

<safety_controller>(可选)

这个元素可以包含一下属性:
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)

谢谢阅读~~

点击全文阅读

郑重声明:

本站所有活动均为互联网所得,如有侵权请联系本站删除处理

我来说两句